From f0959a4f643c38009cd4a76494ce79d6abfa5426 Mon Sep 17 00:00:00 2001 From: Adrian Weber Date: Tue, 12 Apr 2022 09:55:14 +0200 Subject: [PATCH] add cores for trb5sc GBE project, mentioned in .prj file --- gbe/cores/GbePcsExtrefclk/GbePcsExtrefclk.sbx | 2432 ++++++ gbe/cores/GbePcsExtrefclk/GbePcsExtrefclk.vhd | 179 + .../GbePcsExtrefclk/GbePcsExtrefclk_tmpl.v | 19 + gbe/cores/GbePcsExtrefclk/extref/extref.cmd | 18 + gbe/cores/GbePcsExtrefclk/extref/extref.fdc | 2 + gbe/cores/GbePcsExtrefclk/extref/extref.lpc | 31 + gbe/cores/GbePcsExtrefclk/extref/extref.ngd | Bin 0 -> 2905 bytes gbe/cores/GbePcsExtrefclk/extref/extref.ngo | Bin 0 -> 1141 bytes gbe/cores/GbePcsExtrefclk/extref/extref.vhd | 40 + .../GbePcsExtrefclk/extref/extref_ngd.asd | 1 + .../extref/syn_results/.recordref | 0 .../extref/syn_results/_CMD_.CML | 1 + .../extref/syn_results/_cmd._cml | 1 + .../extref/syn_results/dm/layer0.xdm | 79 + .../extref/syn_results/extref.areasrr | 15 + .../extref/syn_results/extref.fse | 0 .../extref/syn_results/extref.htm | 9 + .../extref/syn_results/extref.prj | 46 + .../extref/syn_results/extref.srd | Bin 0 -> 3132 bytes .../extref/syn_results/extref.srf | 333 + .../extref/syn_results/extref.srm | Bin 0 -> 3159 bytes .../extref/syn_results/extref.srr | 333 + .../extref/syn_results/extref.srr.db | Bin 0 -> 8192 bytes .../extref/syn_results/extref.srs | Bin 0 -> 2126 bytes .../extref/syn_results/extref.vhm | 54 + .../extref/syn_results/extref.vm | 59 + .../extref/syn_results/extref_cck.rpt.db | Bin 0 -> 8192 bytes .../extref/syn_results/extref_scck.rpt.db | Bin 0 -> 8192 bytes .../extref/syn_results/extref_synplify.lpf | 20 + .../syn_results/extref_synplify_tmp2.lpf | 0 .../syn_results/extref_synplify_tmp4.lpf | 0 .../syn_results/extref_synplify_tmp8.lpf | 0 .../extref/syn_results/run_options.txt | 75 + .../extref/syn_results/scemi_cfg.txt | 3 + .../extref/syn_results/scratchproject.prs | 73 + .../syn_results/synlog/extref_compiler.srr | 46 + .../syn_results/synlog/extref_compiler.srr.db | Bin 0 -> 8192 bytes .../synlog/extref_compiler.srr.rptmap | 1 + .../syn_results/synlog/extref_fpga_mapper.srr | 201 + .../synlog/extref_fpga_mapper.srr.db | Bin 0 -> 8192 bytes .../syn_results/synlog/extref_fpga_mapper.szr | Bin 0 -> 5141 bytes .../synlog/extref_multi_srs_gen.srr | 11 + .../synlog/extref_multi_srs_gen.srr.db | Bin 0 -> 8192 bytes .../syn_results/synlog/extref_premap.srr | 62 + .../syn_results/synlog/extref_premap.srr.db | Bin 0 -> 8192 bytes .../syn_results/synlog/extref_premap.szr | Bin 0 -> 2533 bytes .../syn_results/synlog/layer0.tlg.rptmap | 1 + .../synlog/report/extref_compiler_notes.txt | 8 + .../report/extref_compiler_runstatus.xml | 41 + .../report/extref_fpga_mapper_area_report.xml | 26 + .../report/extref_fpga_mapper_errors.txt | 0 .../report/extref_fpga_mapper_notes.txt | 7 + .../report/extref_fpga_mapper_opt_report.xml | 14 + .../report/extref_fpga_mapper_runstatus.xml | 46 + .../extref_fpga_mapper_timing_report.xml | 23 + .../report/extref_fpga_mapper_warnings.txt | 1 + .../synlog/report/extref_premap_errors.txt | 0 .../synlog/report/extref_premap_notes.txt | 2 + .../synlog/report/extref_premap_runstatus.xml | 46 + .../synlog/report/extref_premap_warnings.txt | 0 .../syn_results/synlog/report/metrics.db | Bin 0 -> 20480 bytes .../synlog/syntax_constraint_check.rpt.rptmap | 1 + .../extref/syn_results/syntmp/closed.png | Bin 0 -> 3672 bytes .../extref/syn_results/syntmp/extref.plg | 8 + .../extref/syn_results/syntmp/extref_srr.htm | 357 + .../extref/syn_results/syntmp/extref_toc.htm | 38 + .../extref/syn_results/syntmp/open.png | Bin 0 -> 452 bytes .../extref/syn_results/syntmp/run_option.xml | 24 + .../syn_results/syntmp/statusReport.html | 112 + .../extref/syn_results/synwork/.cckTransfer | Bin 0 -> 457 bytes .../extref/syn_results/synwork/_mh_info | 1 + .../syn_results/synwork/extref_comp.fdep | 21 + .../syn_results/synwork/extref_comp.srs | Bin 0 -> 2470 bytes .../extref/syn_results/synwork/extref_m.srm | Bin 0 -> 3159 bytes .../synwork/extref_m_srm/fileinfo.srm | Bin 0 -> 320 bytes .../syn_results/synwork/extref_mult.srs | Bin 0 -> 2126 bytes .../synwork/extref_mult_srs/fileinfo.srs | Bin 0 -> 299 bytes .../synwork/extref_mult_srs/skeleton.srs | Bin 0 -> 514 bytes .../syn_results/synwork/extref_prem.fse | 0 .../syn_results/synwork/extref_prem.srd | Bin 0 -> 2465 bytes .../extref/syn_results/synwork/layer0.fdep | 28 + .../syn_results/synwork/layer0.fdeporig | 24 + .../extref/syn_results/synwork/layer0.srs | Bin 0 -> 2552 bytes .../extref/syn_results/synwork/layer0.tlg | 4 + .../extref/syn_results/synwork/layer0.tlg.db | Bin 0 -> 8192 bytes .../syn_results/synwork/modulechange.db | Bin 0 -> 28672 bytes .../GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.cmd | 18 + .../GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.cst | 3 + .../GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.fdc | 3 + .../GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.lpc | 97 + .../GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.ngd | Bin 0 -> 393974 bytes .../GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.ngo | Bin 0 -> 203442 bytes .../GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.vhd | 433 ++ .../sgmii_ecp5/sgmii_ecp5_ngd.asd | 1 + .../sgmii_ecp5/sgmii_ecp5_softlogic.v | 2003 +++++ .../sgmii_ecp5/syn_results/.recordref | 0 .../sgmii_ecp5/syn_results/_CMD_.CML | 1 + .../sgmii_ecp5/syn_results/_cmd._cml | 1 + .../sgmii_ecp5/syn_results/dm/layer0.xdm | 548 ++ .../sgmii_ecp5/syn_results/dm/layer1.xdm | 255 + .../sgmii_ecp5/syn_results/run_options.txt | 76 + .../sgmii_ecp5/syn_results/scemi_cfg.txt | 3 + .../sgmii_ecp5/syn_results/scratchproject.prs | 74 + .../sgmii_ecp5/syn_results/sgmii_ecp5.areasrr | 97 + .../sgmii_ecp5/syn_results/sgmii_ecp5.fse | 12 + .../sgmii_ecp5/syn_results/sgmii_ecp5.htm | 9 + .../sgmii_ecp5/syn_results/sgmii_ecp5.prj | 47 + .../sgmii_ecp5/syn_results/sgmii_ecp5.srd | Bin 0 -> 72944 bytes .../sgmii_ecp5/syn_results/sgmii_ecp5.srf | 1134 +++ .../sgmii_ecp5/syn_results/sgmii_ecp5.srm | Bin 0 -> 31486 bytes .../sgmii_ecp5/syn_results/sgmii_ecp5.srr | 1134 +++ .../sgmii_ecp5/syn_results/sgmii_ecp5.srr.db | Bin 0 -> 40960 bytes .../sgmii_ecp5/syn_results/sgmii_ecp5.srs | Bin 0 -> 27443 bytes .../sgmii_ecp5/syn_results/sgmii_ecp5.vhm | 6445 ++++++++++++++++ .../sgmii_ecp5/syn_results/sgmii_ecp5.vm | 6626 +++++++++++++++++ .../syn_results/sgmii_ecp5_cck.rpt.db | Bin 0 -> 8192 bytes .../syn_results/sgmii_ecp5_scck.rpt.db | Bin 0 -> 8192 bytes .../syn_results/sgmii_ecp5_synplify.lpf | 29 + .../syn_results/sgmii_ecp5_synplify_tmp2.lpf | 0 .../syn_results/sgmii_ecp5_synplify_tmp4.lpf | 0 .../syn_results/sgmii_ecp5_synplify_tmp8.lpf | 0 .../syn_results/synlog/layer0.tlg.rptmap | 1 + .../syn_results/synlog/layer1.tlg.rptmap | 1 + .../syn_results/synlog/linker.rpt.rptmap | 1 + .../syn_results/synlog/report/metrics.db | Bin 0 -> 20480 bytes .../report/sgmii_ecp5_compiler_notes.txt | 16 + .../report/sgmii_ecp5_compiler_runstatus.xml | 41 + .../report/sgmii_ecp5_compiler_warnings.txt | 77 + .../sgmii_ecp5_fpga_mapper_area_report.xml | 26 + .../report/sgmii_ecp5_fpga_mapper_errors.txt | 0 .../report/sgmii_ecp5_fpga_mapper_notes.txt | 22 + .../sgmii_ecp5_fpga_mapper_opt_report.xml | 14 + .../sgmii_ecp5_fpga_mapper_runstatus.xml | 46 + .../sgmii_ecp5_fpga_mapper_timing_report.xml | 41 + .../sgmii_ecp5_fpga_mapper_warnings.txt | 4 + .../report/sgmii_ecp5_premap_errors.txt | 0 .../synlog/report/sgmii_ecp5_premap_notes.txt | 9 + .../report/sgmii_ecp5_premap_runstatus.xml | 46 + .../report/sgmii_ecp5_premap_warnings.txt | 3 + .../synlog/sgmii_ecp5_compiler.srr | 351 + .../synlog/sgmii_ecp5_compiler.srr.db | Bin 0 -> 28672 bytes .../synlog/sgmii_ecp5_compiler.srr.rptmap | 1 + .../synlog/sgmii_ecp5_fpga_mapper.srr | 673 ++ .../synlog/sgmii_ecp5_fpga_mapper.srr.db | Bin 0 -> 16384 bytes .../synlog/sgmii_ecp5_fpga_mapper.szr | Bin 0 -> 12840 bytes .../synlog/sgmii_ecp5_fpga_mapper.xck | 3 + .../synlog/sgmii_ecp5_multi_srs_gen.srr | 11 + .../synlog/sgmii_ecp5_multi_srs_gen.srr.db | Bin 0 -> 8192 bytes .../syn_results/synlog/sgmii_ecp5_premap.srr | 86 + .../synlog/sgmii_ecp5_premap.srr.db | Bin 0 -> 8192 bytes .../syn_results/synlog/sgmii_ecp5_premap.szr | Bin 0 -> 3856 bytes .../synlog/syntax_constraint_check.rpt.rptmap | 1 + .../sgmii_ecp5/syn_results/syntmp/closed.png | Bin 0 -> 3672 bytes .../sgmii_ecp5/syn_results/syntmp/open.png | Bin 0 -> 452 bytes .../syn_results/syntmp/run_option.xml | 24 + .../syn_results/syntmp/sgmii_ecp5.plg | 28 + .../syn_results/syntmp/sgmii_ecp5_srr.htm | 1162 +++ .../syn_results/syntmp/sgmii_ecp5_toc.htm | 60 + .../syn_results/syntmp/statusReport.html | 115 + .../syn_results/synwork/.cckTransfer | Bin 0 -> 456 bytes .../sgmii_ecp5/syn_results/synwork/_mh_info | 2 + .../syn_results/synwork/_verilog_hintfile | 69 + .../syn_results/synwork/layer0.fdep | 33 + .../syn_results/synwork/layer0.fdeporig | 29 + .../sgmii_ecp5/syn_results/synwork/layer0.srs | Bin 0 -> 50556 bytes .../sgmii_ecp5/syn_results/synwork/layer0.tlg | 2 + .../syn_results/synwork/layer0.tlg.db | Bin 0 -> 8192 bytes .../syn_results/synwork/layer1.fdep | 22 + .../syn_results/synwork/layer1.fdepxmr | 1 + .../syn_results/synwork/layer1.info | 2 + .../sgmii_ecp5/syn_results/synwork/layer1.srs | Bin 0 -> 21473 bytes .../sgmii_ecp5/syn_results/synwork/layer1.tlg | 252 + .../syn_results/synwork/layer1.tlg.db | Bin 0 -> 28672 bytes .../syn_results/synwork/modulechange.db | Bin 0 -> 28672 bytes .../layer0/modulechange.db | Bin 0 -> 20480 bytes .../layer1/modulechange.db | Bin 0 -> 20480 bytes .../syn_results/synwork/sgmii_ecp5_comp.fdep | 37 + .../synwork/sgmii_ecp5_comp.linkerlog | 0 .../syn_results/synwork/sgmii_ecp5_comp.srs | Bin 0 -> 46539 bytes .../syn_results/synwork/sgmii_ecp5_m.srm | Bin 0 -> 31486 bytes .../synwork/sgmii_ecp5_m_srm/1.srm | Bin 0 -> 68660 bytes .../synwork/sgmii_ecp5_m_srm/fileinfo.srm | Bin 0 -> 425 bytes .../syn_results/synwork/sgmii_ecp5_mult.srs | Bin 0 -> 27443 bytes .../synwork/sgmii_ecp5_mult_srs/1.srs | Bin 0 -> 13852 bytes .../synwork/sgmii_ecp5_mult_srs/fileinfo.srs | Bin 0 -> 403 bytes .../synwork/sgmii_ecp5_mult_srs/skeleton.srs | Bin 0 -> 6095 bytes .../syn_results/synwork/sgmii_ecp5_prem.fse | 12 + .../syn_results/synwork/sgmii_ecp5_prem.srd | Bin 0 -> 55846 bytes .../pll_200_125_100/pll_200_125_100.cmd | 18 + .../pll_200_125_100/pll_200_125_100.cst | 3 + .../pll_200_125_100/pll_200_125_100.fdc | 2 + .../pll_200_125_100/pll_200_125_100.lpc | 93 + .../pll_200_125_100/pll_200_125_100.ngd | Bin 0 -> 6054 bytes .../pll_200_125_100/pll_200_125_100.ngo | Bin 0 -> 3406 bytes .../pll_200_125_100/pll_200_125_100.vhd | 82 + .../pll_200_125_100/pll_200_125_100_ngd.asd | 1 + .../pll_200_125_100/pll_240_100.lpc | 93 + .../pll_200_125_100/syn_results/.recordref | 0 .../pll_200_125_100/syn_results/_CMD_.CML | 1 + .../pll_200_125_100/syn_results/_cmd._cml | 1 + .../pll_200_125_100/syn_results/dm/layer0.xdm | 163 + .../syn_results/pll_200_125_100.areasrr | 15 + .../syn_results/pll_200_125_100.fse | 0 .../syn_results/pll_200_125_100.htm | 9 + .../syn_results/pll_200_125_100.prj | 46 + .../syn_results/pll_200_125_100.srd | Bin 0 -> 5505 bytes .../syn_results/pll_200_125_100.srf | 403 + .../syn_results/pll_200_125_100.srm | Bin 0 -> 5633 bytes .../syn_results/pll_200_125_100.srr | 403 + .../syn_results/pll_200_125_100.srr.db | Bin 0 -> 8192 bytes .../syn_results/pll_200_125_100.srs | Bin 0 -> 4742 bytes .../syn_results/pll_200_125_100.vhm | 108 + .../syn_results/pll_200_125_100.vm | 117 + .../syn_results/pll_200_125_100_cck.rpt.db | Bin 0 -> 8192 bytes .../syn_results/pll_200_125_100_scck.rpt.db | Bin 0 -> 8192 bytes .../syn_results/pll_200_125_100_synplify.lpf | 20 + .../pll_200_125_100_synplify_tmp2.lpf | 0 .../pll_200_125_100_synplify_tmp4.lpf | 0 .../pll_200_125_100_synplify_tmp8.lpf | 0 .../syn_results/run_options.txt | 75 + .../pll_200_125_100/syn_results/scemi_cfg.txt | 3 + .../syn_results/scratchproject.prs | 73 + .../syn_results/synlog/layer0.tlg.rptmap | 1 + .../synlog/pll_200_125_100_compiler.srr | 51 + .../synlog/pll_200_125_100_compiler.srr.db | Bin 0 -> 8192 bytes .../pll_200_125_100_compiler.srr.rptmap | 1 + .../synlog/pll_200_125_100_fpga_mapper.srr | 265 + .../synlog/pll_200_125_100_fpga_mapper.srr.db | Bin 0 -> 8192 bytes .../synlog/pll_200_125_100_fpga_mapper.szr | Bin 0 -> 6127 bytes .../synlog/pll_200_125_100_multi_srs_gen.srr | 11 + .../pll_200_125_100_multi_srs_gen.srr.db | Bin 0 -> 8192 bytes .../synlog/pll_200_125_100_premap.srr | 63 + .../synlog/pll_200_125_100_premap.srr.db | Bin 0 -> 8192 bytes .../synlog/pll_200_125_100_premap.szr | Bin 0 -> 2598 bytes .../syn_results/synlog/report/metrics.db | Bin 0 -> 20480 bytes .../report/pll_200_125_100_compiler_notes.txt | 10 + .../pll_200_125_100_compiler_runstatus.xml | 41 + .../pll_200_125_100_compiler_warnings.txt | 2 + ...ll_200_125_100_fpga_mapper_area_report.xml | 26 + .../pll_200_125_100_fpga_mapper_errors.txt | 0 .../pll_200_125_100_fpga_mapper_notes.txt | 8 + ...pll_200_125_100_fpga_mapper_opt_report.xml | 14 + .../pll_200_125_100_fpga_mapper_runstatus.xml | 46 + ..._200_125_100_fpga_mapper_timing_report.xml | 23 + .../pll_200_125_100_fpga_mapper_warnings.txt | 1 + .../report/pll_200_125_100_premap_errors.txt | 0 .../report/pll_200_125_100_premap_notes.txt | 2 + .../pll_200_125_100_premap_runstatus.xml | 46 + .../pll_200_125_100_premap_warnings.txt | 0 .../synlog/syntax_constraint_check.rpt.rptmap | 1 + .../syn_results/syntmp/closed.png | Bin 0 -> 3672 bytes .../syn_results/syntmp/open.png | Bin 0 -> 452 bytes .../syn_results/syntmp/pll_200_125_100.plg | 8 + .../syntmp/pll_200_125_100_srr.htm | 428 ++ .../syntmp/pll_200_125_100_toc.htm | 45 + .../syn_results/syntmp/run_option.xml | 24 + .../syn_results/syntmp/statusReport.html | 112 + .../syn_results/synwork/.cckTransfer | Bin 0 -> 456 bytes .../syn_results/synwork/_mh_info | 1 + .../syn_results/synwork/layer0.fdep | 28 + .../syn_results/synwork/layer0.fdeporig | 24 + .../syn_results/synwork/layer0.srs | Bin 0 -> 6188 bytes .../syn_results/synwork/layer0.tlg | 9 + .../syn_results/synwork/layer0.tlg.db | Bin 0 -> 8192 bytes .../syn_results/synwork/modulechange.db | Bin 0 -> 28672 bytes .../synwork/pll_200_125_100_comp.fdep | 21 + .../synwork/pll_200_125_100_comp.srs | Bin 0 -> 5092 bytes .../syn_results/synwork/pll_200_125_100_m.srm | Bin 0 -> 5633 bytes .../pll_200_125_100_m_srm/fileinfo.srm | Bin 0 -> 316 bytes .../synwork/pll_200_125_100_mult.srs | Bin 0 -> 4742 bytes .../pll_200_125_100_mult_srs/fileinfo.srs | Bin 0 -> 296 bytes .../pll_200_125_100_mult_srs/skeleton.srs | Bin 0 -> 578 bytes .../synwork/pll_200_125_100_prem.fse | 0 .../synwork/pll_200_125_100_prem.srd | Bin 0 -> 4854 bytes .../pll_200_200_125_100.sbx | 617 ++ .../pll_200_200_125_100.vhd | 39 + .../pll_200_200_125_100_tmpl.v | 4 + gbe/cores/sgmii/PCSD/PCSD.cmd | 18 + gbe/cores/sgmii/PCSD/PCSD.cst | 3 + gbe/cores/sgmii/PCSD/PCSD.fdc | 3 + gbe/cores/sgmii/PCSD/PCSD.lpc | 97 + gbe/cores/sgmii/PCSD/PCSD.ngd | Bin 0 -> 180770 bytes gbe/cores/sgmii/PCSD/PCSD.ngo | Bin 0 -> 99461 bytes gbe/cores/sgmii/PCSD/PCSD.vhd | 390 + gbe/cores/sgmii/PCSD/PCSD_ngd.asd | 1 + gbe/cores/sgmii/PCSD/PCSD_softlogic.v | 943 +++ gbe/cores/sgmii/PCSD/stdout.log.bak.1 | 75 + gbe/cores/sgmii/PCSD/syn_results/.recordref | 0 gbe/cores/sgmii/PCSD/syn_results/PCSD.areasrr | 40 + gbe/cores/sgmii/PCSD/syn_results/PCSD.fse | 0 gbe/cores/sgmii/PCSD/syn_results/PCSD.htm | 9 + gbe/cores/sgmii/PCSD/syn_results/PCSD.prj | 47 + gbe/cores/sgmii/PCSD/syn_results/PCSD.srd | Bin 0 -> 41535 bytes gbe/cores/sgmii/PCSD/syn_results/PCSD.srf | 829 +++ gbe/cores/sgmii/PCSD/syn_results/PCSD.srm | Bin 0 -> 27644 bytes gbe/cores/sgmii/PCSD/syn_results/PCSD.srr | 829 +++ gbe/cores/sgmii/PCSD/syn_results/PCSD.srr.db | Bin 0 -> 24576 bytes gbe/cores/sgmii/PCSD/syn_results/PCSD.srs | Bin 0 -> 24257 bytes gbe/cores/sgmii/PCSD/syn_results/PCSD.vhm | 2765 +++++++ gbe/cores/sgmii/PCSD/syn_results/PCSD.vm | 2907 ++++++++ .../sgmii/PCSD/syn_results/PCSD_cck.rpt.db | Bin 0 -> 8192 bytes .../sgmii/PCSD/syn_results/PCSD_scck.rpt.db | Bin 0 -> 8192 bytes .../sgmii/PCSD/syn_results/PCSD_synplify.lpf | 24 + .../PCSD/syn_results/PCSD_synplify_tmp2.lpf | 0 .../PCSD/syn_results/PCSD_synplify_tmp4.lpf | 0 .../PCSD/syn_results/PCSD_synplify_tmp8.lpf | 0 gbe/cores/sgmii/PCSD/syn_results/_CMD_.CML | 1 + gbe/cores/sgmii/PCSD/syn_results/_cmd._cml | 1 + .../sgmii/PCSD/syn_results/backup/PCSD.srr | 1157 +++ .../sgmii/PCSD/syn_results/dm/layer0.xdm | 513 ++ .../sgmii/PCSD/syn_results/dm/layer1.xdm | 65 + .../sgmii/PCSD/syn_results/run_options.txt | 76 + .../sgmii/PCSD/syn_results/scemi_cfg.txt | 3 + .../sgmii/PCSD/syn_results/scratchproject.prs | 74 + .../PCSD/syn_results/synlog/PCSD_compiler.srr | 201 + .../syn_results/synlog/PCSD_compiler.srr.db | Bin 0 -> 20480 bytes .../synlog/PCSD_compiler.srr.rptmap | 1 + .../syn_results/synlog/PCSD_fpga_mapper.srr | 537 ++ .../synlog/PCSD_fpga_mapper.srr.db | Bin 0 -> 8192 bytes .../syn_results/synlog/PCSD_fpga_mapper.szr | Bin 0 -> 10217 bytes .../syn_results/synlog/PCSD_fpga_mapper.xck | 2 + .../syn_results/synlog/PCSD_multi_srs_gen.srr | 12 + .../synlog/PCSD_multi_srs_gen.srr.db | Bin 0 -> 8192 bytes .../PCSD/syn_results/synlog/PCSD_premap.srr | 70 + .../syn_results/synlog/PCSD_premap.srr.db | Bin 0 -> 8192 bytes .../PCSD/syn_results/synlog/PCSD_premap.szr | Bin 0 -> 3007 bytes .../PCSD/syn_results/synlog/layer0.tlg.rptmap | 1 + .../PCSD/syn_results/synlog/layer1.tlg.rptmap | 1 + .../PCSD/syn_results/synlog/linker.rpt.rptmap | 1 + .../synlog/report/PCSD_compiler_notes.txt | 11 + .../synlog/report/PCSD_compiler_runstatus.xml | 41 + .../synlog/report/PCSD_compiler_warnings.txt | 51 + .../report/PCSD_fpga_mapper_area_report.xml | 26 + .../synlog/report/PCSD_fpga_mapper_errors.txt | 0 .../synlog/report/PCSD_fpga_mapper_notes.txt | 11 + .../report/PCSD_fpga_mapper_opt_report.xml | 14 + .../report/PCSD_fpga_mapper_runstatus.xml | 46 + .../report/PCSD_fpga_mapper_timing_report.xml | 35 + .../report/PCSD_fpga_mapper_warnings.txt | 3 + .../synlog/report/PCSD_premap_errors.txt | 0 .../synlog/report/PCSD_premap_notes.txt | 2 + .../synlog/report/PCSD_premap_runstatus.xml | 46 + .../synlog/report/PCSD_premap_warnings.txt | 2 + .../PCSD/syn_results/synlog/report/metrics.db | Bin 0 -> 20480 bytes .../synlog/syntax_constraint_check.rpt.rptmap | 1 + .../sgmii/PCSD/syn_results/syntmp/PCSD.plg | 19 + .../PCSD/syn_results/syntmp/PCSD_srr.htm | 848 +++ .../PCSD/syn_results/syntmp/PCSD_toc.htm | 55 + .../sgmii/PCSD/syn_results/syntmp/closed.png | Bin 0 -> 3672 bytes .../sgmii/PCSD/syn_results/syntmp/open.png | Bin 0 -> 452 bytes .../PCSD/syn_results/syntmp/run_option.xml | 24 + .../PCSD/syn_results/syntmp/statusReport.html | 114 + .../PCSD/syn_results/synwork/.cckTransfer | Bin 0 -> 457 bytes .../PCSD/syn_results/synwork/PCSD_comp.fdep | 35 + .../syn_results/synwork/PCSD_comp.linkerlog | 0 .../PCSD/syn_results/synwork/PCSD_comp.srs | Bin 0 -> 31689 bytes .../sgmii/PCSD/syn_results/synwork/PCSD_m.srm | Bin 0 -> 27644 bytes .../PCSD/syn_results/synwork/PCSD_m_srm/1.srm | Bin 0 -> 26132 bytes .../synwork/PCSD_m_srm/fileinfo.srm | Bin 0 -> 414 bytes .../PCSD/syn_results/synwork/PCSD_mult.srs | Bin 0 -> 24257 bytes .../syn_results/synwork/PCSD_mult_srs/1.srs | Bin 0 -> 5162 bytes .../synwork/PCSD_mult_srs/fileinfo.srs | Bin 0 -> 395 bytes .../synwork/PCSD_mult_srs/skeleton.srs | Bin 0 -> 2633 bytes .../PCSD/syn_results/synwork/PCSD_prem.fse | 0 .../PCSD/syn_results/synwork/PCSD_prem.srd | Bin 0 -> 38649 bytes .../sgmii/PCSD/syn_results/synwork/_mh_info | 2 + .../syn_results/synwork/_verilog_hintfile | 54 + .../PCSD/syn_results/synwork/layer0.fdep | 32 + .../PCSD/syn_results/synwork/layer0.fdeporig | 28 + .../sgmii/PCSD/syn_results/synwork/layer0.srs | Bin 0 -> 47561 bytes .../sgmii/PCSD/syn_results/synwork/layer0.tlg | 2 + .../PCSD/syn_results/synwork/layer0.tlg.db | Bin 0 -> 8192 bytes .../PCSD/syn_results/synwork/layer1.fdep | 20 + .../PCSD/syn_results/synwork/layer1.fdepxmr | 1 + .../PCSD/syn_results/synwork/layer1.info | 1 + .../sgmii/PCSD/syn_results/synwork/layer1.srs | Bin 0 -> 9437 bytes .../sgmii/PCSD/syn_results/synwork/layer1.tlg | 96 + .../PCSD/syn_results/synwork/layer1.tlg.db | Bin 0 -> 20480 bytes .../PCSD/syn_results/synwork/modulechange.db | Bin 0 -> 28672 bytes .../layer0/modulechange.db | Bin 0 -> 20480 bytes .../layer1/modulechange.db | Bin 0 -> 20480 bytes .../pll_in125_out125_out33.cmd | 18 + .../pll_in125_out125_out33.cst | 3 + .../pll_in125_out125_out33.fdc | 2 + .../pll_in125_out125_out33.lpc | 93 + .../pll_in125_out125_out33.ngd | Bin 0 -> 5602 bytes .../pll_in125_out125_out33.ngo | Bin 0 -> 3352 bytes .../pll_in125_out125_out33.vhd | 77 + .../pll_in125_out125_out33_ngd.asd | 1 + .../syn_results/.recordref | 0 .../syn_results/_CMD_.CML | 1 + .../syn_results/_cmd._cml | 1 + .../backup/pll_in125_out125_out33.srr | 403 + .../syn_results/dm/layer0.xdm | 164 + .../pll_in125_out125_out33.areasrr | 15 + .../syn_results/pll_in125_out125_out33.fse | 0 .../syn_results/pll_in125_out125_out33.htm | 9 + .../syn_results/pll_in125_out125_out33.prj | 46 + .../syn_results/pll_in125_out125_out33.srd | Bin 0 -> 5523 bytes .../syn_results/pll_in125_out125_out33.srf | 404 + .../syn_results/pll_in125_out125_out33.srm | Bin 0 -> 5576 bytes .../syn_results/pll_in125_out125_out33.srr | 404 + .../syn_results/pll_in125_out125_out33.srr.db | Bin 0 -> 8192 bytes .../syn_results/pll_in125_out125_out33.srs | Bin 0 -> 4807 bytes .../syn_results/pll_in125_out125_out33.vhm | 108 + .../syn_results/pll_in125_out125_out33.vm | 115 + .../pll_in125_out125_out33_cck.rpt.db | Bin 0 -> 8192 bytes .../pll_in125_out125_out33_scck.rpt.db | Bin 0 -> 8192 bytes .../pll_in125_out125_out33_synplify.lpf | 20 + .../pll_in125_out125_out33_synplify_tmp2.lpf | 0 .../pll_in125_out125_out33_synplify_tmp4.lpf | 0 .../pll_in125_out125_out33_synplify_tmp8.lpf | 0 .../syn_results/run_options.txt | 75 + .../syn_results/scemi_cfg.txt | 3 + .../syn_results/scratchproject.prs | 73 + .../syn_results/synlog/layer0.tlg.rptmap | 1 + .../pll_in125_out125_out33_compiler.srr | 55 + .../pll_in125_out125_out33_compiler.srr.db | Bin 0 -> 8192 bytes ...pll_in125_out125_out33_compiler.srr.rptmap | 1 + .../pll_in125_out125_out33_fpga_mapper.srr | 265 + .../pll_in125_out125_out33_fpga_mapper.srr.db | Bin 0 -> 8192 bytes .../pll_in125_out125_out33_fpga_mapper.szr | Bin 0 -> 6132 bytes .../pll_in125_out125_out33_multi_srs_gen.srr | 12 + ...ll_in125_out125_out33_multi_srs_gen.srr.db | Bin 0 -> 8192 bytes .../synlog/pll_in125_out125_out33_premap.srr | 63 + .../pll_in125_out125_out33_premap.srr.db | Bin 0 -> 8192 bytes .../synlog/pll_in125_out125_out33_premap.szr | Bin 0 -> 2667 bytes .../syn_results/synlog/report/metrics.db | Bin 0 -> 20480 bytes .../pll_in125_out125_out33_compiler_notes.txt | 10 + ..._in125_out125_out33_compiler_runstatus.xml | 41 + ...l_in125_out125_out33_compiler_warnings.txt | 2 + ...5_out125_out33_fpga_mapper_area_report.xml | 26 + ..._in125_out125_out33_fpga_mapper_errors.txt | 0 ...l_in125_out125_out33_fpga_mapper_notes.txt | 8 + ...25_out125_out33_fpga_mapper_opt_report.xml | 14 + ...125_out125_out33_fpga_mapper_runstatus.xml | 46 + ...out125_out33_fpga_mapper_timing_report.xml | 23 + ...n125_out125_out33_fpga_mapper_warnings.txt | 1 + .../pll_in125_out125_out33_premap_errors.txt | 0 .../pll_in125_out125_out33_premap_notes.txt | 2 + ...ll_in125_out125_out33_premap_runstatus.xml | 46 + ...pll_in125_out125_out33_premap_warnings.txt | 0 .../synlog/syntax_constraint_check.rpt.rptmap | 1 + .../syn_results/syntmp/closed.png | Bin 0 -> 3672 bytes .../syn_results/syntmp/open.png | Bin 0 -> 452 bytes .../syntmp/pll_in125_out125_out33.plg | 8 + .../syntmp/pll_in125_out125_out33_srr.htm | 421 ++ .../syntmp/pll_in125_out125_out33_toc.htm | 45 + .../syn_results/syntmp/run_option.xml | 24 + .../syn_results/syntmp/statusReport.html | 112 + .../syn_results/synwork/.cckTransfer | Bin 0 -> 457 bytes .../syn_results/synwork/_mh_info | 1 + .../syn_results/synwork/layer0.fdep | 28 + .../syn_results/synwork/layer0.fdeporig | 24 + .../syn_results/synwork/layer0.srs | Bin 0 -> 6123 bytes .../syn_results/synwork/layer0.tlg | 9 + .../syn_results/synwork/layer0.tlg.db | Bin 0 -> 8192 bytes .../syn_results/synwork/modulechange.db | Bin 0 -> 28672 bytes .../synwork/pll_in125_out125_out33_comp.fdep | 21 + .../synwork/pll_in125_out125_out33_comp.srs | Bin 0 -> 5086 bytes .../synwork/pll_in125_out125_out33_m.srm | Bin 0 -> 5576 bytes .../pll_in125_out125_out33_m_srm/fileinfo.srm | Bin 0 -> 318 bytes .../synwork/pll_in125_out125_out33_mult.srs | Bin 0 -> 4807 bytes .../fileinfo.srs | Bin 0 -> 298 bytes .../skeleton.srs | Bin 0 -> 584 bytes .../synwork/pll_in125_out125_out33_prem.fse | 0 .../synwork/pll_in125_out125_out33_prem.srd | Bin 0 -> 4790 bytes gbe/cores/sgmii/sgmii.sbx | 3805 ++++++++++ gbe/cores/sgmii/sgmii.vhd | 336 + ...o_dcEEan163201024102410241818p12701671.ngo | Bin 0 -> 73162 bytes .../pmi_fifo_dcLEan1308881010p11aab620.ngo | Bin 0 -> 34665 bytes .../pmi_fifo_dcLEan1308881212p11aac711.ngo | Bin 0 -> 35528 bytes .../sgmii_channel_smi/sgmii_channel_smi.cmd | 23 + .../sgmii_channel_smi/sgmii_channel_smi.fdc | 3 + .../sgmii_channel_smi/sgmii_channel_smi.lpc | 37 + .../sgmii_channel_smi/sgmii_channel_smi.ngd | Bin 0 -> 1244034 bytes .../sgmii_channel_smi/sgmii_channel_smi.ngo | Bin 0 -> 194230 bytes .../sgmii_channel_smi/sgmii_channel_smi.v | 374 + .../sgmii_channel_smi/sgmii_channel_smi.vhd | 359 + .../sgmii_channel_smi/sgmii_channel_smi_bb.v | 156 + .../sgmii_channel_smi/sgmii_channel_smi_beh.v | 3984 ++++++++++ .../sgmii_channel_smi_core.ngo | Bin 0 -> 478069 bytes .../sgmii_channel_smi_core.v | 230 + .../sgmii_channel_smi_core_bb.v | 152 + .../sgmii_channel_smi_ngd.asd | 2 + .../sgmii_channel_smi/sgmii_channel_smi_pcs.v | 476 ++ .../sgmii_channel_smi_pcs_bb.v | 57 + .../sgmii/sgmii_channel_smi/sgmii_defines.v | 4 + .../pcs_serdes/sgmii_channel_smi_pcs.lpc | 97 + .../ecp5um/pcs_serdes/sgmii_channel_smi_pcs.v | 476 ++ .../sgmii_channel_smi_pcs_softlogic.v | 2003 +++++ .../models/ecp5um/pmi_fifo_dc/pmi_fifo_dc.v | 629 ++ .../sgmii_pcs_eval/readme.htm | 1314 ++++ .../sgmii_channel_smi_core_only_eval.ldf | 12 + .../sgmii_channel_smi_core_only_eval.lpf | 5 + .../sgmii_channel_smi_core_only_eval.sty | 8 + .../sgmii_channel_smi_reference_eval.ldf | 16 + .../sgmii_channel_smi_reference_eval.lpf | 9 + .../sgmii_channel_smi_reference_eval.sty | 8 + .../sgmii_channel_smi_reference_eval_se.do | 76 + .../src/rtl/template/ecp5um/rate_resolution.v | 66 + .../template/ecp5um/register_interface_hb.v | 1393 ++++ .../rtl/template/ecp5um/sgmii_channel_smi.v | 280 + .../src/rtl/top/ecp5um/top_hb.v | 404 + .../src/rtl/top/ecp5um/top_pcs_core_only.v | 203 + .../sgmii_pcs_eval/testbench/mii_monitor.v | 118 + .../sgmii_pcs_eval/testbench/port_monitor.v | 827 ++ .../testbench/port_parser_mii.v | 237 + .../sgmii_pcs_eval/testbench/sgmii_node.v | 302 + .../sgmii_pcs_eval/testbench/tb_hb.v | 924 +++ .../sgmii/sgmii_channel_smi/stdout.log.bak.1 | 75 + .../sgmii/sgmii_channel_smi/stdout.log.bak.2 | 75 + .../sgmii/sgmii_channel_smi/stdout.log.bak.3 | 75 + .../sgmii/sgmii_channel_smi/stdout.log.bak.4 | 75 + .../sgmii/sgmii_channel_smi/stdout.log.bak.5 | 75 + gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5.cmd | 18 + gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5.cst | 3 + gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5.fdc | 3 + gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5.lpc | 97 + gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5.ngd | Bin 0 -> 393974 bytes gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5.ngo | Bin 0 -> 203442 bytes gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5.vhd | 433 ++ gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5_ngd.asd | 1 + .../sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v | 2003 +++++ gbe/cores/sgmii/sgmii_ecp5/stdout.log.bak.1 | 75 + gbe/cores/sgmii/sgmii_ecp5/stdout.log.bak.2 | 75 + gbe/cores/sgmii/sgmii_ecp5/stdout.log.bak.3 | 76 + gbe/cores/sgmii/sgmii_ecp5/stdout.log.bak.4 | 75 + .../sgmii/sgmii_ecp5/syn_results/.recordref | 0 .../sgmii/sgmii_ecp5/syn_results/_CMD_.CML | 1 + .../sgmii/sgmii_ecp5/syn_results/_cmd._cml | 1 + .../syn_results/backup/sgmii_ecp5.srr | 1157 +++ .../sgmii_ecp5/syn_results/dm/layer0.xdm | 546 ++ .../sgmii_ecp5/syn_results/dm/layer1.xdm | 257 + .../sgmii_ecp5/syn_results/run_options.txt | 76 + .../sgmii_ecp5/syn_results/scemi_cfg.txt | 3 + .../sgmii_ecp5/syn_results/scratchproject.prs | 74 + .../sgmii_ecp5/syn_results/sgmii_ecp5.areasrr | 97 + .../sgmii_ecp5/syn_results/sgmii_ecp5.fse | 12 + .../sgmii_ecp5/syn_results/sgmii_ecp5.htm | 9 + .../sgmii_ecp5/syn_results/sgmii_ecp5.prj | 47 + .../sgmii_ecp5/syn_results/sgmii_ecp5.srd | Bin 0 -> 72824 bytes .../sgmii_ecp5/syn_results/sgmii_ecp5.srf | 1137 +++ .../sgmii_ecp5/syn_results/sgmii_ecp5.srm | Bin 0 -> 31307 bytes .../sgmii_ecp5/syn_results/sgmii_ecp5.srr | 1137 +++ .../sgmii_ecp5/syn_results/sgmii_ecp5.srr.db | Bin 0 -> 36864 bytes .../sgmii_ecp5/syn_results/sgmii_ecp5.srs | Bin 0 -> 27481 bytes .../sgmii_ecp5/syn_results/sgmii_ecp5.vhm | 6445 ++++++++++++++++ .../sgmii_ecp5/syn_results/sgmii_ecp5.vm | 6626 +++++++++++++++++ .../syn_results/sgmii_ecp5_cck.rpt.db | Bin 0 -> 8192 bytes .../syn_results/sgmii_ecp5_scck.rpt.db | Bin 0 -> 8192 bytes .../syn_results/sgmii_ecp5_synplify.lpf | 29 + .../syn_results/sgmii_ecp5_synplify_tmp2.lpf | 0 .../syn_results/sgmii_ecp5_synplify_tmp4.lpf | 0 .../syn_results/sgmii_ecp5_synplify_tmp8.lpf | 0 .../syn_results/synlog/layer0.tlg.rptmap | 1 + .../syn_results/synlog/layer1.tlg.rptmap | 1 + .../syn_results/synlog/linker.rpt.rptmap | 1 + .../syn_results/synlog/report/metrics.db | Bin 0 -> 20480 bytes .../report/sgmii_ecp5_compiler_notes.txt | 16 + .../report/sgmii_ecp5_compiler_runstatus.xml | 41 + .../report/sgmii_ecp5_compiler_warnings.txt | 77 + .../sgmii_ecp5_fpga_mapper_area_report.xml | 26 + .../report/sgmii_ecp5_fpga_mapper_errors.txt | 0 .../report/sgmii_ecp5_fpga_mapper_notes.txt | 22 + .../sgmii_ecp5_fpga_mapper_opt_report.xml | 14 + .../sgmii_ecp5_fpga_mapper_runstatus.xml | 46 + .../sgmii_ecp5_fpga_mapper_timing_report.xml | 41 + .../sgmii_ecp5_fpga_mapper_warnings.txt | 4 + .../report/sgmii_ecp5_premap_errors.txt | 0 .../synlog/report/sgmii_ecp5_premap_notes.txt | 9 + .../report/sgmii_ecp5_premap_runstatus.xml | 46 + .../report/sgmii_ecp5_premap_warnings.txt | 3 + .../synlog/sgmii_ecp5_compiler.srr | 357 + .../synlog/sgmii_ecp5_compiler.srr.db | Bin 0 -> 28672 bytes .../synlog/sgmii_ecp5_compiler.srr.rptmap | 1 + .../synlog/sgmii_ecp5_fpga_mapper.srr | 673 ++ .../synlog/sgmii_ecp5_fpga_mapper.srr.db | Bin 0 -> 16384 bytes .../synlog/sgmii_ecp5_fpga_mapper.szr | Bin 0 -> 12878 bytes .../synlog/sgmii_ecp5_fpga_mapper.xck | 3 + .../synlog/sgmii_ecp5_multi_srs_gen.srr | 12 + .../synlog/sgmii_ecp5_multi_srs_gen.srr.db | Bin 0 -> 8192 bytes .../syn_results/synlog/sgmii_ecp5_premap.srr | 86 + .../synlog/sgmii_ecp5_premap.srr.db | Bin 0 -> 8192 bytes .../syn_results/synlog/sgmii_ecp5_premap.szr | Bin 0 -> 3942 bytes .../synlog/syntax_constraint_check.rpt.rptmap | 1 + .../sgmii_ecp5/syn_results/syntmp/closed.png | Bin 0 -> 3672 bytes .../sgmii_ecp5/syn_results/syntmp/open.png | Bin 0 -> 452 bytes .../syn_results/syntmp/run_option.xml | 24 + .../syn_results/syntmp/sgmii_ecp5.plg | 28 + .../syn_results/syntmp/sgmii_ecp5_srr.htm | 1157 +++ .../syn_results/syntmp/sgmii_ecp5_toc.htm | 60 + .../syn_results/syntmp/statusReport.html | 115 + .../syn_results/synwork/.cckTransfer | Bin 0 -> 456 bytes .../sgmii_ecp5/syn_results/synwork/_mh_info | 2 + .../syn_results/synwork/_verilog_hintfile | 69 + .../syn_results/synwork/layer0.fdep | 33 + .../syn_results/synwork/layer0.fdeporig | 29 + .../sgmii_ecp5/syn_results/synwork/layer0.srs | Bin 0 -> 50502 bytes .../sgmii_ecp5/syn_results/synwork/layer0.tlg | 2 + .../syn_results/synwork/layer0.tlg.db | Bin 0 -> 8192 bytes .../syn_results/synwork/layer1.fdep | 22 + .../syn_results/synwork/layer1.fdepxmr | 1 + .../syn_results/synwork/layer1.info | 2 + .../sgmii_ecp5/syn_results/synwork/layer1.srs | Bin 0 -> 21453 bytes .../sgmii_ecp5/syn_results/synwork/layer1.tlg | 252 + .../syn_results/synwork/layer1.tlg.db | Bin 0 -> 28672 bytes .../syn_results/synwork/modulechange.db | Bin 0 -> 28672 bytes .../layer0/modulechange.db | Bin 0 -> 20480 bytes .../layer1/modulechange.db | Bin 0 -> 20480 bytes .../syn_results/synwork/sgmii_ecp5_comp.fdep | 37 + .../synwork/sgmii_ecp5_comp.linkerlog | 0 .../syn_results/synwork/sgmii_ecp5_comp.srs | Bin 0 -> 46434 bytes .../syn_results/synwork/sgmii_ecp5_m.srm | Bin 0 -> 31307 bytes .../synwork/sgmii_ecp5_m_srm/1.srm | Bin 0 -> 68623 bytes .../synwork/sgmii_ecp5_m_srm/fileinfo.srm | Bin 0 -> 409 bytes .../syn_results/synwork/sgmii_ecp5_mult.srs | Bin 0 -> 27481 bytes .../synwork/sgmii_ecp5_mult_srs/1.srs | Bin 0 -> 13841 bytes .../synwork/sgmii_ecp5_mult_srs/fileinfo.srs | Bin 0 -> 389 bytes .../synwork/sgmii_ecp5_mult_srs/skeleton.srs | Bin 0 -> 6089 bytes .../syn_results/synwork/sgmii_ecp5_prem.fse | 12 + .../syn_results/synwork/sgmii_ecp5_prem.srd | Bin 0 -> 55856 bytes gbe/cores/sgmii/sgmii_tmpl.v | 6 + ..._ram_dpEbnonessdn208256208256p138702ef.ngo | Bin 0 -> 11424 bytes .../pmi_ram_dpEbnonessdn96649664p13506f63.ngo | Bin 0 -> 8956 bytes .../tsmac/ts_mac_eval/models/ecp5um/JTAGG.v | 8 + .../ts_mac_eval/models/ecp5um/JTAG_ECP5UM.v | 219 + .../ts_mac_eval/models/ecp5um/rxmac_clk_pll.v | 87 + .../ts_mac_eval/models/ecp5um/txmac_clk_pll.v | 87 + gbe/cores/sgmii/tsmac/ts_mac_eval/readme.htm | 1355 ++++ .../ts_mac_eval/testbench/tests/testcase.v | 121 + .../ts_mac_eval/testbench/top/env_params.v | 34 + .../ts_mac_eval/testbench/top/orcastra_drv.v | 210 + .../tsmac/ts_mac_eval/testbench/top/pkt_mon.v | 624 ++ .../ts_mac_eval/testbench/top/rdwr_task.v | 50 + .../ts_mac_eval/testbench/top/rx_gen_tasks.v | 853 +++ .../ts_mac_eval/testbench/top/test_ts_mac.v | 328 + .../testbench/top/test_tsmac_params.v | 118 + .../tsmac/impl/synplify/ts_mac_defines.v | 2 + .../impl/synplify/tsmac_core_only_eval.ldf | 12 + .../impl/synplify/tsmac_core_only_eval.lpf | 29 + .../synplify/tsmac_core_only_eval_setting.sty | 10 + .../impl/synplify/tsmac_reference_eval.ldf | 25 + .../impl/synplify/tsmac_reference_eval.lpf | 71 + .../synplify/tsmac_reference_eval_setting.sty | 8 + .../tsmac/sim/modelsim/tsmac_eval_se.do | 27 + .../sim/modelsim/tsmac_eval_timing_synp_se.do | 29 + .../ts_mac_eval/tsmac/sim/modelsim/wave.do | 79 + .../tsmac/sim/modelsim/wave_sdf.do | 32 + .../tsmac/src/params/ts_mac_defines.v | 2 + .../tsmac/src/rtl/template/fifo_2048x9.v | 345 + .../tsmac/src/rtl/template/fifo_512_ctl.v | 373 + .../tsmac/src/rtl/template/oddrx_soft.v | 56 + .../tsmac/src/rtl/template/orcastra.v | 424 ++ .../tsmac/src/rtl/template/reg_intf.v | 1790 +++++ .../tsmac/src/rtl/template/rx_loopbk.v | 300 + .../tsmac/src/rtl/template/tst_logic.v | 295 + .../tsmac/src/rtl/top/ts_mac_core_only_top.v | 216 + .../src/rtl/top/ts_mac_core_only_top.vhd | 201 + .../tsmac/src/rtl/top/ts_mac_top.v | 544 ++ gbe/cores/sgmii/tsmac/tsmac.fdc | 2 + gbe/cores/sgmii/tsmac/tsmac.lpc | 37 + gbe/cores/sgmii/tsmac/tsmac.ngd | Bin 0 -> 1743567 bytes gbe/cores/sgmii/tsmac/tsmac.ngo | Bin 0 -> 952095 bytes gbe/cores/sgmii/tsmac/tsmac.v | 212 + gbe/cores/sgmii/tsmac/tsmac_bb.v | 145 + gbe/cores/sgmii/tsmac/tsmac_beh.v | 6022 +++++++++++++++ gbe/cores/sgmii/tsmac/tsmac_inst.v | 77 + gbe/cores/sgmii/tsmac/tsmac_ngd.asd | 2 + .../test_gbepcs/sgmii_ecp5/sgmii_ecp5.cmd | 18 + .../test_gbepcs/sgmii_ecp5/sgmii_ecp5.fdc | 2 + .../test_gbepcs/sgmii_ecp5/sgmii_ecp5.lpc | 97 + .../test_gbepcs/sgmii_ecp5/sgmii_ecp5.ngd | Bin 0 -> 393359 bytes .../test_gbepcs/sgmii_ecp5/sgmii_ecp5.ngo | Bin 0 -> 203074 bytes .../test_gbepcs/sgmii_ecp5/sgmii_ecp5.vhd | 433 ++ .../test_gbepcs/sgmii_ecp5/sgmii_ecp5_ngd.asd | 1 + .../sgmii_ecp5/sgmii_ecp5_softlogic.v | 2003 +++++ .../sgmii_ecp5/syn_results/.recordref | 0 .../sgmii_ecp5/syn_results/_CMD_.CML | 1 + .../sgmii_ecp5/syn_results/_cmd._cml | 1 + .../sgmii_ecp5/syn_results/dm/layer0.xdm | 551 ++ .../sgmii_ecp5/syn_results/dm/layer1.xdm | 256 + .../sgmii_ecp5/syn_results/run_options.txt | 76 + .../sgmii_ecp5/syn_results/scemi_cfg.txt | 3 + .../sgmii_ecp5/syn_results/scratchproject.prs | 74 + .../sgmii_ecp5/syn_results/sgmii_ecp5.areasrr | 97 + .../sgmii_ecp5/syn_results/sgmii_ecp5.fse | 12 + .../sgmii_ecp5/syn_results/sgmii_ecp5.htm | 9 + .../sgmii_ecp5/syn_results/sgmii_ecp5.prj | 47 + .../sgmii_ecp5/syn_results/sgmii_ecp5.srd | Bin 0 -> 73001 bytes .../sgmii_ecp5/syn_results/sgmii_ecp5.srf | 1144 +++ .../sgmii_ecp5/syn_results/sgmii_ecp5.srm | Bin 0 -> 31347 bytes .../sgmii_ecp5/syn_results/sgmii_ecp5.srr | 1144 +++ .../sgmii_ecp5/syn_results/sgmii_ecp5.srr.db | Bin 0 -> 40960 bytes .../sgmii_ecp5/syn_results/sgmii_ecp5.srs | Bin 0 -> 27462 bytes .../sgmii_ecp5/syn_results/sgmii_ecp5.vhm | 6434 ++++++++++++++++ .../sgmii_ecp5/syn_results/sgmii_ecp5.vm | 6617 ++++++++++++++++ .../syn_results/sgmii_ecp5_cck.rpt.db | Bin 0 -> 8192 bytes .../syn_results/sgmii_ecp5_scck.rpt.db | Bin 0 -> 8192 bytes .../syn_results/sgmii_ecp5_synplify.lpf | 29 + .../syn_results/sgmii_ecp5_synplify_tmp2.lpf | 0 .../syn_results/sgmii_ecp5_synplify_tmp4.lpf | 0 .../syn_results/sgmii_ecp5_synplify_tmp8.lpf | 0 .../syn_results/synlog/layer0.tlg.rptmap | 1 + .../syn_results/synlog/layer1.tlg.rptmap | 1 + .../syn_results/synlog/linker.rpt.rptmap | 1 + .../syn_results/synlog/report/metrics.db | Bin 0 -> 20480 bytes .../report/sgmii_ecp5_compiler_notes.txt | 16 + .../report/sgmii_ecp5_compiler_runstatus.xml | 41 + .../report/sgmii_ecp5_compiler_warnings.txt | 78 + .../sgmii_ecp5_fpga_mapper_area_report.xml | 26 + .../report/sgmii_ecp5_fpga_mapper_errors.txt | 0 .../report/sgmii_ecp5_fpga_mapper_notes.txt | 22 + .../sgmii_ecp5_fpga_mapper_opt_report.xml | 14 + .../sgmii_ecp5_fpga_mapper_runstatus.xml | 46 + .../sgmii_ecp5_fpga_mapper_timing_report.xml | 41 + .../sgmii_ecp5_fpga_mapper_warnings.txt | 4 + .../report/sgmii_ecp5_premap_errors.txt | 0 .../synlog/report/sgmii_ecp5_premap_notes.txt | 9 + .../report/sgmii_ecp5_premap_runstatus.xml | 46 + .../report/sgmii_ecp5_premap_warnings.txt | 3 + .../synlog/sgmii_ecp5_compiler.srr | 352 + .../synlog/sgmii_ecp5_compiler.srr.db | Bin 0 -> 32768 bytes .../synlog/sgmii_ecp5_compiler.srr.rptmap | 1 + .../synlog/sgmii_ecp5_fpga_mapper.srr | 682 ++ .../synlog/sgmii_ecp5_fpga_mapper.srr.db | Bin 0 -> 16384 bytes .../synlog/sgmii_ecp5_fpga_mapper.szr | Bin 0 -> 13092 bytes .../synlog/sgmii_ecp5_fpga_mapper.xck | 3 + .../synlog/sgmii_ecp5_multi_srs_gen.srr | 11 + .../synlog/sgmii_ecp5_multi_srs_gen.srr.db | Bin 0 -> 8192 bytes .../syn_results/synlog/sgmii_ecp5_premap.srr | 86 + .../synlog/sgmii_ecp5_premap.srr.db | Bin 0 -> 8192 bytes .../syn_results/synlog/sgmii_ecp5_premap.szr | Bin 0 -> 3835 bytes .../synlog/syntax_constraint_check.rpt.rptmap | 1 + .../sgmii_ecp5/syn_results/syntmp/closed.png | Bin 0 -> 3672 bytes .../sgmii_ecp5/syn_results/syntmp/open.png | Bin 0 -> 452 bytes .../syn_results/syntmp/run_option.xml | 24 + .../syn_results/syntmp/sgmii_ecp5.plg | 28 + .../syn_results/syntmp/sgmii_ecp5_srr.htm | 1172 +++ .../syn_results/syntmp/sgmii_ecp5_toc.htm | 60 + .../syn_results/syntmp/statusReport.html | 115 + .../syn_results/synwork/.cckTransfer | Bin 0 -> 457 bytes .../sgmii_ecp5/syn_results/synwork/_mh_info | 2 + .../syn_results/synwork/_verilog_hintfile | 69 + .../syn_results/synwork/layer0.fdep | 33 + .../syn_results/synwork/layer0.fdeporig | 29 + .../sgmii_ecp5/syn_results/synwork/layer0.srs | Bin 0 -> 50539 bytes .../sgmii_ecp5/syn_results/synwork/layer0.tlg | 2 + .../syn_results/synwork/layer0.tlg.db | Bin 0 -> 8192 bytes .../syn_results/synwork/layer1.fdep | 22 + .../syn_results/synwork/layer1.fdepxmr | 1 + .../syn_results/synwork/layer1.info | 2 + .../sgmii_ecp5/syn_results/synwork/layer1.srs | Bin 0 -> 21541 bytes .../sgmii_ecp5/syn_results/synwork/layer1.tlg | 253 + .../syn_results/synwork/layer1.tlg.db | Bin 0 -> 28672 bytes .../syn_results/synwork/modulechange.db | Bin 0 -> 28672 bytes .../layer0/modulechange.db | Bin 0 -> 20480 bytes .../layer1/modulechange.db | Bin 0 -> 20480 bytes .../syn_results/synwork/sgmii_ecp5_comp.fdep | 37 + .../synwork/sgmii_ecp5_comp.linkerlog | 0 .../syn_results/synwork/sgmii_ecp5_comp.srs | Bin 0 -> 46529 bytes .../syn_results/synwork/sgmii_ecp5_m.srm | Bin 0 -> 31347 bytes .../synwork/sgmii_ecp5_m_srm/1.srm | Bin 0 -> 67834 bytes .../synwork/sgmii_ecp5_m_srm/fileinfo.srm | Bin 0 -> 418 bytes .../syn_results/synwork/sgmii_ecp5_mult.srs | Bin 0 -> 27462 bytes .../synwork/sgmii_ecp5_mult_srs/1.srs | Bin 0 -> 13842 bytes .../synwork/sgmii_ecp5_mult_srs/fileinfo.srs | Bin 0 -> 395 bytes .../synwork/sgmii_ecp5_mult_srs/skeleton.srs | Bin 0 -> 6084 bytes .../syn_results/synwork/sgmii_ecp5_prem.fse | 12 + .../syn_results/synwork/sgmii_ecp5_prem.srd | Bin 0 -> 55819 bytes gbe/cores/test_gbepcs/test_gbepcs.sbx | 2171 ++++++ gbe/cores/test_gbepcs/test_gbepcs.vhd | 167 + gbe/cores/test_gbepcs/test_gbepcs_tmpl.v | 19 + .../test_sfp/serdes_sync_0/serdes_sync_0.sbx | 2096 ++++++ .../test_sfp/serdes_sync_0/serdes_sync_0.vhd | 161 + .../serdes_sync_0/serdes_sync_0_tmpl.v | 19 + .../serdes_sync_1/serdes_sync_0.lpc | 97 + .../serdes_sync_1/serdes_sync_1.cmd | 18 + .../serdes_sync_1/serdes_sync_1.cst | 3 + .../serdes_sync_1/serdes_sync_1.fdc | 3 + .../serdes_sync_1/serdes_sync_1.lpc | 97 + .../serdes_sync_1/serdes_sync_1.ngd | Bin 0 -> 390123 bytes .../serdes_sync_1/serdes_sync_1.ngo | Bin 0 -> 202007 bytes .../serdes_sync_1/serdes_sync_1.vhd | 436 ++ .../serdes_sync_1/serdes_sync_1_ngd.asd | 1 + .../serdes_sync_1/serdes_sync_1_softlogic.v | 2003 +++++ .../serdes_sync_1/syn_results/.recordref | 0 .../serdes_sync_1/syn_results/_CMD_.CML | 1 + .../serdes_sync_1/syn_results/_cmd._cml | 1 + .../syn_results/backup/serdes_sync_1.srr | 1145 +++ .../serdes_sync_1/syn_results/dm/layer0.xdm | 542 ++ .../serdes_sync_1/syn_results/dm/layer1.xdm | 253 + .../serdes_sync_1/syn_results/run_options.txt | 76 + .../serdes_sync_1/syn_results/scemi_cfg.txt | 3 + .../syn_results/scratchproject.prs | 74 + .../syn_results/serdes_sync_1.areasrr | 97 + .../syn_results/serdes_sync_1.fse | 10 + .../syn_results/serdes_sync_1.htm | 9 + .../syn_results/serdes_sync_1.prj | 47 + .../syn_results/serdes_sync_1.srd | Bin 0 -> 72782 bytes .../syn_results/serdes_sync_1.srf | 1147 +++ .../syn_results/serdes_sync_1.srm | Bin 0 -> 31292 bytes .../syn_results/serdes_sync_1.srr | 1147 +++ .../syn_results/serdes_sync_1.srr.db | Bin 0 -> 40960 bytes .../syn_results/serdes_sync_1.srs | Bin 0 -> 27459 bytes .../syn_results/serdes_sync_1.vhm | 6398 ++++++++++++++++ .../syn_results/serdes_sync_1.vm | 6580 ++++++++++++++++ .../syn_results/serdes_sync_1_cck.rpt.db | Bin 0 -> 8192 bytes .../syn_results/serdes_sync_1_scck.rpt.db | Bin 0 -> 8192 bytes .../syn_results/serdes_sync_1_synplify.lpf | 29 + .../serdes_sync_1_synplify_tmp2.lpf | 0 .../serdes_sync_1_synplify_tmp4.lpf | 0 .../serdes_sync_1_synplify_tmp8.lpf | 0 .../syn_results/synlog/layer0.tlg.rptmap | 1 + .../syn_results/synlog/layer1.tlg.rptmap | 1 + .../syn_results/synlog/linker.rpt.rptmap | 1 + .../syn_results/synlog/report/metrics.db | Bin 0 -> 20480 bytes .../report/serdes_sync_1_compiler_notes.txt | 16 + .../serdes_sync_1_compiler_runstatus.xml | 41 + .../serdes_sync_1_compiler_warnings.txt | 78 + .../serdes_sync_1_fpga_mapper_area_report.xml | 26 + .../serdes_sync_1_fpga_mapper_errors.txt | 0 .../serdes_sync_1_fpga_mapper_notes.txt | 23 + .../serdes_sync_1_fpga_mapper_opt_report.xml | 14 + .../serdes_sync_1_fpga_mapper_runstatus.xml | 46 + ...erdes_sync_1_fpga_mapper_timing_report.xml | 41 + .../serdes_sync_1_fpga_mapper_warnings.txt | 4 + .../report/serdes_sync_1_premap_errors.txt | 0 .../report/serdes_sync_1_premap_notes.txt | 8 + .../report/serdes_sync_1_premap_runstatus.xml | 46 + .../report/serdes_sync_1_premap_warnings.txt | 3 + .../synlog/serdes_sync_1_compiler.srr | 357 + .../synlog/serdes_sync_1_compiler.srr.db | Bin 0 -> 32768 bytes .../synlog/serdes_sync_1_compiler.srr.rptmap | 1 + .../synlog/serdes_sync_1_fpga_mapper.srr | 685 ++ .../synlog/serdes_sync_1_fpga_mapper.srr.db | Bin 0 -> 16384 bytes .../synlog/serdes_sync_1_fpga_mapper.szr | Bin 0 -> 12971 bytes .../synlog/serdes_sync_1_fpga_mapper.xck | 3 + .../synlog/serdes_sync_1_multi_srs_gen.srr | 12 + .../synlog/serdes_sync_1_multi_srs_gen.srr.db | Bin 0 -> 8192 bytes .../synlog/serdes_sync_1_premap.srr | 84 + .../synlog/serdes_sync_1_premap.srr.db | Bin 0 -> 8192 bytes .../synlog/serdes_sync_1_premap.szr | Bin 0 -> 3615 bytes .../synlog/syntax_constraint_check.rpt.rptmap | 1 + .../syn_results/syntmp/closed.png | Bin 0 -> 3672 bytes .../serdes_sync_1/syn_results/syntmp/open.png | Bin 0 -> 452 bytes .../syn_results/syntmp/run_option.xml | 24 + .../syn_results/syntmp/serdes_sync_1.plg | 28 + .../syn_results/syntmp/serdes_sync_1_srr.htm | 1167 +++ .../syn_results/syntmp/serdes_sync_1_toc.htm | 60 + .../syn_results/syntmp/statusReport.html | 115 + .../syn_results/synwork/.cckTransfer | Bin 0 -> 457 bytes .../syn_results/synwork/_mh_info | 2 + .../syn_results/synwork/_verilog_hintfile | 65 + .../syn_results/synwork/layer0.fdep | 33 + .../syn_results/synwork/layer0.fdeporig | 29 + .../syn_results/synwork/layer0.srs | Bin 0 -> 50402 bytes .../syn_results/synwork/layer0.tlg | 2 + .../syn_results/synwork/layer0.tlg.db | Bin 0 -> 8192 bytes .../syn_results/synwork/layer1.fdep | 22 + .../syn_results/synwork/layer1.fdepxmr | 1 + .../syn_results/synwork/layer1.info | 2 + .../syn_results/synwork/layer1.srs | Bin 0 -> 20214 bytes .../syn_results/synwork/layer1.tlg | 252 + .../syn_results/synwork/layer1.tlg.db | Bin 0 -> 32768 bytes .../syn_results/synwork/modulechange.db | Bin 0 -> 28672 bytes .../layer0/modulechange.db | Bin 0 -> 20480 bytes .../layer1/modulechange.db | Bin 0 -> 20480 bytes .../synwork/serdes_sync_1_comp.fdep | 37 + .../synwork/serdes_sync_1_comp.linkerlog | 0 .../synwork/serdes_sync_1_comp.srs | Bin 0 -> 45239 bytes .../syn_results/synwork/serdes_sync_1_m.srm | Bin 0 -> 31292 bytes .../synwork/serdes_sync_1_m_srm/1.srm | Bin 0 -> 68313 bytes .../synwork/serdes_sync_1_m_srm/fileinfo.srm | Bin 0 -> 416 bytes .../synwork/serdes_sync_1_mult.srs | Bin 0 -> 27459 bytes .../synwork/serdes_sync_1_mult_srs/1.srs | Bin 0 -> 12821 bytes .../serdes_sync_1_mult_srs/fileinfo.srs | Bin 0 -> 396 bytes .../serdes_sync_1_mult_srs/skeleton.srs | Bin 0 -> 6034 bytes .../synwork/serdes_sync_1_prem.fse | 10 + .../synwork/serdes_sync_1_prem.srd | Bin 0 -> 54743 bytes gbe/trb5sc_gbe.prj | 18 +- 881 files changed, 157393 insertions(+), 9 deletions(-) create mode 100644 gbe/cores/GbePcsExtrefclk/GbePcsExtrefclk.sbx create mode 100644 gbe/cores/GbePcsExtrefclk/GbePcsExtrefclk.vhd create mode 100644 gbe/cores/GbePcsExtrefclk/GbePcsExtrefclk_tmpl.v create mode 100644 gbe/cores/GbePcsExtrefclk/extref/extref.cmd create mode 100644 gbe/cores/GbePcsExtrefclk/extref/extref.fdc create mode 100644 gbe/cores/GbePcsExtrefclk/extref/extref.lpc create mode 100644 gbe/cores/GbePcsExtrefclk/extref/extref.ngd create mode 100644 gbe/cores/GbePcsExtrefclk/extref/extref.ngo create mode 100644 gbe/cores/GbePcsExtrefclk/extref/extref.vhd create mode 100644 gbe/cores/GbePcsExtrefclk/extref/extref_ngd.asd create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/.recordref create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/_CMD_.CML create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/_cmd._cml create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/dm/layer0.xdm create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.areasrr create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.fse create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.htm create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.prj create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.srd create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.srf create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.srm create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.srr create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.srr.db create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.srs create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.vhm create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.vm create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/extref_cck.rpt.db create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/extref_scck.rpt.db create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/extref_synplify.lpf create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/extref_synplify_tmp2.lpf create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/extref_synplify_tmp4.lpf create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/extref_synplify_tmp8.lpf create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/run_options.txt create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/scemi_cfg.txt create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/scratchproject.prs create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/extref_compiler.srr create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/extref_compiler.srr.db create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/extref_compiler.srr.rptmap create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/extref_fpga_mapper.srr create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/extref_fpga_mapper.srr.db create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/extref_fpga_mapper.szr create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/extref_multi_srs_gen.srr create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/extref_multi_srs_gen.srr.db create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/extref_premap.srr create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/extref_premap.srr.db create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/extref_premap.szr create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/layer0.tlg.rptmap create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_compiler_notes.txt create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_compiler_runstatus.xml create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_fpga_mapper_area_report.xml create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_fpga_mapper_errors.txt create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_fpga_mapper_notes.txt create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_fpga_mapper_opt_report.xml create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_fpga_mapper_runstatus.xml create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_fpga_mapper_timing_report.xml create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_fpga_mapper_warnings.txt create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_premap_errors.txt create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_premap_notes.txt create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_premap_runstatus.xml create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_premap_warnings.txt create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/metrics.db create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/syntax_constraint_check.rpt.rptmap create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/syntmp/closed.png create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/syntmp/extref.plg create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/syntmp/extref_srr.htm create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/syntmp/extref_toc.htm create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/syntmp/open.png create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/syntmp/run_option.xml create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/syntmp/statusReport.html create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/.cckTransfer create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/_mh_info create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/extref_comp.fdep create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/extref_comp.srs create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/extref_m.srm create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/extref_m_srm/fileinfo.srm create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/extref_mult.srs create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/extref_mult_srs/fileinfo.srs create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/extref_mult_srs/skeleton.srs create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/extref_prem.fse create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/extref_prem.srd create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/layer0.fdep create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/layer0.fdeporig create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/layer0.srs create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/layer0.tlg create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/layer0.tlg.db create mode 100644 gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/modulechange.db create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.cmd create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.cst create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.fdc create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.lpc create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.ngd create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.ngo create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.vhd create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_ngd.asd create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/.recordref create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/_CMD_.CML create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/_cmd._cml create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/dm/layer0.xdm create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/dm/layer1.xdm create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/run_options.txt create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/scemi_cfg.txt create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/scratchproject.prs create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.areasrr create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.fse create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.htm create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.prj create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.srd create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.srf create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.srm create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.srr create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.srr.db create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.srs create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.vhm create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.vm create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5_cck.rpt.db create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5_scck.rpt.db create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5_synplify.lpf create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5_synplify_tmp2.lpf create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5_synplify_tmp4.lpf create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5_synplify_tmp8.lpf create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/layer0.tlg.rptmap create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/layer1.tlg.rptmap create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/linker.rpt.rptmap create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/metrics.db create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_notes.txt create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_runstatus.xml create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_warnings.txt create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_area_report.xml create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_errors.txt create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_notes.txt create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_opt_report.xml create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_runstatus.xml create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_timing_report.xml create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_warnings.txt create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_errors.txt create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_notes.txt create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_runstatus.xml create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_warnings.txt create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_compiler.srr create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_compiler.srr.db create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_compiler.srr.rptmap create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.srr create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.srr.db create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.szr create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.xck create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_multi_srs_gen.srr create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_multi_srs_gen.srr.db create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_premap.srr create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_premap.srr.db create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_premap.szr create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/syntax_constraint_check.rpt.rptmap create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/syntmp/closed.png create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/syntmp/open.png create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/syntmp/run_option.xml create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/syntmp/sgmii_ecp5.plg create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/syntmp/sgmii_ecp5_srr.htm create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/syntmp/sgmii_ecp5_toc.htm create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/syntmp/statusReport.html create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/.cckTransfer create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/_mh_info create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/_verilog_hintfile create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/layer0.fdep create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/layer0.fdeporig create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/layer0.srs create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/layer0.tlg create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/layer0.tlg.db create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/layer1.fdep create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/layer1.fdepxmr create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/layer1.info create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/layer1.srs create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/layer1.tlg create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/layer1.tlg.db create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/modulechange.db create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/modulechange_mixhdl/layer0/modulechange.db create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/modulechange_mixhdl/layer1/modulechange.db create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.fdep create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.linkerlog create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.srs create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_m.srm create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_m_srm/1.srm create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_m_srm/fileinfo.srm create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_mult.srs create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_mult_srs/1.srs create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_mult_srs/fileinfo.srs create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_mult_srs/skeleton.srs create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_prem.fse create mode 100644 gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_prem.srd create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.cmd create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.cst create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.fdc create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.lpc create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.ngd create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.ngo create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.vhd create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/pll_200_125_100_ngd.asd create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/pll_240_100.lpc create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/.recordref create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/_CMD_.CML create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/_cmd._cml create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/dm/layer0.xdm create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.areasrr create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.fse create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.htm create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.prj create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.srd create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.srf create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.srm create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.srr create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.srr.db create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.srs create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.vhm create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.vm create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100_cck.rpt.db create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100_scck.rpt.db create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100_synplify.lpf create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100_synplify_tmp2.lpf create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100_synplify_tmp4.lpf create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100_synplify_tmp8.lpf create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/run_options.txt create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/scemi_cfg.txt create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/scratchproject.prs create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/layer0.tlg.rptmap create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_compiler.srr create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_compiler.srr.db create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_compiler.srr.rptmap create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_fpga_mapper.srr create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_fpga_mapper.srr.db create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_fpga_mapper.szr create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_multi_srs_gen.srr create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_multi_srs_gen.srr.db create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_premap.srr create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_premap.srr.db create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_premap.szr create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/metrics.db create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_compiler_notes.txt create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_compiler_runstatus.xml create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_compiler_warnings.txt create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_fpga_mapper_area_report.xml create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_fpga_mapper_errors.txt create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_fpga_mapper_notes.txt create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_fpga_mapper_opt_report.xml create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_fpga_mapper_runstatus.xml create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_fpga_mapper_timing_report.xml create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_fpga_mapper_warnings.txt create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_premap_errors.txt create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_premap_notes.txt create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_premap_runstatus.xml create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_premap_warnings.txt create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/syntax_constraint_check.rpt.rptmap create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/syntmp/closed.png create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/syntmp/open.png create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/syntmp/pll_200_125_100.plg create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/syntmp/pll_200_125_100_srr.htm create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/syntmp/pll_200_125_100_toc.htm create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/syntmp/run_option.xml create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/syntmp/statusReport.html create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/.cckTransfer create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/_mh_info create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/layer0.fdep create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/layer0.fdeporig create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/layer0.srs create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/layer0.tlg create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/layer0.tlg.db create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/modulechange.db create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/pll_200_125_100_comp.fdep create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/pll_200_125_100_comp.srs create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/pll_200_125_100_m.srm create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/pll_200_125_100_m_srm/fileinfo.srm create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/pll_200_125_100_mult.srs create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/pll_200_125_100_mult_srs/fileinfo.srs create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/pll_200_125_100_mult_srs/skeleton.srs create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/pll_200_125_100_prem.fse create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/pll_200_125_100_prem.srd create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_200_125_100.sbx create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_200_125_100.vhd create mode 100644 gbe/cores/pll_200_200_125_100/pll_200_200_125_100_tmpl.v create mode 100644 gbe/cores/sgmii/PCSD/PCSD.cmd create mode 100644 gbe/cores/sgmii/PCSD/PCSD.cst create mode 100644 gbe/cores/sgmii/PCSD/PCSD.fdc create mode 100644 gbe/cores/sgmii/PCSD/PCSD.lpc create mode 100644 gbe/cores/sgmii/PCSD/PCSD.ngd create mode 100644 gbe/cores/sgmii/PCSD/PCSD.ngo create mode 100644 gbe/cores/sgmii/PCSD/PCSD.vhd create mode 100644 gbe/cores/sgmii/PCSD/PCSD_ngd.asd create mode 100644 gbe/cores/sgmii/PCSD/PCSD_softlogic.v create mode 100644 gbe/cores/sgmii/PCSD/stdout.log.bak.1 create mode 100644 gbe/cores/sgmii/PCSD/syn_results/.recordref create mode 100644 gbe/cores/sgmii/PCSD/syn_results/PCSD.areasrr create mode 100644 gbe/cores/sgmii/PCSD/syn_results/PCSD.fse create mode 100644 gbe/cores/sgmii/PCSD/syn_results/PCSD.htm create mode 100644 gbe/cores/sgmii/PCSD/syn_results/PCSD.prj create mode 100644 gbe/cores/sgmii/PCSD/syn_results/PCSD.srd create mode 100644 gbe/cores/sgmii/PCSD/syn_results/PCSD.srf create mode 100644 gbe/cores/sgmii/PCSD/syn_results/PCSD.srm create mode 100644 gbe/cores/sgmii/PCSD/syn_results/PCSD.srr create mode 100644 gbe/cores/sgmii/PCSD/syn_results/PCSD.srr.db create mode 100644 gbe/cores/sgmii/PCSD/syn_results/PCSD.srs create mode 100644 gbe/cores/sgmii/PCSD/syn_results/PCSD.vhm create mode 100644 gbe/cores/sgmii/PCSD/syn_results/PCSD.vm create mode 100644 gbe/cores/sgmii/PCSD/syn_results/PCSD_cck.rpt.db create mode 100644 gbe/cores/sgmii/PCSD/syn_results/PCSD_scck.rpt.db create mode 100644 gbe/cores/sgmii/PCSD/syn_results/PCSD_synplify.lpf create mode 100644 gbe/cores/sgmii/PCSD/syn_results/PCSD_synplify_tmp2.lpf create mode 100644 gbe/cores/sgmii/PCSD/syn_results/PCSD_synplify_tmp4.lpf create mode 100644 gbe/cores/sgmii/PCSD/syn_results/PCSD_synplify_tmp8.lpf create mode 100644 gbe/cores/sgmii/PCSD/syn_results/_CMD_.CML create mode 100644 gbe/cores/sgmii/PCSD/syn_results/_cmd._cml create mode 100644 gbe/cores/sgmii/PCSD/syn_results/backup/PCSD.srr create mode 100644 gbe/cores/sgmii/PCSD/syn_results/dm/layer0.xdm create mode 100644 gbe/cores/sgmii/PCSD/syn_results/dm/layer1.xdm create mode 100644 gbe/cores/sgmii/PCSD/syn_results/run_options.txt create mode 100644 gbe/cores/sgmii/PCSD/syn_results/scemi_cfg.txt create mode 100644 gbe/cores/sgmii/PCSD/syn_results/scratchproject.prs create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synlog/PCSD_compiler.srr create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synlog/PCSD_compiler.srr.db create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synlog/PCSD_compiler.srr.rptmap create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synlog/PCSD_fpga_mapper.srr create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synlog/PCSD_fpga_mapper.srr.db create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synlog/PCSD_fpga_mapper.szr create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synlog/PCSD_fpga_mapper.xck create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synlog/PCSD_multi_srs_gen.srr create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synlog/PCSD_multi_srs_gen.srr.db create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synlog/PCSD_premap.srr create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synlog/PCSD_premap.srr.db create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synlog/PCSD_premap.szr create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synlog/layer0.tlg.rptmap create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synlog/layer1.tlg.rptmap create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synlog/linker.rpt.rptmap create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_compiler_notes.txt create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_compiler_runstatus.xml create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_compiler_warnings.txt create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_fpga_mapper_area_report.xml create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_fpga_mapper_errors.txt create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_fpga_mapper_notes.txt create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_fpga_mapper_opt_report.xml create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_fpga_mapper_runstatus.xml create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_fpga_mapper_timing_report.xml create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_fpga_mapper_warnings.txt create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_premap_errors.txt create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_premap_notes.txt create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_premap_runstatus.xml create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_premap_warnings.txt create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synlog/report/metrics.db create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synlog/syntax_constraint_check.rpt.rptmap create mode 100644 gbe/cores/sgmii/PCSD/syn_results/syntmp/PCSD.plg create mode 100644 gbe/cores/sgmii/PCSD/syn_results/syntmp/PCSD_srr.htm create mode 100644 gbe/cores/sgmii/PCSD/syn_results/syntmp/PCSD_toc.htm create mode 100644 gbe/cores/sgmii/PCSD/syn_results/syntmp/closed.png create mode 100644 gbe/cores/sgmii/PCSD/syn_results/syntmp/open.png create mode 100644 gbe/cores/sgmii/PCSD/syn_results/syntmp/run_option.xml create mode 100644 gbe/cores/sgmii/PCSD/syn_results/syntmp/statusReport.html create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synwork/.cckTransfer create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synwork/PCSD_comp.fdep create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synwork/PCSD_comp.linkerlog create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synwork/PCSD_comp.srs create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synwork/PCSD_m.srm create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synwork/PCSD_m_srm/1.srm create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synwork/PCSD_m_srm/fileinfo.srm create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synwork/PCSD_mult.srs create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synwork/PCSD_mult_srs/1.srs create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synwork/PCSD_mult_srs/fileinfo.srs create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synwork/PCSD_mult_srs/skeleton.srs create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synwork/PCSD_prem.fse create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synwork/PCSD_prem.srd create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synwork/_mh_info create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synwork/_verilog_hintfile create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synwork/layer0.fdep create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synwork/layer0.fdeporig create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synwork/layer0.srs create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synwork/layer0.tlg create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synwork/layer0.tlg.db create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synwork/layer1.fdep create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synwork/layer1.fdepxmr create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synwork/layer1.info create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synwork/layer1.srs create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synwork/layer1.tlg create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synwork/layer1.tlg.db create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synwork/modulechange.db create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synwork/modulechange_mixhdl/layer0/modulechange.db create mode 100644 gbe/cores/sgmii/PCSD/syn_results/synwork/modulechange_mixhdl/layer1/modulechange.db create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.cmd create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.cst create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.fdc create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.lpc create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.ngd create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.ngo create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.vhd create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/pll_in125_out125_out33_ngd.asd create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/.recordref create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/_CMD_.CML create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/_cmd._cml create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/backup/pll_in125_out125_out33.srr create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/dm/layer0.xdm create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.areasrr create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.fse create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.htm create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.prj create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.srd create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.srf create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.srm create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.srr create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.srr.db create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.srs create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.vhm create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.vm create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33_cck.rpt.db create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33_scck.rpt.db create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33_synplify.lpf create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33_synplify_tmp2.lpf create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33_synplify_tmp4.lpf create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33_synplify_tmp8.lpf create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/run_options.txt create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/scemi_cfg.txt create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/scratchproject.prs create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/layer0.tlg.rptmap create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/pll_in125_out125_out33_compiler.srr create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/pll_in125_out125_out33_compiler.srr.db create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/pll_in125_out125_out33_compiler.srr.rptmap create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/pll_in125_out125_out33_fpga_mapper.srr create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/pll_in125_out125_out33_fpga_mapper.srr.db create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/pll_in125_out125_out33_fpga_mapper.szr create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/pll_in125_out125_out33_multi_srs_gen.srr create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/pll_in125_out125_out33_multi_srs_gen.srr.db create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/pll_in125_out125_out33_premap.srr create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/pll_in125_out125_out33_premap.srr.db create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/pll_in125_out125_out33_premap.szr create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/metrics.db create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_compiler_notes.txt create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_compiler_runstatus.xml create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_compiler_warnings.txt create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_fpga_mapper_area_report.xml create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_fpga_mapper_errors.txt create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_fpga_mapper_notes.txt create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_fpga_mapper_opt_report.xml create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_fpga_mapper_runstatus.xml create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_fpga_mapper_timing_report.xml create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_fpga_mapper_warnings.txt create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_premap_errors.txt create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_premap_notes.txt create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_premap_runstatus.xml create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_premap_warnings.txt create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/syntax_constraint_check.rpt.rptmap create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/syntmp/closed.png create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/syntmp/open.png create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/syntmp/pll_in125_out125_out33.plg create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/syntmp/pll_in125_out125_out33_srr.htm create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/syntmp/pll_in125_out125_out33_toc.htm create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/syntmp/run_option.xml create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/syntmp/statusReport.html create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synwork/.cckTransfer create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synwork/_mh_info create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synwork/layer0.fdep create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synwork/layer0.fdeporig create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synwork/layer0.srs create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synwork/layer0.tlg create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synwork/layer0.tlg.db create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synwork/modulechange.db create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synwork/pll_in125_out125_out33_comp.fdep create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synwork/pll_in125_out125_out33_comp.srs create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synwork/pll_in125_out125_out33_m.srm create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synwork/pll_in125_out125_out33_m_srm/fileinfo.srm create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synwork/pll_in125_out125_out33_mult.srs create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synwork/pll_in125_out125_out33_mult_srs/fileinfo.srs create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synwork/pll_in125_out125_out33_mult_srs/skeleton.srs create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synwork/pll_in125_out125_out33_prem.fse create mode 100644 gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synwork/pll_in125_out125_out33_prem.srd create mode 100644 gbe/cores/sgmii/sgmii.sbx create mode 100644 gbe/cores/sgmii/sgmii.vhd create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/pmi_fifo_dcEEan163201024102410241818p12701671.ngo create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/pmi_fifo_dcLEan1308881010p11aab620.ngo create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/pmi_fifo_dcLEan1308881212p11aac711.ngo create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi.cmd create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi.fdc create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi.lpc create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi.ngd create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi.ngo create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi.v create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi.vhd create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi_bb.v create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi_beh.v create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi_core.ngo create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi_core.v create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi_core_bb.v create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi_ngd.asd create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi_pcs.v create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi_pcs_bb.v create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/sgmii_defines.v create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/models/ecp5um/pcs_serdes/sgmii_channel_smi_pcs.lpc create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/models/ecp5um/pcs_serdes/sgmii_channel_smi_pcs.v create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/models/ecp5um/pcs_serdes/sgmii_channel_smi_pcs_softlogic.v create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/models/ecp5um/pmi_fifo_dc/pmi_fifo_dc.v create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/readme.htm create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/impl/core_only/synplify/sgmii_channel_smi_core_only_eval.ldf create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/impl/core_only/synplify/sgmii_channel_smi_core_only_eval.lpf create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/impl/core_only/synplify/sgmii_channel_smi_core_only_eval.sty create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/impl/reference/synplify/sgmii_channel_smi_reference_eval.ldf create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/impl/reference/synplify/sgmii_channel_smi_reference_eval.lpf create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/impl/reference/synplify/sgmii_channel_smi_reference_eval.sty create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/sim/modelsim/sgmii_channel_smi_reference_eval_se.do create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/src/rtl/template/ecp5um/rate_resolution.v create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/src/rtl/template/ecp5um/register_interface_hb.v create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/src/rtl/template/ecp5um/sgmii_channel_smi.v create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/src/rtl/top/ecp5um/top_hb.v create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/src/rtl/top/ecp5um/top_pcs_core_only.v create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/testbench/mii_monitor.v create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/testbench/port_monitor.v create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/testbench/port_parser_mii.v create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/testbench/sgmii_node.v create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/testbench/tb_hb.v create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/stdout.log.bak.1 create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/stdout.log.bak.2 create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/stdout.log.bak.3 create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/stdout.log.bak.4 create mode 100644 gbe/cores/sgmii/sgmii_channel_smi/stdout.log.bak.5 create mode 100644 gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5.cmd create mode 100644 gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5.cst create mode 100644 gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5.fdc create mode 100644 gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5.lpc create mode 100644 gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5.ngd create mode 100644 gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5.ngo create mode 100644 gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5.vhd create mode 100644 gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5_ngd.asd create mode 100644 gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v create mode 100644 gbe/cores/sgmii/sgmii_ecp5/stdout.log.bak.1 create mode 100644 gbe/cores/sgmii/sgmii_ecp5/stdout.log.bak.2 create mode 100644 gbe/cores/sgmii/sgmii_ecp5/stdout.log.bak.3 create mode 100644 gbe/cores/sgmii/sgmii_ecp5/stdout.log.bak.4 create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/.recordref create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/_CMD_.CML create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/_cmd._cml create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/backup/sgmii_ecp5.srr create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/dm/layer0.xdm create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/dm/layer1.xdm create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/run_options.txt create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/scemi_cfg.txt create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/scratchproject.prs create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.areasrr create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.fse create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.htm create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.prj create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srd create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srf create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srm create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srr create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srr.db create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srs create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.vhm create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.vm create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5_cck.rpt.db create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5_scck.rpt.db create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5_synplify.lpf create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5_synplify_tmp2.lpf create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5_synplify_tmp4.lpf create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5_synplify_tmp8.lpf create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/layer0.tlg.rptmap create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/layer1.tlg.rptmap create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/linker.rpt.rptmap create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/metrics.db create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_notes.txt create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_runstatus.xml create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_warnings.txt create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_area_report.xml create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_errors.txt create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_notes.txt create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_opt_report.xml create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_runstatus.xml create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_timing_report.xml create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_warnings.txt create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_errors.txt create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_notes.txt create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_runstatus.xml create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_warnings.txt create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_compiler.srr create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_compiler.srr.db create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_compiler.srr.rptmap create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.srr create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.srr.db create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.szr create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.xck create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_multi_srs_gen.srr create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_multi_srs_gen.srr.db create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_premap.srr create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_premap.srr.db create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_premap.szr create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/syntax_constraint_check.rpt.rptmap create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/syntmp/closed.png create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/syntmp/open.png create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/syntmp/run_option.xml create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/syntmp/sgmii_ecp5.plg create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/syntmp/sgmii_ecp5_srr.htm create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/syntmp/sgmii_ecp5_toc.htm create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/syntmp/statusReport.html create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/.cckTransfer create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/_mh_info create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/_verilog_hintfile create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/layer0.fdep create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/layer0.fdeporig create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/layer0.srs create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/layer0.tlg create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/layer0.tlg.db create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/layer1.fdep create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/layer1.fdepxmr create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/layer1.info create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/layer1.srs create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/layer1.tlg create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/layer1.tlg.db create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/modulechange.db create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/modulechange_mixhdl/layer0/modulechange.db create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/modulechange_mixhdl/layer1/modulechange.db create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.fdep create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.linkerlog create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.srs create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_m.srm create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_m_srm/1.srm create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_m_srm/fileinfo.srm create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_mult.srs create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_mult_srs/1.srs create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_mult_srs/fileinfo.srs create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_mult_srs/skeleton.srs create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_prem.fse create mode 100644 gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_prem.srd create mode 100644 gbe/cores/sgmii/sgmii_tmpl.v create mode 100644 gbe/cores/sgmii/tsmac/pmi_ram_dpEbnonessdn208256208256p138702ef.ngo create mode 100644 gbe/cores/sgmii/tsmac/pmi_ram_dpEbnonessdn96649664p13506f63.ngo create mode 100644 gbe/cores/sgmii/tsmac/ts_mac_eval/models/ecp5um/JTAGG.v create mode 100644 gbe/cores/sgmii/tsmac/ts_mac_eval/models/ecp5um/JTAG_ECP5UM.v create mode 100644 gbe/cores/sgmii/tsmac/ts_mac_eval/models/ecp5um/rxmac_clk_pll.v create mode 100644 gbe/cores/sgmii/tsmac/ts_mac_eval/models/ecp5um/txmac_clk_pll.v create mode 100644 gbe/cores/sgmii/tsmac/ts_mac_eval/readme.htm create mode 100644 gbe/cores/sgmii/tsmac/ts_mac_eval/testbench/tests/testcase.v create mode 100644 gbe/cores/sgmii/tsmac/ts_mac_eval/testbench/top/env_params.v create mode 100644 gbe/cores/sgmii/tsmac/ts_mac_eval/testbench/top/orcastra_drv.v create mode 100644 gbe/cores/sgmii/tsmac/ts_mac_eval/testbench/top/pkt_mon.v create mode 100644 gbe/cores/sgmii/tsmac/ts_mac_eval/testbench/top/rdwr_task.v create mode 100644 gbe/cores/sgmii/tsmac/ts_mac_eval/testbench/top/rx_gen_tasks.v create mode 100644 gbe/cores/sgmii/tsmac/ts_mac_eval/testbench/top/test_ts_mac.v create mode 100644 gbe/cores/sgmii/tsmac/ts_mac_eval/testbench/top/test_tsmac_params.v create mode 100644 gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/impl/synplify/ts_mac_defines.v create mode 100644 gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/impl/synplify/tsmac_core_only_eval.ldf create mode 100644 gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/impl/synplify/tsmac_core_only_eval.lpf create mode 100644 gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/impl/synplify/tsmac_core_only_eval_setting.sty create mode 100644 gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/impl/synplify/tsmac_reference_eval.ldf create mode 100644 gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/impl/synplify/tsmac_reference_eval.lpf create mode 100644 gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/impl/synplify/tsmac_reference_eval_setting.sty create mode 100644 gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/sim/modelsim/tsmac_eval_se.do create mode 100644 gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/sim/modelsim/tsmac_eval_timing_synp_se.do create mode 100644 gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/sim/modelsim/wave.do create mode 100644 gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/sim/modelsim/wave_sdf.do create mode 100644 gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/params/ts_mac_defines.v create mode 100644 gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/rtl/template/fifo_2048x9.v create mode 100644 gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/rtl/template/fifo_512_ctl.v create mode 100644 gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/rtl/template/oddrx_soft.v create mode 100644 gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/rtl/template/orcastra.v create mode 100644 gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/rtl/template/reg_intf.v create mode 100644 gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/rtl/template/rx_loopbk.v create mode 100644 gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/rtl/template/tst_logic.v create mode 100644 gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/rtl/top/ts_mac_core_only_top.v create mode 100644 gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/rtl/top/ts_mac_core_only_top.vhd create mode 100644 gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/rtl/top/ts_mac_top.v create mode 100644 gbe/cores/sgmii/tsmac/tsmac.fdc create mode 100644 gbe/cores/sgmii/tsmac/tsmac.lpc create mode 100644 gbe/cores/sgmii/tsmac/tsmac.ngd create mode 100644 gbe/cores/sgmii/tsmac/tsmac.ngo create mode 100644 gbe/cores/sgmii/tsmac/tsmac.v create mode 100644 gbe/cores/sgmii/tsmac/tsmac_bb.v create mode 100644 gbe/cores/sgmii/tsmac/tsmac_beh.v create mode 100644 gbe/cores/sgmii/tsmac/tsmac_inst.v create mode 100644 gbe/cores/sgmii/tsmac/tsmac_ngd.asd create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/sgmii_ecp5.cmd create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/sgmii_ecp5.fdc create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/sgmii_ecp5.lpc create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/sgmii_ecp5.ngd create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/sgmii_ecp5.ngo create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/sgmii_ecp5.vhd create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/sgmii_ecp5_ngd.asd create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/.recordref create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/_CMD_.CML create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/_cmd._cml create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/dm/layer0.xdm create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/dm/layer1.xdm create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/run_options.txt create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/scemi_cfg.txt create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/scratchproject.prs create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.areasrr create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.fse create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.htm create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.prj create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.srd create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.srf create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.srm create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.srr create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.srr.db create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.srs create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.vhm create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.vm create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5_cck.rpt.db create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5_scck.rpt.db create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5_synplify.lpf create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5_synplify_tmp2.lpf create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5_synplify_tmp4.lpf create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5_synplify_tmp8.lpf create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/layer0.tlg.rptmap create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/layer1.tlg.rptmap create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/linker.rpt.rptmap create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/metrics.db create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_notes.txt create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_runstatus.xml create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_warnings.txt create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_area_report.xml create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_errors.txt create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_notes.txt create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_opt_report.xml create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_runstatus.xml create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_timing_report.xml create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_warnings.txt create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_errors.txt create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_notes.txt create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_runstatus.xml create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_warnings.txt create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_compiler.srr create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_compiler.srr.db create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_compiler.srr.rptmap create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.srr create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.srr.db create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.szr create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.xck create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_multi_srs_gen.srr create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_multi_srs_gen.srr.db create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_premap.srr create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_premap.srr.db create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_premap.szr create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/syntax_constraint_check.rpt.rptmap create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/syntmp/closed.png create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/syntmp/open.png create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/syntmp/run_option.xml create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/syntmp/sgmii_ecp5.plg create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/syntmp/sgmii_ecp5_srr.htm create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/syntmp/sgmii_ecp5_toc.htm create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/syntmp/statusReport.html create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/.cckTransfer create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/_mh_info create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/_verilog_hintfile create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/layer0.fdep create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/layer0.fdeporig create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/layer0.srs create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/layer0.tlg create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/layer0.tlg.db create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/layer1.fdep create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/layer1.fdepxmr create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/layer1.info create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/layer1.srs create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/layer1.tlg create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/layer1.tlg.db create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/modulechange.db create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/modulechange_mixhdl/layer0/modulechange.db create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/modulechange_mixhdl/layer1/modulechange.db create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.fdep create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.linkerlog create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.srs create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_m.srm create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_m_srm/1.srm create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_m_srm/fileinfo.srm create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_mult.srs create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_mult_srs/1.srs create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_mult_srs/fileinfo.srs create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_mult_srs/skeleton.srs create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_prem.fse create mode 100644 gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_prem.srd create mode 100644 gbe/cores/test_gbepcs/test_gbepcs.sbx create mode 100644 gbe/cores/test_gbepcs/test_gbepcs.vhd create mode 100644 gbe/cores/test_gbepcs/test_gbepcs_tmpl.v create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_0.sbx create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_0.vhd create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_0_tmpl.v create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_0.lpc create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.cmd create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.cst create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.fdc create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.lpc create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.ngd create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.ngo create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_ngd.asd create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/.recordref create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/_CMD_.CML create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/_cmd._cml create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/backup/serdes_sync_1.srr create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/dm/layer0.xdm create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/dm/layer1.xdm create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/run_options.txt create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/scemi_cfg.txt create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/scratchproject.prs create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.areasrr create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.fse create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.htm create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.prj create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.srd create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.srf create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.srm create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.srr create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.srr.db create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.srs create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.vhm create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.vm create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1_cck.rpt.db create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1_scck.rpt.db create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1_synplify.lpf create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1_synplify_tmp2.lpf create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1_synplify_tmp4.lpf create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1_synplify_tmp8.lpf create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/layer0.tlg.rptmap create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/layer1.tlg.rptmap create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/linker.rpt.rptmap create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/metrics.db create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_compiler_notes.txt create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_compiler_runstatus.xml create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_compiler_warnings.txt create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_fpga_mapper_area_report.xml create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_fpga_mapper_errors.txt create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_fpga_mapper_notes.txt create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_fpga_mapper_opt_report.xml create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_fpga_mapper_runstatus.xml create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_fpga_mapper_timing_report.xml create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_fpga_mapper_warnings.txt create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_premap_errors.txt create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_premap_notes.txt create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_premap_runstatus.xml create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_premap_warnings.txt create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/serdes_sync_1_compiler.srr create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/serdes_sync_1_compiler.srr.db create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/serdes_sync_1_compiler.srr.rptmap create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/serdes_sync_1_fpga_mapper.srr create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/serdes_sync_1_fpga_mapper.srr.db create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/serdes_sync_1_fpga_mapper.szr create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/serdes_sync_1_fpga_mapper.xck create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/serdes_sync_1_multi_srs_gen.srr create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/serdes_sync_1_multi_srs_gen.srr.db create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/serdes_sync_1_premap.srr create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/serdes_sync_1_premap.srr.db create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/serdes_sync_1_premap.szr create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/syntax_constraint_check.rpt.rptmap create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/syntmp/closed.png create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/syntmp/open.png create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/syntmp/run_option.xml create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/syntmp/serdes_sync_1.plg create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/syntmp/serdes_sync_1_srr.htm create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/syntmp/serdes_sync_1_toc.htm create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/syntmp/statusReport.html create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/.cckTransfer create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/_mh_info create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/_verilog_hintfile create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer0.fdep create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer0.fdeporig create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer0.srs create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer0.tlg create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer0.tlg.db create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer1.fdep create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer1.fdepxmr create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer1.info create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer1.srs create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer1.tlg create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer1.tlg.db create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/modulechange.db create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/modulechange_mixhdl/layer0/modulechange.db create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/modulechange_mixhdl/layer1/modulechange.db create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/serdes_sync_1_comp.fdep create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/serdes_sync_1_comp.linkerlog create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/serdes_sync_1_comp.srs create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/serdes_sync_1_m.srm create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/serdes_sync_1_m_srm/1.srm create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/serdes_sync_1_m_srm/fileinfo.srm create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/serdes_sync_1_mult.srs create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/serdes_sync_1_mult_srs/1.srs create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/serdes_sync_1_mult_srs/fileinfo.srs create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/serdes_sync_1_mult_srs/skeleton.srs create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/serdes_sync_1_prem.fse create mode 100644 gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/serdes_sync_1_prem.srd diff --git a/gbe/cores/GbePcsExtrefclk/GbePcsExtrefclk.sbx b/gbe/cores/GbePcsExtrefclk/GbePcsExtrefclk.sbx new file mode 100644 index 0000000..314e0e1 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/GbePcsExtrefclk.sbx @@ -0,0 +1,2432 @@ + + + + LATTICE + LOCAL + GbePcsExtrefclk + 1.0 + + + Diamond_Synthesis + synthesis + + ./GbePcsExtrefclk.vhd + vhdlSource + + + + Diamond_Simulation + simulation + + ./GbePcsExtrefclk.vhd + vhdlSource + + + + + + + + + extref_refclkn + extref_refclkn + + in + + + + extref.refclkn + + + + + extref_refclkp + extref_refclkp + + in + + + + extref.refclkp + + + + + sgmii_ecp5_ctc_del_s + sgmii_ecp5_ctc_del_s + + out + + + + sgmii_ecp5.ctc_del_s + + + + + sgmii_ecp5_ctc_ins_s + sgmii_ecp5_ctc_ins_s + + out + + + + sgmii_ecp5.ctc_ins_s + + + + + sgmii_ecp5_ctc_orun_s + sgmii_ecp5_ctc_orun_s + + out + + + + sgmii_ecp5.ctc_orun_s + + + + + sgmii_ecp5_ctc_urun_s + sgmii_ecp5_ctc_urun_s + + out + + + + sgmii_ecp5.ctc_urun_s + + + + + sgmii_ecp5_cyawstn + sgmii_ecp5_cyawstn + + in + + + + sgmii_ecp5.cyawstn + + + + + sgmii_ecp5_hdinn + sgmii_ecp5_hdinn + + in + + + + sgmii_ecp5.hdinn + + + + + sgmii_ecp5_hdinp + sgmii_ecp5_hdinp + + in + + + + sgmii_ecp5.hdinp + + + + + sgmii_ecp5_hdoutn + sgmii_ecp5_hdoutn + + out + + + + sgmii_ecp5.hdoutn + + + + + sgmii_ecp5_hdoutp + sgmii_ecp5_hdoutp + + out + + + + sgmii_ecp5.hdoutp + + + + + sgmii_ecp5_lsm_status_s + sgmii_ecp5_lsm_status_s + + out + + + + sgmii_ecp5.lsm_status_s + + + + + sgmii_ecp5_pll_lol + sgmii_ecp5_pll_lol + + out + + + + sgmii_ecp5.pll_lol + + + + + sgmii_ecp5_rsl_disable + sgmii_ecp5_rsl_disable + + in + + + + sgmii_ecp5.rsl_disable + + + + + sgmii_ecp5_rsl_rst + sgmii_ecp5_rsl_rst + + in + + + + sgmii_ecp5.rsl_rst + + + + + sgmii_ecp5_rsl_rx_rdy + sgmii_ecp5_rsl_rx_rdy + + out + + + + sgmii_ecp5.rsl_rx_rdy + + + + + sgmii_ecp5_rsl_tx_rdy + sgmii_ecp5_rsl_tx_rdy + + out + + + + sgmii_ecp5.rsl_tx_rdy + + + + + sgmii_ecp5_rst_dual_c + sgmii_ecp5_rst_dual_c + + in + + + + sgmii_ecp5.rst_dual_c + + + + + sgmii_ecp5_rx_cdr_lol_s + sgmii_ecp5_rx_cdr_lol_s + + out + + + + sgmii_ecp5.rx_cdr_lol_s + + + + + sgmii_ecp5_rx_los_low_s + sgmii_ecp5_rx_los_low_s + + out + + + + sgmii_ecp5.rx_los_low_s + + + + + sgmii_ecp5_rx_pcs_rst_c + sgmii_ecp5_rx_pcs_rst_c + + in + + + + sgmii_ecp5.rx_pcs_rst_c + + + + + sgmii_ecp5_rx_pwrup_c + sgmii_ecp5_rx_pwrup_c + + in + + + + sgmii_ecp5.rx_pwrup_c + + + + + sgmii_ecp5_rx_serdes_rst_c + sgmii_ecp5_rx_serdes_rst_c + + in + + + + sgmii_ecp5.rx_serdes_rst_c + + + + + sgmii_ecp5_sci_en + sgmii_ecp5_sci_en + + in + + + + sgmii_ecp5.sci_en + + + + + sgmii_ecp5_sci_en_dual + sgmii_ecp5_sci_en_dual + + in + + + + sgmii_ecp5.sci_en_dual + + + + + sgmii_ecp5_sci_int + sgmii_ecp5_sci_int + + out + + + + sgmii_ecp5.sci_int + + + + + sgmii_ecp5_sci_rd + sgmii_ecp5_sci_rd + + in + + + + sgmii_ecp5.sci_rd + + + + + sgmii_ecp5_sci_sel + sgmii_ecp5_sci_sel + + in + + + + sgmii_ecp5.sci_sel + + + + + sgmii_ecp5_sci_sel_dual + sgmii_ecp5_sci_sel_dual + + in + + + + sgmii_ecp5.sci_sel_dual + + + + + sgmii_ecp5_sci_wrn + sgmii_ecp5_sci_wrn + + in + + + + sgmii_ecp5.sci_wrn + + + + + sgmii_ecp5_serdes_pdb + sgmii_ecp5_serdes_pdb + + in + + + + sgmii_ecp5.serdes_pdb + + + + + sgmii_ecp5_serdes_rst_dual_c + sgmii_ecp5_serdes_rst_dual_c + + in + + + + sgmii_ecp5.serdes_rst_dual_c + + + + + sgmii_ecp5_signal_detect_c + sgmii_ecp5_signal_detect_c + + in + + + + sgmii_ecp5.signal_detect_c + + + + + sgmii_ecp5_tx_pclk + sgmii_ecp5_tx_pclk + + out + + + + sgmii_ecp5.tx_pclk + + + + + sgmii_ecp5_tx_pcs_rst_c + sgmii_ecp5_tx_pcs_rst_c + + in + + + + sgmii_ecp5.tx_pcs_rst_c + + + + + sgmii_ecp5_tx_pwrup_c + sgmii_ecp5_tx_pwrup_c + + in + + + + sgmii_ecp5.tx_pwrup_c + + + + + sgmii_ecp5_tx_serdes_rst_c + sgmii_ecp5_tx_serdes_rst_c + + in + + + + sgmii_ecp5.tx_serdes_rst_c + + + + + sgmii_ecp5_txi_clk + sgmii_ecp5_txi_clk + + in + + + + sgmii_ecp5.txi_clk + + + + + sgmii_ecp5_rx_cv_err + sgmii_ecp5_rx_cv_err + + out + + 0 + 0 + + + + + sgmii_ecp5.rx_cv_err + + + + + sgmii_ecp5_rx_disp_err + sgmii_ecp5_rx_disp_err + + out + + 0 + 0 + + + + + sgmii_ecp5.rx_disp_err + + + + + sgmii_ecp5_rx_k + sgmii_ecp5_rx_k + + out + + 0 + 0 + + + + + sgmii_ecp5.rx_k + + + + + sgmii_ecp5_rxdata + sgmii_ecp5_rxdata + + out + + 7 + 0 + + + + + sgmii_ecp5.rxdata + + + + + sgmii_ecp5_sci_addr + sgmii_ecp5_sci_addr + + in + + 5 + 0 + + + + + sgmii_ecp5.sci_addr + + + + + sgmii_ecp5_sci_rddata + sgmii_ecp5_sci_rddata + + out + + 7 + 0 + + + + + sgmii_ecp5.sci_rddata + + + + + sgmii_ecp5_sci_wrdata + sgmii_ecp5_sci_wrdata + + in + + 7 + 0 + + + + + sgmii_ecp5.sci_wrdata + + + + + sgmii_ecp5_tx_disp_correct + sgmii_ecp5_tx_disp_correct + + in + + 0 + 0 + + + + + sgmii_ecp5.tx_disp_correct + + + + + sgmii_ecp5_tx_k + sgmii_ecp5_tx_k + + in + + 0 + 0 + + + + + sgmii_ecp5.tx_k + + + + + sgmii_ecp5_txdata + sgmii_ecp5_txdata + + in + + 7 + 0 + + + + + sgmii_ecp5.txdata + + + + + sgmii_ecp5_xmit + sgmii_ecp5_xmit + + in + + 0 + 0 + + + + + sgmii_ecp5.xmit + + + + + + + LFE5UM-85F-8BG756C + synplify + 2019-05-13.09:04:13 AM + 2019-05-13.10:35:48 AM + 3.10.3.144 + VHDL + + false + false + false + false + false + false + false + false + false + false + false + + + + + + + + LATTICE + LOCAL + GbePcsExtrefclk + 1.0 + + + extref + + Lattice Semiconductor Corporation + LEGACY + EXTREF + 1.1 + + + Diamond_Simulation + simulation + + ./extref/extref.vhd + vhdlSource + + + + Diamond_Synthesis + synthesis + + ./extref/extref.vhd + vhdlSource + + + + + + Configuration + none + ${sbp_path}/${instance}/generate_core.tcl + CONFIG + + + CreateNGD + none + ${sbp_path}/${instance}/generate_ngd.tcl + CONFIG + + + Generation + none + ${sbp_path}/${instance}/generate_core.tcl + GENERATE + + + + + + + refclkn + refclkn + + in + + + + true + + + + + refclko + refclko + + out + + + + refclkp + refclkp + + in + + + + true + + + + + + + synplify + 2019-05-13.10:35:48 AM + + false + false + false + false + false + false + false + false + false + false + LPM + PRIMARY + PRIMARY + false + false + + + + EXTREF + EXTREF + + true + false + EXTREF + 4 + + + + + + + Family + ecp5um + + + OperatingCondition + COM + + + Package + CABGA756 + + + PartName + LFE5UM-85F-8BG756C + + + PartType + LFE5UM-85F + + + SpeedGrade + 8 + + + Status + P + + + + CoreName + EXTREF + + + CoreRevision + 1.1 + + + CoreStatus + Demo + + + CoreType + LPM + + + Date + 05/13/2019 + + + ModuleName + extref + + + ParameterFileVersion + 1.0 + + + SourceFormat + vhdl + + + Time + 09:10:11 + + + VendorName + Lattice Semiconductor Corporation + + + + Destination + Synplicity + + + EDIF + 1 + + + EXTREFDCBIAS + Disabled + + + EXTREFTERMRES + 50 ohms + + + Expression + BusA(0 to 7) + + + IO + 0 + + + Order + Big Endian [MSB:LSB] + + + VHDL + 1 + + + Verilog + 0 + + + + + EXTREF + 1 + + true + false + EXTREF + + EXTREF + + + + + + + sgmii_ecp5 + + Lattice Semiconductor Corporation + LEGACY + PCS + 8.2 + + + Diamond_Simulation + simulation + + ./sgmii_ecp5/sgmii_ecp5_softlogic.v + verilogSource + + + ./sgmii_ecp5/sgmii_ecp5.vhd + vhdlSource + + + + Diamond_Synthesis + synthesis + + ./sgmii_ecp5/sgmii_ecp5_softlogic.v + verilogSource + + + ./sgmii_ecp5/sgmii_ecp5.vhd + vhdlSource + + + + + + Configuration + none + ${sbp_path}/${instance}/generate_core.tcl + CONFIG + + + CreateNGD + none + ${sbp_path}/${instance}/generate_ngd.tcl + CONFIG + + + Generation + none + ${sbp_path}/${instance}/generate_core.tcl + GENERATE + + + + + + + ctc_del_s + ctc_del_s + + out + + + + ctc_ins_s + ctc_ins_s + + out + + + + ctc_orun_s + ctc_orun_s + + out + + + + ctc_urun_s + ctc_urun_s + + out + + + + cyawstn + cyawstn + + in + + + + hdinn + hdinn + + in + + + + true + + + + + hdinp + hdinp + + in + + + + true + + + + + hdoutn + hdoutn + + out + + + + true + + + + + hdoutp + hdoutp + + out + + + + true + + + + + lsm_status_s + lsm_status_s + + out + + + + pll_lol + pll_lol + + out + + + + pll_refclki + pll_refclki + + in + + + + rsl_disable + rsl_disable + + in + + + + rsl_rst + rsl_rst + + in + + + + rsl_rx_rdy + rsl_rx_rdy + + out + + + + rsl_tx_rdy + rsl_tx_rdy + + out + + + + rst_dual_c + rst_dual_c + + in + + + + rx_cdr_lol_s + rx_cdr_lol_s + + out + + + + rx_los_low_s + rx_los_low_s + + out + + + + rx_pcs_rst_c + rx_pcs_rst_c + + in + + + + rx_pwrup_c + rx_pwrup_c + + in + + + + rx_serdes_rst_c + rx_serdes_rst_c + + in + + + + rxrefclk + rxrefclk + + in + + + + sci_en + sci_en + + in + + + + sci_en_dual + sci_en_dual + + in + + + + sci_int + sci_int + + out + + + + sci_rd + sci_rd + + in + + + + sci_sel + sci_sel + + in + + + + sci_sel_dual + sci_sel_dual + + in + + + + sci_wrn + sci_wrn + + in + + + + serdes_pdb + serdes_pdb + + in + + + + serdes_rst_dual_c + serdes_rst_dual_c + + in + + + + signal_detect_c + signal_detect_c + + in + + + + sli_rst + sli_rst + + in + + + + true + + + + + tx_pclk + tx_pclk + + out + + + + tx_pcs_rst_c + tx_pcs_rst_c + + in + + + + tx_pwrup_c + tx_pwrup_c + + in + + + + tx_serdes_rst_c + tx_serdes_rst_c + + in + + + + txi_clk + txi_clk + + in + + + + rx_cv_err + rx_cv_err + + out + + 0 + 0 + + + + + rx_disp_err + rx_disp_err + + out + + 0 + 0 + + + + + rx_k + rx_k + + out + + 0 + 0 + + + + + rxdata + rxdata + + out + + 7 + 0 + + + + + sci_addr + sci_addr + + in + + 5 + 0 + + + + + sci_rddata + sci_rddata + + out + + 7 + 0 + + + + + sci_wrdata + sci_wrdata + + in + + 7 + 0 + + + + + tx_disp_correct + tx_disp_correct + + in + + 0 + 0 + + + + + tx_k + tx_k + + in + + 0 + 0 + + + + + txdata + txdata + + in + + 7 + 0 + + + + + xmit + xmit + + in + + 0 + 0 + + + + + + + synplify + 2019-05-13.10:35:48 AM + + false + false + false + false + false + false + false + false + false + false + LPM + DCU1_EXTREF + DCU1_EXTREF + false + false + + + + Lane0 + DCUCHANNEL + + true + false + DCUCHANNEL + 9 + + + + + + + Family + ecp5um + + + OperatingCondition + COM + + + Package + CABGA756 + + + PartName + LFE5UM-85F-8BG756C + + + PartType + LFE5UM-85F + + + SpeedGrade + 8 + + + Status + P + + + + CoreName + PCS + + + CoreRevision + 8.2 + + + CoreStatus + Demo + + + CoreType + LPM + + + Date + 05/13/2019 + + + ModuleName + sgmii_ecp5 + + + ParameterFileVersion + 1.0 + + + SourceFormat + VHDL + + + Time + 09:09:01 + + + VendorName + Lattice Semiconductor Corporation + + + + ;ACHARA + 0 00H + + + ;ACHARB + 0 00H + + + ;ACHARM + 0 00H + + + ;RXMCAENABLE + Disabled + + + CDRLOLACTION + Full Recalibration + + + CDRLOLRANGE + 0 + + + CDR_MAX_RATE + 1.25 + + + CDR_MULT + 10X + + + CDR_REF_RATE + 125.0000 + + + CH_MODE + Rx and Tx + + + Destination + Synplicity + + + EDIF + 1 + + + Expression + BusA(0 to 7) + + + IO + 0 + + + IO_TYPE + GbE + + + LEQ + 0 + + + LOOPBACK + Disabled + + + LOSPORT + Enabled + + + NUM_CHS + 1 + + + Order + Big Endian [MSB:LSB] + + + PPORT_RX_RDY + Enabled + + + PPORT_TX_RDY + Enabled + + + PROTOCOL + GbE + + + PWAIT_RX_RDY + 3000 + + + PWAIT_TX_RDY + 3000 + + + RCSRC + Disabled + + + REFCLK_RATE + 125.0000 + + + RSTSEQSEL + Enabled + + + RX8B10B + Enabled + + + RXCOMMAA + 1010000011 + + + RXCOMMAB + 0101111100 + + + RXCOMMAM + 1111111111 + + + RXCOUPLING + AC + + + RXCTC + Enabled + + + RXCTCBYTEN + 0 00H + + + RXCTCBYTEN1 + 0 00H + + + RXCTCBYTEN2 + 1 BCH + + + RXCTCBYTEN3 + 0 50H + + + RXCTCMATCHPATTERN + M2-S2 + + + RXDIFFTERM + 50 ohms + + + RXFIFO_ENABLE + Enabled + + + RXINVPOL + Non-invert + + + RXLDR + Off + + + RXLOSTHRESHOLD + 2 + + + RXLSM + Enabled + + + RXSC + K28P5 + + + RXWA + Barrel Shift + + + RX_DATA_WIDTH + 8/10-Bit + + + RX_FICLK_RATE + 125.0000 + + + RX_LINE_RATE + 1.2500 + + + RX_RATE_DIV + Full Rate + + + SCIPORT + Enabled + + + SOFTLOL + Enabled + + + TX8B10B + Enabled + + + TXAMPLITUDE + 1100 + + + TXDEPOST + Disabled + + + TXDEPRE + Disabled + + + TXDIFFTERM + 50 ohms + + + TXFIFO_ENABLE + Enabled + + + TXINVPOL + Non-invert + + + TXLDR + Off + + + TXPLLLOLTHRESHOLD + 0 + + + TXPLLMULT + 10X + + + TX_DATA_WIDTH + 8/10-Bit + + + TX_FICLK_RATE + 125.0000 + + + TX_LINE_RATE + 1.2500 + + + TX_MAX_RATE + 1.25 + + + TX_RATE_DIV + Full Rate + + + VHDL + 1 + + + Verilog + 0 + + + + sgmii_ecp5.pp + pp + + + sgmii_ecp5.sym + sym + + + sgmii_ecp5.tft + tft + + + sgmii_ecp5.txt + pcs_module + + + + + DCUCHANNEL + 1 + + true + false + DCUCHANNEL + + Lane0 + + + + + + + + + extref_refclkn + extref_refclkn + + + sys_yes + + + + + + + extref_refclko + extref_refclko + extref_refclko + + + sys_no + internal + + + + + + + + extref_refclkp + extref_refclkp + + + sys_yes + + + + + + + sgmii_ecp5_ctc_del_s + sgmii_ecp5_ctc_del_s + + + + + sgmii_ecp5_ctc_ins_s + sgmii_ecp5_ctc_ins_s + + + + + sgmii_ecp5_ctc_orun_s + sgmii_ecp5_ctc_orun_s + + + + + sgmii_ecp5_ctc_urun_s + sgmii_ecp5_ctc_urun_s + + + + + sgmii_ecp5_cyawstn + sgmii_ecp5_cyawstn + + + + + sgmii_ecp5_hdinn + sgmii_ecp5_hdinn + + + sys_yes + + + + + + + sgmii_ecp5_hdinp + sgmii_ecp5_hdinp + + + sys_yes + + + + + + + sgmii_ecp5_hdoutn + sgmii_ecp5_hdoutn + + + sys_yes + + + + + + + sgmii_ecp5_hdoutp + sgmii_ecp5_hdoutp + + + sys_yes + + + + + + + sgmii_ecp5_lsm_status_s + sgmii_ecp5_lsm_status_s + + + + + sgmii_ecp5_pll_lol + sgmii_ecp5_pll_lol + + + + + sgmii_ecp5_rsl_disable + sgmii_ecp5_rsl_disable + + + + + sgmii_ecp5_rsl_rst + sgmii_ecp5_rsl_rst + + + + + sgmii_ecp5_rsl_rx_rdy + sgmii_ecp5_rsl_rx_rdy + + + + + sgmii_ecp5_rsl_tx_rdy + sgmii_ecp5_rsl_tx_rdy + + + + + sgmii_ecp5_rst_dual_c + sgmii_ecp5_rst_dual_c + + + + + sgmii_ecp5_rx_cdr_lol_s + sgmii_ecp5_rx_cdr_lol_s + + + + + sgmii_ecp5_rx_los_low_s + sgmii_ecp5_rx_los_low_s + + + + + sgmii_ecp5_rx_pcs_rst_c + sgmii_ecp5_rx_pcs_rst_c + + + + + sgmii_ecp5_rx_pwrup_c + sgmii_ecp5_rx_pwrup_c + + + + + sgmii_ecp5_rx_serdes_rst_c + sgmii_ecp5_rx_serdes_rst_c + + + + + sgmii_ecp5_sci_en + sgmii_ecp5_sci_en + + + + + sgmii_ecp5_sci_en_dual + sgmii_ecp5_sci_en_dual + + + + + sgmii_ecp5_sci_int + sgmii_ecp5_sci_int + + + + + sgmii_ecp5_sci_rd + sgmii_ecp5_sci_rd + + + + + sgmii_ecp5_sci_sel + sgmii_ecp5_sci_sel + + + + + sgmii_ecp5_sci_sel_dual + sgmii_ecp5_sci_sel_dual + + + + + sgmii_ecp5_sci_wrn + sgmii_ecp5_sci_wrn + + + + + sgmii_ecp5_serdes_pdb + sgmii_ecp5_serdes_pdb + + + + + sgmii_ecp5_serdes_rst_dual_c + sgmii_ecp5_serdes_rst_dual_c + + + + + sgmii_ecp5_signal_detect_c + sgmii_ecp5_signal_detect_c + + + + + sgmii_ecp5_tx_pclk + sgmii_ecp5_tx_pclk + + + + + sgmii_ecp5_tx_pcs_rst_c + sgmii_ecp5_tx_pcs_rst_c + + + + + sgmii_ecp5_tx_pwrup_c + sgmii_ecp5_tx_pwrup_c + + + + + sgmii_ecp5_tx_serdes_rst_c + sgmii_ecp5_tx_serdes_rst_c + + + + + sgmii_ecp5_txi_clk + sgmii_ecp5_txi_clk + + + + + sgmii_ecp5_rx_cv_err + sgmii_ecp5_rx_cv_err + + + + + sgmii_ecp5_rx_cv_err[0] + sgmii_ecp5_rx_cv_err[0] + + + + + sgmii_ecp5_rx_disp_err + sgmii_ecp5_rx_disp_err + + + + + sgmii_ecp5_rx_disp_err[0] + sgmii_ecp5_rx_disp_err[0] + + + + + sgmii_ecp5_rx_k + sgmii_ecp5_rx_k + + + + + sgmii_ecp5_rx_k[0] + sgmii_ecp5_rx_k[0] + + + + + sgmii_ecp5_rxdata + sgmii_ecp5_rxdata + + + + + sgmii_ecp5_rxdata[0] + sgmii_ecp5_rxdata[0] + + + + + sgmii_ecp5_rxdata[1] + sgmii_ecp5_rxdata[1] + + + + + sgmii_ecp5_rxdata[2] + sgmii_ecp5_rxdata[2] + + + + + sgmii_ecp5_rxdata[3] + sgmii_ecp5_rxdata[3] + + + + + sgmii_ecp5_rxdata[4] + sgmii_ecp5_rxdata[4] + + + + + sgmii_ecp5_rxdata[5] + sgmii_ecp5_rxdata[5] + + + + + sgmii_ecp5_rxdata[6] + sgmii_ecp5_rxdata[6] + + + + + sgmii_ecp5_rxdata[7] + sgmii_ecp5_rxdata[7] + + + + + sgmii_ecp5_sci_addr + sgmii_ecp5_sci_addr + + + + + sgmii_ecp5_sci_addr[0] + sgmii_ecp5_sci_addr[0] + + + + + sgmii_ecp5_sci_addr[1] + sgmii_ecp5_sci_addr[1] + + + + + sgmii_ecp5_sci_addr[2] + sgmii_ecp5_sci_addr[2] + + + + + sgmii_ecp5_sci_addr[3] + sgmii_ecp5_sci_addr[3] + + + + + sgmii_ecp5_sci_addr[4] + sgmii_ecp5_sci_addr[4] + + + + + sgmii_ecp5_sci_addr[5] + sgmii_ecp5_sci_addr[5] + + + + + sgmii_ecp5_sci_rddata + sgmii_ecp5_sci_rddata + + + + + sgmii_ecp5_sci_rddata[0] + sgmii_ecp5_sci_rddata[0] + + + + + sgmii_ecp5_sci_rddata[1] + sgmii_ecp5_sci_rddata[1] + + + + + sgmii_ecp5_sci_rddata[2] + sgmii_ecp5_sci_rddata[2] + + + + + sgmii_ecp5_sci_rddata[3] + sgmii_ecp5_sci_rddata[3] + + + + + sgmii_ecp5_sci_rddata[4] + sgmii_ecp5_sci_rddata[4] + + + + + sgmii_ecp5_sci_rddata[5] + sgmii_ecp5_sci_rddata[5] + + + + + sgmii_ecp5_sci_rddata[6] + sgmii_ecp5_sci_rddata[6] + + + + + sgmii_ecp5_sci_rddata[7] + sgmii_ecp5_sci_rddata[7] + + + + + sgmii_ecp5_sci_wrdata + sgmii_ecp5_sci_wrdata + + + + + sgmii_ecp5_sci_wrdata[0] + sgmii_ecp5_sci_wrdata[0] + + + + + sgmii_ecp5_sci_wrdata[1] + sgmii_ecp5_sci_wrdata[1] + + + + + sgmii_ecp5_sci_wrdata[2] + sgmii_ecp5_sci_wrdata[2] + + + + + sgmii_ecp5_sci_wrdata[3] + sgmii_ecp5_sci_wrdata[3] + + + + + sgmii_ecp5_sci_wrdata[4] + sgmii_ecp5_sci_wrdata[4] + + + + + sgmii_ecp5_sci_wrdata[5] + sgmii_ecp5_sci_wrdata[5] + + + + + sgmii_ecp5_sci_wrdata[6] + sgmii_ecp5_sci_wrdata[6] + + + + + sgmii_ecp5_sci_wrdata[7] + sgmii_ecp5_sci_wrdata[7] + + + + + sgmii_ecp5_tx_disp_correct + sgmii_ecp5_tx_disp_correct + + + + + sgmii_ecp5_tx_disp_correct[0] + sgmii_ecp5_tx_disp_correct[0] + + + + + sgmii_ecp5_tx_k + sgmii_ecp5_tx_k + + + + + sgmii_ecp5_tx_k[0] + sgmii_ecp5_tx_k[0] + + + + + sgmii_ecp5_txdata + sgmii_ecp5_txdata + + + + + sgmii_ecp5_txdata[0] + sgmii_ecp5_txdata[0] + + + + + sgmii_ecp5_txdata[1] + sgmii_ecp5_txdata[1] + + + + + sgmii_ecp5_txdata[2] + sgmii_ecp5_txdata[2] + + + + + sgmii_ecp5_txdata[3] + sgmii_ecp5_txdata[3] + + + + + sgmii_ecp5_txdata[4] + sgmii_ecp5_txdata[4] + + + + + sgmii_ecp5_txdata[5] + sgmii_ecp5_txdata[5] + + + + + sgmii_ecp5_txdata[6] + sgmii_ecp5_txdata[6] + + + + + sgmii_ecp5_txdata[7] + sgmii_ecp5_txdata[7] + + + + + sgmii_ecp5_xmit + sgmii_ecp5_xmit + + + + + sgmii_ecp5_xmit[0] + sgmii_ecp5_xmit[0] + + + + + + diff --git a/gbe/cores/GbePcsExtrefclk/GbePcsExtrefclk.vhd b/gbe/cores/GbePcsExtrefclk/GbePcsExtrefclk.vhd new file mode 100644 index 0000000..a9521ee --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/GbePcsExtrefclk.vhd @@ -0,0 +1,179 @@ + + + +-- +-- Verific VHDL Description of module GbePcsExtrefclk +-- + +library ieee ; +use ieee.std_logic_1164.all ; + +entity GbePcsExtrefclk is + port (sgmii_ecp5_rx_cv_err: out std_logic_vector(0 downto 0); + sgmii_ecp5_rx_disp_err: out std_logic_vector(0 downto 0); + sgmii_ecp5_rx_k: out std_logic_vector(0 downto 0); + sgmii_ecp5_rxdata: out std_logic_vector(7 downto 0); + sgmii_ecp5_sci_addr: in std_logic_vector(5 downto 0); + sgmii_ecp5_sci_rddata: out std_logic_vector(7 downto 0); + sgmii_ecp5_sci_wrdata: in std_logic_vector(7 downto 0); + sgmii_ecp5_tx_disp_correct: in std_logic_vector(0 downto 0); + sgmii_ecp5_tx_k: in std_logic_vector(0 downto 0); + sgmii_ecp5_txdata: in std_logic_vector(7 downto 0); + sgmii_ecp5_xmit: in std_logic_vector(0 downto 0); + extref_refclkn: in std_logic; + extref_refclkp: in std_logic; + sgmii_ecp5_ctc_del_s: out std_logic; + sgmii_ecp5_ctc_ins_s: out std_logic; + sgmii_ecp5_ctc_orun_s: out std_logic; + sgmii_ecp5_ctc_urun_s: out std_logic; + sgmii_ecp5_cyawstn: in std_logic; + sgmii_ecp5_hdinn: in std_logic; + sgmii_ecp5_hdinp: in std_logic; + sgmii_ecp5_hdoutn: out std_logic; + sgmii_ecp5_hdoutp: out std_logic; + sgmii_ecp5_lsm_status_s: out std_logic; + sgmii_ecp5_pll_lol: out std_logic; + sgmii_ecp5_rsl_disable: in std_logic; + sgmii_ecp5_rsl_rst: in std_logic; + sgmii_ecp5_rsl_rx_rdy: out std_logic; + sgmii_ecp5_rsl_tx_rdy: out std_logic; + sgmii_ecp5_rst_dual_c: in std_logic; + sgmii_ecp5_rx_cdr_lol_s: out std_logic; + sgmii_ecp5_rx_los_low_s: out std_logic; + sgmii_ecp5_rx_pcs_rst_c: in std_logic; + sgmii_ecp5_rx_pwrup_c: in std_logic; + sgmii_ecp5_rx_serdes_rst_c: in std_logic; + sgmii_ecp5_sci_en: in std_logic; + sgmii_ecp5_sci_en_dual: in std_logic; + sgmii_ecp5_sci_int: out std_logic; + sgmii_ecp5_sci_rd: in std_logic; + sgmii_ecp5_sci_sel: in std_logic; + sgmii_ecp5_sci_sel_dual: in std_logic; + sgmii_ecp5_sci_wrn: in std_logic; + sgmii_ecp5_serdes_pdb: in std_logic; + sgmii_ecp5_serdes_rst_dual_c: in std_logic; + sgmii_ecp5_signal_detect_c: in std_logic; + sgmii_ecp5_tx_pclk: out std_logic; + sgmii_ecp5_tx_pcs_rst_c: in std_logic; + sgmii_ecp5_tx_pwrup_c: in std_logic; + sgmii_ecp5_tx_serdes_rst_c: in std_logic; + sgmii_ecp5_txi_clk: in std_logic + ); + +end entity GbePcsExtrefclk; -- sbp_module=true + +architecture GbePcsExtrefclk of GbePcsExtrefclk is + component extref is + port (refclkn: in std_logic; + refclko: out std_logic; + refclkp: in std_logic + ); + + end component extref; -- not_need_bbox=true + + + component sgmii_ecp5 is + port (rx_cv_err: out std_logic_vector(0 downto 0); + rx_disp_err: out std_logic_vector(0 downto 0); + rx_k: out std_logic_vector(0 downto 0); + rxdata: out std_logic_vector(7 downto 0); + sci_addr: in std_logic_vector(5 downto 0); + sci_rddata: out std_logic_vector(7 downto 0); + sci_wrdata: in std_logic_vector(7 downto 0); + tx_disp_correct: in std_logic_vector(0 downto 0); + tx_k: in std_logic_vector(0 downto 0); + txdata: in std_logic_vector(7 downto 0); + xmit: in std_logic_vector(0 downto 0); + ctc_del_s: out std_logic; + ctc_ins_s: out std_logic; + ctc_orun_s: out std_logic; + ctc_urun_s: out std_logic; + cyawstn: in std_logic; + hdinn: in std_logic; + hdinp: in std_logic; + hdoutn: out std_logic; + hdoutp: out std_logic; + lsm_status_s: out std_logic; + pll_lol: out std_logic; + pll_refclki: in std_logic; + rsl_disable: in std_logic; + rsl_rst: in std_logic; + rsl_rx_rdy: out std_logic; + rsl_tx_rdy: out std_logic; + rst_dual_c: in std_logic; + rx_cdr_lol_s: out std_logic; + rx_los_low_s: out std_logic; + rx_pcs_rst_c: in std_logic; + rx_pwrup_c: in std_logic; + rx_serdes_rst_c: in std_logic; + rxrefclk: in std_logic; + sci_en: in std_logic; + sci_en_dual: in std_logic; + sci_int: out std_logic; + sci_rd: in std_logic; + sci_sel: in std_logic; + sci_sel_dual: in std_logic; + sci_wrn: in std_logic; + serdes_pdb: in std_logic; + serdes_rst_dual_c: in std_logic; + signal_detect_c: in std_logic; + sli_rst: in std_logic; + tx_pclk: out std_logic; + tx_pcs_rst_c: in std_logic; + tx_pwrup_c: in std_logic; + tx_serdes_rst_c: in std_logic; + txi_clk: in std_logic + ); + + end component sgmii_ecp5; -- not_need_bbox=true + + + signal extref_refclko,sli_rst_wire0,gnd : std_logic; +begin + sli_rst_wire0 <= sgmii_ecp5_serdes_rst_dual_c OR sgmii_ecp5_tx_serdes_rst_c OR (NOT sgmii_ecp5_serdes_pdb) OR (NOT sgmii_ecp5_tx_pwrup_c); + extref_inst: component extref port map (refclkn=>extref_refclkn,refclko=>extref_refclko, + refclkp=>extref_refclkp); + sgmii_ecp5_inst: component sgmii_ecp5 port map (rx_cv_err(0)=>sgmii_ecp5_rx_cv_err(0), + rx_disp_err(0)=>sgmii_ecp5_rx_disp_err(0),rx_k(0)=>sgmii_ecp5_rx_k(0), + rxdata(7)=>sgmii_ecp5_rxdata(7),rxdata(6)=>sgmii_ecp5_rxdata(6), + rxdata(5)=>sgmii_ecp5_rxdata(5),rxdata(4)=>sgmii_ecp5_rxdata(4), + rxdata(3)=>sgmii_ecp5_rxdata(3),rxdata(2)=>sgmii_ecp5_rxdata(2), + rxdata(1)=>sgmii_ecp5_rxdata(1),rxdata(0)=>sgmii_ecp5_rxdata(0), + sci_addr(5)=>sgmii_ecp5_sci_addr(5),sci_addr(4)=>sgmii_ecp5_sci_addr(4), + sci_addr(3)=>sgmii_ecp5_sci_addr(3),sci_addr(2)=>sgmii_ecp5_sci_addr(2), + sci_addr(1)=>sgmii_ecp5_sci_addr(1),sci_addr(0)=>sgmii_ecp5_sci_addr(0), + sci_rddata(7)=>sgmii_ecp5_sci_rddata(7),sci_rddata(6)=>sgmii_ecp5_sci_rddata(6), + sci_rddata(5)=>sgmii_ecp5_sci_rddata(5),sci_rddata(4)=>sgmii_ecp5_sci_rddata(4), + sci_rddata(3)=>sgmii_ecp5_sci_rddata(3),sci_rddata(2)=>sgmii_ecp5_sci_rddata(2), + sci_rddata(1)=>sgmii_ecp5_sci_rddata(1),sci_rddata(0)=>sgmii_ecp5_sci_rddata(0), + sci_wrdata(7)=>sgmii_ecp5_sci_wrdata(7),sci_wrdata(6)=>sgmii_ecp5_sci_wrdata(6), + sci_wrdata(5)=>sgmii_ecp5_sci_wrdata(5),sci_wrdata(4)=>sgmii_ecp5_sci_wrdata(4), + sci_wrdata(3)=>sgmii_ecp5_sci_wrdata(3),sci_wrdata(2)=>sgmii_ecp5_sci_wrdata(2), + sci_wrdata(1)=>sgmii_ecp5_sci_wrdata(1),sci_wrdata(0)=>sgmii_ecp5_sci_wrdata(0), + tx_disp_correct(0)=>sgmii_ecp5_tx_disp_correct(0),tx_k(0)=>sgmii_ecp5_tx_k(0), + txdata(7)=>sgmii_ecp5_txdata(7),txdata(6)=>sgmii_ecp5_txdata(6), + txdata(5)=>sgmii_ecp5_txdata(5),txdata(4)=>sgmii_ecp5_txdata(4), + txdata(3)=>sgmii_ecp5_txdata(3),txdata(2)=>sgmii_ecp5_txdata(2), + txdata(1)=>sgmii_ecp5_txdata(1),txdata(0)=>sgmii_ecp5_txdata(0), + xmit(0)=>sgmii_ecp5_xmit(0),ctc_del_s=>sgmii_ecp5_ctc_del_s,ctc_ins_s=>sgmii_ecp5_ctc_ins_s, + ctc_orun_s=>sgmii_ecp5_ctc_orun_s,ctc_urun_s=>sgmii_ecp5_ctc_urun_s, + cyawstn=>sgmii_ecp5_cyawstn,hdinn=>sgmii_ecp5_hdinn,hdinp=>sgmii_ecp5_hdinp, + hdoutn=>sgmii_ecp5_hdoutn,hdoutp=>sgmii_ecp5_hdoutp,lsm_status_s=>sgmii_ecp5_lsm_status_s, + pll_lol=>sgmii_ecp5_pll_lol,pll_refclki=>extref_refclko,rsl_disable=>sgmii_ecp5_rsl_disable, + rsl_rst=>sgmii_ecp5_rsl_rst,rsl_rx_rdy=>sgmii_ecp5_rsl_rx_rdy, + rsl_tx_rdy=>sgmii_ecp5_rsl_tx_rdy,rst_dual_c=>sgmii_ecp5_rst_dual_c, + rx_cdr_lol_s=>sgmii_ecp5_rx_cdr_lol_s,rx_los_low_s=>sgmii_ecp5_rx_los_low_s, + rx_pcs_rst_c=>sgmii_ecp5_rx_pcs_rst_c,rx_pwrup_c=>sgmii_ecp5_rx_pwrup_c, + rx_serdes_rst_c=>sgmii_ecp5_rx_serdes_rst_c,rxrefclk=>extref_refclko, + sci_en=>sgmii_ecp5_sci_en,sci_en_dual=>sgmii_ecp5_sci_en_dual, + sci_int=>sgmii_ecp5_sci_int,sci_rd=>sgmii_ecp5_sci_rd,sci_sel=>sgmii_ecp5_sci_sel, + sci_sel_dual=>sgmii_ecp5_sci_sel_dual,sci_wrn=>sgmii_ecp5_sci_wrn, + serdes_pdb=>sgmii_ecp5_serdes_pdb,serdes_rst_dual_c=>sgmii_ecp5_serdes_rst_dual_c, + signal_detect_c=>sgmii_ecp5_signal_detect_c,sli_rst=>sli_rst_wire0, + tx_pclk=>sgmii_ecp5_tx_pclk,tx_pcs_rst_c=>sgmii_ecp5_tx_pcs_rst_c, + tx_pwrup_c=>sgmii_ecp5_tx_pwrup_c,tx_serdes_rst_c=>sgmii_ecp5_tx_serdes_rst_c, + txi_clk=>sgmii_ecp5_txi_clk); + gnd <= '0' ; + +end architecture GbePcsExtrefclk; -- sbp_module=true + diff --git a/gbe/cores/GbePcsExtrefclk/GbePcsExtrefclk_tmpl.v b/gbe/cores/GbePcsExtrefclk/GbePcsExtrefclk_tmpl.v new file mode 100644 index 0000000..0876ac6 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/GbePcsExtrefclk_tmpl.v @@ -0,0 +1,19 @@ +//Verilog instantiation template + +GbePcsExtrefclk _inst (.extref_refclkn(), .extref_refclkp(), .sgmii_ecp5_rx_cv_err(), + .sgmii_ecp5_rx_disp_err(), .sgmii_ecp5_rx_k(), .sgmii_ecp5_rxdata(), + .sgmii_ecp5_sci_addr(), .sgmii_ecp5_sci_rddata(), .sgmii_ecp5_sci_wrdata(), + .sgmii_ecp5_tx_disp_correct(), .sgmii_ecp5_tx_k(), .sgmii_ecp5_txdata(), + .sgmii_ecp5_xmit(), .sgmii_ecp5_ctc_del_s(), .sgmii_ecp5_ctc_ins_s(), + .sgmii_ecp5_ctc_orun_s(), .sgmii_ecp5_ctc_urun_s(), .sgmii_ecp5_cyawstn(), + .sgmii_ecp5_hdinn(), .sgmii_ecp5_hdinp(), .sgmii_ecp5_hdoutn(), + .sgmii_ecp5_hdoutp(), .sgmii_ecp5_lsm_status_s(), .sgmii_ecp5_pll_lol(), + .sgmii_ecp5_rsl_disable(), .sgmii_ecp5_rsl_rst(), .sgmii_ecp5_rsl_rx_rdy(), + .sgmii_ecp5_rsl_tx_rdy(), .sgmii_ecp5_rst_dual_c(), .sgmii_ecp5_rx_cdr_lol_s(), + .sgmii_ecp5_rx_los_low_s(), .sgmii_ecp5_rx_pcs_rst_c(), .sgmii_ecp5_rx_pwrup_c(), + .sgmii_ecp5_rx_serdes_rst_c(), .sgmii_ecp5_sci_en(), .sgmii_ecp5_sci_en_dual(), + .sgmii_ecp5_sci_int(), .sgmii_ecp5_sci_rd(), .sgmii_ecp5_sci_sel(), + .sgmii_ecp5_sci_sel_dual(), .sgmii_ecp5_sci_wrn(), .sgmii_ecp5_serdes_pdb(), + .sgmii_ecp5_serdes_rst_dual_c(), .sgmii_ecp5_signal_detect_c(), + .sgmii_ecp5_tx_pclk(), .sgmii_ecp5_tx_pcs_rst_c(), .sgmii_ecp5_tx_pwrup_c(), + .sgmii_ecp5_tx_serdes_rst_c(), .sgmii_ecp5_txi_clk()); \ No newline at end of file diff --git a/gbe/cores/GbePcsExtrefclk/extref/extref.cmd b/gbe/cores/GbePcsExtrefclk/extref/extref.cmd new file mode 100644 index 0000000..6dfe979 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/extref/extref.cmd @@ -0,0 +1,18 @@ +PROJECT: extref + working_path: "/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results" + module: extref + verilog_file_list: "/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/extref.vhd" + vlog_std_v2001: true + constraint_file_name: "/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/extref.fdc" + suffix_name: edn + output_file_name: extref + write_prf: true + disable_io_insertion: true + force_gsr: false + frequency: 100 + fanout_limit: 50 + retiming: false + pipe: false + part: LFE5UM-85F + speed_grade: 8 + diff --git a/gbe/cores/GbePcsExtrefclk/extref/extref.fdc b/gbe/cores/GbePcsExtrefclk/extref/extref.fdc new file mode 100644 index 0000000..6fbcac9 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/extref/extref.fdc @@ -0,0 +1,2 @@ +###==== Start Configuration + diff --git a/gbe/cores/GbePcsExtrefclk/extref/extref.lpc b/gbe/cores/GbePcsExtrefclk/extref/extref.lpc new file mode 100644 index 0000000..0365a5c --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/extref/extref.lpc @@ -0,0 +1,31 @@ +[Device] +Family=ecp5um +OperatingCondition=COM +Package=CABGA756 +PartName=LFE5UM-85F-8BG756C +PartType=LFE5UM-85F +SpeedGrade=8 +Status=P +[IP] +CoreName=EXTREF +CoreRevision=1.1 +CoreStatus=Demo +CoreType=LPM +Date=05/13/2019 +ModuleName=extref +ParameterFileVersion=1.0 +SourceFormat=vhdl +Time=09:10:11 +VendorName=Lattice Semiconductor Corporation +[Parameters] +Destination=Synplicity +EDIF=1 +EXTREFDCBIAS=Disabled +EXTREFTERMRES=50 ohms +Expression=BusA(0 to 7) +IO=0 +Order=Big Endian [MSB:LSB] +VHDL=1 +Verilog=0 +[SYSTEMPNR] +EXTREF=DCU1 diff --git a/gbe/cores/GbePcsExtrefclk/extref/extref.ngd b/gbe/cores/GbePcsExtrefclk/extref/extref.ngd new file mode 100644 index 0000000000000000000000000000000000000000..0df76d6f76a9f361c05840a346004fa7d65de336 GIT binary patch literal 2905 zcma)8O>9(E6n^&&?X*;}iHRDG=Bv& zC`8InTc8V#5imX>3cD=A7^R z-gD16)9P}q-luKo*W~FD_EZg&um{clTzuW8{y|OT4)y}l_wMK~heA`3m6oY8abVx{ z#4fOB2FMn7kLPC!ljEBWWBDEtPS%Q>nQSB$AIHnPFA$vq`aocpuPfQm0WJN>!_8+CoPM^?nwDDN0Y z#95>1rK}0(I(gsA`cxPx&+K=bSjmxg@4vX*iXobFquPQfOZAe0#!Jq+Q1MbOYNB#& zv1w9Nj!!()l4OzBaIV)|v^>X040^;@*8u35{~#iC!v}ru%n?Lb%#7sWS@d zxJ$uEG)h#_b`tbaMQ^pJV|Y3aZI6=c$!<%bRmQF^f$7Ma>9~~$+mOEI0uX6)FlrB@ zWyU@!D?VdpAw6OE(qSj{Y%CEW=K7dD%(j_p=-9)|WUe6}cG8RlY`&p0?8KrGE1Ypm z*cKm@x~Z+(GFFu7jD4KaG_6yu$Cju_i=ag~6H(W(PaBkl z^2pde?NS!Xvmf3e&T}{Z?vWHe*5EHF85w*vM)ionyg(fFiFpvGT_AHV2#QV+Au$gG zbz+AFn2Wp;Q-)0Kg*~r)+l>I&3X4lES!hCo3foZF?tsjITHx4d*b}|27@G~)l8@?ITO}$t54HJQ?fZkYap+GI-2dK_bJVyB0s;dqH$a>BdoMrz28=sJrRICr)kuoU zkH{3ol*>g_{zhppcvbOLSZ}ED;Q5sz-ww*e*nQmm|1XufE8lzwqaaKWSQgHYQ(0M* zFR3CpE4}OoMqu&e0#T2>;(>lDXdEb0k*V<4%})hu@(xwG`P;*F7=bt09A5g{}teoA1=NLwbiJN%VIZABY-L-1&sh+A&K2Nz-aBGs==c72Q9 z)M*4z#1BmrJk&i#|0p5 z*v|KL{aH%LQ9!=+Vt=r;4cb)8wpDV9&IWkU=dxWf^UdnD8~F+(Q#lOBEV`!WT2-^* z7OQnElp@BK&6Z`Dpvauo82;$zrH5&zW_5s4#JpGDZNEqSWg#Dbqt7ubhAo+=vkESH zgKo#`?hW_79veHgnO5MCFQP%Enzj{`FEzKhOs zYHSGUh7d(8vd>f1=R7DSZch4K*Ee%md+P&h`X={#5CZdA!JAbGKbg4zi$u9BzGP>W zMF7UZ9JE8Gg5sApChr4r{?a#SJ+pCeD43(o>b<)vg5c4RO3KL!F(5^;AQsWRYYW#av&#< zKBpw)hx7R0b3Q_zh4D4vWbi`a!DXj-1LTQ^tZoiSGH4E2-5#aIgQli#oYLY!qfhm) StOA(iSr|(!rx0471b+Y^8r{nP literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/extref/extref.vhd b/gbe/cores/GbePcsExtrefclk/extref/extref.vhd new file mode 100644 index 0000000..f65248a --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/extref/extref.vhd @@ -0,0 +1,40 @@ + +-- +-- Verific VHDL Description of module EXTREFB +-- + +-- EXTREFB is a black-box. Cannot print a valid VHDL entity description for it + +-- +-- Verific VHDL Description of module extref +-- + +library ieee ; +use ieee.std_logic_1164.all ; + +library ecp5um ; +use ecp5um.components.all ; + +entity extref is + port (refclkp: in std_logic; + refclkn: in std_logic; + refclko: out std_logic + ); + +end entity extref; + +architecture v1 of extref is + signal n2,n1,gnd,pwr : std_logic; + attribute LOC : string; + attribute LOC of EXTREF1_inst : label is "EXTREF1"; +begin + EXTREF1_inst: component EXTREFB generic map (REFCK_PWDNB=>"0b1",REFCK_RTERM=>"0b1", + REFCK_DCBIAS_EN=>"0b0") + port map (REFCLKP=>refclkp,REFCLKN=>refclkn,REFCLKO=>refclko); + n2 <= '1' ; + n1 <= '0' ; + gnd <= '0' ; + pwr <= '1' ; + +end architecture v1; + diff --git a/gbe/cores/GbePcsExtrefclk/extref/extref_ngd.asd b/gbe/cores/GbePcsExtrefclk/extref/extref_ngd.asd new file mode 100644 index 0000000..c265c78 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/extref/extref_ngd.asd @@ -0,0 +1 @@ +[ActiveSupport NGD] diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/.recordref b/gbe/cores/GbePcsExtrefclk/extref/syn_results/.recordref new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/_CMD_.CML b/gbe/cores/GbePcsExtrefclk/extref/syn_results/_CMD_.CML new file mode 100644 index 0000000..59e765e --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/extref/syn_results/_CMD_.CML @@ -0,0 +1 @@ + -osyn /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/synwork/extref_comp.srs -top extref -hdllog /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/synlog/extref_compiler.srr -encrypt -mp 4 -verification_mode 0 -vhdl -prodtype synplify_pro -dspmac -fixsmult -infer_seqShift -nram -sdff_counter -divnmod -nostructver -encrypt -pro -dmgen /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/dm -lite -ui -fid2 -ram -sharing on -ll 2000 -autosm -ignore_undefined_lib -lib work /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/extref.vhd -jobname "compiler" \ No newline at end of file diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/_cmd._cml b/gbe/cores/GbePcsExtrefclk/extref/syn_results/_cmd._cml new file mode 100644 index 0000000..840870f --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/extref/syn_results/_cmd._cml @@ -0,0 +1 @@ +-link -encrypt -top extref -osyn /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/synwork/extref_comp.srs /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/synwork/layer0.srs \ No newline at end of file diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/dm/layer0.xdm b/gbe/cores/GbePcsExtrefclk/extref/syn_results/dm/layer0.xdm new file mode 100644 index 0000000..6d7c478 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/extref/syn_results/dm/layer0.xdm @@ -0,0 +1,79 @@ +%%% protect protected_file +@EG +- +]17p0Osk0CksRsPC#MHF=3"4j +"> +!S<-1-RFOksCHRVDRC#O0FMskHL0oHMRR0F0REC8HC#o-MR-S> +S +SS1SS1SS +SS1SS1SS1S +SF<1kCsOR"b=/lEFCF/#VD0/NH00O8C/HFNlMd8/3_4jG/nc#b$MLCN#/LDH/8PE/bE$CMsC0P#3ER8"N(=""=RD"8PEDO"RD0H#=4"-"DRbH=#0""-4/S> +SF<1kCsOR"b=/lEFC8/NsMHN/0oH/L0s6/#O0bClDCN0/Fbs[0CO/CtLu O#GC0sV OD/0CGs/CVCsG0CPV3ER8"NU=""=RD"8PEDO"RD0H#=4"-"DRbH=#0""-4/S> +SF<1kCsOR"b=/lEFCF/#VD0/NH00O8C/HFNlMd8/3_4jG/nc#b$MLCN#/LDH/ODkC/M0C6ObkPl3ER8"Ng=""=RD"8PEDO"RD0H#=4"-"DRbH=#0""-4/S> + +S-< +S)0FFR"M=I Fs30CGs3CVP/4"> + + + +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMC="Okb6lX3 aw) A$3#MD_LN_O L"FGR"D=PDE8"S> +SRR/ +SqSS +S"/ +S +S"/ + +SRS +SS +SS +SS +S"/ +S +SS +SS +S"/ +"/ +SqS"/ +"/ + + +/S<7>CV +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMI="F3s CsG0CPV34D"R=E"P8>D" +S +S"/ +S +SS +SS +SSqS +SR + + +SC<)V=RM"bCO63kl )Xa 3wA#_$MLODN F_LGH"R=X" aw) 4M_H#>0" +SSS +SqS +SqS +SqS +SqS +SqS +S)S7<7/]ps10kkO0s +C>@ + + diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.areasrr b/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.areasrr new file mode 100644 index 0000000..7038b76 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.areasrr @@ -0,0 +1,15 @@ +---------------------------------------------------------------------- +Report for cell extref.v1 + +Register bits: 0 of 24288 (0%) +PIC Latch: 0 +I/O cells: 0 + Cell usage: + cell count Res Usage(%) + EXTREFB 1 100.0 + GSR 1 100.0 + PUR 1 100.0 + VHI 1 100.0 + VLO 1 100.0 + + TOTAL 5 diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.fse b/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.fse new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.htm b/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.htm new file mode 100644 index 0000000..80016ba --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.htm @@ -0,0 +1,9 @@ + + + syntmp/extref_srr.htm log file + + + + + + diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.prj b/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.prj new file mode 100644 index 0000000..c373cbc --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.prj @@ -0,0 +1,46 @@ +#-- Lattice Semiconductor Corporation Ltd. +#-- Synplify OEM project file /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/extref.prj +#-- Written on Mon May 13 09:10:13 2019 + + +#device options +set_option -technology ecp5um +set_option -part LFE5UM-85F +set_option -speed_grade 8 + +#use verilog 2001 standard option +set_option -vlog_std v2001 + +#map options +set_option -frequency 100 +set_option -fanout_limit 50 +set_option -disable_io_insertion true +set_option -retiming false +set_option -pipe false +set_option -pipe false +set_option -force_gsr false + +#simulation options +set_option -write_verilog true +set_option -write_vhdl true + +#timing analysis options + +#automatic place and route (vendor) options +set_option -write_apr_constraint 1 + +#-- add_file options +add_file -vhdl -lib work "/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/extref.vhd" +add_file -constraint {"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/extref.fdc"} + +#-- top module name +set_option -top_module extref + +#-- set result format/file last +project -result_file "extref.edn" + +#-- error message log file +project -log_file extref.srf + +#-- run Synplify with 'arrange VHDL file' +project -run diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.srd b/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.srd new file mode 100644 index 0000000000000000000000000000000000000000..d6fab21c1174f4c16dd7f88b20307df52523528e GIT binary patch literal 3132 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 Wa!}v`00030{{sMEAxX(|82|uK3Npn2 literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.srf b/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.srf new file mode 100644 index 0000000..9224860 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.srf @@ -0,0 +1,333 @@ +#Build: Synplify Pro (R) M-2017.03L-SP1-1, Build 086R, Aug 4 2017 +#install: /home/soft/lattice/diamond/3.10_x64/synpbase +#OS: Linux +#Hostname: lxhadeb07 + +# Mon May 13 09:10:13 2019 + +#Implementation: syn_results + +Synopsys HDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Synopsys VHDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/extref.vhd":18:7:18:12|Top entity is set to extref. +VHDL syntax check successful! +@N: CD630 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/extref.vhd":18:7:18:12|Synthesizing work.extref.v1. +@N: CD630 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":2147:10:2147:16|Synthesizing ecp5um.extrefb.syn_black_box. +Post processing for ecp5um.extrefb.syn_black_box +Post processing for work.extref.v1 + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 70MB peak: 71MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Mon May 13 09:10:14 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 67MB peak: 68MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Mon May 13 09:10:14 2019 + +###########################################################] +@END + +At c_hdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 3MB peak: 4MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Mon May 13 09:10:14 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 67MB peak: 68MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Mon May 13 09:10:15 2019 + +###########################################################] +Pre-mapping Report + +# Mon May 13 09:10:15 2019 + +Synopsys Lattice Technology Pre-mapping, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 100MB) + +Reading constraint file: /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/extref.fdc +@L: /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/extref_scck.rpt +Printing clock summary report in "/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/extref_scck.rpt" file +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 112MB peak: 113MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 112MB peak: 115MB) + +ICG Latch Removal Summary: +Number of ICG latches removed: 0 +Number of ICG latches not removed: 0 +syn_allowed_resources : blockrams=56 set on top level netlist extref + +Finished netlist restructuring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 142MB) + + + +Clock Summary +****************** + + Start Requested Requested Clock Clock Clock +Level Clock Frequency Period Type Group Load +------------------------------------------------------------------------- +========================================================================= + +Finished Pre Mapping Phase. + +Starting constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 142MB) + + +Finished constraint checker preprocessing (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 142MB) + +None +None + +Finished constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 142MB) + +Pre-mapping successful! + +At Mapper Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 56MB peak: 142MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime +# Mon May 13 09:10:16 2019 + +###########################################################] +Map & Optimize Report + +# Mon May 13 09:10:16 2019 + +Synopsys Lattice Technology Mapper, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 100MB) + +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 113MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 115MB) + + + +Starting Optimization and Mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Available hyper_sources - for debug and ip models + None Found + + +Finished RTL optimizations (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Starting factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Finished factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Starting gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Finished gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Finished generic timing optimizations - Pass 1 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Starting Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished generic timing optimizations - Pass 2 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Finished preparing to map (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Finished technology mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + +Pass CPU time Worst Slack Luts / Registers +------------------------------------------------------------ + +Finished technology timing optimizations and critical path resynthesis (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + +@N: FX164 |The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute. + +Finished restoring hierarchy (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + + +@S |Clock Optimization Summary + + +#### START OF CLOCK OPTIMIZATION REPORT #####[ + +0 non-gated/non-generated clock tree(s) driving 0 clock pin(s) of sequential element(s) +0 gated/generated clock tree(s) driving 0 clock pin(s) of sequential element(s) +0 instances converted, 0 sequential instances remain driven by gated/generated clocks + + + +##### END OF CLOCK OPTIMIZATION REPORT ######] + + +Start Writing Netlists (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 106MB peak: 143MB) + +Writing Analyst data base /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/synwork/extref_m.srm + +Finished Writing Netlist Databases (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 139MB peak: 143MB) + +Writing EDIF Netlist and constraint files +@N: FX1056 |Writing EDF file: /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/extref.edn +M-2017.03L-SP1-1 +@N: BW106 |Synplicity Constraint File capacitance units using default value of 1pF + +Finished Writing EDIF Netlist and constraint files (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 144MB peak: 146MB) + +Writing Verilog Simulation files + +Finished Writing Verilog Simulation files (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 144MB peak: 146MB) + +Writing VHDL Simulation files + +Finished Writing VHDL Simulation files (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 144MB peak: 146MB) + + +Start final timing analysis (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 145MB peak: 146MB) + +@W: MT246 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/extref.vhd":31:4:31:15|Blackbox EXTREFB is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) + + +##### START OF TIMING REPORT #####[ +# Timing Report written on Mon May 13 09:10:18 2019 +# + + +Top view: extref +Requested Frequency: 100.0 MHz +Wire load mode: top +Paths requested: 5 +Constraint File(s): /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/extref.fdc + +@N: MT320 |This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. + +@N: MT322 |Clock constraints include only register-to-register paths associated with each individual clock. + + + +Performance Summary +******************* + + +Worst slack in design: NA + + Requested Estimated Requested Estimated Clock Clock +Starting Clock Frequency Frequency Period Period Slack Type Group +--------------------------------------------------------------------------------------------------------------- +System 100.0 MHz NA 10.000 NA NA system system_clkgroup +=============================================================================================================== +Estimated period and frequency reported as NA means no slack depends directly on the clock waveform + + + + + +Clock Relationships +******************* + +Clocks | rise to rise | fall to fall | rise to fall | fall to rise +-------------------------------------------------------------------------------------------------------- +Starting Ending | constraint slack | constraint slack | constraint slack | constraint slack +-------------------------------------------------------------------------------------------------------- +======================================================================================================== + Note: 'No paths' indicates there are no paths in the design for that pair of clock edges. + 'Diff grp' indicates that paths exist but the starting clock and ending clock are in different clock groups. + + + +Interface Information +********************* + +No IO constraint found + + +##### END OF TIMING REPORT #####] + +Timing exceptions that could not be applied +None + +Finished final timing analysis (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 145MB peak: 146MB) + + +Finished timing report (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 145MB peak: 146MB) + +--------------------------------------- +Resource Usage Report +Part: lfe5um_25f-6 + +Register bits: 0 of 24288 (0%) +PIC Latch: 0 +I/O cells: 0 + + +Details: +EXTREFB: 1 +GSR: 1 +PUR: 1 +VHI: 1 +VLO: 1 +Mapper successful! + +At Mapper Exit (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 33MB peak: 146MB) + +Process took 0h:00m:02s realtime, 0h:00m:02s cputime +# Mon May 13 09:10:18 2019 + +###########################################################] diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.srm b/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.srm new file mode 100644 index 0000000000000000000000000000000000000000..4b18ebfd35ab7c1b496943cbf65067c88610abeb GIT binary patch literal 3159 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.srr b/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.srr new file mode 100644 index 0000000..9224860 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.srr @@ -0,0 +1,333 @@ +#Build: Synplify Pro (R) M-2017.03L-SP1-1, Build 086R, Aug 4 2017 +#install: /home/soft/lattice/diamond/3.10_x64/synpbase +#OS: Linux +#Hostname: lxhadeb07 + +# Mon May 13 09:10:13 2019 + +#Implementation: syn_results + +Synopsys HDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Synopsys VHDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/extref.vhd":18:7:18:12|Top entity is set to extref. +VHDL syntax check successful! +@N: CD630 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/extref.vhd":18:7:18:12|Synthesizing work.extref.v1. +@N: CD630 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":2147:10:2147:16|Synthesizing ecp5um.extrefb.syn_black_box. +Post processing for ecp5um.extrefb.syn_black_box +Post processing for work.extref.v1 + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 70MB peak: 71MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Mon May 13 09:10:14 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 67MB peak: 68MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Mon May 13 09:10:14 2019 + +###########################################################] +@END + +At c_hdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 3MB peak: 4MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Mon May 13 09:10:14 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 67MB peak: 68MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Mon May 13 09:10:15 2019 + +###########################################################] +Pre-mapping Report + +# Mon May 13 09:10:15 2019 + +Synopsys Lattice Technology Pre-mapping, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 100MB) + +Reading constraint file: /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/extref.fdc +@L: /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/extref_scck.rpt +Printing clock summary report in "/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/extref_scck.rpt" file +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 112MB peak: 113MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 112MB peak: 115MB) + +ICG Latch Removal Summary: +Number of ICG latches removed: 0 +Number of ICG latches not removed: 0 +syn_allowed_resources : blockrams=56 set on top level netlist extref + +Finished netlist restructuring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 142MB) + + + +Clock Summary +****************** + + Start Requested Requested Clock Clock Clock +Level Clock Frequency Period Type Group Load +------------------------------------------------------------------------- +========================================================================= + +Finished Pre Mapping Phase. + +Starting constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 142MB) + + +Finished constraint checker preprocessing (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 142MB) + +None +None + +Finished constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 142MB) + +Pre-mapping successful! + +At Mapper Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 56MB peak: 142MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime +# Mon May 13 09:10:16 2019 + +###########################################################] +Map & Optimize Report + +# Mon May 13 09:10:16 2019 + +Synopsys Lattice Technology Mapper, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 100MB) + +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 113MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 115MB) + + + +Starting Optimization and Mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Available hyper_sources - for debug and ip models + None Found + + +Finished RTL optimizations (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Starting factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Finished factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Starting gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Finished gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Finished generic timing optimizations - Pass 1 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Starting Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished generic timing optimizations - Pass 2 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Finished preparing to map (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Finished technology mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + +Pass CPU time Worst Slack Luts / Registers +------------------------------------------------------------ + +Finished technology timing optimizations and critical path resynthesis (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + +@N: FX164 |The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute. + +Finished restoring hierarchy (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + + +@S |Clock Optimization Summary + + +#### START OF CLOCK OPTIMIZATION REPORT #####[ + +0 non-gated/non-generated clock tree(s) driving 0 clock pin(s) of sequential element(s) +0 gated/generated clock tree(s) driving 0 clock pin(s) of sequential element(s) +0 instances converted, 0 sequential instances remain driven by gated/generated clocks + + + +##### END OF CLOCK OPTIMIZATION REPORT ######] + + +Start Writing Netlists (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 106MB peak: 143MB) + +Writing Analyst data base /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/synwork/extref_m.srm + +Finished Writing Netlist Databases (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 139MB peak: 143MB) + +Writing EDIF Netlist and constraint files +@N: FX1056 |Writing EDF file: /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/extref.edn +M-2017.03L-SP1-1 +@N: BW106 |Synplicity Constraint File capacitance units using default value of 1pF + +Finished Writing EDIF Netlist and constraint files (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 144MB peak: 146MB) + +Writing Verilog Simulation files + +Finished Writing Verilog Simulation files (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 144MB peak: 146MB) + +Writing VHDL Simulation files + +Finished Writing VHDL Simulation files (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 144MB peak: 146MB) + + +Start final timing analysis (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 145MB peak: 146MB) + +@W: MT246 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/extref.vhd":31:4:31:15|Blackbox EXTREFB is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) + + +##### START OF TIMING REPORT #####[ +# Timing Report written on Mon May 13 09:10:18 2019 +# + + +Top view: extref +Requested Frequency: 100.0 MHz +Wire load mode: top +Paths requested: 5 +Constraint File(s): /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/extref.fdc + +@N: MT320 |This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. + +@N: MT322 |Clock constraints include only register-to-register paths associated with each individual clock. + + + +Performance Summary +******************* + + +Worst slack in design: NA + + Requested Estimated Requested Estimated Clock Clock +Starting Clock Frequency Frequency Period Period Slack Type Group +--------------------------------------------------------------------------------------------------------------- +System 100.0 MHz NA 10.000 NA NA system system_clkgroup +=============================================================================================================== +Estimated period and frequency reported as NA means no slack depends directly on the clock waveform + + + + + +Clock Relationships +******************* + +Clocks | rise to rise | fall to fall | rise to fall | fall to rise +-------------------------------------------------------------------------------------------------------- +Starting Ending | constraint slack | constraint slack | constraint slack | constraint slack +-------------------------------------------------------------------------------------------------------- +======================================================================================================== + Note: 'No paths' indicates there are no paths in the design for that pair of clock edges. + 'Diff grp' indicates that paths exist but the starting clock and ending clock are in different clock groups. + + + +Interface Information +********************* + +No IO constraint found + + +##### END OF TIMING REPORT #####] + +Timing exceptions that could not be applied +None + +Finished final timing analysis (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 145MB peak: 146MB) + + +Finished timing report (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 145MB peak: 146MB) + +--------------------------------------- +Resource Usage Report +Part: lfe5um_25f-6 + +Register bits: 0 of 24288 (0%) +PIC Latch: 0 +I/O cells: 0 + + +Details: +EXTREFB: 1 +GSR: 1 +PUR: 1 +VHI: 1 +VLO: 1 +Mapper successful! + +At Mapper Exit (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 33MB peak: 146MB) + +Process took 0h:00m:02s realtime, 0h:00m:02s cputime +# Mon May 13 09:10:18 2019 + +###########################################################] diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.srr.db b/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.srr.db new file mode 100644 index 0000000000000000000000000000000000000000..0a4a135beee268828ee0954ae1e77e9d60ad9b19 GIT binary patch literal 8192 zcmeH~QE%f!5XX~H+H0@r0a8_=Q>9T~u9dEFoTO=$3LR}PsgUkOuZ?sk5Q;YTI9X!v zTHbY9m%gM=h!4Og;Bz3}c;G|a=eRd!ZKuca0s-EmeZ~n8gFJ3(38o`rM zz%(>VAC$`F(x(8WQfYyX3LW!Srj8k#H*@_*ZK1UL=G!XGDnIzHM8BdH1PTHLfr3Cm zpde5XC-{lTpn1T>h%AIM(m(@D04f@#B|&-+`piKZbRm*44Y^FS8uVlY z9v8I!-SaB;wR#M(LeOJ`-r4C9Oi{Qr^Y?3H#&V}_%lGeX%non&9ukU1tG#87Wq=lQ zBhG|1;@Z;Da8Egw#();mXoZpd8Xaw&4)M%U-76iT=lBx~(_Vh6O~>w5r)hUu=Fi?c zrZ^@;c?I29{qt_`*n}EzrA+Y5cpZU?!_emhGLI>cF8Vb{F$FAvF`E(z5IAC*Qx`pt z+@K82A7BI|Q7J*gXw@Sny%0im6M^|LV<9jBsi`00#)hAsTEQXjQ{gUM8 zYBqvTb@SQh#{^m#=V6E_K!xaVkJ3_uGanhrOQ8m1l#<4!=K<3?;zJT=4f2?iC1dtW z(s{4lZr>Hx6eDGfqcGoTwBYuM3<9I=En0JsySD4`s{y4L-2vSij8I^dUZtg^z}}ks znhP=ISlh`W-d2jn=_=EKGvU{B~=1$Tb*E<-$+i|CgLhUT-h_IVY3Xvk%`} z+L-OL^~%Z9cC(%rr;?tws1`MM&~iBoq;Rcf&8`ow+AWK66Amd+md}TlA3G?tg-*B^ z2U$@z?ACtAu6MF?`-b#RJBH%d230;WtL0(M&mNr`KlU4cfemd@meOuU#cnh+!%YHnbAbex UaL^utR3u9J@m<|0qqJoCS8{Y-9RL6T literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.srs b/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.srs new file mode 100644 index 0000000000000000000000000000000000000000..8be0fe905e2922b1fc3486053f14dc52eb13106e GIT binary patch literal 2126 zcmV-U2(kAciwFP!0000019VbfYuhjof6u2l5&|0}QQSB+$;7_>n$6 zK(>PAW}7Xy*&42v*+#mb2iI9L!~?iLgO=PYh8a{nSx)0O{Q)3P6U9PCcD@?|9U6u& zyRVRKHu*f25|r=a5NB}b%mQ8-iXUeX{hp6HAZS;Ewia}Z-jEjQPG}|R?Kt&wgTNTtcxg4>)s&zk_&w;4V8k}MD2fgN zG4aEZxcN+WBU-%xhD0-ifTFGLO~RW&>ucJR(Qi8+pq2mwRsF?@uq7q`W+08J@ZSg| zxCCQZ{0Ut{6-m<~UGHe}@c44~aR0m=pXceO&U5zNdEWMxDTX*6O?E$@wqw=!7FA+Y zRx^uLRg-Qd3bk5f%kp%ct0;G0>4-{j`ctXPx3kj8Tax(3@=Wrp?7Aq5{4Z2p2hvU* zh!uxw9gSjaJE1`(YJbUlRNpInH1YPt0r$qfD!i;N=mDc>jcI-K;k{HE-*$^+Kv>sB zvC8r+AAP(14FCZD|728MZ{sQueXf56f=XSht6W#0B*HIAATBEfoX$hqHx%#f*0G&9 z5lW-}`wP_FZTI?R#=|flXU>4$p3_&3FPA%eq?WNaoJ=@6WA~%Dx~C%BI6?86@p~L~ zE4wyxlo0QC$9G4ZiF;?orpsDs332}jawQ9q>A~lL*O&kK$c+*krHjD_CH3U_wLT#M zH)UImyC;gamlVyfDbdodj4iKLH^qGp@V5S;1b~`0b@F_IS9J5a&YLy+?86|@Gd_D6 zePcg4XHAsA4p5153~h(fr!9iZoY-r zVmd%Lz1YR>Tt80c2%?^*Tl6~UlZVCpgzjve;F!BIzR+rWEieJ1GN+;c{zc|JPQa|G zmZo=SV@y|fAPDyOF3vmqIG@xI^mJ#puPBZBWM>zr`NLgpQLO#%+!Mh2MZG=Y6vg^K z-{0d&ecCS49L2op0$p~G_B?@lj_b*On=VdhsNF1Gxe-c2@)G~MwwOxK4EZ7;#&xt% zu0NG#S%(>XnbQy>*jh)#iml%7NLq^4=qj^B*lLss)j`wHCVZin5CTV`hlvepvLVnCR*p}9iw$P<^Br`(ksj$6P!j(C&(Ce4_2HPKA*=nk6rBlG@ zc=1C$e~&V+-{(^)V%YS(2TiW+N-8T$A%{3L*jz_^QzQ%g54{ke*HT+0^p*2A9C%F! zUemvL{RuB!w%w8#2cw_=#(ZIav~Y$=$RSa2XAW%4M+eUM_`uQ;A8Ljule3Sdz}ZX| zy;B~}ci!$6$Ft9)W-xnUd^BbUJ`OU(K|G$`UNLeca(9PvB)X zA(K~00960N-Igt$+6~ga0LJW0RR7dlfiD=I1q-<(o+az4iOfyScpgk2>~1rP1A)) zc_)xIzy=^J8;vcibqY51VX^PN6q6Ram(^uNa>)Oi`N_G)Id99hEU&qbvo)eb7lB(b z*mTHE75k7&<3<6t5k}~d0EYFdBQcr{wO6{Qk}9YLL)nKt3UgX)mZCyF<>Xe;jaU{K z^UCBKG)vcXpajNk7>_4e2nC&J0jo`H(B)FO^S8z<50l=e;z29d^varU?AJ&p&Zi~G zWHy3Pg)?WJDaJBK>)Qr0Hkw|r9x?~=&*nSJ>IPmZOIEJ&IuK>HgEFTuFBx z4+a29(2mL5S-yWGrOq-6YAD|77kMY?+A=T<&0oO-Vdc8-o%C3y2ce3ey_KCRD@Uif7o}?rvZQE!?z)ftv&wj>Nz&O$e`lgNFo zL{%}i^LbhFXU>Q6`D@8b??cmz2;XC+{Mjsb!da=jxzjxe-jS%UFjn(&-p<;gEX&!z z-L3@DHIdU8Vyr!bLf=#&&rW$eM+D-!s1e%tUCwdd@^V(r+LG_ywdK3E{9kS9wcVt> z-*KYFl+eH! zHMXd!G8RFHF|*FokKuo9`vP@6-E;K?Uls|H$7Gvc-rkp*bdG=6*N=F(CwzFzOEA6I z#W78{$&Ud^{qNj`{doW3_iq-H0~vgNT*dJ}00030|Kf5`-~s>u0RR6302no1qy`ND E02AsjBme*a literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.vhm b/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.vhm new file mode 100644 index 0000000..d1e4544 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.vhm @@ -0,0 +1,54 @@ +-- +-- Written by Synplicity +-- Product Version "M-2017.03L-SP1-1" +-- Program "Synplify Pro", Mapper "maplat, Build 1796R" +-- Mon May 13 09:10:18 2019 +-- + +-- +-- Written by Synplify Pro version Build 1796R +-- Mon May 13 09:10:18 2019 +-- + +-- +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; +library synplify; +use synplify.components.all; +library pmi; +use pmi.pmi_components.all; +library ecp5um; +use ecp5um.components.all; + +entity extref is +port( + refclkp : in std_logic; + refclkn : in std_logic; + refclko : out std_logic); +end extref; + +architecture beh of extref is + signal GND : std_logic ; + signal VCC : std_logic ; +begin +GND_0: VLO port map ( + Z => GND); +VCC_0: VHI port map ( + Z => VCC); +PUR_INST: PUR port map ( + PUR => VCC); +GSR_INST: GSR port map ( + GSR => VCC); +EXTREF1_INST: EXTREFB + generic map( + REFCK_PWDNB => "0b1", + REFCK_RTERM => "0b1", + REFCK_DCBIAS_EN => "0b0" + ) + port map ( + REFCLKP => refclkp, + REFCLKN => refclkn, + REFCLKO => refclko); +end beh; + diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.vm b/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.vm new file mode 100644 index 0000000..aa10424 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref.vm @@ -0,0 +1,59 @@ +// +// Written by Synplify Pro +// Product Version "M-2017.03L-SP1-1" +// Program "Synplify Pro", Mapper "maplat, Build 1796R" +// Mon May 13 09:10:18 2019 +// +// Source file index table: +// Object locations will have the form : +// file 0 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd " +// file 1 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/snps_haps_pkg.vhd " +// file 2 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std1164.vhd " +// file 3 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/numeric.vhd " +// file 4 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/umr_capim.vhd " +// file 5 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/arith.vhd " +// file 6 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/unsigned.vhd " +// file 7 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/hyperents.vhd " +// file 8 "\/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/extref.vhd " +// file 9 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd " +// file 10 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/nlconst.dat " +// file 11 "\/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/extref.fdc " + +`timescale 100 ps/100 ps +module extref ( + refclkp, + refclkn, + refclko +) +; +input refclkp ; +input refclkn ; +output refclko ; +wire refclkp ; +wire refclkn ; +wire refclko ; +wire GND ; +wire VCC ; + VLO GND_0 ( + .Z(GND) +); + VHI VCC_0 ( + .Z(VCC) +); + PUR PUR_INST ( + .PUR(VCC) +); + GSR GSR_INST ( + .GSR(VCC) +); +// @8:31 +(* LOC="EXTREF1" *) EXTREFB EXTREF1_inst ( + .REFCLKP(refclkp), + .REFCLKN(refclkn), + .REFCLKO(refclko) +); +defparam EXTREF1_inst.REFCK_PWDNB = "0b1"; +defparam EXTREF1_inst.REFCK_RTERM = "0b1"; +defparam EXTREF1_inst.REFCK_DCBIAS_EN = "0b0"; +endmodule /* extref */ + diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref_cck.rpt.db b/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref_cck.rpt.db new file mode 100644 index 0000000000000000000000000000000000000000..029fa7a6cf9014af50ee9d4aa843536a1f7b5c42 GIT binary patch literal 8192 zcmeI#JqyA>3DEQgKL*xDXO@ z%d=&(imfwzIG4G0Jf%J073BwWN1`{~f``Krs^Nta{J wY>_tId!-qqw)j}S$WL3iQGJ`s(T{)t1Rwwb2tWV=5P$##AOHafK;VZ3UKAiP82|tP literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref_scck.rpt.db b/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref_scck.rpt.db new file mode 100644 index 0000000000000000000000000000000000000000..029fa7a6cf9014af50ee9d4aa843536a1f7b5c42 GIT binary patch literal 8192 zcmeI#JqyA>3DEQgKL*xDXO@ z%d=&(imfwzIG4G0Jf%J073BwWN1`{~f``Krs^Nta{J wY>_tId!-qqw)j}S$WL3iQGJ`s(T{)t1Rwwb2tWV=5P$##AOHafK;VZ3UKAiP82|tP literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref_synplify.lpf b/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref_synplify.lpf new file mode 100644 index 0000000..8e445e1 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref_synplify.lpf @@ -0,0 +1,20 @@ +# +# Logical Preferences generated for Lattice by Synplify maplat, Build 1796R. +# + +# Period Constraints + + +# Output Constraints + +# Input Constraints + +# Point-to-point Delay Constraints + + + +# Block Path Constraints + +BLOCK ASYNCPATHS; + +# End of generated Logical Preferences. diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref_synplify_tmp2.lpf b/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref_synplify_tmp2.lpf new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref_synplify_tmp4.lpf b/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref_synplify_tmp4.lpf new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref_synplify_tmp8.lpf b/gbe/cores/GbePcsExtrefclk/extref/syn_results/extref_synplify_tmp8.lpf new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/run_options.txt b/gbe/cores/GbePcsExtrefclk/extref/syn_results/run_options.txt new file mode 100644 index 0000000..1343a58 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/extref/syn_results/run_options.txt @@ -0,0 +1,75 @@ +#-- Synopsys, Inc. +#-- Version M-2017.03L-SP1-1 +#-- Project file /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/run_options.txt +#-- Written on Mon May 13 09:10:13 2019 + + +#project files +add_file -vhdl -lib work "/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/extref.vhd" +add_file -fpga_constraint "/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/extref.fdc" + + + +#implementation: "syn_results" +impl -add syn_results -type fpga + +# +#implementation attributes + +set_option -vlog_std v2001 + +#device options +set_option -technology ecp5um +set_option -part LFE5UM_25F +set_option -package MG285C +set_option -speed_grade -6 +set_option -part_companion "" + +#compilation/mapping options +set_option -top_module "extref" + +# hdl_compiler_options +set_option -distributed_compile 0 + +# mapper_without_write_options +set_option -frequency 100 +set_option -srs_instrumentation 1 + +# mapper_options +set_option -write_verilog 1 +set_option -write_vhdl 1 + +# Lattice XP +set_option -maxfan 50 +set_option -disable_io_insertion 1 +set_option -retiming 0 +set_option -pipe 0 +set_option -forcegsr false +set_option -fix_gated_and_generated_clocks 1 +set_option -rw_check_on_ram 1 +set_option -update_models_cp 0 +set_option -syn_edif_array_rename 1 +set_option -Write_declared_clocks_only 1 + +# NFilter +set_option -no_sequential_opt 0 + +# sequential_optimization_options +set_option -symbolic_fsm_compiler 1 + +# Compiler Options +set_option -compiler_compatible 0 +set_option -resource_sharing 1 + +# Compiler Options +set_option -auto_infer_blackbox 0 + +#automatic place and route (vendor) options +set_option -write_apr_constraint 1 + +#set result format/file last +project -result_file "./extref.edn" + +#set log file +set_option log_file "/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/extref.srf" +impl -active "syn_results" diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/scemi_cfg.txt b/gbe/cores/GbePcsExtrefclk/extref/syn_results/scemi_cfg.txt new file mode 100644 index 0000000..868d437 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/extref/syn_results/scemi_cfg.txt @@ -0,0 +1,3 @@ +## UMR3 MESSAGE PORT CONFIGURATION FILE +## ************************************ +XTOR_DPI_MSG_PORT_UMR_ADDR_VERSION=0 diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/scratchproject.prs b/gbe/cores/GbePcsExtrefclk/extref/syn_results/scratchproject.prs new file mode 100644 index 0000000..6a93ebc --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/extref/syn_results/scratchproject.prs @@ -0,0 +1,73 @@ +#-- Synopsys, Inc. +#-- Version M-2017.03L-SP1-1 +#-- Project file /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/scratchproject.prs + +#project files +add_file -vhdl -lib work "/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/extref.vhd" +add_file -fpga_constraint "/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/extref.fdc" + + + +#implementation: "syn_results" +impl -add /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results -type fpga + +# +#implementation attributes + +set_option -vlog_std v2001 + +#device options +set_option -technology ecp5um +set_option -part LFE5UM_25F +set_option -package MG285C +set_option -speed_grade -6 +set_option -part_companion "" + +#compilation/mapping options +set_option -top_module "extref" + +# hdl_compiler_options +set_option -distributed_compile 0 + +# mapper_without_write_options +set_option -frequency 100 +set_option -srs_instrumentation 1 + +# mapper_options +set_option -write_verilog 1 +set_option -write_vhdl 1 + +# Lattice XP +set_option -maxfan 50 +set_option -disable_io_insertion 1 +set_option -retiming 0 +set_option -pipe 0 +set_option -forcegsr false +set_option -fix_gated_and_generated_clocks 1 +set_option -rw_check_on_ram 1 +set_option -update_models_cp 0 +set_option -syn_edif_array_rename 1 +set_option -Write_declared_clocks_only 1 + +# NFilter +set_option -no_sequential_opt 0 + +# sequential_optimization_options +set_option -symbolic_fsm_compiler 1 + +# Compiler Options +set_option -compiler_compatible 0 +set_option -resource_sharing 1 + +# Compiler Options +set_option -auto_infer_blackbox 0 + +#automatic place and route (vendor) options +set_option -write_apr_constraint 1 + +#set result format/file last +project -result_file "/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/extref.edn" + +#set log file +set_option log_file "/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/extref.srf" +impl -active "syn_results" diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/extref_compiler.srr b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/extref_compiler.srr new file mode 100644 index 0000000..c36cce0 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/extref_compiler.srr @@ -0,0 +1,46 @@ +Synopsys HDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Synopsys VHDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/extref.vhd":18:7:18:12|Top entity is set to extref. +VHDL syntax check successful! +@N: CD630 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/extref.vhd":18:7:18:12|Synthesizing work.extref.v1. +@N: CD630 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":2147:10:2147:16|Synthesizing ecp5um.extrefb.syn_black_box. +Post processing for ecp5um.extrefb.syn_black_box +Post processing for work.extref.v1 + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 70MB peak: 71MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Mon May 13 09:10:14 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 67MB peak: 68MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Mon May 13 09:10:14 2019 + +###########################################################] +@END + +At c_hdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 3MB peak: 4MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Mon May 13 09:10:14 2019 + +###########################################################] diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/extref_compiler.srr.db b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/extref_compiler.srr.db new file mode 100644 index 0000000000000000000000000000000000000000..f12ad976f7a84acc3549941a88799c73c3a3ac73 GIT binary patch literal 8192 zcmeI#L2uJA6bEppMNB)e!2#_w$=U^wAa0tior;hcBidyLpu1O2^4gjtb`-ys7WEQN zh;O_bE=e_ZLfVyQC3>;-V*mBKdHnfWA@HfG3W+>qPnqYj_nb4vy6)|`cQ-uu@n|=3 zbvysp=(0DrKcBcR@9-CM4-FC^0TLhq5+DH*AOR8}0TLhq68O&r(AzsYKKAOjDB~Oo zuvX5%?rP`qOLTD)@tcbe*Ad^XzEmk+$|{-5>NU@m&hBPy%iThz^k2=T`%`IrwY{5n z4}cy1IJk9%1__V=36KB@kN^pg011!)36KB@JY1lD*4;a*hw^#n^5Y=vort+9Kv*+H zkxN9CfJl`rj7~-92ffK^a4PItm$9@Uauthwk$^@4NqM#?{N+478TEtH;V9^}b+8$) zHO|4R?@G^j+XySHU>f^wuSuNCB%8!$X3O5qmu`LcR=%vfUH-Z}TE11S+*V|8%@J?}905nb5pVidZ z(&x-z03W!C0GS`r=73Llkg*ti>$xtZ!HdJ$-3kT0tj>dO_am;s@PvyIMM$MGKn5lN zHCf3e$Pm()`AEh9l+4H!FvIH5lL|sE$p6)ToyA5!fJ`Hp2%&fK1`8BtqA}v8VbpL>`wfE$IWpKtm3)uBX*?O?iLblo zMq%j3;|AuVqN`7$U}Jx`x!yTqg*c2i*Arc^P#0;k)h9Mn;DzwE&fUj7s$h)!@VC76R1DNSr3HHo z#5{O*%_er12XD9fqzjA15|gA~lKeu=R`9uQp1$Z1Xl)Mjv<;5J-t)=f=CMo?tL+W)IVg@+ z3;FqgN{qpPUJXVlQ024yQ_|4fSe&&GV$QL?HP3jnbaSnGU?cCe9-d~x7TB(Dw`xOf Jz-p=x{tskLnY91_ literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/extref_fpga_mapper.szr b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/extref_fpga_mapper.szr new file mode 100644 index 0000000000000000000000000000000000000000..2564d4f8455d634c082c9b3201d27683105caf94 GIT binary patch literal 5141 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 DB#SlN literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/extref_multi_srs_gen.srr b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/extref_multi_srs_gen.srr new file mode 100644 index 0000000..3e8860c --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/extref_multi_srs_gen.srr @@ -0,0 +1,11 @@ +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 67MB peak: 68MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Mon May 13 09:10:15 2019 + +###########################################################] diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/extref_multi_srs_gen.srr.db b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/extref_multi_srs_gen.srr.db new file mode 100644 index 0000000000000000000000000000000000000000..029fa7a6cf9014af50ee9d4aa843536a1f7b5c42 GIT binary patch literal 8192 zcmeI#JqyA>3DEQgKL*xDXO@ z%d=&(imfwzIG4G0Jf%J073BwWN1`{~f``Krs^Nta{J wY>_tId!-qqw)j}S$WL3iQGJ`s(T{)t1Rwwb2tWV=5P$##AOHafK;VZ3UKAiP82|tP literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/extref_premap.srr b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/extref_premap.srr new file mode 100644 index 0000000..27b114b --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/extref_premap.srr @@ -0,0 +1,62 @@ +# Mon May 13 09:10:15 2019 + +Synopsys Lattice Technology Pre-mapping, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 100MB) + +Reading constraint file: /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/extref.fdc +@L: /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/extref_scck.rpt +Printing clock summary report in "/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/extref_scck.rpt" file +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 112MB peak: 113MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 112MB peak: 115MB) + +ICG Latch Removal Summary: +Number of ICG latches removed: 0 +Number of ICG latches not removed: 0 +syn_allowed_resources : blockrams=56 set on top level netlist extref + +Finished netlist restructuring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 142MB) + + + +Clock Summary +****************** + + Start Requested Requested Clock Clock Clock +Level Clock Frequency Period Type Group Load +------------------------------------------------------------------------- +========================================================================= + +Finished Pre Mapping Phase. + +Starting constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 142MB) + + +Finished constraint checker preprocessing (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 142MB) + +None +None + +Finished constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 142MB) + +Pre-mapping successful! + +At Mapper Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 56MB peak: 142MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime +# Mon May 13 09:10:16 2019 + +###########################################################] diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/extref_premap.srr.db b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/extref_premap.srr.db new file mode 100644 index 0000000000000000000000000000000000000000..4dd9838c94d7e3005cdc2c470cfbe338a4b457d4 GIT binary patch literal 8192 zcmeI#F;Buk6bJBYV`L(@7$%YzCP;)tC5;J-NN~bIWMgPb`zR;$j0+3$}A zz43s?y_?~H_PY(4&^pTFd6b{gQmVzF+O-@u7E=9aUfDOLGEFy|`<02PyxRo<0SG_< z0uX=z1Rwwb2tWV=5P-m61z!A8wY-^}`ggZM5cHQiUQn#nn)5W}Ds}xqr!|#^GM#YyyYmanA8M`u literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/extref_premap.szr b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/extref_premap.szr new file mode 100644 index 0000000000000000000000000000000000000000..e4da5e4149a0131bb9984e345a8d72e1b101e717 GIT binary patch literal 2533 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/layer0.tlg.rptmap b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/layer0.tlg.rptmap new file mode 100644 index 0000000..3910cac --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/layer0.tlg.rptmap @@ -0,0 +1 @@ +./synwork/layer0.tlg,layer0.tlg,An incremental, partial HDL compilation log file that may allow early access to errors or other messages. diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_compiler_notes.txt b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_compiler_notes.txt new file mode 100644 index 0000000..40a0990 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_compiler_notes.txt @@ -0,0 +1,8 @@ +@N|Running in 64-bit mode +@N|Running in 64-bit mode +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/extref.vhd":18:7:18:12|Top entity is set to extref. +@N: CD630 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/extref.vhd":18:7:18:12|Synthesizing work.extref.v1. +@N: CD630 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":2147:10:2147:16|Synthesizing ecp5um.extrefb.syn_black_box. +@N|Running in 64-bit mode + diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_compiler_runstatus.xml b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_compiler_runstatus.xml new file mode 100644 index 0000000..3573f63 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_compiler_runstatus.xml @@ -0,0 +1,41 @@ + + + + + + /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/synlog/extref_compiler.srr + Synopsys HDL Compiler + + + Completed + + + + 7 + /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_compiler_notes.txt + + + 0 + /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_compiler_warnings.txt + + + 0 + /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_compiler_errors.txt + + + - + + + 00h:00m:01s + + + - + + + 1557731414 + + + \ No newline at end of file diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_fpga_mapper_area_report.xml b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_fpga_mapper_area_report.xml new file mode 100644 index 0000000..6f8fcea --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_fpga_mapper_area_report.xml @@ -0,0 +1,26 @@ + + + + +/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_fpga_mapper_resourceusage.rpt +Resource Usage + + +0 + + +0 + + +0 + + +0 + + +0 + + diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_fpga_mapper_errors.txt b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_fpga_mapper_errors.txt new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_fpga_mapper_notes.txt b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_fpga_mapper_notes.txt new file mode 100644 index 0000000..aa9d230 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_fpga_mapper_notes.txt @@ -0,0 +1,7 @@ +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) +@N: FX164 |The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute. +@N: FX1056 |Writing EDF file: /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/extref.edn +@N: BW106 |Synplicity Constraint File capacitance units using default value of 1pF +@N: MT320 |This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. +@N: MT322 |Clock constraints include only register-to-register paths associated with each individual clock. diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_fpga_mapper_opt_report.xml b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_fpga_mapper_opt_report.xml new file mode 100644 index 0000000..1ad405d --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_fpga_mapper_opt_report.xml @@ -0,0 +1,14 @@ + + + + +0 / 0 + +/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_fpga_mapper_combined_clk.rpt +START OF CLOCK OPTIMIZATION REPORT + + + diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_fpga_mapper_runstatus.xml b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_fpga_mapper_runstatus.xml new file mode 100644 index 0000000..68def92 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_fpga_mapper_runstatus.xml @@ -0,0 +1,46 @@ + + + + +/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/synlog/extref_fpga_mapper.srr +Synopsys Lattice Technology Mapper + + +Completed + + + +7 + +/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_fpga_mapper_notes.txt + + + +1 + +/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_fpga_mapper_warnings.txt + + + +0 + +/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_fpga_mapper_errors.txt + + + +0h:00m:02s + + +0h:00m:02s + + +146MB + + +1557731418 + + + diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_fpga_mapper_timing_report.xml b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_fpga_mapper_timing_report.xml new file mode 100644 index 0000000..52701c6 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_fpga_mapper_timing_report.xml @@ -0,0 +1,23 @@ + + + + +/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/synlog/extref_fpga_mapper.srr +START OF TIMING REPORT + + +Clock Name +Req Freq +Est Freq +Slack + + +System +100.0 MHz +NA +NA + + diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_fpga_mapper_warnings.txt b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_fpga_mapper_warnings.txt new file mode 100644 index 0000000..b99a088 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_fpga_mapper_warnings.txt @@ -0,0 +1 @@ +@W: MT246 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/extref.vhd":31:4:31:15|Blackbox EXTREFB is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_premap_errors.txt b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_premap_errors.txt new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_premap_notes.txt b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_premap_notes.txt new file mode 100644 index 0000000..eed8756 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_premap_notes.txt @@ -0,0 +1,2 @@ +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_premap_runstatus.xml b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_premap_runstatus.xml new file mode 100644 index 0000000..963604b --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_premap_runstatus.xml @@ -0,0 +1,46 @@ + + + + +/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/synlog/extref_premap.srr +Synopsys Lattice Technology Pre-mapping + + +Completed + + + +2 + +/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_premap_notes.txt + + + +0 + +/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_premap_warnings.txt + + + +0 + +/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_premap_errors.txt + + + +0h:00m:00s + + +0h:00m:00s + + +142MB + + +1557731416 + + + diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_premap_warnings.txt b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/extref_premap_warnings.txt new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/metrics.db b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synlog/report/metrics.db new file mode 100644 index 0000000000000000000000000000000000000000..145597c4adc4b482a47f9aed0f9a755098cda8f8 GIT binary patch literal 20480 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
+
+#Build: Synplify Pro (R) M-2017.03L-SP1-1, Build 086R, Aug  4 2017
+#install: /home/soft/lattice/diamond/3.10_x64/synpbase
+#OS: Linux 
+#Hostname: lxhadeb07
+
+# Mon May 13 09:10:13 2019
+
+#Implementation: syn_results
+
+Synopsys HDL Compiler, version comp2017q2p1, Build 190R, built Aug  4 2017
+@N: :  | Running in 64-bit mode 
+Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited.
+
+Synopsys VHDL Compiler, version comp2017q2p1, Build 190R, built Aug  4 2017
+@N: :  | Running in 64-bit mode 
+Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited.
+
+Running on host :lxhadeb07
+@N:CD720 : std.vhd(123) | Setting time resolution to ps
+@N: : extref.vhd(18) | Top entity is set to extref.
+VHDL syntax check successful!
+@N:CD630 : extref.vhd(18) | Synthesizing work.extref.v1.
+@N:CD630 : ecp5um.vhd(2147) | Synthesizing ecp5um.extrefb.syn_black_box.
+Post processing for ecp5um.extrefb.syn_black_box
+Post processing for work.extref.v1
+
+At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 70MB peak: 71MB)
+
+Process took 0h:00m:01s realtime, 0h:00m:01s cputime
+
+Process completed successfully.
+# Mon May 13 09:10:14 2019
+
+###########################################################]
+Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug  4 2017
+@N: :  | Running in 64-bit mode 
+
+At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 67MB peak: 68MB)
+
+Process took 0h:00m:01s realtime, 0h:00m:01s cputime
+
+Process completed successfully.
+# Mon May 13 09:10:14 2019
+
+###########################################################]
+@END
+
+At c_hdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 3MB peak: 4MB)
+
+Process took 0h:00m:01s realtime, 0h:00m:01s cputime
+
+Process completed successfully.
+# Mon May 13 09:10:14 2019
+
+###########################################################]
+
+
+
+
+Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug  4 2017
+@N: :  | Running in 64-bit mode 
+
+At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 67MB peak: 68MB)
+
+Process took 0h:00m:01s realtime, 0h:00m:01s cputime
+
+Process completed successfully.
+# Mon May 13 09:10:15 2019
+
+###########################################################]
+
+
+
+
+Pre-mapping Report
+
+
+
+
+
+# Mon May 13 09:10:15 2019
+
+Synopsys Lattice Technology Pre-mapping, Version maplat, Build 1796R, Built Aug  4 2017 09:36:35
+Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited.
+Product Version M-2017.03L-SP1-1
+
+Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 100MB)
+
+Reading constraint file: /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/extref.fdc
+Linked File: extref_scck.rpt
+Printing clock  summary report in "/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/extref_scck.rpt" file 
+@N:MF248 :  | Running in 64-bit mode. 
+@N:MF666 :  | Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) 
+
+Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB)
+
+
+Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB)
+
+
+Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 112MB peak: 113MB)
+
+
+Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 112MB peak: 115MB)
+
+ICG Latch Removal Summary:
+Number of ICG latches removed:	0
+Number of ICG latches not removed:	0
+syn_allowed_resources : blockrams=56  set on top level netlist extref
+
+Finished netlist restructuring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 142MB)
+
+
+
+Clock Summary
+******************
+
+          Start     Requested     Requested     Clock     Clock     Clock
+Level     Clock     Frequency     Period        Type      Group     Load 
+-------------------------------------------------------------------------
+=========================================================================
+
+Finished Pre Mapping Phase.
+
+Starting constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 142MB)
+
+
+Finished constraint checker preprocessing (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 142MB)
+
+None
+None
+
+Finished constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 142MB)
+
+Pre-mapping successful!
+
+At Mapper Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 56MB peak: 142MB)
+
+Process took 0h:00m:01s realtime, 0h:00m:01s cputime
+# Mon May 13 09:10:16 2019
+
+###########################################################]
+
+
+
+
+Map & Optimize Report
+
+
+
+
+
+# Mon May 13 09:10:16 2019
+
+Synopsys Lattice Technology Mapper, Version maplat, Build 1796R, Built Aug  4 2017 09:36:35
+Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited.
+Product Version M-2017.03L-SP1-1
+
+Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 100MB)
+
+@N:MF248 :  | Running in 64-bit mode. 
+@N:MF666 :  | Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) 
+
+Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB)
+
+
+Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB)
+
+
+Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 113MB)
+
+
+Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 115MB)
+
+
+
+Starting Optimization and Mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB)
+
+
+Available hyper_sources - for debug and ip models
+	None Found
+
+
+Finished RTL optimizations (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB)
+
+
+Starting factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB)
+
+
+Finished factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB)
+
+
+Starting gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB)
+
+
+Finished gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB)
+
+
+Finished generic timing optimizations - Pass 1 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB)
+
+
+Starting Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB)
+
+
+Finished Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB)
+
+
+Finished generic timing optimizations - Pass 2 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB)
+
+
+Finished preparing to map (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB)
+
+
+Finished technology mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB)
+
+Pass		 CPU time		Worst Slack		Luts / Registers
+------------------------------------------------------------
+
+Finished technology timing optimizations and critical path resynthesis (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB)
+
+@N:FX164 :  | The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute.   
+
+Finished restoring hierarchy (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB)
+
+
+
+@S |Clock Optimization Summary
+
+
+#### START OF CLOCK OPTIMIZATION REPORT #####[
+
+0 non-gated/non-generated clock tree(s) driving 0 clock pin(s) of sequential element(s)
+0 gated/generated clock tree(s) driving 0 clock pin(s) of sequential element(s)
+0 instances converted, 0 sequential instances remain driven by gated/generated clocks
+
+
+
+##### END OF CLOCK OPTIMIZATION REPORT ######]
+
+
+Start Writing Netlists (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 106MB peak: 143MB)
+
+Writing Analyst data base /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/synwork/extref_m.srm
+
+Finished Writing Netlist Databases (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 139MB peak: 143MB)
+
+Writing EDIF Netlist and constraint files
+@N:FX1056 :  | Writing EDF file: /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/extref.edn 
+M-2017.03L-SP1-1
+@N:BW106 :  | Synplicity Constraint File capacitance units using default value of 1pF  
+
+Finished Writing EDIF Netlist and constraint files (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 144MB peak: 146MB)
+
+Writing Verilog Simulation files
+
+Finished Writing Verilog Simulation files (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 144MB peak: 146MB)
+
+Writing VHDL Simulation files
+
+Finished Writing VHDL Simulation files (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 144MB peak: 146MB)
+
+
+Start final timing analysis (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 145MB peak: 146MB)
+
+@W:MT246 : extref.vhd(31) | Blackbox EXTREFB is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) 
+
+
+##### START OF TIMING REPORT #####[
+# Timing Report written on Mon May 13 09:10:18 2019
+#
+
+
+Top view:               extref
+Requested Frequency:    100.0 MHz
+Wire load mode:         top
+Paths requested:        5
+Constraint File(s):    /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/extref.fdc
+                       
+@N:MT320 :  | This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. 
+
+@N:MT322 :  | Clock constraints include only register-to-register paths associated with each individual clock. 
+
+
+
+Performance Summary
+*******************
+
+
+Worst slack in design: NA
+
+                   Requested     Estimated     Requested     Estimated               Clock      Clock          
+Starting Clock     Frequency     Frequency     Period        Period        Slack     Type       Group          
+---------------------------------------------------------------------------------------------------------------
+System             100.0 MHz     NA            10.000        NA            NA        system     system_clkgroup
+===============================================================================================================
+Estimated period and frequency reported as NA means no slack depends directly on the clock waveform
+
+
+
+
+
+Clock Relationships
+*******************
+
+Clocks            |    rise  to  rise   |    fall  to  fall   |    rise  to  fall   |    fall  to  rise 
+--------------------------------------------------------------------------------------------------------
+Starting  Ending  |  constraint  slack  |  constraint  slack  |  constraint  slack  |  constraint  slack
+--------------------------------------------------------------------------------------------------------
+========================================================================================================
+ Note: 'No paths' indicates there are no paths in the design for that pair of clock edges.
+       'Diff grp' indicates that paths exist but the starting clock and ending clock are in different clock groups.
+
+
+
+Interface Information 
+*********************
+
+No IO constraint found
+
+
+##### END OF TIMING REPORT #####]
+
+Timing exceptions that could not be applied
+None
+
+Finished final timing analysis (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 145MB peak: 146MB)
+
+
+Finished timing report (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 145MB peak: 146MB)
+
+---------------------------------------
+Resource Usage Report
+Part: lfe5um_25f-6
+
+Register bits: 0 of 24288 (0%)
+PIC Latch:       0
+I/O cells:       0
+
+
+Details:
+EXTREFB:        1
+GSR:            1
+PUR:            1
+VHI:            1
+VLO:            1
+Mapper successful!
+
+At Mapper Exit (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 33MB peak: 146MB)
+
+Process took 0h:00m:02s realtime, 0h:00m:02s cputime
+# Mon May 13 09:10:18 2019
+
+###########################################################]
+
+
diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/syntmp/extref_toc.htm b/gbe/cores/GbePcsExtrefclk/extref/syn_results/syntmp/extref_toc.htm new file mode 100644 index 0000000..88bb149 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/extref/syn_results/syntmp/extref_toc.htm @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/syntmp/open.png b/gbe/cores/GbePcsExtrefclk/extref/syn_results/syntmp/open.png new file mode 100644 index 0000000000000000000000000000000000000000..a227005ed89f5c742cd4c025799ae89068e785a8 GIT binary patch literal 452 zcmV;#0XzPQP)Px#1ZP1_K>z@;j|==^1poj5AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBUzLPZp>)DD*xuJrLE&vMd$CAS~p-?-;7v0}#6W zK!*&q^nLraG8##gHcA0$>IMWyA3F6832+TiX>f2vout6F5+Ar6F)sEtHPYQAm=&QB zzRsNDFORoz&Rd@j_9k}3P_@Yj@S4LDdw+c%F*c^MW@FMmL^UFq*q*9=#Vw}!jD6ML zTLufTX7?w3b>Dtd?Gz(`Oz!9Ne%vt|je?%YYT1@aFN29GQVmgR!B8?Xp%fDaA%{f{ uQpjB7cbS-F*)`{!amLtrN{glG@TUKEuz}n1Y}Ahc0000 + + + + + + + + + + + + + + + + diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/syntmp/statusReport.html b/gbe/cores/GbePcsExtrefclk/extref/syn_results/syntmp/statusReport.html new file mode 100644 index 0000000..0991010 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/extref/syn_results/syntmp/statusReport.html @@ -0,0 +1,112 @@ + + + Project Status Summary Page + + + + + + +
+ + + + + + + + + + +
Project Settings
Project Name extref Device Name syn_results: Lattice ECP5UM : LFE5UM_25F
Implementation Name syn_results Top Module extref
Pipelining 0 Retiming 0
Resource Sharing 1 Fanout Guide 50
Disable I/O Insertion 1 Disable Sequential Optimizations 0
Clock Conversion 1 FSM Compiler 1

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Run Status
Job NameStatusCPU TimeReal TimeMemoryDate/Time
(compiler)Complete700-00m:01s-5/13/19
9:10 AM
(premap)Complete2000m:00s0m:00s142MB5/13/19
9:10 AM
(fpga_mapper)Complete7100m:02s0m:02s146MB5/13/19
9:10 AM
Multi-srs GeneratorComplete5/13/19
9:10 AM
+
+ + + + + + + + + + + + + + + + +
Area Summary
Register bits 0I/O cells 0
Block RAMs +(v_ram) 0DSPs +(dsp_used) 0
ORCA LUTs +(total_luts) 0

+ + + + + + + + +
Timing Summary
Clock NameReq FreqEst FreqSlack
System100.0 MHzNANA
+
+ + + + + + +
Optimizations Summary
Combined Clock Conversion 0 / 0

+
+
+ \ No newline at end of file diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/.cckTransfer b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/.cckTransfer new file mode 100644 index 0000000000000000000000000000000000000000..c1fdce9c6c2e00fb7113a52ec7bc7ef7408be070 GIT binary patch literal 457 zcmV;)0XF_0iwFP!0000015#C0RVXORFG)=2EhIrB{)TUz(B^hy5^YeW6txxuBnMKLC*4s|Ec1cT^M4s+2$*`f=p?4Amk=gNGqJ@h*FljT zX_v@n46^H0OHR$Ds-O>OV|NjF3NAbfmtpWf5d_LNA literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/_mh_info b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/_mh_info new file mode 100644 index 0000000..37bc105 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/_mh_info @@ -0,0 +1 @@ +|1| diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/extref_comp.fdep b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/extref_comp.fdep new file mode 100644 index 0000000..3c02189 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/extref_comp.fdep @@ -0,0 +1,21 @@ +#OPTIONS:"|-layerid|0|-orig_srs|/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/synwork/extref_comp.srs|-top|extref|-prodtype|synplify_pro|-dspmac|-fixsmult|-infer_seqShift|-nram|-sdff_counter|-divnmod|-nostructver|-encrypt|-pro|-lite|-ui|-fid2|-ram|-sharing|on|-ll|2000|-autosm|-ignore_undefined_lib|-lib|work" +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/linux_a_64/c_vhdl":1542167766 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/location.map":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/snps_haps_pkg.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std1164.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/numeric.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/umr_capim.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/arith.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/unsigned.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/hyperents.vhd":1542167610 +#CUR:"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/extref.vhd":1557731412 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":1542167599 +0 "/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/extref.vhd" vhdl +#Dependency Lists(Uses List) +0 -1 +#Dependency Lists(Users Of) +0 -1 +#Design Unit to File Association +module work extref 0 +arch work extref v1 0 diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/extref_comp.srs b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/extref_comp.srs new file mode 100644 index 0000000000000000000000000000000000000000..d2a9a97c754d67a224dea9c0547da84025233704 GIT binary patch literal 2470 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/extref_m.srm b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/extref_m.srm new file mode 100644 index 0000000000000000000000000000000000000000..4b18ebfd35ab7c1b496943cbf65067c88610abeb GIT binary patch literal 3159 zcmV-d45;%TiwFP!0000015#C0RVXORFG)=`9lO8R%@q3yFDClwv#0) z$$a&l%v)~{H^~Qwobm^V90*tYa)&6~WK}V!p9oqWJT&eTESQ=}mGx#f>Ams#kw0(> zz$5<>`#O)CJiONV8yo>0HZa)Wge}P(35w$a9&{)ZC+9#gFLa$i=zz?LzV2h5EaHMW{&%*BeJTVVriT_zBtb* z7z~Ap9zzvqlYH|m44xxcd+^#LboO1o0!UgFT7>lf$2a!>9skyMTBGWCiP!?zdfmZK z&x3aE?5)1gX;Fcof2_CCqKQ&QbD=oU2djgD^qG05qNhzC-7~*_k~^>Kp?lF0LRHf` zlc4dV^OEo`ZkPA#XcWKr;q5vOt$dF|$bc60pn@fO^2X=@T@U4qWwV}2oqLOuQ7%N7 z!tDiTs&GYhcB##xPPNRKqJl9AHFeLv+>3scPuXW)9OrBrU2M}v^ODLMp4=0+yIQ6> zXvG^I2&^Do{N|4Vk*#QCttIxrMQ?|R8n)j`Zw&T~yrpNR$ezc;$z1L3P*R@wsS7Fl z^|AnJMimGAt7za_x}veYmxKw~w7QhF#5D!vdIvRmYs+uLF#>z`yd~P7&%^m-yhC@Y z?67`$xPkPQhPTu zJUhRusE|q&+}8bVvTe~4VnD_KO!@a}}M+t-3>8M1C~@liZ__20um?3+Q22k)Wh$7p*n z=16pNbg7xC6(7OqHH`g1_#O{B+4({7sg@lNJ8AH94J1gJ**Lth z-065&Zr|MWyfX%7SH$tVe`~PBq3=!5VGC~?E0ed4$&nML1I1I_)I!p3E<1e5#{<}`4QZ_cMZ3^EG4|H#^43Bx${!}v?!#~Ld7 zx!W}aRX{-}6?H}hjKXz%()GW@Y$5Rv3Tueh3oIEu|BLLo_?6>(mt$A&FQM$F+J zk2qRGcCOdvB1egX9P|7G00960N-Igt$+6~ga0LJW0RR82R&8tJxEB5#|B7G*w&9XQ z#U?clg-(v5s6!;BD)9`vy@)8Cnbdac3~E|7f)+n1{(SP=-Xp7KD4Fp}|48h$~+*u$n0*OT=jPOtLUAYDsKQI>L#71*3+$_Kq+S zNtQDxakSwWU;mY5)(sAy@_%ITk7ry$g)ok17TTbFu zS0qW#s;qRECT#q@nS~=hDnW_Ft4fa0#gQkAv4#;Xm1ESw$OHdFKhn`c!=BLY+-uYW zozWbq&*mebnTH5%y^-Nf8xL(FCP5X%Svmw~ODZ5TdHdIVCnll{4=JI-l#u69o=@_; zv5!|?SPVJMEI0G8#cnaViTqYn3gtrzb00$1`q_(!B)0T~SV#~q$R~;{O;1Qm=A{6Y zFd0|oO;%VYG0h@O46HW8#W$4se?2;%5%#YR{C0Hn5DGyS7u8o5*2Bk-d%Z+Ssq zwPw82v($aVJWhhYg5a+sf>AB-W&-R0?ifm{mJ<{(R_;pT>6h91f1P z*x+K(@#GRL!A$A`14_)I(NlUw9?r+%ON}ziFA1ebyHRI$$+#7T{FoI&7)auGa?Ei~ zyj^hFf!CUB<-Jp2B^A~YB?ze!`RjKpq;npyNl5+u!RLH&a91!`508ylZwl)zvLSU>2 znkZmBiFN*ZezjJWmmFa2!L55hw{X_TOibGwk&4#e3qnc`J2gvAMFLD1S+#MDOe8(C zfIX`LsJ@&z|L)#YE4HWHpDn$BoE&XkN0DMvrTv~$b_Oc%{XB;Qx$>psW(lwOYoZQN z^f`U?RYnmjtfHK2=?VSmpJa~mrdcpP*iU5-olM?vT!OvY%vH>-GW2*}nn-bH9ml|7 zeg3(=-(Q{HZ`1lF9B}6oM|;q#v40)QT+jLeufa>*s~v5=*Tuj~pNRVG>($kukEhDl z-QDxp9-fBv_<5k6>VT^1;nU-)9#01t>0|))Ls<`$nrAYv$2A))c&$4FpK;AWRyFa1 zc_u1QG->*_?vOaE2Lk4mRN$$Ggmt(kbsZ0;{ZF$F=zAsmW%CXNu@dXtmLNddq!wBH zsUCO`)M`u|D4#H^Inf=7|Flctk07|T2mJ~3r+xdsSl?+FvACNlxi0^saOw7E- zVYLLISuGZ$a>jv=NXF=><*5Wlf~!*ACZov4`F!-SA+9GEpvY*!#7MIOMv}rIN4}n$ zNOP+tr%3w*5UW@qW9P5m9Jg=tiz4@v5~x$98OP(3_~dpoi64%ft)130=#-=|C!5=0 zBVVAru(YhuMnyEkUTSEu?I#t@2-0HH)A6e;vyB|nap#3Ve{yJ#NQ)EP(QtO$C(6u5 zCGnw{1ZH({k*4vtIL^~=4{4k>+~QcrygVlY_0h;T<4qv(H#tV-DOdu}Oi`8(I zr)fIOW4}p(WxC^W$~MnHVmyWMma>Mgk?KnWq0c&+$snBY3v;oG(_uPXrSaxPH-FL1 z|Eq3}y8YKYPtA09=$h^Ni`m`ppZZtk>~U+a^WgXG`Qw>K|5B7XnB8>U-I}W}|29|q z{?pWanFcn${_^|zG?-3&Zoa0w+#I&k?)qT%{l3{>?Vrrys&BW!>H50AKb%j$Oj~;z zo^+CXC}hI{zuY}FkL}&ZCv*CC_wn=}?;icXO>fcpaT@=tdz*gluKUj-w$c#V`sYB8 zO;L9HpVwXU{Gr(ak&{)2+r|8|>8_vq-B{w%cTI!-wEMg}zuUJl3Oeo@zfHHhyYnWV zl68Xab^rNpy1R$-HV3?#1g>k^vpv>|b0*4KE~s3KHM!ejeY(iFEPp3^|BI{=?M{Mo z%v+1Bj0-Hz<;I3ivy2d-tO41+Q;Wpu%l7xBb%~LSrYFTc=BI1I*7xK7DH{EEpX~n3 zY(Io?ew1tU+v#1uzwSQeCS1Iio!YYxr&r&t>2AaPMZT$hWKe3U$6bP(U1;vZscCbe xBC-^?fmlMbiYc;+&F#Z#mE)cq{09I4|Nr80P~ZXp009600|5Kr3npe1003LtR7L;* literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/extref_m_srm/fileinfo.srm b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/extref_m_srm/fileinfo.srm new file mode 100644 index 0000000000000000000000000000000000000000..622949f0c596205a86219c95340805dc3c422817 GIT binary patch literal 320 zcmV-G0l)qqiwFP!000001I*OTZo?o90N{I{0%huPaae!0spo0ey+K5b)36ePz?s^& zAKf}tXgf`+#07&7<`c+XE|s27f zztZF|oP45*X7_)X^RXRNTKr+35oIw%)>3ZQ8SbGJoSR1q1~c5M6x=+97L_++##@)d zQ^D|%(Ke;fW*5!gQQoxMQgp+~)46)gc#k*ZDIJV*ur~}Gx=lo28h!E-r1|)s<|Djz z^oH@}$bova2cWOrC1lK}5?;~HnCb$d-^_V;JeR<87AF_E){3w5xVh;U^%}2N$v>|8 S1ONd4{{sLVAtfLd2LJ$EN1ML@ literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/extref_mult.srs b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/extref_mult.srs new file mode 100644 index 0000000000000000000000000000000000000000..8be0fe905e2922b1fc3486053f14dc52eb13106e GIT binary patch literal 2126 zcmV-U2(kAciwFP!0000019VbfYuhjof6u2l5&|0}QQSB+$;7_>n$6 zK(>PAW}7Xy*&42v*+#mb2iI9L!~?iLgO=PYh8a{nSx)0O{Q)3P6U9PCcD@?|9U6u& zyRVRKHu*f25|r=a5NB}b%mQ8-iXUeX{hp6HAZS;Ewia}Z-jEjQPG}|R?Kt&wgTNTtcxg4>)s&zk_&w;4V8k}MD2fgN zG4aEZxcN+WBU-%xhD0-ifTFGLO~RW&>ucJR(Qi8+pq2mwRsF?@uq7q`W+08J@ZSg| zxCCQZ{0Ut{6-m<~UGHe}@c44~aR0m=pXceO&U5zNdEWMxDTX*6O?E$@wqw=!7FA+Y zRx^uLRg-Qd3bk5f%kp%ct0;G0>4-{j`ctXPx3kj8Tax(3@=Wrp?7Aq5{4Z2p2hvU* zh!uxw9gSjaJE1`(YJbUlRNpInH1YPt0r$qfD!i;N=mDc>jcI-K;k{HE-*$^+Kv>sB zvC8r+AAP(14FCZD|728MZ{sQueXf56f=XSht6W#0B*HIAATBEfoX$hqHx%#f*0G&9 z5lW-}`wP_FZTI?R#=|flXU>4$p3_&3FPA%eq?WNaoJ=@6WA~%Dx~C%BI6?86@p~L~ zE4wyxlo0QC$9G4ZiF;?orpsDs332}jawQ9q>A~lL*O&kK$c+*krHjD_CH3U_wLT#M zH)UImyC;gamlVyfDbdodj4iKLH^qGp@V5S;1b~`0b@F_IS9J5a&YLy+?86|@Gd_D6 zePcg4XHAsA4p5153~h(fr!9iZoY-r zVmd%Lz1YR>Tt80c2%?^*Tl6~UlZVCpgzjve;F!BIzR+rWEieJ1GN+;c{zc|JPQa|G zmZo=SV@y|fAPDyOF3vmqIG@xI^mJ#puPBZBWM>zr`NLgpQLO#%+!Mh2MZG=Y6vg^K z-{0d&ecCS49L2op0$p~G_B?@lj_b*On=VdhsNF1Gxe-c2@)G~MwwOxK4EZ7;#&xt% zu0NG#S%(>XnbQy>*jh)#iml%7NLq^4=qj^B*lLss)j`wHCVZin5CTV`hlvepvLVnCR*p}9iw$P<^Br`(ksj$6P!j(C&(Ce4_2HPKA*=nk6rBlG@ zc=1C$e~&V+-{(^)V%YS(2TiW+N-8T$A%{3L*jz_^QzQ%g54{ke*HT+0^p*2A9C%F! zUemvL{RuB!w%w8#2cw_=#(ZIav~Y$=$RSa2XAW%4M+eUM_`uQ;A8Ljule3Sdz}ZX| zy;B~}ci!$6$Ft9)W-xnUd^BbUJ`OU(K|G$`UNLeca(9PvB)X zA(K~00960N-Igt$+6~ga0LJW0RR7dlfiD=I1q-<(o+az4iOfyScpgk2>~1rP1A)) zc_)xIzy=^J8;vcibqY51VX^PN6q6Ram(^uNa>)Oi`N_G)Id99hEU&qbvo)eb7lB(b z*mTHE75k7&<3<6t5k}~d0EYFdBQcr{wO6{Qk}9YLL)nKt3UgX)mZCyF<>Xe;jaU{K z^UCBKG)vcXpajNk7>_4e2nC&J0jo`H(B)FO^S8z<50l=e;z29d^varU?AJ&p&Zi~G zWHy3Pg)?WJDaJBK>)Qr0Hkw|r9x?~=&*nSJ>IPmZOIEJ&IuK>HgEFTuFBx z4+a29(2mL5S-yWGrOq-6YAD|77kMY?+A=T<&0oO-Vdc8-o%C3y2ce3ey_KCRD@Uif7o}?rvZQE!?z)ftv&wj>Nz&O$e`lgNFo zL{%}i^LbhFXU>Q6`D@8b??cmz2;XC+{Mjsb!da=jxzjxe-jS%UFjn(&-p<;gEX&!z z-L3@DHIdU8Vyr!bLf=#&&rW$eM+D-!s1e%tUCwdd@^V(r+LG_ywdK3E{9kS9wcVt> z-*KYFl+eH! zHMXd!G8RFHF|*FokKuo9`vP@6-E;K?Uls|H$7Gvc-rkp*bdG=6*N=F(CwzFzOEA6I z#W78{$&Ud^{qNj`{doW3_iq-H0~vgNT*dJ}00030|Kf5`-~s>u0RR6302no1qy`ND E02AsjBme*a literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/extref_mult_srs/fileinfo.srs b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/extref_mult_srs/fileinfo.srs new file mode 100644 index 0000000000000000000000000000000000000000..e6cd3c9c507e747c603b1d7454806a5d7d29b4f7 GIT binary patch literal 299 zcmV+`0o48Gl0Wgm`V`6DZnwhunNjg~qHcRKxama!<2)gRxo0qvnG}L1In7qXepi+4 zr8z)Yt?Oh!Fx0{Os3EZ4#Vn5E?%GF`8`%r7qtM2x5!LbQtwu7sH56DB_f>JLI_c5! zk1|^2R~KobJpLYLU1&!c4|g6CVwDY%byYQo1ow~&&Mp&rQVDLK3vQWwtE8hT;T>|} zNl!c`v^p2sVgn5p)1hs0(T%IaYxj`w9{-IewI^v|AO`kb9TYH5E_xB-emuqf2(KN! xsqk`PkG(Qyz|Y$)66RA5zi1W}`vNLgFX?nV|26Le009600|1vN$>&Z6005?Zi2MKm literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/extref_mult_srs/skeleton.srs b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/extref_mult_srs/skeleton.srs new file mode 100644 index 0000000000000000000000000000000000000000..a27d6857876d0379bf6ff0276143fb98c97ba5f1 GIT binary patch literal 514 zcmb2|=3oE==Ah8fPz{Y!`kuaejTcvHe$1R{xiW@t9Z2&3|3^gu517C#FKy4WCpSJT zDqsb3T_!r_ODhVroyG8C{_lP5 zd%3_NNv^;0vtwUb?@E>%;fE|Xus_}1m}GdBeeQ+Kw<{I)zm!=lHA7wf-J}z48M}}3 zwEe66v#qToOxRlIxsl{bUAJ0?sG6X15qiqgz%U-BY6kcPvoJq`DYWmS*s_Pjvq}DKONe$cOy1Ph%WrNYOz+P_iVw^lBE`Q?`lJ0^V=3#+qrwy3Q9AAGm|qll_n@yf|( zJ+-9vzgqNcE&HpVhcsRqIlgU4`16?mZw#|YnObibUrt`HRa;xCsee$i@D}5)i*I<{ z%)27$WRIs`y4bCK>E|z(^lwW(d8|Kg5VVvtK4Wub;B4OC+^EsW%&_rG#Kl>_I0XR2 C>-CKQ literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/extref_prem.fse b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/extref_prem.fse new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/extref_prem.srd b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/extref_prem.srd new file mode 100644 index 0000000000000000000000000000000000000000..c0400125c6bed4d9f889b2c99693366c6f7b759d GIT binary patch literal 2465 zcmV;S310ReiwFP!000001I*OTPs1P-0PuVN3R1J|WGU`L%`R$EJ!y|WMbUUA7x6`I(4zQ9nUbg}}FNzTJ1v=Z;L1o4ogbL|s$SOn@-)r7VC8(0lqx_uY zhpb^1wEvL?&F#(v8Y&mRhiT(z%fet*%ZNylA$mc`d>Y{{Qo-q=11ouio1}spI!ie- zvWs}rRCvrv-$t}qDzrg6xzrFp+IcFvc4uH;-9^01f8#M>CDV8*J@&SqIgUMaCU^md z{`e94BYvpinY(K1Ei_!MFnrApA!1&oaEfZ+p)Lk)W<&fsu2bM?#e401A(%h)wY^9+tFIW2FdVS$1gU$T@}YmCea>} z-Bh0d00960oK!t;<2VqlqhBGAE+S-C;6j8gNR4dL3JZ~Prf|{`)-Gaw*|I@sjk{le z6m18|-c_e&h8)e~e1REh}Tg)vHa43E2W09(XaKkxK5oPSS`$O9Ee zC1LA=3!Lj~o<~y^#UK=piBbio3{vo9mSp?zk^W2)+BysL2o)>m(Di=sw)5e##Cj%+ zlB=6Tpg)Yl<<0-(A*zk3H z&lMZ2*AR0$<>nBXS_}$$hIam2u=Foz+Bc93F=(kV$Z-#35pvRa<~AG-FCJG)YrXtkR$gaHd;Bn;oa*mRicxrroKgBg`lecc1Y z=o0v=vC*%~MGcc5GZ4`@-JcdH=v z-MPWazcjCUTtK}<_2RG#R%idlU9C;IWrBmZck8~(V=ma1@2$2Iu8DGChI6Ub^`yZU z9d8)ZUS}{XXmQQqQOP3nqe*Y1t|BBBdEQRL9q&?;Ev8VJJOWl-@RWDy~4tYu!)Hx5?J02HpEHu9WL1 zynz{)T9k!mz^^@pA)58JbF{%&FcPQGUNyxtExC9Q%-9J*WmnDnx5(dF?B&Gy&Ijes zANT0A>{YooKQa9BLRUk^o{6y?c<<**uV2=0Zm*ys6Tk9NPy9V=YtWF-Da#= zou(PeGsyNd3FpVhWa9D|T9`?j!>NIrO@+Nbi3~S77iw_tf#ZjogNsddwY5ZFdtPD8m1`In%@mVO1lYfyS5bhfAZ92n z;Y7fOQRMa-GcA@Z$E5R#jUWYErkD6?>2w8xVNmw>&4H&(K*dVHya*J!mZ;WQXyqXGSU<_=Q`BMC7&8g#K&+u-u%@8`VyydL_ncr%nct*@3T&XR zSOmYImT`;TIKyC3M&^u)z>+Ui6o|RgcwMDxS-AzDR3yH zA*)7!N|{Vry!r~mq#vJ%QiO6h-aM%EW(U(9`2VuJftwVR)?-LFyEkvteRRe5r)ypQ4+mz84U?D&tG$pb<#KH%zO6 zYo_G(DTsPZ)tYgm2&FIZS_7}x+P6c9_lGJK(9h!H#~HU9-#_33nPYwRSH?ODeptd9 zqPzxLnRc8%*Bu+l)PXU15bxpoUObbI9>q~oAJ4iUbO?%&*5mBw5_^70)$zf=kST*) zUiP=G`XGV3EjZZ1(C%kIJD&^I_}f;I#!Fc}^HjWDdWog7KJ!P$vDdJ(Ud5m(ES*=; z<-NsLsUy>T<~$}*kPB87Zx>pzBjs+UfDQlH|M`JH_3OzO$r_VelXWzb^BFUtm3TmE75vpxI1 z@7KlWMUH`(XY(>i9a~vp+pqb+dW<4wjvB#T+eiftBVd&teCv~=i%vA&Jj|O~QeJ#TIS#f5ZJZt-mE8=;8<$RuHPuQQQUK^W%;o%DJ!tLlJ5+egbKb}V6;`sb{d+vJ>ejJ@17tedReXV~K zd<>sYi%0kMw#OZC&n1D~_u%0C1T8VDaf)n0ssI2|NjF3MT-8*pA-N9<~isG literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/layer0.fdep b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/layer0.fdep new file mode 100644 index 0000000..f50b372 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/layer0.fdep @@ -0,0 +1,28 @@ +#defaultlanguage:vhdl +#OPTIONS:"|-layerid|0|-orig_srs|/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/synwork/extref_comp.srs|-top|extref|-prodtype|synplify_pro|-dspmac|-fixsmult|-infer_seqShift|-nram|-sdff_counter|-divnmod|-nostructver|-encrypt|-pro|-lite|-ui|-fid2|-ram|-sharing|on|-ll|2000|-autosm|-ignore_undefined_lib|-lib|work" +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/linux_a_64/c_vhdl":1542167766 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/location.map":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/snps_haps_pkg.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std1164.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/numeric.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/umr_capim.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/arith.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/unsigned.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/hyperents.vhd":1542167610 +#CUR:"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/extref.vhd":1557731412 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":1542167599 +0 "/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/extref.vhd" vhdl + +# Dependency Lists (Uses list) +0 -1 + +# Dependency Lists (Users Of) +0 -1 + +# Design Unit to File Association +arch work extref v1 0 +module work extref 0 + + +# Configuration files used diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/layer0.fdeporig b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/layer0.fdeporig new file mode 100644 index 0000000..79d35eb --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/layer0.fdeporig @@ -0,0 +1,24 @@ +#defaultlanguage:vhdl +#OPTIONS:"|-layerid|0|-orig_srs|/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/syn_results/synwork/extref_comp.srs|-top|extref|-prodtype|synplify_pro|-dspmac|-fixsmult|-infer_seqShift|-nram|-sdff_counter|-divnmod|-nostructver|-encrypt|-pro|-lite|-ui|-fid2|-ram|-sharing|on|-ll|2000|-autosm|-ignore_undefined_lib|-lib|work" +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/linux_a_64/c_vhdl":1542167766 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/location.map":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/snps_haps_pkg.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std1164.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/numeric.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/umr_capim.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/arith.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/unsigned.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/hyperents.vhd":1542167610 +#CUR:"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/extref.vhd":1557731412 +0 "/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/extref/extref.vhd" vhdl + +# Dependency Lists (Uses list) +0 -1 + +# Dependency Lists (Users Of) +0 -1 + +# Design Unit to File Association +arch work extref v1 0 +module work extref 0 diff --git a/gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/layer0.srs b/gbe/cores/GbePcsExtrefclk/extref/syn_results/synwork/layer0.srs new file mode 100644 index 0000000000000000000000000000000000000000..a94cc5b5f880a789a49d583a873e3fc76f206d0b GIT binary patch literal 2552 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 s17X;C2$w`m&upQyJLIszO*|| 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 z�*}BPAV#8t*PcS4b0~66piqq&27gY8cTSmAPmP)2 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
  • UOj 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 KACQLDr2zmkZb}IN literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.srr b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.srr new file mode 100644 index 0000000..fe8286f --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.srr @@ -0,0 +1,1134 @@ +#Build: Synplify Pro (R) M-2017.03L-SP1-1, Build 086R, Aug 4 2017 +#install: /home/soft/lattice/diamond/3.10_x64/synpbase +#OS: Linux +#Hostname: lxhadeb07 + +# Mon May 13 09:09:03 2019 + +#Implementation: syn_results + +Synopsys HDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Synopsys VHDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.vhd":30:7:30:16|Top entity is set to sgmii_ecp5. +VHDL syntax check successful! + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB) + + +Process completed successfully. +# Mon May 13 09:09:04 2019 + +###########################################################] +Synopsys Verilog Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps) +@I::"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v" (library work) +Verilog syntax check successful! + +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB) + + +Process completed successfully. +# Mon May 13 09:09:04 2019 + +###########################################################] +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.vhd":30:7:30:16|Top entity is set to sgmii_ecp5. +VHDL syntax check successful! +@N: CD630 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.vhd":30:7:30:16|Synthesizing work.sgmii_ecp5.v1. +Post processing for work.sgmii_ecp5.v1 + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 74MB peak: 76MB) + + +Process completed successfully. +# Mon May 13 09:09:04 2019 + +###########################################################] +Running on host :lxhadeb07 +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps) +@I::"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v" (library work) +Verilog syntax check successful! +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +@N: CG364 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1968:7:1968:10|Synthesizing module sync in library work. + + PDATA_RST_VAL=32'b00000000000000000000000000000000 + Generated name = sync_0s +@N: CG364 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1051:7:1051:24|Synthesizing module sgmii_ecp5sll_core in library work. + + PPROTOCOL=24'b010001110100001001000101 + PLOL_SETTING=32'b00000000000000000000000000000000 + PDYN_RATE_CTRL=64'b0100010001001001010100110100000101000010010011000100010101000100 + PPCIE_MAX_RATE=24'b001100100010111000110101 + PDIFF_VAL_LOCK=32'b00000000000000000000000000100111 + PDIFF_VAL_UNLOCK=32'b00000000000000000000000001001110 + PPCLK_TC=32'b00000000000000100000000000000000 + PDIFF_DIV11_VAL_LOCK=32'b00000000000000000000000000000000 + PDIFF_DIV11_VAL_UNLOCK=32'b00000000000000000000000000000000 + PPCLK_DIV11_TC=32'b00000000000000000000000000000000 + LPLL_LOSS_ST=2'b00 + LPLL_PRELOSS_ST=2'b01 + LPLL_PRELOCK_ST=2'b10 + LPLL_LOCK_ST=2'b11 + LRCLK_TC=16'b1111111111111111 + LRCLK_TC_PUL_WIDTH=16'b0000000000110010 + LHB_WAIT_CNT=8'b11111111 + LPCLK_TC_0=32'b00000000000000001000000000000000 + LPCLK_TC_1=32'b00000000000000010000000000000000 + LPCLK_TC_2=32'b00000000000000100000000000000000 + LPCLK_TC_3=32'b00000000000000101000000000000000 + LPCLK_TC_4=32'b00000000000000010000000000000000 + LPDIFF_LOCK_00=32'b00000000000000000000000000001001 + LPDIFF_LOCK_10=32'b00000000000000000000000000010011 + LPDIFF_LOCK_20=32'b00000000000000000000000000100111 + LPDIFF_LOCK_30=32'b00000000000000000000000000110001 + LPDIFF_LOCK_40=32'b00000000000000000000000000010011 + LPDIFF_LOCK_01=32'b00000000000000000000000000001001 + LPDIFF_LOCK_11=32'b00000000000000000000000000010011 + LPDIFF_LOCK_21=32'b00000000000000000000000000100111 + LPDIFF_LOCK_31=32'b00000000000000000000000000110001 + LPDIFF_LOCK_41=32'b00000000000000000000000000010011 + LPDIFF_LOCK_02=32'b00000000000000000000000000110001 + LPDIFF_LOCK_12=32'b00000000000000000000000001100010 + LPDIFF_LOCK_22=32'b00000000000000000000000011000100 + LPDIFF_LOCK_32=32'b00000000000000000000000011110101 + LPDIFF_LOCK_42=32'b00000000000000000000000001100010 + LPDIFF_LOCK_03=32'b00000000000000000000000010000011 + LPDIFF_LOCK_13=32'b00000000000000000000000100000110 + LPDIFF_LOCK_23=32'b00000000000000000000001000001100 + LPDIFF_LOCK_33=32'b00000000000000000000001010001111 + LPDIFF_LOCK_43=32'b00000000000000000000000100000110 + LPDIFF_UNLOCK_00=32'b00000000000000000000000000010011 + LPDIFF_UNLOCK_10=32'b00000000000000000000000000100111 + LPDIFF_UNLOCK_20=32'b00000000000000000000000001001110 + LPDIFF_UNLOCK_30=32'b00000000000000000000000001100010 + LPDIFF_UNLOCK_40=32'b00000000000000000000000000100111 + LPDIFF_UNLOCK_01=32'b00000000000000000000000001000001 + LPDIFF_UNLOCK_11=32'b00000000000000000000000010000011 + LPDIFF_UNLOCK_21=32'b00000000000000000000000100000110 + LPDIFF_UNLOCK_31=32'b00000000000000000000000101000111 + LPDIFF_UNLOCK_41=32'b00000000000000000000000010000011 + LPDIFF_UNLOCK_02=32'b00000000000000000000000001001000 + LPDIFF_UNLOCK_12=32'b00000000000000000000000010010000 + LPDIFF_UNLOCK_22=32'b00000000000000000000000100100000 + LPDIFF_UNLOCK_32=32'b00000000000000000000000101101000 + LPDIFF_UNLOCK_42=32'b00000000000000000000000010010000 + LPDIFF_UNLOCK_03=32'b00000000000000000000000011000100 + LPDIFF_UNLOCK_13=32'b00000000000000000000000110001001 + LPDIFF_UNLOCK_23=32'b00000000000000000000001100010010 + LPDIFF_UNLOCK_33=32'b00000000000000000000001111010111 + LPDIFF_UNLOCK_43=32'b00000000000000000000000110001001 + Generated name = sgmii_ecp5sll_core_Z1_layer1 +@N: CG179 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1287:54:1287:59|Removing redundant assignment. +@N: CG179 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1293:52:1293:55|Removing redundant assignment. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1350:0:1350:5|Pruning unused register rcpri_mod_ch_st. Make sure that there are no unused intermediate registers. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 0 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 0 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 1 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 2 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 16 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 18 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 19 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 20 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 21 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +@N: CG364 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":92:7:92:24|Synthesizing module sgmii_ecp5rsl_core in library work. + + pnum_channels=32'b00000000000000000000000000000001 + pprotocol=24'b010001110100001001000101 + pserdes_mode=72'b010100100101100000100000010000010100111001000100001000000101010001011000 + pport_tx_rdy=56'b01000101010011100100000101000010010011000100010101000100 + pwait_tx_rdy=32'b00000000000000000000101110111000 + pport_rx_rdy=56'b01000101010011100100000101000010010011000100010101000100 + pwait_rx_rdy=32'b00000000000000000000101110111000 + wa_num_cycles=32'b00000000000000000000010000000000 + dac_num_cycles=32'b00000000000000000000000000000011 + lreset_pwidth=32'b00000000000000000000000000000011 + lwait_b4_trst=32'b00000000000010111110101111000010 + lwait_b4_trst_s=32'b00000000000000000000001100001101 + lplol_cnt_width=32'b00000000000000000000000000010100 + lwait_after_plol0=32'b00000000000000000000000000000100 + lwait_b4_rrst=32'b00000000000000101100000000000000 + lrrst_wait_width=32'b00000000000000000000000000010100 + lwait_after_rrst=32'b00000000000011000011010100000000 + lwait_b4_rrst_s=32'b00000000000000000000000111001100 + lrlol_cnt_width=32'b00000000000000000000000000010011 + lwait_after_lols=32'b00000000000000001100010000000000 + lwait_after_lols_s=32'b00000000000000000000000010010110 + llols_cnt_width=32'b00000000000000000000000000010010 + lrdb_max=32'b00000000000000000000000000001111 + ltxr_wait_width=32'b00000000000000000000000000001100 + lrxr_wait_width=32'b00000000000000000000000000001100 + Generated name = sgmii_ecp5rsl_core_Z2_layer1 +@W: CG133 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":326:33:326:40|Object rrst_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":327:33:327:43|Removing wire rrst_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":328:33:328:41|Object rrst_wait is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":341:33:341:39|Object rxp_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":342:33:342:39|Object rxp_rst is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":343:33:343:42|Removing wire rxp_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":346:33:346:42|Object rlolsz_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":347:33:347:45|Removing wire rlolsz_cnt_tc, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":350:33:350:43|Removing wire rxp_cnt2_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":351:33:351:47|Object data_loop_b_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":352:33:352:43|Object data_loop_b is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":353:33:353:46|Removing wire data_loop_b_tc, as there is no assignment to it. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":806:3:806:8|Pruning unused register genblk2.rxp_cnt2[2:0]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlol_p3. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlos_p3. Make sure that there are no unused intermediate registers. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":694:3:694:8|Optimizing register bit genblk2.rxs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":461:3:461:8|Optimizing register bit genblk1.txp_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":422:3:422:8|Optimizing register bit genblk1.txs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":422:3:422:8|Pruning register bit 2 of genblk1.txs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":461:3:461:8|Pruning register bit 2 of genblk1.txp_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":694:3:694:8|Pruning register bit 2 of genblk2.rxs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":200:33:200:48|Input port bits 3 to 1 of rui_tx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":204:33:204:51|Input port bits 3 to 1 of rui_rx_serdes_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":205:33:205:48|Input port bits 3 to 1 of rui_rx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":206:33:206:48|Input port bits 3 to 1 of rdi_rx_los_low_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":207:33:207:48|Input port bits 3 to 1 of rdi_rx_cdr_lol_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning register bits 6 to 4 of genblk5.rdiff_comp_unlock[6:3]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning register bits 5 to 3 of genblk5.rdiff_comp_lock[5:2]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rdiff_comp_unlock[3]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rcount_tc[17]. Make sure that there are no unused intermediate registers. +@N: CL201 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1801:0:1801:5|Trying to extract state machine for register sll_state. +Extracted state machine for register sll_state +State machine has 4 reachable states with original encodings of: + 00 + 01 + 10 + 11 + +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 75MB peak: 81MB) + + +Process completed successfully. +# Mon May 13 09:09:05 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode + +======================================================================================= +For a summary of linker messages for components that did not bind, please see log file: +@L: /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.linkerlog +======================================================================================= + + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Mon May 13 09:09:05 2019 + +###########################################################] +@END + +At c_hdl Exit (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 3MB peak: 4MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Mon May 13 09:09:05 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Mon May 13 09:09:06 2019 + +###########################################################] +Pre-mapping Report + +# Mon May 13 09:09:07 2019 + +Synopsys Lattice Technology Pre-mapping, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 100MB) + +Reading constraint file: /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.fdc +@L: /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5_scck.rpt +Printing clock summary report in "/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5_scck.rpt" file +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 102MB peak: 104MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 102MB peak: 104MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 114MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 116MB) + +@N: BN362 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1408:0:1408:5|Removing sequential instance pcpri_mod_ch (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:PrimLib.dffre(prim) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1244:27:1244:40|Removing instance div2_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_3(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1252:27:1252:41|Removing instance div11_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_2(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1236:27:1236:40|Removing instance gear_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_4(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1268:27:1268:44|Removing instance pcie_mod_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_0(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1260:27:1260:44|Removing instance cpri_mod_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_1(verilog) because it does not drive other instances. +ICG Latch Removal Summary: +Number of ICG latches removed: 0 +Number of ICG latches not removed: 0 +syn_allowed_resources : blockrams=56 set on top level netlist sgmii_ecp5 + +Finished netlist restructuring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + + + +Clock Summary +****************** + + Start Requested Requested Clock Clock Clock +Level Clock Frequency Period Type Group Load +---------------------------------------------------------------------------------------------------------------------- +0 - System 100.0 MHz 10.000 system system_clkgroup 0 + +0 - sgmii_ecp5|pll_refclki 100.0 MHz 10.000 inferred Inferred_clkgroup_0 93 + +0 - sgmii_ecp5|rxrefclk 100.0 MHz 10.000 inferred Inferred_clkgroup_1 77 + +0 - sgmii_ecp5|tx_pclk_inferred_clock 100.0 MHz 10.000 inferred Inferred_clkgroup_2 53 +====================================================================================================================== + +@W: MT529 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Found inferred clock sgmii_ecp5|pll_refclki which controls 93 sequential elements including sll_inst.phb_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":567:3:567:8|Found inferred clock sgmii_ecp5|rxrefclk which controls 77 sequential elements including rsl_inst.genblk2\.rlos_db_p1. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Found inferred clock sgmii_ecp5|tx_pclk_inferred_clock which controls 53 sequential elements including sll_inst.rtc_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. + +Finished Pre Mapping Phase. + +Starting constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + +Encoding state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) +original code -> new code + 00 -> 00 + 01 -> 01 + 10 -> 10 + 11 -> 11 +@N: MO225 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1801:0:1801:5|There are no possible illegal states for state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)); safe FSM implementation is not required. + +Finished constraint checker preprocessing (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + +None +None + +Finished constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + +Pre-mapping successful! + +At Mapper Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 58MB peak: 144MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime +# Mon May 13 09:09:07 2019 + +###########################################################] +Map & Optimize Report + +# Mon May 13 09:09:07 2019 + +Synopsys Lattice Technology Mapper, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 114MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 116MB) + + + +Starting Optimization and Mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + + +Available hyper_sources - for debug and ip models + None Found + + +Finished RTL optimizations (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + +Encoding state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) +original code -> new code + 00 -> 00 + 01 -> 01 + 10 -> 10 + 11 -> 11 +@N: MO225 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1801:0:1801:5|There are no possible illegal states for state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)); safe FSM implementation is not required. +@N: MO231 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1350:0:1350:5|Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance rhb_wait_cnt[7:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1304:0:1304:5|Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance rcount[15:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1759:0:1759:5|Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance pcount[21:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":412:3:412:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk1\.plol_cnt[19:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":909:3:909:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.genblk3\.rxr_wt_cnt[11:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":527:3:527:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk1\.genblk2\.txr_wt_cnt[11:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":778:3:778:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.rlols0_cnt[17:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":680:3:680:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.rlol1_cnt[18:0] + +Starting factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + + +Finished factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 145MB) + + +Starting gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 145MB) + + +Finished gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 145MB) + + +Finished generic timing optimizations - Pass 1 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 145MB) + + +Starting Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:01s; Memory used current: 145MB peak: 146MB) + + +Finished Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:01s; Memory used current: 145MB peak: 146MB) + + +Finished generic timing optimizations - Pass 2 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:01s; Memory used current: 145MB peak: 146MB) + + +Finished preparing to map (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 145MB peak: 146MB) + +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). + +Finished technology mapping (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 147MB peak: 149MB) + +Pass CPU time Worst Slack Luts / Registers +------------------------------------------------------------ + 1 0h:00m:01s 4.90ns 155 / 221 +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). + +Finished technology timing optimizations and critical path resynthesis (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 147MB peak: 149MB) + +@N: FX164 |The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute. + +Finished restoring hierarchy (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 148MB peak: 149MB) + + + +@S |Clock Optimization Summary + + +#### START OF CLOCK OPTIMIZATION REPORT #####[ + +3 non-gated/non-generated clock tree(s) driving 221 clock pin(s) of sequential element(s) +0 gated/generated clock tree(s) driving 0 clock pin(s) of sequential element(s) +0 instances converted, 0 sequential instances remain driven by gated/generated clocks + +============================================= Non-Gated/Non-Generated Clocks ============================================= +Clock Tree ID Driving Element Drive Element Type Fanout Sample Instance +-------------------------------------------------------------------------------------------------------------------------- +@K:CKID0001 pll_refclki port 91 rsl_inst.genblk1\.genblk2\.mfor\[0\]\.txpr_appd[0] +@K:CKID0002 rxrefclk port 77 rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] +@K:CKID0003 DCU0_inst DCUA 53 sll_inst.pcount[21] +========================================================================================================================== + + +##### END OF CLOCK OPTIMIZATION REPORT ######] + + +Start Writing Netlists (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 112MB peak: 149MB) + +Writing Analyst data base /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_m.srm + +Finished Writing Netlist Databases (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 147MB peak: 149MB) + +Writing EDIF Netlist and constraint files +@N: FX1056 |Writing EDF file: /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.edn +M-2017.03L-SP1-1 +@N: BW106 |Synplicity Constraint File capacitance units using default value of 1pF + +Finished Writing EDIF Netlist and constraint files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 151MB peak: 153MB) + +Writing Verilog Simulation files + +Finished Writing Verilog Simulation files (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB) + +Writing VHDL Simulation files + +Finished Writing VHDL Simulation files (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB) + + +Start final timing analysis (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB) + +@W: MT246 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.vhd":162:4:162:12|Blackbox DCUA is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) +@W: MT420 |Found inferred clock sgmii_ecp5|rxrefclk with period 10.00ns. Please declare a user-defined clock on object "p:rxrefclk" +@W: MT420 |Found inferred clock sgmii_ecp5|pll_refclki with period 10.00ns. Please declare a user-defined clock on object "p:pll_refclki" +@W: MT420 |Found inferred clock sgmii_ecp5|tx_pclk_inferred_clock with period 10.00ns. Please declare a user-defined clock on object "n:tx_pclk" + + +##### START OF TIMING REPORT #####[ +# Timing Report written on Mon May 13 09:09:11 2019 +# + + +Top view: sgmii_ecp5 +Requested Frequency: 100.0 MHz +Wire load mode: top +Paths requested: 5 +Constraint File(s): /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.fdc + +@N: MT320 |This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. + +@N: MT322 |Clock constraints include only register-to-register paths associated with each individual clock. + + + +Performance Summary +******************* + + +Worst slack in design: 4.043 + + Requested Estimated Requested Estimated Clock Clock +Starting Clock Frequency Frequency Period Period Slack Type Group +---------------------------------------------------------------------------------------------------------------------------------------- +sgmii_ecp5|pll_refclki 100.0 MHz 168.9 MHz 10.000 5.921 4.079 inferred Inferred_clkgroup_0 +sgmii_ecp5|rxrefclk 100.0 MHz 167.9 MHz 10.000 5.957 4.043 inferred Inferred_clkgroup_1 +sgmii_ecp5|tx_pclk_inferred_clock 100.0 MHz 237.5 MHz 10.000 4.211 5.789 inferred Inferred_clkgroup_2 +System 100.0 MHz 840.7 MHz 10.000 1.190 8.810 system system_clkgroup +======================================================================================================================================== + + + + + +Clock Relationships +******************* + +Clocks | rise to rise | fall to fall | rise to fall | fall to rise +------------------------------------------------------------------------------------------------------------------------------------------------------------ +Starting Ending | constraint slack | constraint slack | constraint slack | constraint slack +------------------------------------------------------------------------------------------------------------------------------------------------------------ +System sgmii_ecp5|rxrefclk | 10.000 8.811 | No paths - | No paths - | No paths - +sgmii_ecp5|pll_refclki System | 10.000 8.253 | No paths - | No paths - | No paths - +sgmii_ecp5|pll_refclki sgmii_ecp5|pll_refclki | 10.000 4.079 | No paths - | No paths - | No paths - +sgmii_ecp5|pll_refclki sgmii_ecp5|tx_pclk_inferred_clock | Diff grp - | No paths - | No paths - | No paths - +sgmii_ecp5|rxrefclk System | 10.000 8.277 | No paths - | No paths - | No paths - +sgmii_ecp5|rxrefclk sgmii_ecp5|rxrefclk | 10.000 4.043 | No paths - | No paths - | No paths - +sgmii_ecp5|tx_pclk_inferred_clock sgmii_ecp5|pll_refclki | Diff grp - | No paths - | No paths - | No paths - +sgmii_ecp5|tx_pclk_inferred_clock sgmii_ecp5|tx_pclk_inferred_clock | 10.000 5.789 | No paths - | No paths - | No paths - +============================================================================================================================================================ + Note: 'No paths' indicates there are no paths in the design for that pair of clock edges. + 'Diff grp' indicates that paths exist but the starting clock and ending clock are in different clock groups. + + + +Interface Information +********************* + +No IO constraint found + + + +==================================== +Detailed Report for Clock: sgmii_ecp5|pll_refclki +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +-------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[2] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[2] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[3] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[3] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[17] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[17] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[19] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[19] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[1] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[1] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[4] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[4] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[5] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[5] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[6] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[6] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[7] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[7] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[8] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[8] 0.907 4.684 +==================================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +----------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[19] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[19] 9.946 4.079 +rsl_inst.genblk1\.plol_cnt[17] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[17] 9.946 4.139 +rsl_inst.genblk1\.plol_cnt[18] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[18] 9.946 4.139 +rsl_inst.genblk1\.plol_cnt[15] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[15] 9.946 4.200 +rsl_inst.genblk1\.plol_cnt[16] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[16] 9.946 4.200 +rsl_inst.genblk1\.plol_cnt[13] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[13] 9.946 4.261 +rsl_inst.genblk1\.plol_cnt[14] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[14] 9.946 4.261 +rsl_inst.genblk1\.plol_cnt[11] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[11] 9.946 4.322 +rsl_inst.genblk1\.plol_cnt[12] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[12] 9.946 4.322 +rsl_inst.genblk1\.plol_cnt[9] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[9] 9.946 4.383 +======================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 5.867 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : 4.079 + + Number of logic level(s): 15 + Starting point: rsl_inst.genblk1\.plol_cnt[2] / Q + Ending point: rsl_inst.genblk1\.plol_cnt[19] / D + The start point is clocked by sgmii_ecp5|pll_refclki [rising] on pin CK + The end point is clocked by sgmii_ecp5|pll_refclki [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[2] FD1S3DX Q Out 0.907 0.907 - +plol_cnt[2] Net - - - - 2 +rsl_inst.genblk1\.un1_plol_cnt_tc_10 ORCALUT4 A In 0.000 0.907 - +rsl_inst.genblk1\.un1_plol_cnt_tc_10 ORCALUT4 Z Out 0.606 1.513 - +un1_plol_cnt_tc_10 Net - - - - 1 +rsl_inst.genblk1\.un1_plol_cnt_tc_14 ORCALUT4 D In 0.000 1.513 - +rsl_inst.genblk1\.un1_plol_cnt_tc_14 ORCALUT4 Z Out 0.606 2.119 - +un1_plol_cnt_tc_14 Net - - - - 1 +rsl_inst.genblk1\.un1_plol_cnt_tc ORCALUT4 D In 0.000 2.119 - +rsl_inst.genblk1\.un1_plol_cnt_tc ORCALUT4 Z Out 0.762 2.881 - +un1_plol_cnt_tc Net - - - - 5 +rsl_inst.genblk1\.plol_cnt11_i ORCALUT4 B In 0.000 2.881 - +rsl_inst.genblk1\.plol_cnt11_i ORCALUT4 Z Out 0.840 3.721 - +plol_cnt Net - - - - 21 +rsl_inst.genblk1\.plol_cnt_cry_0[0] CCU2C A1 In 0.000 3.721 - +rsl_inst.genblk1\.plol_cnt_cry_0[0] CCU2C COUT Out 0.900 4.621 - +plol_cnt_cry[0] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[1] CCU2C CIN In 0.000 4.621 - +rsl_inst.genblk1\.plol_cnt_cry_0[1] CCU2C COUT Out 0.061 4.682 - +plol_cnt_cry[2] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[3] CCU2C CIN In 0.000 4.682 - +rsl_inst.genblk1\.plol_cnt_cry_0[3] CCU2C COUT Out 0.061 4.743 - +plol_cnt_cry[4] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[5] CCU2C CIN In 0.000 4.743 - +rsl_inst.genblk1\.plol_cnt_cry_0[5] CCU2C COUT Out 0.061 4.804 - +plol_cnt_cry[6] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[7] CCU2C CIN In 0.000 4.804 - +rsl_inst.genblk1\.plol_cnt_cry_0[7] CCU2C COUT Out 0.061 4.865 - +plol_cnt_cry[8] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[9] CCU2C CIN In 0.000 4.865 - +rsl_inst.genblk1\.plol_cnt_cry_0[9] CCU2C COUT Out 0.061 4.926 - +plol_cnt_cry[10] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[11] CCU2C CIN In 0.000 4.926 - +rsl_inst.genblk1\.plol_cnt_cry_0[11] CCU2C COUT Out 0.061 4.987 - +plol_cnt_cry[12] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[13] CCU2C CIN In 0.000 4.987 - +rsl_inst.genblk1\.plol_cnt_cry_0[13] CCU2C COUT Out 0.061 5.048 - +plol_cnt_cry[14] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[15] CCU2C CIN In 0.000 5.048 - +rsl_inst.genblk1\.plol_cnt_cry_0[15] CCU2C COUT Out 0.061 5.109 - +plol_cnt_cry[16] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[17] CCU2C CIN In 0.000 5.109 - +rsl_inst.genblk1\.plol_cnt_cry_0[17] CCU2C COUT Out 0.061 5.170 - +plol_cnt_cry[18] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_s_0[19] CCU2C CIN In 0.000 5.170 - +rsl_inst.genblk1\.plol_cnt_s_0[19] CCU2C S0 Out 0.698 5.867 - +plol_cnt_s[19] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt[19] FD1S3DX D In 0.000 5.867 - +======================================================================================================= + + + + +==================================== +Detailed Report for Clock: sgmii_ecp5|rxrefclk +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rxs_rst sgmii_ecp5|rxrefclk FD1P3DX Q rxs_rst 1.015 4.043 +rsl_inst.genblk2\.rlol1_cnt[7] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[7] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[8] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[8] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[9] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[9] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[10] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[10] 0.907 4.136 +rsl_inst.genblk2\.rlols0_cnt[1] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[1] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[2] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[2] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[3] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[3] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[4] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[4] 0.907 4.170 +rsl_inst.genblk2\.rlol1_cnt[0] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[0] 0.907 4.742 +=================================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[11] sgmii_ecp5|rxrefclk FD1P3DX D rxr_wt_cnt_s[11] 9.946 4.043 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[9] sgmii_ecp5|rxrefclk FD1P3DX D rxr_wt_cnt_s[9] 9.946 4.104 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[10] sgmii_ecp5|rxrefclk FD1P3DX D rxr_wt_cnt_s[10] 9.946 4.104 +rsl_inst.genblk2\.rlol1_cnt[17] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[17] 9.946 4.136 +rsl_inst.genblk2\.rlol1_cnt[18] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[18] 9.946 4.136 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[7] sgmii_ecp5|rxrefclk FD1P3DX D rxr_wt_cnt_s[7] 9.946 4.165 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[8] sgmii_ecp5|rxrefclk FD1P3DX D rxr_wt_cnt_s[8] 9.946 4.165 +rsl_inst.genblk2\.rlols0_cnt[17] sgmii_ecp5|rxrefclk FD1P3DX D rlols0_cnt_s[17] 9.946 4.170 +rsl_inst.genblk2\.rlol1_cnt[15] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[15] 9.946 4.197 +rsl_inst.genblk2\.rlol1_cnt[16] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[16] 9.946 4.197 +================================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 5.902 + - Clock delay at starting point: 0.000 (ideal) + = Slack (critical) : 4.043 + + Number of logic level(s): 11 + Starting point: rsl_inst.genblk2\.rxs_rst / Q + Ending point: rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[11] / D + The start point is clocked by sgmii_ecp5|rxrefclk [rising] on pin CK + The end point is clocked by sgmii_ecp5|rxrefclk [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +----------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rxs_rst FD1P3DX Q Out 1.015 1.015 - +rxs_rst Net - - - - 6 +rsl_inst.rdo_rx_serdes_rst_c_1[0] ORCALUT4 B In 0.000 1.015 - +rsl_inst.rdo_rx_serdes_rst_c_1[0] ORCALUT4 Z Out 0.708 1.723 - +rsl_rx_serdes_rst_c Net - - - - 3 +rsl_inst.dual_or_rserd_rst ORCALUT4 A In 0.000 1.723 - +rsl_inst.dual_or_rserd_rst ORCALUT4 Z Out 0.798 2.521 - +dual_or_rserd_rst Net - - - - 9 +rsl_inst.rx_any_rst ORCALUT4 A In 0.000 2.521 - +rsl_inst.rx_any_rst ORCALUT4 Z Out 0.660 3.181 - +rx_any_rst Net - - - - 2 +rsl_inst.rx_any_rst_RNIFD021 ORCALUT4 A In 0.000 3.181 - +rsl_inst.rx_any_rst_RNIFD021 ORCALUT4 Z Out 0.819 4.000 - +rxr_wt_cnt9 Net - - - - 14 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[0] CCU2C A1 In 0.000 4.000 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[0] CCU2C COUT Out 0.900 4.900 - +rxr_wt_cnt_cry[0] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[1] CCU2C CIN In 0.000 4.900 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[1] CCU2C COUT Out 0.061 4.961 - +rxr_wt_cnt_cry[2] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[3] CCU2C CIN In 0.000 4.961 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[3] CCU2C COUT Out 0.061 5.022 - +rxr_wt_cnt_cry[4] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[5] CCU2C CIN In 0.000 5.022 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[5] CCU2C COUT Out 0.061 5.083 - +rxr_wt_cnt_cry[6] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[7] CCU2C CIN In 0.000 5.083 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[7] CCU2C COUT Out 0.061 5.144 - +rxr_wt_cnt_cry[8] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[9] CCU2C CIN In 0.000 5.144 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[9] CCU2C COUT Out 0.061 5.205 - +rxr_wt_cnt_cry[10] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_s_0[11] CCU2C CIN In 0.000 5.205 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_s_0[11] CCU2C S0 Out 0.698 5.902 - +rxr_wt_cnt_s[11] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[11] FD1P3DX D In 0.000 5.902 - +================================================================================================================= + + + + +==================================== +Detailed Report for Clock: sgmii_ecp5|tx_pclk_inferred_clock +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------------------------------------------ +sll_inst.ppul_sync_p1 sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q ppul_sync_p1 1.098 5.789 +sll_inst.ppul_sync_p2 sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q ppul_sync_p2 1.098 5.789 +sll_inst.pcount_diff[0] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_0 0.985 6.147 +sll_inst.pcount[0] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q pcount[0] 0.955 6.178 +sll_inst.pcount_diff[1] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_1 0.955 6.239 +sll_inst.pcount_diff[2] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_2 0.955 6.239 +sll_inst.pcount[1] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q pcount[1] 0.907 6.287 +sll_inst.pcount[2] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q pcount[2] 0.907 6.287 +sll_inst.pcount_diff[3] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_3 0.955 6.300 +sll_inst.pcount_diff[4] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_4 0.955 6.300 +======================================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +----------------------------------------------------------------------------------------------------------------------------------------- +sll_inst.pcount[21] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[21] 9.946 5.789 +sll_inst.pcount[19] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[19] 9.946 5.850 +sll_inst.pcount[20] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[20] 9.946 5.850 +sll_inst.pcount[17] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[17] 9.946 5.911 +sll_inst.pcount[18] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[18] 9.946 5.911 +sll_inst.pcount[15] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[15] 9.946 5.972 +sll_inst.pcount[16] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[16] 9.946 5.972 +sll_inst.pcount[13] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[13] 9.946 6.033 +sll_inst.pcount[14] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[14] 9.946 6.033 +sll_inst.pcount_diff[21] sgmii_ecp5|tx_pclk_inferred_clock FD1P3DX D un1_pcount_diff_1_s_21_0_S0 9.946 6.034 +========================================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 4.157 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : 5.789 + + Number of logic level(s): 13 + Starting point: sll_inst.ppul_sync_p1 / Q + Ending point: sll_inst.pcount[21] / D + The start point is clocked by sgmii_ecp5|tx_pclk_inferred_clock [rising] on pin CK + The end point is clocked by sgmii_ecp5|tx_pclk_inferred_clock [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +-------------------------------------------------------------------------------------------- +sll_inst.ppul_sync_p1 FD1S3DX Q Out 1.098 1.098 - +ppul_sync_p1 Net - - - - 25 +sll_inst.pcount10_0_o3 ORCALUT4 A In 0.000 1.098 - +sll_inst.pcount10_0_o3 ORCALUT4 Z Out 0.851 1.950 - +N_8 Net - - - - 25 +sll_inst.pcount_cry_0[0] CCU2C A1 In 0.000 1.950 - +sll_inst.pcount_cry_0[0] CCU2C COUT Out 0.900 2.850 - +pcount_cry[0] Net - - - - 1 +sll_inst.pcount_cry_0[1] CCU2C CIN In 0.000 2.850 - +sll_inst.pcount_cry_0[1] CCU2C COUT Out 0.061 2.911 - +pcount_cry[2] Net - - - - 1 +sll_inst.pcount_cry_0[3] CCU2C CIN In 0.000 2.911 - +sll_inst.pcount_cry_0[3] CCU2C COUT Out 0.061 2.972 - +pcount_cry[4] Net - - - - 1 +sll_inst.pcount_cry_0[5] CCU2C CIN In 0.000 2.972 - +sll_inst.pcount_cry_0[5] CCU2C COUT Out 0.061 3.033 - +pcount_cry[6] Net - - - - 1 +sll_inst.pcount_cry_0[7] CCU2C CIN In 0.000 3.033 - +sll_inst.pcount_cry_0[7] CCU2C COUT Out 0.061 3.094 - +pcount_cry[8] Net - - - - 1 +sll_inst.pcount_cry_0[9] CCU2C CIN In 0.000 3.094 - +sll_inst.pcount_cry_0[9] CCU2C COUT Out 0.061 3.155 - +pcount_cry[10] Net - - - - 1 +sll_inst.pcount_cry_0[11] CCU2C CIN In 0.000 3.155 - +sll_inst.pcount_cry_0[11] CCU2C COUT Out 0.061 3.216 - +pcount_cry[12] Net - - - - 1 +sll_inst.pcount_cry_0[13] CCU2C CIN In 0.000 3.216 - +sll_inst.pcount_cry_0[13] CCU2C COUT Out 0.061 3.277 - +pcount_cry[14] Net - - - - 1 +sll_inst.pcount_cry_0[15] CCU2C CIN In 0.000 3.277 - +sll_inst.pcount_cry_0[15] CCU2C COUT Out 0.061 3.338 - +pcount_cry[16] Net - - - - 1 +sll_inst.pcount_cry_0[17] CCU2C CIN In 0.000 3.338 - +sll_inst.pcount_cry_0[17] CCU2C COUT Out 0.061 3.399 - +pcount_cry[18] Net - - - - 1 +sll_inst.pcount_cry_0[19] CCU2C CIN In 0.000 3.399 - +sll_inst.pcount_cry_0[19] CCU2C COUT Out 0.061 3.460 - +pcount_cry[20] Net - - - - 1 +sll_inst.pcount_s_0[21] CCU2C CIN In 0.000 3.460 - +sll_inst.pcount_s_0[21] CCU2C S0 Out 0.698 4.157 - +pcount_s[21] Net - - - - 1 +sll_inst.pcount[21] FD1S3DX D In 0.000 4.157 - +============================================================================================ + + + + +==================================== +Detailed Report for Clock: System +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +---------------------------------------------------------------------------------------- +DCU0_inst System DCUA CH0_FFS_RLOL rx_cdr_lol_s 0.000 8.810 +DCU0_inst System DCUA CH0_FFS_RLOS rx_los_low_s 0.000 8.810 +======================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] System FD1P3DX SP un2_rdo_serdes_rst_dual_c_2_i 9.806 8.810 +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] System FD1P3DX D rxpr_appd_RNO[0] 9.946 9.556 +rsl_inst.genblk2\.rlol_p1 System FD1S3DX D rx_cdr_lol_s 9.946 9.946 +rsl_inst.genblk2\.rlos_p1 System FD1S3DX D rx_los_low_s 9.946 9.946 +============================================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.194 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.806 + + - Propagation time: 0.996 + - Clock delay at starting point: 0.000 (ideal) + - Estimated clock delay at start point: -0.000 + = Slack (non-critical) : 8.810 + + Number of logic level(s): 2 + Starting point: DCU0_inst / CH0_FFS_RLOL + Ending point: rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] / SP + The start point is clocked by System [rising] + The end point is clocked by sgmii_ecp5|rxrefclk [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +----------------------------------------------------------------------------------------------------------------------------------- +DCU0_inst DCUA CH0_FFS_RLOL Out 0.000 0.000 - +rx_cdr_lol_s Net - - - - 4 +rsl_inst.un2_rdo_serdes_rst_dual_c_1_1 ORCALUT4 A In 0.000 0.000 - +rsl_inst.un2_rdo_serdes_rst_dual_c_1_1 ORCALUT4 Z Out 0.606 0.606 - +un2_rdo_serdes_rst_dual_c_1_1 Net - - - - 1 +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd_RNO_0[0] ORCALUT4 B In 0.000 0.606 - +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd_RNO_0[0] ORCALUT4 Z Out 0.390 0.996 - +un2_rdo_serdes_rst_dual_c_2_i Net - - - - 1 +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] FD1P3DX SP In 0.000 0.996 - +=================================================================================================================================== + + + +##### END OF TIMING REPORT #####] + +Timing exceptions that could not be applied +None + +Finished final timing analysis (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB) + + +Finished timing report (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB) + +--------------------------------------- +Resource Usage Report +Part: lfe5um_25f-6 + +Register bits: 221 of 24288 (1%) +PIC Latch: 0 +I/O cells: 0 + + +Details: +CCU2C: 113 +DCUA: 1 +FD1P3BX: 20 +FD1P3DX: 92 +FD1S3BX: 12 +FD1S3DX: 97 +GSR: 1 +INV: 3 +ORCALUT4: 154 +PFUMX: 2 +PUR: 1 +VHI: 6 +VLO: 6 +Mapper successful! + +At Mapper Exit (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 35MB peak: 153MB) + +Process took 0h:00m:03s realtime, 0h:00m:03s cputime +# Mon May 13 09:09:11 2019 + +###########################################################] diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.srr.db b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.srr.db new file mode 100644 index 0000000000000000000000000000000000000000..52f21b6ca506bcb9c259911bbd654d527002a3c4 GIT binary patch literal 40960 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 z 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�}CEW|2&dbg2Ed&YR!gg%(CWQ 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 O{{sNu28kWUYykijX#}PK literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.vhm b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.vhm new file mode 100644 index 0000000..a488a9a --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.vhm @@ -0,0 +1,6445 @@ +-- +-- Written by Synplicity +-- Product Version "M-2017.03L-SP1-1" +-- Program "Synplify Pro", Mapper "maplat, Build 1796R" +-- Mon May 13 09:09:11 2019 +-- + +-- +-- Written by Synplify Pro version Build 1796R +-- Mon May 13 09:09:11 2019 +-- + +-- +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; +library synplify; +use synplify.components.all; +library pmi; +use pmi.pmi_components.all; +library ecp5um; +use ecp5um.components.all; + +entity sync_0s_0 is +port( + ppul_sync : in std_logic; + pdiff_sync : out std_logic; + sli_rst : in std_logic; + pll_refclki : in std_logic); +end sync_0s_0; + +architecture beh of sync_0s_0 is + signal DATA_P1 : std_logic ; + signal DATA_P2_QN_1 : std_logic ; + signal VCC : std_logic ; + signal DATA_P1_QN_1 : std_logic ; + signal GND : std_logic ; +begin +DATA_P2_REG_Z10: FD1S3DX port map ( + D => DATA_P1, + CK => pll_refclki, + CD => sli_rst, + Q => pdiff_sync); +DATA_P1_REG_Z12: FD1S3DX port map ( + D => ppul_sync, + CK => pll_refclki, + CD => sli_rst, + Q => DATA_P1); +VCC_0: VHI port map ( + Z => VCC); +II_GND: VLO port map ( + Z => GND); +end beh; + +-- +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; +library synplify; +use synplify.components.all; +library pmi; +use pmi.pmi_components.all; +library ecp5um; +use ecp5um.components.all; + +entity sync_0s_6 is +port( +rtc_pul : in std_logic; +ppul_sync : out std_logic; +sli_rst : in std_logic; +tx_pclk : in std_logic); +end sync_0s_6; + +architecture beh of sync_0s_6 is +signal DATA_P1 : std_logic ; +signal DATA_P2_QN : std_logic ; +signal VCC : std_logic ; +signal DATA_P1_QN : std_logic ; +signal GND : std_logic ; +begin +DATA_P2_REG_Z10: FD1S3DX port map ( + D => DATA_P1, + CK => tx_pclk, + CD => sli_rst, + Q => ppul_sync); +DATA_P1_REG_Z12: FD1S3DX port map ( + D => rtc_pul, + CK => tx_pclk, + CD => sli_rst, + Q => DATA_P1); +VCC_0: VHI port map ( + Z => VCC); +II_GND: VLO port map ( + Z => GND); +end beh; + +-- +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; +library synplify; +use synplify.components.all; +library pmi; +use pmi.pmi_components.all; +library ecp5um; +use ecp5um.components.all; + +entity sync_0s is +port( +phb : in std_logic; +rhb_sync : out std_logic; +sli_rst : in std_logic; +pll_refclki : in std_logic); +end sync_0s; + +architecture beh of sync_0s is +signal DATA_P1 : std_logic ; +signal DATA_P2_QN_0 : std_logic ; +signal VCC : std_logic ; +signal DATA_P1_QN_0 : std_logic ; +signal GND : std_logic ; +begin +DATA_P2_REG_Z10: FD1S3DX port map ( +D => DATA_P1, +CK => pll_refclki, +CD => sli_rst, +Q => rhb_sync); +DATA_P1_REG_Z12: FD1S3DX port map ( +D => phb, +CK => pll_refclki, +CD => sli_rst, +Q => DATA_P1); +VCC_0: VHI port map ( +Z => VCC); +II_GND: VLO port map ( +Z => GND); +end beh; + +-- +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; +library synplify; +use synplify.components.all; +library pmi; +use pmi.pmi_components.all; +library ecp5um; +use ecp5um.components.all; + +entity sgmii_ecp5rsl_core_Z2_layer1 is +port( +rx_pcs_rst_c : in std_logic; +tx_pcs_rst_c : in std_logic; +tx_serdes_rst_c : in std_logic; +serdes_rst_dual_c : in std_logic; +rsl_tx_pcs_rst_c : out std_logic; +rsl_rx_serdes_rst_c : out std_logic; +rsl_serdes_rst_dual_c : out std_logic; +rsl_tx_serdes_rst_c : out std_logic; +rsl_tx_rdy : out std_logic; +pll_lock_i : in std_logic; +pll_refclki : in std_logic; +rsl_rx_rdy : out std_logic; +rsl_rst : in std_logic; +rxrefclk : in std_logic; +rsl_disable : in std_logic; +rx_serdes_rst_c : in std_logic; +rsl_rx_pcs_rst_c : out std_logic; +rst_dual_c : in std_logic; +rx_cdr_lol_s : in std_logic; +rx_los_low_s : in std_logic); +end sgmii_ecp5rsl_core_Z2_layer1; + +architecture beh of sgmii_ecp5rsl_core_Z2_layer1 is +signal RXS_CNT : std_logic_vector(1 downto 0); +signal RXS_CNT_3 : std_logic_vector(1 downto 0); +signal RXPR_APPD_RNO : std_logic_vector(0 to 0); +signal PLOL0_CNT : std_logic_vector(2 downto 0); +signal PLOL0_CNT_3 : std_logic_vector(2 downto 0); +signal RXSR_APPD : std_logic_vector(0 to 0); +signal RXS_CNT_QN : std_logic_vector(1 downto 0); +signal RLOS_DB_CNT : std_logic_vector(3 downto 0); +signal RLOS_DB_CNT_QN : std_logic_vector(3 downto 0); +signal RLOLS0_CNT_S : std_logic_vector(17 downto 0); +signal RLOLS0_CNT : std_logic_vector(17 downto 0); +signal RLOLS0_CNT_QN : std_logic_vector(17 downto 0); +signal RLOL_DB_CNT : std_logic_vector(3 downto 0); +signal RLOL_DB_CNT_QN : std_logic_vector(3 downto 0); +signal RLOL1_CNT_S : std_logic_vector(18 downto 0); +signal RLOL1_CNT : std_logic_vector(18 downto 0); +signal RLOL1_CNT_QN : std_logic_vector(18 downto 0); +signal RXR_WT_CNT_S : std_logic_vector(11 downto 0); +signal RXR_WT_CNT : std_logic_vector(11 downto 0); +signal RXR_WT_CNT_QN : std_logic_vector(11 downto 0); +signal RXSR_APPD_QN : std_logic_vector(0 to 0); +signal RXPR_APPD : std_logic_vector(0 to 0); +signal RXPR_APPD_QN : std_logic_vector(0 to 0); +signal TXS_CNT : std_logic_vector(1 downto 0); +signal TXS_CNT_QN : std_logic_vector(1 downto 0); +signal TXS_CNT_RNO : std_logic_vector(1 to 1); +signal TXP_CNT : std_logic_vector(1 downto 0); +signal TXP_CNT_QN : std_logic_vector(1 downto 0); +signal TXP_CNT_RNO : std_logic_vector(1 to 1); +signal PLOL_CNT_S : std_logic_vector(19 downto 0); +signal PLOL_CNT : std_logic_vector(19 downto 0); +signal PLOL_CNT_QN : std_logic_vector(19 downto 0); +signal PLOL0_CNT_QN : std_logic_vector(2 downto 0); +signal TXR_WT_CNT_S : std_logic_vector(11 downto 0); +signal TXR_WT_CNT : std_logic_vector(11 downto 0); +signal TXR_WT_CNT_QN : std_logic_vector(11 downto 0); +signal TXPR_APPD : std_logic_vector(0 to 0); +signal TXPR_APPD_QN : std_logic_vector(0 to 0); +signal UN1_RLOL_DB_CNT_ZERO : std_logic_vector(0 to 0); +signal UN1_RLOS_DB_CNT_ZERO : std_logic_vector(0 to 0); +signal UN1_RLOL_DB_CNT_ZERO_BM : std_logic_vector(0 to 0); +signal UN1_RLOL_DB_CNT_ZERO_AM : std_logic_vector(0 to 0); +signal UN1_RLOS_DB_CNT_ZERO_BM : std_logic_vector(0 to 0); +signal UN1_RLOS_DB_CNT_ZERO_AM : std_logic_vector(0 to 0); +signal RLOL1_CNT_CRY : std_logic_vector(16 downto 0); +signal RLOL1_CNT_CRY_0_S0 : std_logic_vector(0 to 0); +signal RLOL1_CNT_CRY_0_COUT : std_logic_vector(17 to 17); +signal RLOLS0_CNT_CRY : std_logic_vector(16 downto 0); +signal RLOLS0_CNT_CRY_0_S0 : std_logic_vector(0 to 0); +signal RLOLS0_CNT_S_0_COUT : std_logic_vector(17 to 17); +signal RLOLS0_CNT_S_0_S1 : std_logic_vector(17 to 17); +signal TXR_WT_CNT_CRY : std_logic_vector(10 downto 0); +signal TXR_WT_CNT_CRY_0_S0 : std_logic_vector(0 to 0); +signal TXR_WT_CNT_S_0_COUT : std_logic_vector(11 to 11); +signal TXR_WT_CNT_S_0_S1 : std_logic_vector(11 to 11); +signal RXR_WT_CNT_CRY : std_logic_vector(10 downto 0); +signal RXR_WT_CNT_CRY_0_S0 : std_logic_vector(0 to 0); +signal RXR_WT_CNT_S_0_COUT : std_logic_vector(11 to 11); +signal RXR_WT_CNT_S_0_S1 : std_logic_vector(11 to 11); +signal PLOL_CNT_CRY : std_logic_vector(18 downto 0); +signal PLOL_CNT_CRY_0_S0 : std_logic_vector(0 to 0); +signal PLOL_CNT_S_0_COUT : std_logic_vector(19 to 19); +signal PLOL_CNT_S_0_S1 : std_logic_vector(19 to 19); +signal RXS_RST : std_logic ; +signal VCC : std_logic ; +signal DUAL_OR_RSERD_RST : std_logic ; +signal PLOL0_CNT9 : std_logic ; +signal WAITA_PLOL0 : std_logic ; +signal RLOS_DB_P1 : std_logic ; +signal RLOS_DB : std_logic ; +signal RXP_RST25 : std_logic ; +signal RLOL_DB : std_logic ; +signal UN1_RUI_RST_DUAL_C_1_1 : std_logic ; +signal RX_ALL_WELL : std_logic ; +signal RSL_RX_PCS_RST_C_10 : std_logic ; +signal UN3_RX_ALL_WELL_2 : std_logic ; +signal UN17_RXR_WT_TC : std_logic ; +signal UN3_RX_ALL_WELL_1 : std_logic ; +signal RX_ANY_RST : std_logic ; +signal RXR_WT_CNT9 : std_logic ; +signal UN1_RUI_RST_DUAL_C_1_I : std_logic ; +signal RLOL1_CNT_TC_1 : std_logic ; +signal \RLOL1_CNT_\ : std_logic ; +signal RXR_WT_EN : std_logic ; +signal RXR_WT_CNTE : std_logic ; +signal RLOLS0_CNT_TC_1 : std_logic ; +signal UN2_RLOS_REDGE_1_I : std_logic ; +signal UN18_TXR_WT_TC : std_logic ; +signal TX_ANY_RST : std_logic ; +signal PLL_LOL_P2 : std_logic ; +signal UN2_PLOL_FEDGE_5_I : std_logic ; +signal N_2124_0 : std_logic ; +signal WAITA_RLOLS06 : std_logic ; +signal UN1_RLOLS0_CNT_TC : std_logic ; +signal WAITA_RLOLS0 : std_logic ; +signal WAITA_RLOLS0_QN : std_logic ; +signal WAIT_CALIB_RNO : std_logic ; +signal UN1_RLOS_FEDGE_1 : std_logic ; +signal WAIT_CALIB : std_logic ; +signal WAIT_CALIB_QN : std_logic ; +signal RXS_RST6 : std_logic ; +signal UN1_RXS_CNT_TC : std_logic ; +signal RXS_RST_QN : std_logic ; +signal RXP_RST2 : std_logic ; +signal RXP_RST2_QN : std_logic ; +signal RLOS_P1 : std_logic ; +signal RLOS_P2 : std_logic ; +signal RLOS_P2_QN : std_logic ; +signal RLOS_P1_QN : std_logic ; +signal RLOS_DB_P1_QN : std_logic ; +signal RLOS_DB_CNT_AXB_0 : std_logic ; +signal RLOS_DB_CNT_CRY_1_0_S0 : std_logic ; +signal RLOS_DB_CNT_CRY_1_0_S1 : std_logic ; +signal RLOS_DB_CNT_S_3_0_S0 : std_logic ; +signal UN1_RLOS_DB_CNT_MAX : std_logic ; +signal RLOS_DB_QN : std_logic ; +signal RLOLS0_CNTE : std_logic ; +signal RLOL_P1 : std_logic ; +signal RLOL_P2 : std_logic ; +signal RLOL_P2_QN : std_logic ; +signal RLOL_P1_QN : std_logic ; +signal RLOL_DB_P1 : std_logic ; +signal RLOL_DB_P1_QN : std_logic ; +signal RLOL_DB_CNT_AXB_0 : std_logic ; +signal RLOL_DB_CNT_CRY_1_0_S0 : std_logic ; +signal RLOL_DB_CNT_CRY_1_0_S1 : std_logic ; +signal RLOL_DB_CNT_S_3_0_S0 : std_logic ; +signal UN1_RLOL_DB_CNT_MAX : std_logic ; +signal RLOL_DB_QN : std_logic ; +signal RLOL1_CNTE : std_logic ; +signal RXSDR_APPD_2 : std_logic ; +signal RXSDR_APPD : std_logic ; +signal RXSDR_APPD_QN : std_logic ; +signal UN1_DUAL_OR_RSERD_RST_2_I : std_logic ; +signal RXR_WT_EN_QN : std_logic ; +signal RXDPR_APPD : std_logic ; +signal RXDPR_APPD_QN : std_logic ; +signal RSL_RX_RDY_9 : std_logic ; +signal RUO_RX_RDYR_QN : std_logic ; +signal UN2_RDO_SERDES_RST_DUAL_C_2_I : std_logic ; +signal PLOL_FEDGE : std_logic ; +signal UN1_PLOL0_CNT_TC_1_I : std_logic ; +signal WAITA_PLOL0_QN : std_logic ; +signal UN1_PLOL_CNT_TC : std_logic ; +signal UN2_PLOL_CNT_TC : std_logic ; +signal TXS_RST : std_logic ; +signal TXS_RST_QN : std_logic ; +signal N_10_I : std_logic ; +signal UN9_PLOL0_CNT_TC : std_logic ; +signal UN1_PLOL0_CNT_TC_1 : std_logic ; +signal TXP_RST : std_logic ; +signal TXP_RST_QN : std_logic ; +signal N_11_I : std_logic ; +signal PLL_LOL_P3 : std_logic ; +signal PLL_LOL_P3_QN : std_logic ; +signal PLL_LOL_P1 : std_logic ; +signal PLL_LOL_P2_QN : std_logic ; +signal PLL_LOL_P1_QN : std_logic ; +signal TXSR_APPD_2 : std_logic ; +signal TXSR_APPD : std_logic ; +signal TXSR_APPD_QN : std_logic ; +signal UN1_DUAL_OR_SERD_RST_1_1 : std_logic ; +signal UN1_DUAL_OR_SERD_RST_1_I : std_logic ; +signal TXR_WT_EN : std_logic ; +signal TXR_WT_EN_QN : std_logic ; +signal TXR_WT_CNTE : std_logic ; +signal UN2_PLOL_FEDGE_2 : std_logic ; +signal UN2_PLOL_FEDGE_3_I : std_logic ; +signal TXDPR_APPD : std_logic ; +signal TXDPR_APPD_QN : std_logic ; +signal UN2_PLOL_FEDGE_5_1 : std_logic ; +signal RSL_TX_RDY_8 : std_logic ; +signal RUO_TX_RDYR_QN : std_logic ; +signal UN2_PLOL_FEDGE_8_I : std_logic ; +signal RLOS_REDGE : std_logic ; +signal RLOLS0_CNT11_0 : std_logic ; +signal RSL_TX_SERDES_RST_C_7 : std_logic ; +signal \PLOL_CNT_\ : std_logic ; +signal \RLOLS0_CNT_\ : std_logic ; +signal UN8_RXS_CNT_TC : std_logic ; +signal UN1_TXSR_APPD : std_logic ; +signal RSL_SERDES_RST_DUAL_C_6 : std_logic ; +signal UN3_RX_ALL_WELL_2_1 : std_logic ; +signal UN1_RXSDR_OR_SR_APPD : std_logic ; +signal UN2_RDO_SERDES_RST_DUAL_C_1_1 : std_logic ; +signal RSL_RX_SERDES_RST_C_5 : std_logic ; +signal RLOLS0_CNT_TC_1_10 : std_logic ; +signal RLOLS0_CNT_TC_1_11 : std_logic ; +signal RLOLS0_CNT_TC_1_12 : std_logic ; +signal RLOLS0_CNT_TC_1_13 : std_logic ; +signal UN1_PLOL_CNT_TC_11 : std_logic ; +signal UN1_PLOL_CNT_TC_12 : std_logic ; +signal UN1_PLOL_CNT_TC_13 : std_logic ; +signal UN1_PLOL_CNT_TC_14 : std_logic ; +signal RLOL1_CNT_TC_1_11 : std_logic ; +signal RLOL1_CNT_TC_1_12 : std_logic ; +signal RLOL1_CNT_TC_1_13 : std_logic ; +signal RLOL1_CNT_TC_1_14 : std_logic ; +signal TXSR_APPD_4 : std_logic ; +signal RSL_TX_PCS_RST_C_4 : std_logic ; +signal CO0_2 : std_logic ; +signal UN18_TXR_WT_TC_6 : std_logic ; +signal UN18_TXR_WT_TC_7 : std_logic ; +signal UN18_TXR_WT_TC_8 : std_logic ; +signal UN17_RXR_WT_TC_6 : std_logic ; +signal UN17_RXR_WT_TC_7 : std_logic ; +signal UN17_RXR_WT_TC_8 : std_logic ; +signal RXSDR_APPD_4 : std_logic ; +signal RLOLS0_CNT_TC_1_9 : std_logic ; +signal UN1_PLOL_CNT_TC_10 : std_logic ; +signal RLOL1_CNT_TC_1_10 : std_logic ; +signal \TXR_WT_CNT_\ : std_logic ; +signal RLOS_DB_CNT_CRY_0 : std_logic ; +signal RLOS_DB_CNT_CRY_0_0_S0 : std_logic ; +signal RLOS_DB_CNT_CRY_0_0_S1 : std_logic ; +signal RLOS_DB_CNT_CRY_2 : std_logic ; +signal RLOS_DB_CNT_S_3_0_COUT : std_logic ; +signal RLOS_DB_CNT_S_3_0_S1 : std_logic ; +signal RLOL_DB_CNT_CRY_0 : std_logic ; +signal RLOL_DB_CNT_CRY_0_0_S0 : std_logic ; +signal RLOL_DB_CNT_CRY_0_0_S1 : std_logic ; +signal RLOL_DB_CNT_CRY_2 : std_logic ; +signal RLOL_DB_CNT_S_3_0_COUT : std_logic ; +signal RLOL_DB_CNT_S_3_0_S1 : std_logic ; +signal GND : std_logic ; +signal N_1 : std_logic ; +signal N_2 : std_logic ; +signal N_3 : std_logic ; +signal N_4 : std_logic ; +signal N_5 : std_logic ; +signal N_6 : std_logic ; +signal N_7 : std_logic ; +begin +\GENBLK2.RXS_CNT_RNO[0]\: LUT4 +generic map( + init => X"2626" +) +port map ( +A => RXS_RST, +B => RXS_CNT(0), +C => RXS_CNT(1), +D => VCC, +Z => RXS_CNT_3(0)); +\GENBLK2.GENBLK3.LFOR[0].RXPR_APPD_RNO[0]\: LUT4 +generic map( + init => X"0101" +) +port map ( +A => DUAL_OR_RSERD_RST, +B => rx_los_low_s, +C => rx_cdr_lol_s, +D => VCC, +Z => RXPR_APPD_RNO(0)); +\GENBLK1.PLOL0_CNT_RNO[1]\: LUT4 +generic map( + init => X"1222" +) +port map ( +A => PLOL0_CNT(1), +B => PLOL0_CNT9, +C => WAITA_PLOL0, +D => PLOL0_CNT(0), +Z => PLOL0_CNT_3(1)); +\GENBLK2.RXP_RST2_RNO\: LUT4 +generic map( + init => X"BABA" +) +port map ( +A => DUAL_OR_RSERD_RST, +B => RLOS_DB_P1, +C => RLOS_DB, +D => VCC, +Z => RXP_RST25); +\GENBLK2.GENBLK3.RXDPR_APPD_RNO\: LUT4 +generic map( + init => X"0101" +) +port map ( +A => DUAL_OR_RSERD_RST, +B => RLOS_DB, +C => RLOL_DB, +D => VCC, +Z => UN1_RUI_RST_DUAL_C_1_1); +\GENBLK2.GENBLK3.RUO_RX_RDYR_RNO\: LUT4 +generic map( + init => X"0002" +) +port map ( +A => RX_ALL_WELL, +B => rst_dual_c, +C => RSL_RX_PCS_RST_C_10, +D => DUAL_OR_RSERD_RST, +Z => UN3_RX_ALL_WELL_2); +\GENBLK2.GENBLK3.RXR_WT_EN_RNO\: LUT4 +generic map( + init => X"0404" +) +port map ( +A => UN17_RXR_WT_TC, +B => RX_ALL_WELL, +C => DUAL_OR_RSERD_RST, +D => VCC, +Z => UN3_RX_ALL_WELL_1); +RX_ANY_RST_RNIFD021: LUT4 +generic map( + init => X"FFFE" +) +port map ( +A => RX_ANY_RST, +B => UN17_RXR_WT_TC, +C => RLOS_DB, +D => RLOL_DB, +Z => RXR_WT_CNT9); +\GENBLK2.GENBLK3.RXDPR_APPD_RNO_0\: LUT4 +generic map( + init => X"FBFB" +) +port map ( +A => rst_dual_c, +B => RX_ALL_WELL, +C => DUAL_OR_RSERD_RST, +D => VCC, +Z => UN1_RUI_RST_DUAL_C_1_I); +\GENBLK2.RXS_RST_RNIS0OP\: LUT4 +generic map( + init => X"1011" +) +port map ( +A => RLOL1_CNT_TC_1, +B => RXS_RST, +C => RLOS_DB_P1, +D => RLOS_DB, +Z => \RLOL1_CNT_\); +\GENBLK2.GENBLK3.RXR_WT_EN_RNIQF0H1\: LUT4 +generic map( + init => X"FFEF" +) +port map ( +A => RXR_WT_EN, +B => RX_ANY_RST, +C => RX_ALL_WELL, +D => UN17_RXR_WT_TC, +Z => RXR_WT_CNTE); +\GENBLK2.RXP_RST2_RNO_0\: LUT4 +generic map( + init => X"EFEE" +) +port map ( +A => RLOLS0_CNT_TC_1, +B => DUAL_OR_RSERD_RST, +C => RLOS_DB_P1, +D => RLOS_DB, +Z => UN2_RLOS_REDGE_1_I); +\GENBLK1.GENBLK2.RUO_TX_RDYR_RNO\: LUT4 +generic map( + init => X"FEFE" +) +port map ( +A => UN18_TXR_WT_TC, +B => TX_ANY_RST, +C => PLL_LOL_P2, +D => VCC, +Z => UN2_PLOL_FEDGE_5_I); +\GENBLK2.GENBLK3.LFOR[0].RXSR_APPD_RNO[0]\: LUT4 +generic map( + init => X"EEFE" +) +port map ( +A => RXSR_APPD(0), +B => rx_serdes_rst_c, +C => RXS_RST, +D => rsl_disable, +Z => N_2124_0); +\GENBLK2.WAITA_RLOLS0_REG_Z618\: FD1P3DX port map ( +D => WAITA_RLOLS06, +SP => UN1_RLOLS0_CNT_TC, +CK => rxrefclk, +CD => rsl_rst, +Q => WAITA_RLOLS0); +\GENBLK2.WAIT_CALIB_REG_Z620\: FD1P3BX port map ( +D => WAIT_CALIB_RNO, +SP => UN1_RLOS_FEDGE_1, +CK => rxrefclk, +PD => rsl_rst, +Q => WAIT_CALIB); +\GENBLK2.RXS_RST_REG_Z622\: FD1P3DX port map ( +D => RXS_RST6, +SP => UN1_RXS_CNT_TC, +CK => rxrefclk, +CD => rsl_rst, +Q => RXS_RST); +\GENBLK2.RXS_CNT[0]_REG_Z624\: FD1S3DX port map ( +D => RXS_CNT_3(0), +CK => rxrefclk, +CD => rsl_rst, +Q => RXS_CNT(0)); +\GENBLK2.RXS_CNT[1]_REG_Z626\: FD1S3DX port map ( +D => RXS_CNT_3(1), +CK => rxrefclk, +CD => rsl_rst, +Q => RXS_CNT(1)); +\GENBLK2.RXP_RST2_REG_Z628\: FD1P3BX port map ( +D => RXP_RST25, +SP => UN2_RLOS_REDGE_1_I, +CK => rxrefclk, +PD => rsl_rst, +Q => RXP_RST2); +\GENBLK2.RLOS_P2_REG_Z630\: FD1S3DX port map ( +D => RLOS_P1, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOS_P2); +\GENBLK2.RLOS_P1_REG_Z632\: FD1S3DX port map ( +D => rx_los_low_s, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOS_P1); +\GENBLK2.RLOS_DB_P1_REG_Z634\: FD1S3BX port map ( +D => RLOS_DB, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOS_DB_P1); +\GENBLK2.RLOS_DB_CNT[0]_REG_Z636\: FD1S3BX port map ( +D => RLOS_DB_CNT_AXB_0, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOS_DB_CNT(0)); +\GENBLK2.RLOS_DB_CNT[1]_REG_Z638\: FD1S3BX port map ( +D => RLOS_DB_CNT_CRY_1_0_S0, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOS_DB_CNT(1)); +\GENBLK2.RLOS_DB_CNT[2]_REG_Z640\: FD1S3BX port map ( +D => RLOS_DB_CNT_CRY_1_0_S1, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOS_DB_CNT(2)); +\GENBLK2.RLOS_DB_CNT[3]_REG_Z642\: FD1S3BX port map ( +D => RLOS_DB_CNT_S_3_0_S0, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOS_DB_CNT(3)); +\GENBLK2.RLOS_DB_REG_Z644\: FD1P3BX port map ( +D => RLOS_DB_CNT(1), +SP => UN1_RLOS_DB_CNT_MAX, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOS_DB); +\GENBLK2.RLOLS0_CNT[0]_REG_Z646\: FD1P3DX port map ( +D => RLOLS0_CNT_S(0), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(0)); +\GENBLK2.RLOLS0_CNT[1]_REG_Z648\: FD1P3DX port map ( +D => RLOLS0_CNT_S(1), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(1)); +\GENBLK2.RLOLS0_CNT[2]_REG_Z650\: FD1P3DX port map ( +D => RLOLS0_CNT_S(2), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(2)); +\GENBLK2.RLOLS0_CNT[3]_REG_Z652\: FD1P3DX port map ( +D => RLOLS0_CNT_S(3), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(3)); +\GENBLK2.RLOLS0_CNT[4]_REG_Z654\: FD1P3DX port map ( +D => RLOLS0_CNT_S(4), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(4)); +\GENBLK2.RLOLS0_CNT[5]_REG_Z656\: FD1P3DX port map ( +D => RLOLS0_CNT_S(5), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(5)); +\GENBLK2.RLOLS0_CNT[6]_REG_Z658\: FD1P3DX port map ( +D => RLOLS0_CNT_S(6), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(6)); +\GENBLK2.RLOLS0_CNT[7]_REG_Z660\: FD1P3DX port map ( +D => RLOLS0_CNT_S(7), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(7)); +\GENBLK2.RLOLS0_CNT[8]_REG_Z662\: FD1P3DX port map ( +D => RLOLS0_CNT_S(8), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(8)); +\GENBLK2.RLOLS0_CNT[9]_REG_Z664\: FD1P3DX port map ( +D => RLOLS0_CNT_S(9), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(9)); +\GENBLK2.RLOLS0_CNT[10]_REG_Z666\: FD1P3DX port map ( +D => RLOLS0_CNT_S(10), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(10)); +\GENBLK2.RLOLS0_CNT[11]_REG_Z668\: FD1P3DX port map ( +D => RLOLS0_CNT_S(11), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(11)); +\GENBLK2.RLOLS0_CNT[12]_REG_Z670\: FD1P3DX port map ( +D => RLOLS0_CNT_S(12), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(12)); +\GENBLK2.RLOLS0_CNT[13]_REG_Z672\: FD1P3DX port map ( +D => RLOLS0_CNT_S(13), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(13)); +\GENBLK2.RLOLS0_CNT[14]_REG_Z674\: FD1P3DX port map ( +D => RLOLS0_CNT_S(14), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(14)); +\GENBLK2.RLOLS0_CNT[15]_REG_Z676\: FD1P3DX port map ( +D => RLOLS0_CNT_S(15), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(15)); +\GENBLK2.RLOLS0_CNT[16]_REG_Z678\: FD1P3DX port map ( +D => RLOLS0_CNT_S(16), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(16)); +\GENBLK2.RLOLS0_CNT[17]_REG_Z680\: FD1P3DX port map ( +D => RLOLS0_CNT_S(17), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(17)); +\GENBLK2.RLOL_P2_REG_Z682\: FD1S3DX port map ( +D => RLOL_P1, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL_P2); +\GENBLK2.RLOL_P1_REG_Z684\: FD1S3DX port map ( +D => rx_cdr_lol_s, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL_P1); +\GENBLK2.RLOL_DB_P1_REG_Z686\: FD1S3BX port map ( +D => RLOL_DB, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOL_DB_P1); +\GENBLK2.RLOL_DB_CNT[0]_REG_Z688\: FD1S3BX port map ( +D => RLOL_DB_CNT_AXB_0, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOL_DB_CNT(0)); +\GENBLK2.RLOL_DB_CNT[1]_REG_Z690\: FD1S3BX port map ( +D => RLOL_DB_CNT_CRY_1_0_S0, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOL_DB_CNT(1)); +\GENBLK2.RLOL_DB_CNT[2]_REG_Z692\: FD1S3BX port map ( +D => RLOL_DB_CNT_CRY_1_0_S1, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOL_DB_CNT(2)); +\GENBLK2.RLOL_DB_CNT[3]_REG_Z694\: FD1S3BX port map ( +D => RLOL_DB_CNT_S_3_0_S0, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOL_DB_CNT(3)); +\GENBLK2.RLOL_DB_REG_Z696\: FD1P3BX port map ( +D => RLOL_DB_CNT(1), +SP => UN1_RLOL_DB_CNT_MAX, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOL_DB); +\GENBLK2.RLOL1_CNT[0]_REG_Z698\: FD1P3DX port map ( +D => RLOL1_CNT_S(0), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(0)); +\GENBLK2.RLOL1_CNT[1]_REG_Z700\: FD1P3DX port map ( +D => RLOL1_CNT_S(1), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(1)); +\GENBLK2.RLOL1_CNT[2]_REG_Z702\: FD1P3DX port map ( +D => RLOL1_CNT_S(2), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(2)); +\GENBLK2.RLOL1_CNT[3]_REG_Z704\: FD1P3DX port map ( +D => RLOL1_CNT_S(3), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(3)); +\GENBLK2.RLOL1_CNT[4]_REG_Z706\: FD1P3DX port map ( +D => RLOL1_CNT_S(4), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(4)); +\GENBLK2.RLOL1_CNT[5]_REG_Z708\: FD1P3DX port map ( +D => RLOL1_CNT_S(5), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(5)); +\GENBLK2.RLOL1_CNT[6]_REG_Z710\: FD1P3DX port map ( +D => RLOL1_CNT_S(6), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(6)); +\GENBLK2.RLOL1_CNT[7]_REG_Z712\: FD1P3DX port map ( +D => RLOL1_CNT_S(7), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(7)); +\GENBLK2.RLOL1_CNT[8]_REG_Z714\: FD1P3DX port map ( +D => RLOL1_CNT_S(8), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(8)); +\GENBLK2.RLOL1_CNT[9]_REG_Z716\: FD1P3DX port map ( +D => RLOL1_CNT_S(9), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(9)); +\GENBLK2.RLOL1_CNT[10]_REG_Z718\: FD1P3DX port map ( +D => RLOL1_CNT_S(10), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(10)); +\GENBLK2.RLOL1_CNT[11]_REG_Z720\: FD1P3DX port map ( +D => RLOL1_CNT_S(11), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(11)); +\GENBLK2.RLOL1_CNT[12]_REG_Z722\: FD1P3DX port map ( +D => RLOL1_CNT_S(12), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(12)); +\GENBLK2.RLOL1_CNT[13]_REG_Z724\: FD1P3DX port map ( +D => RLOL1_CNT_S(13), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(13)); +\GENBLK2.RLOL1_CNT[14]_REG_Z726\: FD1P3DX port map ( +D => RLOL1_CNT_S(14), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(14)); +\GENBLK2.RLOL1_CNT[15]_REG_Z728\: FD1P3DX port map ( +D => RLOL1_CNT_S(15), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(15)); +\GENBLK2.RLOL1_CNT[16]_REG_Z730\: FD1P3DX port map ( +D => RLOL1_CNT_S(16), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(16)); +\GENBLK2.RLOL1_CNT[17]_REG_Z732\: FD1P3DX port map ( +D => RLOL1_CNT_S(17), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(17)); +\GENBLK2.RLOL1_CNT[18]_REG_Z734\: FD1P3DX port map ( +D => RLOL1_CNT_S(18), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(18)); +\GENBLK2.GENBLK3.RXSDR_APPD_REG_Z736\: FD1S3BX port map ( +D => RXSDR_APPD_2, +CK => rxrefclk, +PD => rsl_rst, +Q => RXSDR_APPD); +\GENBLK2.GENBLK3.RXR_WT_EN_REG_Z738\: FD1P3DX port map ( +D => UN3_RX_ALL_WELL_1, +SP => UN1_DUAL_OR_RSERD_RST_2_I, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_EN); +\GENBLK2.GENBLK3.RXR_WT_CNT[0]_REG_Z740\: FD1P3DX port map ( +D => RXR_WT_CNT_S(0), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(0)); +\GENBLK2.GENBLK3.RXR_WT_CNT[1]_REG_Z742\: FD1P3DX port map ( +D => RXR_WT_CNT_S(1), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(1)); +\GENBLK2.GENBLK3.RXR_WT_CNT[2]_REG_Z744\: FD1P3DX port map ( +D => RXR_WT_CNT_S(2), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(2)); +\GENBLK2.GENBLK3.RXR_WT_CNT[3]_REG_Z746\: FD1P3DX port map ( +D => RXR_WT_CNT_S(3), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(3)); +\GENBLK2.GENBLK3.RXR_WT_CNT[4]_REG_Z748\: FD1P3DX port map ( +D => RXR_WT_CNT_S(4), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(4)); +\GENBLK2.GENBLK3.RXR_WT_CNT[5]_REG_Z750\: FD1P3DX port map ( +D => RXR_WT_CNT_S(5), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(5)); +\GENBLK2.GENBLK3.RXR_WT_CNT[6]_REG_Z752\: FD1P3DX port map ( +D => RXR_WT_CNT_S(6), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(6)); +\GENBLK2.GENBLK3.RXR_WT_CNT[7]_REG_Z754\: FD1P3DX port map ( +D => RXR_WT_CNT_S(7), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(7)); +\GENBLK2.GENBLK3.RXR_WT_CNT[8]_REG_Z756\: FD1P3DX port map ( +D => RXR_WT_CNT_S(8), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(8)); +\GENBLK2.GENBLK3.RXR_WT_CNT[9]_REG_Z758\: FD1P3DX port map ( +D => RXR_WT_CNT_S(9), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(9)); +\GENBLK2.GENBLK3.RXR_WT_CNT[10]_REG_Z760\: FD1P3DX port map ( +D => RXR_WT_CNT_S(10), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(10)); +\GENBLK2.GENBLK3.RXR_WT_CNT[11]_REG_Z762\: FD1P3DX port map ( +D => RXR_WT_CNT_S(11), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(11)); +\GENBLK2.GENBLK3.RXDPR_APPD_REG_Z764\: FD1P3DX port map ( +D => UN1_RUI_RST_DUAL_C_1_1, +SP => UN1_RUI_RST_DUAL_C_1_I, +CK => rxrefclk, +CD => rsl_rst, +Q => RXDPR_APPD); +\GENBLK2.GENBLK3.RUO_RX_RDYR_REG_Z766\: FD1P3DX port map ( +D => UN3_RX_ALL_WELL_2, +SP => RXR_WT_CNT9, +CK => rxrefclk, +CD => rsl_rst, +Q => RSL_RX_RDY_9); +\GENBLK2.GENBLK3.LFOR[0].RXSR_APPD[0]_REG_Z768\: FD1S3DX port map ( +D => N_2124_0, +CK => rxrefclk, +CD => rsl_rst, +Q => RXSR_APPD(0)); +\GENBLK2.GENBLK3.LFOR[0].RXPR_APPD[0]_REG_Z770\: FD1P3DX port map ( +D => RXPR_APPD_RNO(0), +SP => UN2_RDO_SERDES_RST_DUAL_C_2_I, +CK => rxrefclk, +CD => rsl_rst, +Q => RXPR_APPD(0)); +\GENBLK1.WAITA_PLOL0_REG_Z772\: FD1P3DX port map ( +D => PLOL_FEDGE, +SP => UN1_PLOL0_CNT_TC_1_I, +CK => pll_refclki, +CD => rsl_rst, +Q => WAITA_PLOL0); +\GENBLK1.TXS_RST_REG_Z774\: FD1P3DX port map ( +D => UN1_PLOL_CNT_TC, +SP => UN2_PLOL_CNT_TC, +CK => pll_refclki, +CD => rsl_rst, +Q => TXS_RST); +\GENBLK1.TXS_CNT[0]_REG_Z776\: FD1S3DX port map ( +D => N_10_I, +CK => pll_refclki, +CD => rsl_rst, +Q => TXS_CNT(0)); +\GENBLK1.TXS_CNT[1]_REG_Z778\: FD1S3DX port map ( +D => TXS_CNT_RNO(1), +CK => pll_refclki, +CD => rsl_rst, +Q => TXS_CNT(1)); +\GENBLK1.TXP_RST_REG_Z780\: FD1P3DX port map ( +D => UN9_PLOL0_CNT_TC, +SP => UN1_PLOL0_CNT_TC_1, +CK => pll_refclki, +CD => rsl_rst, +Q => TXP_RST); +\GENBLK1.TXP_CNT[0]_REG_Z782\: FD1S3DX port map ( +D => N_11_I, +CK => pll_refclki, +CD => rsl_rst, +Q => TXP_CNT(0)); +\GENBLK1.TXP_CNT[1]_REG_Z784\: FD1S3DX port map ( +D => TXP_CNT_RNO(1), +CK => pll_refclki, +CD => rsl_rst, +Q => TXP_CNT(1)); +\GENBLK1.PLOL_CNT[0]_REG_Z786\: FD1S3DX port map ( +D => PLOL_CNT_S(0), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(0)); +\GENBLK1.PLOL_CNT[1]_REG_Z788\: FD1S3DX port map ( +D => PLOL_CNT_S(1), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(1)); +\GENBLK1.PLOL_CNT[2]_REG_Z790\: FD1S3DX port map ( +D => PLOL_CNT_S(2), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(2)); +\GENBLK1.PLOL_CNT[3]_REG_Z792\: FD1S3DX port map ( +D => PLOL_CNT_S(3), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(3)); +\GENBLK1.PLOL_CNT[4]_REG_Z794\: FD1S3DX port map ( +D => PLOL_CNT_S(4), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(4)); +\GENBLK1.PLOL_CNT[5]_REG_Z796\: FD1S3DX port map ( +D => PLOL_CNT_S(5), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(5)); +\GENBLK1.PLOL_CNT[6]_REG_Z798\: FD1S3DX port map ( +D => PLOL_CNT_S(6), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(6)); +\GENBLK1.PLOL_CNT[7]_REG_Z800\: FD1S3DX port map ( +D => PLOL_CNT_S(7), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(7)); +\GENBLK1.PLOL_CNT[8]_REG_Z802\: FD1S3DX port map ( +D => PLOL_CNT_S(8), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(8)); +\GENBLK1.PLOL_CNT[9]_REG_Z804\: FD1S3DX port map ( +D => PLOL_CNT_S(9), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(9)); +\GENBLK1.PLOL_CNT[10]_REG_Z806\: FD1S3DX port map ( +D => PLOL_CNT_S(10), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(10)); +\GENBLK1.PLOL_CNT[11]_REG_Z808\: FD1S3DX port map ( +D => PLOL_CNT_S(11), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(11)); +\GENBLK1.PLOL_CNT[12]_REG_Z810\: FD1S3DX port map ( +D => PLOL_CNT_S(12), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(12)); +\GENBLK1.PLOL_CNT[13]_REG_Z812\: FD1S3DX port map ( +D => PLOL_CNT_S(13), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(13)); +\GENBLK1.PLOL_CNT[14]_REG_Z814\: FD1S3DX port map ( +D => PLOL_CNT_S(14), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(14)); +\GENBLK1.PLOL_CNT[15]_REG_Z816\: FD1S3DX port map ( +D => PLOL_CNT_S(15), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(15)); +\GENBLK1.PLOL_CNT[16]_REG_Z818\: FD1S3DX port map ( +D => PLOL_CNT_S(16), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(16)); +\GENBLK1.PLOL_CNT[17]_REG_Z820\: FD1S3DX port map ( +D => PLOL_CNT_S(17), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(17)); +\GENBLK1.PLOL_CNT[18]_REG_Z822\: FD1S3DX port map ( +D => PLOL_CNT_S(18), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(18)); +\GENBLK1.PLOL_CNT[19]_REG_Z824\: FD1S3DX port map ( +D => PLOL_CNT_S(19), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(19)); +\GENBLK1.PLOL0_CNT[0]_REG_Z826\: FD1S3DX port map ( +D => PLOL0_CNT_3(0), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL0_CNT(0)); +\GENBLK1.PLOL0_CNT[1]_REG_Z828\: FD1S3DX port map ( +D => PLOL0_CNT_3(1), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL0_CNT(1)); +\GENBLK1.PLOL0_CNT[2]_REG_Z830\: FD1S3DX port map ( +D => PLOL0_CNT_3(2), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL0_CNT(2)); +\GENBLK1.PLL_LOL_P3_REG_Z832\: FD1S3DX port map ( +D => PLL_LOL_P2, +CK => pll_refclki, +CD => rsl_rst, +Q => PLL_LOL_P3); +\GENBLK1.PLL_LOL_P2_REG_Z834\: FD1S3DX port map ( +D => PLL_LOL_P1, +CK => pll_refclki, +CD => rsl_rst, +Q => PLL_LOL_P2); +\GENBLK1.PLL_LOL_P1_REG_Z836\: FD1S3DX port map ( +D => pll_lock_i, +CK => pll_refclki, +CD => rsl_rst, +Q => PLL_LOL_P1); +\GENBLK1.GENBLK2.TXSR_APPD_REG_Z838\: FD1S3BX port map ( +D => TXSR_APPD_2, +CK => pll_refclki, +PD => rsl_rst, +Q => TXSR_APPD); +\GENBLK1.GENBLK2.TXR_WT_EN_REG_Z840\: FD1P3DX port map ( +D => UN1_DUAL_OR_SERD_RST_1_1, +SP => UN1_DUAL_OR_SERD_RST_1_I, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_EN); +\GENBLK1.GENBLK2.TXR_WT_CNT[0]_REG_Z842\: FD1P3DX port map ( +D => TXR_WT_CNT_S(0), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(0)); +\GENBLK1.GENBLK2.TXR_WT_CNT[1]_REG_Z844\: FD1P3DX port map ( +D => TXR_WT_CNT_S(1), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(1)); +\GENBLK1.GENBLK2.TXR_WT_CNT[2]_REG_Z846\: FD1P3DX port map ( +D => TXR_WT_CNT_S(2), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(2)); +\GENBLK1.GENBLK2.TXR_WT_CNT[3]_REG_Z848\: FD1P3DX port map ( +D => TXR_WT_CNT_S(3), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(3)); +\GENBLK1.GENBLK2.TXR_WT_CNT[4]_REG_Z850\: FD1P3DX port map ( +D => TXR_WT_CNT_S(4), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(4)); +\GENBLK1.GENBLK2.TXR_WT_CNT[5]_REG_Z852\: FD1P3DX port map ( +D => TXR_WT_CNT_S(5), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(5)); +\GENBLK1.GENBLK2.TXR_WT_CNT[6]_REG_Z854\: FD1P3DX port map ( +D => TXR_WT_CNT_S(6), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(6)); +\GENBLK1.GENBLK2.TXR_WT_CNT[7]_REG_Z856\: FD1P3DX port map ( +D => TXR_WT_CNT_S(7), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(7)); +\GENBLK1.GENBLK2.TXR_WT_CNT[8]_REG_Z858\: FD1P3DX port map ( +D => TXR_WT_CNT_S(8), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(8)); +\GENBLK1.GENBLK2.TXR_WT_CNT[9]_REG_Z860\: FD1P3DX port map ( +D => TXR_WT_CNT_S(9), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(9)); +\GENBLK1.GENBLK2.TXR_WT_CNT[10]_REG_Z862\: FD1P3DX port map ( +D => TXR_WT_CNT_S(10), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(10)); +\GENBLK1.GENBLK2.TXR_WT_CNT[11]_REG_Z864\: FD1P3DX port map ( +D => TXR_WT_CNT_S(11), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(11)); +\GENBLK1.GENBLK2.TXDPR_APPD_REG_Z866\: FD1P3DX port map ( +D => UN2_PLOL_FEDGE_2, +SP => UN2_PLOL_FEDGE_3_I, +CK => pll_refclki, +CD => rsl_rst, +Q => TXDPR_APPD); +\GENBLK1.GENBLK2.RUO_TX_RDYR_REG_Z868\: FD1P3DX port map ( +D => UN2_PLOL_FEDGE_5_1, +SP => UN2_PLOL_FEDGE_5_I, +CK => pll_refclki, +CD => rsl_rst, +Q => RSL_TX_RDY_8); +\GENBLK1.GENBLK2.MFOR[0].TXPR_APPD[0]_REG_Z870\: FD1P3DX port map ( +D => UN2_PLOL_FEDGE_2, +SP => UN2_PLOL_FEDGE_8_I, +CK => pll_refclki, +CD => rsl_rst, +Q => TXPR_APPD(0)); +\GENBLK1.TXS_CNT_RNO[0]\: LUT4 +generic map( + init => X"A6A6" +) +port map ( +A => TXS_CNT(0), +B => TXS_RST, +C => UN1_PLOL_CNT_TC, +D => VCC, +Z => N_10_I); +\GENBLK1.TXS_CNT_RNO[1]\: LUT4 +generic map( + init => X"CC6C" +) +port map ( +A => TXS_CNT(0), +B => TXS_CNT(1), +C => TXS_RST, +D => UN1_PLOL_CNT_TC, +Z => TXS_CNT_RNO(1)); +\GENBLK1.GENBLK2.TXR_WT_EN_RNO\: LUT4 +generic map( + init => X"0F2F" +) +port map ( +A => TXPR_APPD(0), +B => PLL_LOL_P2, +C => UN1_DUAL_OR_SERD_RST_1_1, +D => RSL_TX_RDY_8, +Z => UN1_DUAL_OR_SERD_RST_1_I); +\GENBLK2.RXS_RST6\: LUT4 +generic map( + init => X"2020" +) +port map ( +A => RLOL_DB, +B => RLOS_DB, +C => RLOL1_CNT_TC_1, +D => VCC, +Z => RXS_RST6); +\GENBLK2.WAIT_CALIB_RNIKRP81\: LUT4 +generic map( + init => X"FFFE" +) +port map ( +A => RXS_RST, +B => WAIT_CALIB, +C => RLOL1_CNT_TC_1, +D => RLOS_REDGE, +Z => RLOL1_CNTE); +\GENBLK2.WAITA_RLOLS0_RNI266C\: LUT4 +generic map( + init => X"FEFE" +) +port map ( +A => RLOLS0_CNT11_0, +B => WAITA_RLOLS0, +C => RLOLS0_CNT_TC_1, +D => VCC, +Z => RLOLS0_CNTE); +\GENBLK1.PLOL_CNT11_I\: LUT4 +generic map( + init => X"0202" +) +port map ( +A => PLL_LOL_P2, +B => UN1_PLOL_CNT_TC, +C => RSL_TX_SERDES_RST_C_7, +D => VCC, +Z => \PLOL_CNT_\); +\GENBLK2.RLOLS0_CNT11_I\: LUT4 +generic map( + init => X"1111" +) +port map ( +A => RLOLS0_CNT11_0, +B => RLOLS0_CNT_TC_1, +C => VCC, +D => VCC, +Z => \RLOLS0_CNT_\); +\GENBLK2.UN1_RXS_CNT_TC\: LUT4 +generic map( + init => X"FEFC" +) +port map ( +A => RLOL_DB, +B => RLOS_DB, +C => UN8_RXS_CNT_TC, +D => RLOL1_CNT_TC_1, +Z => UN1_RXS_CNT_TC); +\GENBLK2.WAIT_CALIB_RNO\: LUT4 +generic map( + init => X"A3A3" +) +port map ( +A => RLOL_DB, +B => RLOS_DB, +C => RLOL1_CNT_TC_1, +D => VCC, +Z => WAIT_CALIB_RNO); +\GENBLK1.GENBLK2.MFOR[0].TXPR_APPD_RNO[0]\: LUT4 +generic map( + init => X"FFFE" +) +port map ( +A => UN1_TXSR_APPD, +B => PLL_LOL_P2, +C => RSL_SERDES_RST_DUAL_C_6, +D => RSL_TX_SERDES_RST_C_7, +Z => UN2_PLOL_FEDGE_8_I); +\GENBLK2.GENBLK3.RXR_WT_EN_RNO_0\: LUT4 +generic map( + init => X"FEFF" +) +port map ( +A => DUAL_OR_RSERD_RST, +B => UN3_RX_ALL_WELL_2_1, +C => UN17_RXR_WT_TC, +D => RX_ALL_WELL, +Z => UN1_DUAL_OR_RSERD_RST_2_I); +\GENBLK2.GENBLK3.LFOR[0].RXPR_APPD_RNO_0[0]\: LUT4 +generic map( + init => X"FFFB" +) +port map ( +A => UN1_RXSDR_OR_SR_APPD, +B => UN2_RDO_SERDES_RST_DUAL_C_1_1, +C => RSL_RX_SERDES_RST_C_5, +D => RSL_SERDES_RST_DUAL_C_6, +Z => UN2_RDO_SERDES_RST_DUAL_C_2_I); +\GENBLK1.UN2_PLOL_CNT_TC\: LUT4 +generic map( + init => X"F8F8" +) +port map ( +A => TXS_CNT(0), +B => TXS_CNT(1), +C => UN1_PLOL_CNT_TC, +D => VCC, +Z => UN2_PLOL_CNT_TC); +\GENBLK1.GENBLK2.TXR_WT_EN_RNICEBT\: LUT4 +generic map( + init => X"FEFE" +) +port map ( +A => TXR_WT_EN, +B => UN18_TXR_WT_TC, +C => TX_ANY_RST, +D => VCC, +Z => TXR_WT_CNTE); +\GENBLK2.UN1_RLOS_FEDGE_1\: LUT4 +generic map( + init => X"F6F6" +) +port map ( +A => RLOS_DB, +B => RLOS_DB_P1, +C => RLOL1_CNT_TC_1, +D => VCC, +Z => UN1_RLOS_FEDGE_1); +\GENBLK2.UN1_RLOLS0_CNT_TC\: LUT4 +generic map( + init => X"FEFE" +) +port map ( +A => RLOLS0_CNT11_0, +B => WAITA_RLOLS06, +C => RLOLS0_CNT_TC_1, +D => VCC, +Z => UN1_RLOLS0_CNT_TC); +\GENBLK1.GENBLK2.TXDPR_APPD_RNO\: LUT4 +generic map( + init => X"FFFE" +) +port map ( +A => PLL_LOL_P2, +B => RSL_SERDES_RST_DUAL_C_6, +C => RSL_TX_SERDES_RST_C_7, +D => rst_dual_c, +Z => UN2_PLOL_FEDGE_3_I); +\GENBLK1.TXP_CNT_RNO[0]\: LUT4 +generic map( + init => X"A6A6" +) +port map ( +A => TXP_CNT(0), +B => TXP_RST, +C => UN9_PLOL0_CNT_TC, +D => VCC, +Z => N_11_I); +UN2_PLOL_FEDGE_5_1_Z890: LUT4 +generic map( + init => X"1111" +) +port map ( +A => PLL_LOL_P2, +B => TX_ANY_RST, +C => VCC, +D => VCC, +Z => UN2_PLOL_FEDGE_5_1); +UN1_DUAL_OR_SERD_RST_1_1_Z891: LUT4 +generic map( + init => X"0101" +) +port map ( +A => UN18_TXR_WT_TC, +B => RSL_SERDES_RST_DUAL_C_6, +C => RSL_TX_SERDES_RST_C_7, +D => VCC, +Z => UN1_DUAL_OR_SERD_RST_1_1); +\GENBLK1.TXP_CNT_RNO[1]\: LUT4 +generic map( + init => X"CC6C" +) +port map ( +A => TXP_CNT(0), +B => TXP_CNT(1), +C => TXP_RST, +D => UN9_PLOL0_CNT_TC, +Z => TXP_CNT_RNO(1)); +RLOLS0_CNT_TC_1_Z893: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RLOLS0_CNT_TC_1_10, +B => RLOLS0_CNT_TC_1_11, +C => RLOLS0_CNT_TC_1_12, +D => RLOLS0_CNT_TC_1_13, +Z => RLOLS0_CNT_TC_1); +\GENBLK1.UN1_PLOL_CNT_TC\: LUT4 +generic map( + init => X"8000" +) +port map ( +A => UN1_PLOL_CNT_TC_11, +B => UN1_PLOL_CNT_TC_12, +C => UN1_PLOL_CNT_TC_13, +D => UN1_PLOL_CNT_TC_14, +Z => UN1_PLOL_CNT_TC); +RLOL1_CNT_TC_1_Z895: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RLOL1_CNT_TC_1_11, +B => RLOL1_CNT_TC_1_12, +C => RLOL1_CNT_TC_1_13, +D => RLOL1_CNT_TC_1_14, +Z => RLOL1_CNT_TC_1); +\UN1_GENBLK2.RLOL_DB_CNT_AXB_0\: LUT4 +generic map( + init => X"9999" +) +port map ( +A => RLOL_DB_CNT(0), +B => UN1_RLOL_DB_CNT_ZERO(0), +C => VCC, +D => VCC, +Z => RLOL_DB_CNT_AXB_0); +\UN1_GENBLK2.RLOS_DB_CNT_AXB_0\: LUT4 +generic map( + init => X"9999" +) +port map ( +A => RLOS_DB_CNT(0), +B => UN1_RLOS_DB_CNT_ZERO(0), +C => VCC, +D => VCC, +Z => RLOS_DB_CNT_AXB_0); +\GENBLK1.WAITA_PLOL0_RNO\: LUT4 +generic map( + init => X"F6F6" +) +port map ( +A => PLL_LOL_P2, +B => PLL_LOL_P3, +C => UN9_PLOL0_CNT_TC, +D => VCC, +Z => UN1_PLOL0_CNT_TC_1_I); +\GENBLK1.GENBLK2.MFOR[0].UN1_TXSR_APPD\: LUT4 +generic map( + init => X"C8C8" +) +port map ( +A => TXDPR_APPD, +B => TXSR_APPD_4, +C => RSL_TX_PCS_RST_C_4, +D => VCC, +Z => UN1_TXSR_APPD); +\GENBLK1.GENBLK2.TXSR_APPD_2\: LUT4 +generic map( + init => X"FEFE" +) +port map ( +A => TXSR_APPD_4, +B => RSL_SERDES_RST_DUAL_C_6, +C => RSL_TX_SERDES_RST_C_7, +D => VCC, +Z => TXSR_APPD_2); +\GENBLK1.PLOL0_CNT_3[0]\: LUT4 +generic map( + init => X"1414" +) +port map ( +A => PLOL0_CNT9, +B => PLOL0_CNT(0), +C => WAITA_PLOL0, +D => VCC, +Z => PLOL0_CNT_3(0)); +\GENBLK1.PLOL0_CNT_3[2]\: LUT4 +generic map( + init => X"1320" +) +port map ( +A => CO0_2, +B => PLOL0_CNT9, +C => PLOL0_CNT(1), +D => PLOL0_CNT(2), +Z => PLOL0_CNT_3(2)); +\GENBLK1.GENBLK2.UN18_TXR_WT_TC\: LUT4 +generic map( + init => X"8080" +) +port map ( +A => UN18_TXR_WT_TC_6, +B => UN18_TXR_WT_TC_7, +C => UN18_TXR_WT_TC_8, +D => VCC, +Z => UN18_TXR_WT_TC); +UN2_PLOL_FEDGE_2_Z904: LUT4 +generic map( + init => X"0101" +) +port map ( +A => PLL_LOL_P2, +B => RSL_SERDES_RST_DUAL_C_6, +C => RSL_TX_SERDES_RST_C_7, +D => VCC, +Z => UN2_PLOL_FEDGE_2); +TX_ANY_RST_Z905: LUT4 +generic map( + init => X"FFFE" +) +port map ( +A => RSL_SERDES_RST_DUAL_C_6, +B => RSL_TX_PCS_RST_C_4, +C => RSL_TX_SERDES_RST_C_7, +D => rst_dual_c, +Z => TX_ANY_RST); +RX_ANY_RST_Z906: LUT4 +generic map( + init => X"FEFE" +) +port map ( +A => DUAL_OR_RSERD_RST, +B => RSL_RX_PCS_RST_C_10, +C => rst_dual_c, +D => VCC, +Z => RX_ANY_RST); +\GENBLK2.GENBLK3.UN17_RXR_WT_TC\: LUT4 +generic map( + init => X"8080" +) +port map ( +A => UN17_RXR_WT_TC_6, +B => UN17_RXR_WT_TC_7, +C => UN17_RXR_WT_TC_8, +D => VCC, +Z => UN17_RXR_WT_TC); +\UN1_RLOL_DB_CNT_ZERO_BM[0]_Z908\: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RLOL_DB_CNT(0), +B => RLOL_DB_CNT(1), +C => RLOL_DB_CNT(2), +D => RLOL_DB_CNT(3), +Z => UN1_RLOL_DB_CNT_ZERO_BM(0)); +\UN1_RLOL_DB_CNT_ZERO[0]_Z909\: PFUMX port map ( +ALUT => UN1_RLOL_DB_CNT_ZERO_BM(0), +BLUT => UN1_RLOL_DB_CNT_ZERO_AM(0), +C0 => RLOL_P2, +Z => UN1_RLOL_DB_CNT_ZERO(0)); +\UN1_RLOS_DB_CNT_ZERO_BM[0]_Z910\: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RLOS_DB_CNT(0), +B => RLOS_DB_CNT(1), +C => RLOS_DB_CNT(2), +D => RLOS_DB_CNT(3), +Z => UN1_RLOS_DB_CNT_ZERO_BM(0)); +\UN1_RLOS_DB_CNT_ZERO[0]_Z911\: PFUMX port map ( +ALUT => UN1_RLOS_DB_CNT_ZERO_BM(0), +BLUT => UN1_RLOS_DB_CNT_ZERO_AM(0), +C0 => RLOS_P2, +Z => UN1_RLOS_DB_CNT_ZERO(0)); +\GENBLK2.UN1_RLOL_DB_CNT_MAX\: LUT4 +generic map( + init => X"8001" +) +port map ( +A => RLOL_DB_CNT(0), +B => RLOL_DB_CNT(1), +C => RLOL_DB_CNT(2), +D => RLOL_DB_CNT(3), +Z => UN1_RLOL_DB_CNT_MAX); +\GENBLK2.UN1_RLOS_DB_CNT_MAX\: LUT4 +generic map( + init => X"8001" +) +port map ( +A => RLOS_DB_CNT(0), +B => RLOS_DB_CNT(1), +C => RLOS_DB_CNT(2), +D => RLOS_DB_CNT(3), +Z => UN1_RLOS_DB_CNT_MAX); +\GENBLK1.UN1_PLOL0_CNT_TC_1\: LUT4 +generic map( + init => X"F8F8" +) +port map ( +A => TXP_CNT(0), +B => TXP_CNT(1), +C => UN9_PLOL0_CNT_TC, +D => VCC, +Z => UN1_PLOL0_CNT_TC_1); +\GENBLK2.WAITA_RLOLS06\: LUT4 +generic map( + init => X"0504" +) +port map ( +A => RLOL_DB, +B => RLOL_DB_P1, +C => RLOS_DB, +D => RLOS_DB_P1, +Z => WAITA_RLOLS06); +\RXS_CNT_3[1]_Z916\: LUT4 +generic map( + init => X"6464" +) +port map ( +A => RXS_CNT(0), +B => RXS_CNT(1), +C => RXS_RST, +D => VCC, +Z => RXS_CNT_3(1)); +\GENBLK2.GENBLK3.LFOR[0].UN1_RXSDR_OR_SR_APPD\: LUT4 +generic map( + init => X"3200" +) +port map ( +A => RXSR_APPD(0), +B => RX_ALL_WELL, +C => RXSDR_APPD_4, +D => RSL_RX_PCS_RST_C_10, +Z => UN1_RXSDR_OR_SR_APPD); +RLOLS0_CNT_TC_1_13_Z918: LUT4 +generic map( + init => X"1010" +) +port map ( +A => RLOLS0_CNT(16), +B => RLOLS0_CNT(17), +C => RLOLS0_CNT_TC_1_9, +D => VCC, +Z => RLOLS0_CNT_TC_1_13); +\GENBLK1.UN1_PLOL_CNT_TC_14\: LUT4 +generic map( + init => X"0100" +) +port map ( +A => PLOL_CNT(4), +B => PLOL_CNT(5), +C => PLOL_CNT(18), +D => UN1_PLOL_CNT_TC_10, +Z => UN1_PLOL_CNT_TC_14); +RLOL1_CNT_TC_1_14_Z920: LUT4 +generic map( + init => X"0100" +) +port map ( +A => RLOL1_CNT(11), +B => RLOL1_CNT(12), +C => RLOL1_CNT(18), +D => RLOL1_CNT_TC_1_10, +Z => RLOL1_CNT_TC_1_14); +\GENBLK2.GENBLK3.UN3_RX_ALL_WELL_2_1\: LUT4 +generic map( + init => X"0E0E" +) +port map ( +A => RXPR_APPD(0), +B => RXDPR_APPD, +C => RSL_RX_RDY_9, +D => VCC, +Z => UN3_RX_ALL_WELL_2_1); +RDO_SERDES_RST_DUAL_C: LUT4 +generic map( + init => X"F4F4" +) +port map ( +A => rsl_disable, +B => rsl_rst, +C => serdes_rst_dual_c, +D => VCC, +Z => RSL_SERDES_RST_DUAL_C_6); +RDO_TX_SERDES_RST_C: LUT4 +generic map( + init => X"F4F4" +) +port map ( +A => rsl_disable, +B => TXS_RST, +C => tx_serdes_rst_c, +D => VCC, +Z => RSL_TX_SERDES_RST_C_7); +\RDO_TX_PCS_RST_C_1[0]\: LUT4 +generic map( + init => X"F4F4" +) +port map ( +A => rsl_disable, +B => TXP_RST, +C => tx_pcs_rst_c, +D => VCC, +Z => RSL_TX_PCS_RST_C_4); +\RDO_RX_SERDES_RST_C_1[0]\: LUT4 +generic map( + init => X"F4F4" +) +port map ( +A => rsl_disable, +B => RXS_RST, +C => rx_serdes_rst_c, +D => VCC, +Z => RSL_RX_SERDES_RST_C_5); +\RDO_RX_PCS_RST_C_1[0]\: LUT4 +generic map( + init => X"F4F4" +) +port map ( +A => rsl_disable, +B => RXP_RST2, +C => rx_pcs_rst_c, +D => VCC, +Z => RSL_RX_PCS_RST_C_10); +\GENBLK1.UN9_PLOL0_CNT_TC\: LUT4 +generic map( + init => X"1010" +) +port map ( +A => PLOL0_CNT(0), +B => PLOL0_CNT(1), +C => PLOL0_CNT(2), +D => VCC, +Z => UN9_PLOL0_CNT_TC); +\GENBLK2.GENBLK3.UN17_RXR_WT_TC_6\: LUT4 +generic map( + init => X"4000" +) +port map ( +A => RXR_WT_CNT(0), +B => RXR_WT_CNT(8), +C => RXR_WT_CNT(9), +D => RXR_WT_CNT(11), +Z => UN17_RXR_WT_TC_6); +\GENBLK2.GENBLK3.UN17_RXR_WT_TC_7\: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RXR_WT_CNT(3), +B => RXR_WT_CNT(4), +C => RXR_WT_CNT(5), +D => RXR_WT_CNT(7), +Z => UN17_RXR_WT_TC_7); +\GENBLK2.GENBLK3.UN17_RXR_WT_TC_8\: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RXR_WT_CNT(1), +B => RXR_WT_CNT(2), +C => RXR_WT_CNT(6), +D => RXR_WT_CNT(10), +Z => UN17_RXR_WT_TC_8); +\GENBLK1.GENBLK2.UN18_TXR_WT_TC_6\: LUT4 +generic map( + init => X"4000" +) +port map ( +A => TXR_WT_CNT(0), +B => TXR_WT_CNT(8), +C => TXR_WT_CNT(9), +D => TXR_WT_CNT(11), +Z => UN18_TXR_WT_TC_6); +\GENBLK1.GENBLK2.UN18_TXR_WT_TC_7\: LUT4 +generic map( + init => X"8000" +) +port map ( +A => TXR_WT_CNT(3), +B => TXR_WT_CNT(4), +C => TXR_WT_CNT(5), +D => TXR_WT_CNT(7), +Z => UN18_TXR_WT_TC_7); +\GENBLK1.GENBLK2.UN18_TXR_WT_TC_8\: LUT4 +generic map( + init => X"0001" +) +port map ( +A => TXR_WT_CNT(1), +B => TXR_WT_CNT(2), +C => TXR_WT_CNT(6), +D => TXR_WT_CNT(10), +Z => UN18_TXR_WT_TC_8); +RLOLS0_CNT_TC_1_9_Z934: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RLOLS0_CNT(1), +B => RLOLS0_CNT(2), +C => RLOLS0_CNT(3), +D => RLOLS0_CNT(4), +Z => RLOLS0_CNT_TC_1_9); +RLOLS0_CNT_TC_1_10_Z935: LUT4 +generic map( + init => X"4000" +) +port map ( +A => RLOLS0_CNT(0), +B => RLOLS0_CNT(10), +C => RLOLS0_CNT(14), +D => RLOLS0_CNT(15), +Z => RLOLS0_CNT_TC_1_10); +RLOLS0_CNT_TC_1_11_Z936: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RLOLS0_CNT(9), +B => RLOLS0_CNT(11), +C => RLOLS0_CNT(12), +D => RLOLS0_CNT(13), +Z => RLOLS0_CNT_TC_1_11); +RLOLS0_CNT_TC_1_12_Z937: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RLOLS0_CNT(5), +B => RLOLS0_CNT(6), +C => RLOLS0_CNT(7), +D => RLOLS0_CNT(8), +Z => RLOLS0_CNT_TC_1_12); +\GENBLK1.UN1_PLOL_CNT_TC_10\: LUT4 +generic map( + init => X"1000" +) +port map ( +A => PLOL_CNT(2), +B => PLOL_CNT(3), +C => PLOL_CNT(17), +D => PLOL_CNT(19), +Z => UN1_PLOL_CNT_TC_10); +\GENBLK1.UN1_PLOL_CNT_TC_11\: LUT4 +generic map( + init => X"8000" +) +port map ( +A => PLOL_CNT(13), +B => PLOL_CNT(14), +C => PLOL_CNT(15), +D => PLOL_CNT(16), +Z => UN1_PLOL_CNT_TC_11); +\GENBLK1.UN1_PLOL_CNT_TC_12\: LUT4 +generic map( + init => X"8000" +) +port map ( +A => PLOL_CNT(7), +B => PLOL_CNT(8), +C => PLOL_CNT(9), +D => PLOL_CNT(11), +Z => UN1_PLOL_CNT_TC_12); +\GENBLK1.UN1_PLOL_CNT_TC_13\: LUT4 +generic map( + init => X"0008" +) +port map ( +A => PLOL_CNT(1), +B => PLOL_CNT(6), +C => PLOL_CNT(10), +D => PLOL_CNT(12), +Z => UN1_PLOL_CNT_TC_13); +RLOL1_CNT_TC_1_10_Z942: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RLOL1_CNT(7), +B => RLOL1_CNT(8), +C => RLOL1_CNT(9), +D => RLOL1_CNT(10), +Z => RLOL1_CNT_TC_1_10); +RLOL1_CNT_TC_1_11_Z943: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RLOL1_CNT(3), +B => RLOL1_CNT(4), +C => RLOL1_CNT(5), +D => RLOL1_CNT(6), +Z => RLOL1_CNT_TC_1_11); +RLOL1_CNT_TC_1_12_Z944: LUT4 +generic map( + init => X"0100" +) +port map ( +A => RLOL1_CNT(0), +B => RLOL1_CNT(1), +C => RLOL1_CNT(2), +D => RLOL1_CNT(17), +Z => RLOL1_CNT_TC_1_12); +RLOL1_CNT_TC_1_13_Z945: LUT4 +generic map( + init => X"0040" +) +port map ( +A => RLOL1_CNT(13), +B => RLOL1_CNT(14), +C => RLOL1_CNT(15), +D => RLOL1_CNT(16), +Z => RLOL1_CNT_TC_1_13); +\GENBLK2.GENBLK3.RXSDR_APPD_2\: LUT4 +generic map( + init => X"EEEE" +) +port map ( +A => RXSDR_APPD_4, +B => serdes_rst_dual_c, +C => VCC, +D => VCC, +Z => RXSDR_APPD_2); +RX_ALL_WELL_Z947: LUT4 +generic map( + init => X"1111" +) +port map ( +A => RLOL_DB, +B => RLOS_DB, +C => VCC, +D => VCC, +Z => RX_ALL_WELL); +\GENBLK2.UN8_RXS_CNT_TC\: LUT4 +generic map( + init => X"8888" +) +port map ( +A => RXS_CNT(0), +B => RXS_CNT(1), +C => VCC, +D => VCC, +Z => UN8_RXS_CNT_TC); +PLOL_FEDGE_Z949: LUT4 +generic map( + init => X"4444" +) +port map ( +A => PLL_LOL_P2, +B => PLL_LOL_P3, +C => VCC, +D => VCC, +Z => PLOL_FEDGE); +RLOS_REDGE_Z950: LUT4 +generic map( + init => X"2222" +) +port map ( +A => RLOS_DB, +B => RLOS_DB_P1, +C => VCC, +D => VCC, +Z => RLOS_REDGE); +\GENBLK1.PLOL0_CNT_3_RNO[2]\: LUT4 +generic map( + init => X"8888" +) +port map ( +A => PLOL0_CNT(0), +B => WAITA_PLOL0, +C => VCC, +D => VCC, +Z => CO0_2); +UN2_RDO_SERDES_RST_DUAL_C_1_1_Z952: LUT4 +generic map( + init => X"1111" +) +port map ( +A => rx_cdr_lol_s, +B => rx_los_low_s, +C => VCC, +D => VCC, +Z => UN2_RDO_SERDES_RST_DUAL_C_1_1); +\UN1_RLOS_DB_CNT_ZERO_AM[0]_Z953\: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RLOS_DB_CNT(0), +B => RLOS_DB_CNT(1), +C => RLOS_DB_CNT(2), +D => RLOS_DB_CNT(3), +Z => UN1_RLOS_DB_CNT_ZERO_AM(0)); +\UN1_RLOL_DB_CNT_ZERO_AM[0]_Z954\: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RLOL_DB_CNT(0), +B => RLOL_DB_CNT(1), +C => RLOL_DB_CNT(2), +D => RLOL_DB_CNT(3), +Z => UN1_RLOL_DB_CNT_ZERO_AM(0)); +DUAL_OR_RSERD_RST_Z955: LUT4 +generic map( + init => X"EEFE" +) +port map ( +A => RSL_RX_SERDES_RST_C_5, +B => serdes_rst_dual_c, +C => rsl_rst, +D => rsl_disable, +Z => DUAL_OR_RSERD_RST); +\GENBLK1.PLOL0_CNT9\: LUT4 +generic map( + init => X"AAAE" +) +port map ( +A => PLL_LOL_P2, +B => PLOL0_CNT(2), +C => PLOL0_CNT(1), +D => PLOL0_CNT(0), +Z => PLOL0_CNT9); +\GENBLK2.RLOLS0_CNT11_0\: LUT4 +generic map( + init => X"4F44" +) +port map ( +A => RLOL_DB_P1, +B => RLOL_DB, +C => RLOS_DB_P1, +D => RLOS_DB, +Z => RLOLS0_CNT11_0); +\GENBLK1.GENBLK2.TXR_WT_CNT9_I\: LUT4 +generic map( + init => X"1555" +) +port map ( +A => TX_ANY_RST, +B => UN18_TXR_WT_TC_8, +C => UN18_TXR_WT_TC_7, +D => UN18_TXR_WT_TC_6, +Z => \TXR_WT_CNT_\); +\GENBLK2.RLOL1_CNT_CRY_0[0]\: CCU2C +generic map( + INIT0 => X"500c", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => \RLOL1_CNT_\, +C0 => VCC, +D0 => VCC, +A1 => \RLOL1_CNT_\, +B1 => RLOL1_CNT(0), +C1 => VCC, +D1 => VCC, +CIN => N_7, +COUT => RLOL1_CNT_CRY(0), +S0 => RLOL1_CNT_CRY_0_S0(0), +S1 => RLOL1_CNT_S(0)); +\GENBLK2.RLOL1_CNT_CRY_0[1]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOL1_CNT_\, +B0 => RLOL1_CNT(1), +C0 => VCC, +D0 => VCC, +A1 => \RLOL1_CNT_\, +B1 => RLOL1_CNT(2), +C1 => VCC, +D1 => VCC, +CIN => RLOL1_CNT_CRY(0), +COUT => RLOL1_CNT_CRY(2), +S0 => RLOL1_CNT_S(1), +S1 => RLOL1_CNT_S(2)); +\GENBLK2.RLOL1_CNT_CRY_0[3]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOL1_CNT_\, +B0 => RLOL1_CNT(3), +C0 => VCC, +D0 => VCC, +A1 => \RLOL1_CNT_\, +B1 => RLOL1_CNT(4), +C1 => VCC, +D1 => VCC, +CIN => RLOL1_CNT_CRY(2), +COUT => RLOL1_CNT_CRY(4), +S0 => RLOL1_CNT_S(3), +S1 => RLOL1_CNT_S(4)); +\GENBLK2.RLOL1_CNT_CRY_0[5]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOL1_CNT_\, +B0 => RLOL1_CNT(5), +C0 => VCC, +D0 => VCC, +A1 => \RLOL1_CNT_\, +B1 => RLOL1_CNT(6), +C1 => VCC, +D1 => VCC, +CIN => RLOL1_CNT_CRY(4), +COUT => RLOL1_CNT_CRY(6), +S0 => RLOL1_CNT_S(5), +S1 => RLOL1_CNT_S(6)); +\GENBLK2.RLOL1_CNT_CRY_0[7]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOL1_CNT_\, +B0 => RLOL1_CNT(7), +C0 => VCC, +D0 => VCC, +A1 => \RLOL1_CNT_\, +B1 => RLOL1_CNT(8), +C1 => VCC, +D1 => VCC, +CIN => RLOL1_CNT_CRY(6), +COUT => RLOL1_CNT_CRY(8), +S0 => RLOL1_CNT_S(7), +S1 => RLOL1_CNT_S(8)); +\GENBLK2.RLOL1_CNT_CRY_0[9]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOL1_CNT_\, +B0 => RLOL1_CNT(9), +C0 => VCC, +D0 => VCC, +A1 => \RLOL1_CNT_\, +B1 => RLOL1_CNT(10), +C1 => VCC, +D1 => VCC, +CIN => RLOL1_CNT_CRY(8), +COUT => RLOL1_CNT_CRY(10), +S0 => RLOL1_CNT_S(9), +S1 => RLOL1_CNT_S(10)); +\GENBLK2.RLOL1_CNT_CRY_0[11]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOL1_CNT_\, +B0 => RLOL1_CNT(11), +C0 => VCC, +D0 => VCC, +A1 => \RLOL1_CNT_\, +B1 => RLOL1_CNT(12), +C1 => VCC, +D1 => VCC, +CIN => RLOL1_CNT_CRY(10), +COUT => RLOL1_CNT_CRY(12), +S0 => RLOL1_CNT_S(11), +S1 => RLOL1_CNT_S(12)); +\GENBLK2.RLOL1_CNT_CRY_0[13]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOL1_CNT_\, +B0 => RLOL1_CNT(13), +C0 => VCC, +D0 => VCC, +A1 => \RLOL1_CNT_\, +B1 => RLOL1_CNT(14), +C1 => VCC, +D1 => VCC, +CIN => RLOL1_CNT_CRY(12), +COUT => RLOL1_CNT_CRY(14), +S0 => RLOL1_CNT_S(13), +S1 => RLOL1_CNT_S(14)); +\GENBLK2.RLOL1_CNT_CRY_0[15]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOL1_CNT_\, +B0 => RLOL1_CNT(15), +C0 => VCC, +D0 => VCC, +A1 => \RLOL1_CNT_\, +B1 => RLOL1_CNT(16), +C1 => VCC, +D1 => VCC, +CIN => RLOL1_CNT_CRY(14), +COUT => RLOL1_CNT_CRY(16), +S0 => RLOL1_CNT_S(15), +S1 => RLOL1_CNT_S(16)); +\GENBLK2.RLOL1_CNT_CRY_0[17]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"800a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOL1_CNT_\, +B0 => RLOL1_CNT(17), +C0 => VCC, +D0 => VCC, +A1 => \RLOL1_CNT_\, +B1 => RLOL1_CNT(18), +C1 => VCC, +D1 => VCC, +CIN => RLOL1_CNT_CRY(16), +COUT => RLOL1_CNT_CRY_0_COUT(17), +S0 => RLOL1_CNT_S(17), +S1 => RLOL1_CNT_S(18)); +\GENBLK2.RLOLS0_CNT_CRY_0[0]\: CCU2C +generic map( + INIT0 => X"500c", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => \RLOLS0_CNT_\, +C0 => VCC, +D0 => VCC, +A1 => \RLOLS0_CNT_\, +B1 => RLOLS0_CNT(0), +C1 => VCC, +D1 => VCC, +CIN => N_6, +COUT => RLOLS0_CNT_CRY(0), +S0 => RLOLS0_CNT_CRY_0_S0(0), +S1 => RLOLS0_CNT_S(0)); +\GENBLK2.RLOLS0_CNT_CRY_0[1]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOLS0_CNT_\, +B0 => RLOLS0_CNT(1), +C0 => VCC, +D0 => VCC, +A1 => \RLOLS0_CNT_\, +B1 => RLOLS0_CNT(2), +C1 => VCC, +D1 => VCC, +CIN => RLOLS0_CNT_CRY(0), +COUT => RLOLS0_CNT_CRY(2), +S0 => RLOLS0_CNT_S(1), +S1 => RLOLS0_CNT_S(2)); +\GENBLK2.RLOLS0_CNT_CRY_0[3]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOLS0_CNT_\, +B0 => RLOLS0_CNT(3), +C0 => VCC, +D0 => VCC, +A1 => \RLOLS0_CNT_\, +B1 => RLOLS0_CNT(4), +C1 => VCC, +D1 => VCC, +CIN => RLOLS0_CNT_CRY(2), +COUT => RLOLS0_CNT_CRY(4), +S0 => RLOLS0_CNT_S(3), +S1 => RLOLS0_CNT_S(4)); +\GENBLK2.RLOLS0_CNT_CRY_0[5]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOLS0_CNT_\, +B0 => RLOLS0_CNT(5), +C0 => VCC, +D0 => VCC, +A1 => \RLOLS0_CNT_\, +B1 => RLOLS0_CNT(6), +C1 => VCC, +D1 => VCC, +CIN => RLOLS0_CNT_CRY(4), +COUT => RLOLS0_CNT_CRY(6), +S0 => RLOLS0_CNT_S(5), +S1 => RLOLS0_CNT_S(6)); +\GENBLK2.RLOLS0_CNT_CRY_0[7]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOLS0_CNT_\, +B0 => RLOLS0_CNT(7), +C0 => VCC, +D0 => VCC, +A1 => \RLOLS0_CNT_\, +B1 => RLOLS0_CNT(8), +C1 => VCC, +D1 => VCC, +CIN => RLOLS0_CNT_CRY(6), +COUT => RLOLS0_CNT_CRY(8), +S0 => RLOLS0_CNT_S(7), +S1 => RLOLS0_CNT_S(8)); +\GENBLK2.RLOLS0_CNT_CRY_0[9]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOLS0_CNT_\, +B0 => RLOLS0_CNT(9), +C0 => VCC, +D0 => VCC, +A1 => \RLOLS0_CNT_\, +B1 => RLOLS0_CNT(10), +C1 => VCC, +D1 => VCC, +CIN => RLOLS0_CNT_CRY(8), +COUT => RLOLS0_CNT_CRY(10), +S0 => RLOLS0_CNT_S(9), +S1 => RLOLS0_CNT_S(10)); +\GENBLK2.RLOLS0_CNT_CRY_0[11]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOLS0_CNT_\, +B0 => RLOLS0_CNT(11), +C0 => VCC, +D0 => VCC, +A1 => \RLOLS0_CNT_\, +B1 => RLOLS0_CNT(12), +C1 => VCC, +D1 => VCC, +CIN => RLOLS0_CNT_CRY(10), +COUT => RLOLS0_CNT_CRY(12), +S0 => RLOLS0_CNT_S(11), +S1 => RLOLS0_CNT_S(12)); +\GENBLK2.RLOLS0_CNT_CRY_0[13]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOLS0_CNT_\, +B0 => RLOLS0_CNT(13), +C0 => VCC, +D0 => VCC, +A1 => \RLOLS0_CNT_\, +B1 => RLOLS0_CNT(14), +C1 => VCC, +D1 => VCC, +CIN => RLOLS0_CNT_CRY(12), +COUT => RLOLS0_CNT_CRY(14), +S0 => RLOLS0_CNT_S(13), +S1 => RLOLS0_CNT_S(14)); +\GENBLK2.RLOLS0_CNT_CRY_0[15]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOLS0_CNT_\, +B0 => RLOLS0_CNT(15), +C0 => VCC, +D0 => VCC, +A1 => \RLOLS0_CNT_\, +B1 => RLOLS0_CNT(16), +C1 => VCC, +D1 => VCC, +CIN => RLOLS0_CNT_CRY(14), +COUT => RLOLS0_CNT_CRY(16), +S0 => RLOLS0_CNT_S(15), +S1 => RLOLS0_CNT_S(16)); +\GENBLK2.RLOLS0_CNT_S_0[17]\: CCU2C +generic map( + INIT0 => X"800a", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOLS0_CNT_\, +B0 => RLOLS0_CNT(17), +C0 => VCC, +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => RLOLS0_CNT_CRY(16), +COUT => RLOLS0_CNT_S_0_COUT(17), +S0 => RLOLS0_CNT_S(17), +S1 => RLOLS0_CNT_S_0_S1(17)); +\GENBLK1.GENBLK2.TXR_WT_CNT_CRY_0[0]\: CCU2C +generic map( + INIT0 => X"500c", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => \TXR_WT_CNT_\, +C0 => VCC, +D0 => VCC, +A1 => \TXR_WT_CNT_\, +B1 => TXR_WT_CNT(0), +C1 => VCC, +D1 => VCC, +CIN => N_5, +COUT => TXR_WT_CNT_CRY(0), +S0 => TXR_WT_CNT_CRY_0_S0(0), +S1 => TXR_WT_CNT_S(0)); +\GENBLK1.GENBLK2.TXR_WT_CNT_CRY_0[1]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \TXR_WT_CNT_\, +B0 => TXR_WT_CNT(1), +C0 => VCC, +D0 => VCC, +A1 => \TXR_WT_CNT_\, +B1 => TXR_WT_CNT(2), +C1 => VCC, +D1 => VCC, +CIN => TXR_WT_CNT_CRY(0), +COUT => TXR_WT_CNT_CRY(2), +S0 => TXR_WT_CNT_S(1), +S1 => TXR_WT_CNT_S(2)); +\GENBLK1.GENBLK2.TXR_WT_CNT_CRY_0[3]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \TXR_WT_CNT_\, +B0 => TXR_WT_CNT(3), +C0 => VCC, +D0 => VCC, +A1 => \TXR_WT_CNT_\, +B1 => TXR_WT_CNT(4), +C1 => VCC, +D1 => VCC, +CIN => TXR_WT_CNT_CRY(2), +COUT => TXR_WT_CNT_CRY(4), +S0 => TXR_WT_CNT_S(3), +S1 => TXR_WT_CNT_S(4)); +\GENBLK1.GENBLK2.TXR_WT_CNT_CRY_0[5]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \TXR_WT_CNT_\, +B0 => TXR_WT_CNT(5), +C0 => VCC, +D0 => VCC, +A1 => \TXR_WT_CNT_\, +B1 => TXR_WT_CNT(6), +C1 => VCC, +D1 => VCC, +CIN => TXR_WT_CNT_CRY(4), +COUT => TXR_WT_CNT_CRY(6), +S0 => TXR_WT_CNT_S(5), +S1 => TXR_WT_CNT_S(6)); +\GENBLK1.GENBLK2.TXR_WT_CNT_CRY_0[7]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \TXR_WT_CNT_\, +B0 => TXR_WT_CNT(7), +C0 => VCC, +D0 => VCC, +A1 => \TXR_WT_CNT_\, +B1 => TXR_WT_CNT(8), +C1 => VCC, +D1 => VCC, +CIN => TXR_WT_CNT_CRY(6), +COUT => TXR_WT_CNT_CRY(8), +S0 => TXR_WT_CNT_S(7), +S1 => TXR_WT_CNT_S(8)); +\GENBLK1.GENBLK2.TXR_WT_CNT_CRY_0[9]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \TXR_WT_CNT_\, +B0 => TXR_WT_CNT(9), +C0 => VCC, +D0 => VCC, +A1 => \TXR_WT_CNT_\, +B1 => TXR_WT_CNT(10), +C1 => VCC, +D1 => VCC, +CIN => TXR_WT_CNT_CRY(8), +COUT => TXR_WT_CNT_CRY(10), +S0 => TXR_WT_CNT_S(9), +S1 => TXR_WT_CNT_S(10)); +\GENBLK1.GENBLK2.TXR_WT_CNT_S_0[11]\: CCU2C +generic map( + INIT0 => X"800a", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \TXR_WT_CNT_\, +B0 => TXR_WT_CNT(11), +C0 => VCC, +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => TXR_WT_CNT_CRY(10), +COUT => TXR_WT_CNT_S_0_COUT(11), +S0 => TXR_WT_CNT_S(11), +S1 => TXR_WT_CNT_S_0_S1(11)); +\GENBLK2.GENBLK3.RXR_WT_CNT_CRY_0[0]\: CCU2C +generic map( + INIT0 => X"5003", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => RXR_WT_CNT9, +C0 => VCC, +D0 => VCC, +A1 => RXR_WT_CNT9, +B1 => RXR_WT_CNT(0), +C1 => VCC, +D1 => VCC, +CIN => N_4, +COUT => RXR_WT_CNT_CRY(0), +S0 => RXR_WT_CNT_CRY_0_S0(0), +S1 => RXR_WT_CNT_S(0)); +\GENBLK2.GENBLK3.RXR_WT_CNT_CRY_0[1]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => RXR_WT_CNT9, +B0 => RXR_WT_CNT(1), +C0 => VCC, +D0 => VCC, +A1 => RXR_WT_CNT9, +B1 => RXR_WT_CNT(2), +C1 => VCC, +D1 => VCC, +CIN => RXR_WT_CNT_CRY(0), +COUT => RXR_WT_CNT_CRY(2), +S0 => RXR_WT_CNT_S(1), +S1 => RXR_WT_CNT_S(2)); +\GENBLK2.GENBLK3.RXR_WT_CNT_CRY_0[3]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => RXR_WT_CNT9, +B0 => RXR_WT_CNT(3), +C0 => VCC, +D0 => VCC, +A1 => RXR_WT_CNT9, +B1 => RXR_WT_CNT(4), +C1 => VCC, +D1 => VCC, +CIN => RXR_WT_CNT_CRY(2), +COUT => RXR_WT_CNT_CRY(4), +S0 => RXR_WT_CNT_S(3), +S1 => RXR_WT_CNT_S(4)); +\GENBLK2.GENBLK3.RXR_WT_CNT_CRY_0[5]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => RXR_WT_CNT9, +B0 => RXR_WT_CNT(5), +C0 => VCC, +D0 => VCC, +A1 => RXR_WT_CNT9, +B1 => RXR_WT_CNT(6), +C1 => VCC, +D1 => VCC, +CIN => RXR_WT_CNT_CRY(4), +COUT => RXR_WT_CNT_CRY(6), +S0 => RXR_WT_CNT_S(5), +S1 => RXR_WT_CNT_S(6)); +\GENBLK2.GENBLK3.RXR_WT_CNT_CRY_0[7]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => RXR_WT_CNT9, +B0 => RXR_WT_CNT(7), +C0 => VCC, +D0 => VCC, +A1 => RXR_WT_CNT9, +B1 => RXR_WT_CNT(8), +C1 => VCC, +D1 => VCC, +CIN => RXR_WT_CNT_CRY(6), +COUT => RXR_WT_CNT_CRY(8), +S0 => RXR_WT_CNT_S(7), +S1 => RXR_WT_CNT_S(8)); +\GENBLK2.GENBLK3.RXR_WT_CNT_CRY_0[9]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => RXR_WT_CNT9, +B0 => RXR_WT_CNT(9), +C0 => VCC, +D0 => VCC, +A1 => RXR_WT_CNT9, +B1 => RXR_WT_CNT(10), +C1 => VCC, +D1 => VCC, +CIN => RXR_WT_CNT_CRY(8), +COUT => RXR_WT_CNT_CRY(10), +S0 => RXR_WT_CNT_S(9), +S1 => RXR_WT_CNT_S(10)); +\GENBLK2.GENBLK3.RXR_WT_CNT_S_0[11]\: CCU2C +generic map( + INIT0 => X"4005", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => RXR_WT_CNT9, +B0 => RXR_WT_CNT(11), +C0 => VCC, +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => RXR_WT_CNT_CRY(10), +COUT => RXR_WT_CNT_S_0_COUT(11), +S0 => RXR_WT_CNT_S(11), +S1 => RXR_WT_CNT_S_0_S1(11)); +\GENBLK1.PLOL_CNT_CRY_0[0]\: CCU2C +generic map( + INIT0 => X"500c", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => \PLOL_CNT_\, +C0 => VCC, +D0 => VCC, +A1 => \PLOL_CNT_\, +B1 => PLOL_CNT(0), +C1 => VCC, +D1 => VCC, +CIN => N_3, +COUT => PLOL_CNT_CRY(0), +S0 => PLOL_CNT_CRY_0_S0(0), +S1 => PLOL_CNT_S(0)); +\GENBLK1.PLOL_CNT_CRY_0[1]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \PLOL_CNT_\, +B0 => PLOL_CNT(1), +C0 => VCC, +D0 => VCC, +A1 => \PLOL_CNT_\, +B1 => PLOL_CNT(2), +C1 => VCC, +D1 => VCC, +CIN => PLOL_CNT_CRY(0), +COUT => PLOL_CNT_CRY(2), +S0 => PLOL_CNT_S(1), +S1 => PLOL_CNT_S(2)); +\GENBLK1.PLOL_CNT_CRY_0[3]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \PLOL_CNT_\, +B0 => PLOL_CNT(3), +C0 => VCC, +D0 => VCC, +A1 => \PLOL_CNT_\, +B1 => PLOL_CNT(4), +C1 => VCC, +D1 => VCC, +CIN => PLOL_CNT_CRY(2), +COUT => PLOL_CNT_CRY(4), +S0 => PLOL_CNT_S(3), +S1 => PLOL_CNT_S(4)); +\GENBLK1.PLOL_CNT_CRY_0[5]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \PLOL_CNT_\, +B0 => PLOL_CNT(5), +C0 => VCC, +D0 => VCC, +A1 => \PLOL_CNT_\, +B1 => PLOL_CNT(6), +C1 => VCC, +D1 => VCC, +CIN => PLOL_CNT_CRY(4), +COUT => PLOL_CNT_CRY(6), +S0 => PLOL_CNT_S(5), +S1 => PLOL_CNT_S(6)); +\GENBLK1.PLOL_CNT_CRY_0[7]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \PLOL_CNT_\, +B0 => PLOL_CNT(7), +C0 => VCC, +D0 => VCC, +A1 => \PLOL_CNT_\, +B1 => PLOL_CNT(8), +C1 => VCC, +D1 => VCC, +CIN => PLOL_CNT_CRY(6), +COUT => PLOL_CNT_CRY(8), +S0 => PLOL_CNT_S(7), +S1 => PLOL_CNT_S(8)); +\GENBLK1.PLOL_CNT_CRY_0[9]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \PLOL_CNT_\, +B0 => PLOL_CNT(9), +C0 => VCC, +D0 => VCC, +A1 => \PLOL_CNT_\, +B1 => PLOL_CNT(10), +C1 => VCC, +D1 => VCC, +CIN => PLOL_CNT_CRY(8), +COUT => PLOL_CNT_CRY(10), +S0 => PLOL_CNT_S(9), +S1 => PLOL_CNT_S(10)); +\GENBLK1.PLOL_CNT_CRY_0[11]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \PLOL_CNT_\, +B0 => PLOL_CNT(11), +C0 => VCC, +D0 => VCC, +A1 => \PLOL_CNT_\, +B1 => PLOL_CNT(12), +C1 => VCC, +D1 => VCC, +CIN => PLOL_CNT_CRY(10), +COUT => PLOL_CNT_CRY(12), +S0 => PLOL_CNT_S(11), +S1 => PLOL_CNT_S(12)); +\GENBLK1.PLOL_CNT_CRY_0[13]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \PLOL_CNT_\, +B0 => PLOL_CNT(13), +C0 => VCC, +D0 => VCC, +A1 => \PLOL_CNT_\, +B1 => PLOL_CNT(14), +C1 => VCC, +D1 => VCC, +CIN => PLOL_CNT_CRY(12), +COUT => PLOL_CNT_CRY(14), +S0 => PLOL_CNT_S(13), +S1 => PLOL_CNT_S(14)); +\GENBLK1.PLOL_CNT_CRY_0[15]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \PLOL_CNT_\, +B0 => PLOL_CNT(15), +C0 => VCC, +D0 => VCC, +A1 => \PLOL_CNT_\, +B1 => PLOL_CNT(16), +C1 => VCC, +D1 => VCC, +CIN => PLOL_CNT_CRY(14), +COUT => PLOL_CNT_CRY(16), +S0 => PLOL_CNT_S(15), +S1 => PLOL_CNT_S(16)); +\GENBLK1.PLOL_CNT_CRY_0[17]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \PLOL_CNT_\, +B0 => PLOL_CNT(17), +C0 => VCC, +D0 => VCC, +A1 => \PLOL_CNT_\, +B1 => PLOL_CNT(18), +C1 => VCC, +D1 => VCC, +CIN => PLOL_CNT_CRY(16), +COUT => PLOL_CNT_CRY(18), +S0 => PLOL_CNT_S(17), +S1 => PLOL_CNT_S(18)); +\GENBLK1.PLOL_CNT_S_0[19]\: CCU2C +generic map( + INIT0 => X"800a", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \PLOL_CNT_\, +B0 => PLOL_CNT(19), +C0 => VCC, +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => PLOL_CNT_CRY(18), +COUT => PLOL_CNT_S_0_COUT(19), +S0 => PLOL_CNT_S(19), +S1 => PLOL_CNT_S_0_S1(19)); +\UN1_GENBLK2.RLOS_DB_CNT_CRY_0_0\: CCU2C +generic map( + INIT0 => X"5003", + INIT1 => X"900a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => RLOS_DB_CNT(0), +B1 => UN1_RLOS_DB_CNT_ZERO(0), +C1 => VCC, +D1 => VCC, +CIN => N_2, +COUT => RLOS_DB_CNT_CRY_0, +S0 => RLOS_DB_CNT_CRY_0_0_S0, +S1 => RLOS_DB_CNT_CRY_0_0_S1); +\UN1_GENBLK2.RLOS_DB_CNT_CRY_1_0\: CCU2C +generic map( + INIT0 => X"e101", + INIT1 => X"e101", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_RLOS_DB_CNT_ZERO(0), +B0 => RLOS_P2, +C0 => RLOS_DB_CNT(1), +D0 => VCC, +A1 => UN1_RLOS_DB_CNT_ZERO(0), +B1 => RLOS_P2, +C1 => RLOS_DB_CNT(2), +D1 => VCC, +CIN => RLOS_DB_CNT_CRY_0, +COUT => RLOS_DB_CNT_CRY_2, +S0 => RLOS_DB_CNT_CRY_1_0_S0, +S1 => RLOS_DB_CNT_CRY_1_0_S1); +\UN1_GENBLK2.RLOS_DB_CNT_S_3_0\: CCU2C +generic map( + INIT0 => X"a90a", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => RLOS_DB_CNT(3), +B0 => RLOS_P2, +C0 => UN1_RLOS_DB_CNT_ZERO(0), +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => RLOS_DB_CNT_CRY_2, +COUT => RLOS_DB_CNT_S_3_0_COUT, +S0 => RLOS_DB_CNT_S_3_0_S0, +S1 => RLOS_DB_CNT_S_3_0_S1); +\UN1_GENBLK2.RLOL_DB_CNT_CRY_0_0\: CCU2C +generic map( + INIT0 => X"5003", + INIT1 => X"900a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => RLOL_DB_CNT(0), +B1 => UN1_RLOL_DB_CNT_ZERO(0), +C1 => VCC, +D1 => VCC, +CIN => N_1, +COUT => RLOL_DB_CNT_CRY_0, +S0 => RLOL_DB_CNT_CRY_0_0_S0, +S1 => RLOL_DB_CNT_CRY_0_0_S1); +\UN1_GENBLK2.RLOL_DB_CNT_CRY_1_0\: CCU2C +generic map( + INIT0 => X"e101", + INIT1 => X"e101", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_RLOL_DB_CNT_ZERO(0), +B0 => RLOL_P2, +C0 => RLOL_DB_CNT(1), +D0 => VCC, +A1 => UN1_RLOL_DB_CNT_ZERO(0), +B1 => RLOL_P2, +C1 => RLOL_DB_CNT(2), +D1 => VCC, +CIN => RLOL_DB_CNT_CRY_0, +COUT => RLOL_DB_CNT_CRY_2, +S0 => RLOL_DB_CNT_CRY_1_0_S0, +S1 => RLOL_DB_CNT_CRY_1_0_S1); +\UN1_GENBLK2.RLOL_DB_CNT_S_3_0\: CCU2C +generic map( + INIT0 => X"a90a", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => RLOL_DB_CNT(3), +B0 => RLOL_P2, +C0 => UN1_RLOL_DB_CNT_ZERO(0), +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => RLOL_DB_CNT_CRY_2, +COUT => RLOL_DB_CNT_S_3_0_COUT, +S0 => RLOL_DB_CNT_S_3_0_S0, +S1 => RLOL_DB_CNT_S_3_0_S1); +RXSDR_APPD_4 <= RXSDR_APPD; +TXSR_APPD_4 <= TXSR_APPD; +VCC_0: VHI port map ( +Z => VCC); +II_GND: VLO port map ( +Z => GND); +rsl_tx_pcs_rst_c <= RSL_TX_PCS_RST_C_4; +rsl_rx_serdes_rst_c <= RSL_RX_SERDES_RST_C_5; +rsl_serdes_rst_dual_c <= RSL_SERDES_RST_DUAL_C_6; +rsl_tx_serdes_rst_c <= RSL_TX_SERDES_RST_C_7; +rsl_tx_rdy <= RSL_TX_RDY_8; +rsl_rx_rdy <= RSL_RX_RDY_9; +rsl_rx_pcs_rst_c <= RSL_RX_PCS_RST_C_10; +end beh; + +-- +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; +library synplify; +use synplify.components.all; +library pmi; +use pmi.pmi_components.all; +library ecp5um; +use ecp5um.components.all; + +entity sgmii_ecp5sll_core_Z1_layer1 is +port( +tx_pclk : in std_logic; +sli_rst : in std_logic; +pll_refclki : in std_logic; +pll_lock_i : out std_logic); +end sgmii_ecp5sll_core_Z1_layer1; + +architecture beh of sgmii_ecp5sll_core_Z1_layer1 is +signal PHB_CNT : std_logic_vector(2 downto 0); +signal PHB_CNT_I : std_logic_vector(2 downto 0); +signal RCOUNT : std_logic_vector(15 downto 0); +signal PCOUNT : std_logic_vector(21 downto 0); +signal UN1_PCOUNT_DIFF_I : std_logic_vector(0 to 0); +signal SLL_STATE : std_logic_vector(1 downto 0); +signal SLL_STATE_QN : std_logic_vector(1 downto 0); +signal RHB_WAIT_CNT_S : std_logic_vector(7 downto 0); +signal RHB_WAIT_CNT : std_logic_vector(7 downto 0); +signal RHB_WAIT_CNT_QN : std_logic_vector(7 downto 0); +signal RCOUNT_S : std_logic_vector(15 downto 0); +signal RCOUNT_QN : std_logic_vector(15 downto 0); +signal PHB_CNT_QN : std_logic_vector(2 downto 0); +signal PHB_CNT_RNO : std_logic_vector(2 downto 1); +signal PCOUNT_S : std_logic_vector(21 downto 0); +signal PCOUNT_QN : std_logic_vector(21 downto 0); +signal PCOUNT_DIFF_QN : std_logic_vector(21 downto 0); +signal RDIFF_COMP_LOCK : std_logic_vector(2 to 2); +signal RDIFF_COMP_LOCK_QN : std_logic_vector(2 to 2); +signal UN1_PCOUNT_DIFF : std_logic_vector(0 to 0); +signal PCOUNT_CRY : std_logic_vector(20 downto 0); +signal PCOUNT_CRY_0_S0 : std_logic_vector(0 to 0); +signal PCOUNT_S_0_COUT : std_logic_vector(21 to 21); +signal PCOUNT_S_0_S1 : std_logic_vector(21 to 21); +signal RCOUNT_CRY : std_logic_vector(14 downto 0); +signal RCOUNT_CRY_0_S0 : std_logic_vector(0 to 0); +signal RCOUNT_S_0_COUT : std_logic_vector(15 to 15); +signal RCOUNT_S_0_S1 : std_logic_vector(15 to 15); +signal RHB_WAIT_CNT_CRY : std_logic_vector(6 downto 0); +signal RHB_WAIT_CNT_CRY_0_S0 : std_logic_vector(0 to 0); +signal RHB_WAIT_CNT_S_0_COUT : std_logic_vector(7 to 7); +signal RHB_WAIT_CNT_S_0_S1 : std_logic_vector(7 to 7); +signal PLL_LOCK : std_logic ; +signal RTC_CTRL4_0_A3_1 : std_logic ; +signal UN13_LOCK_20 : std_logic ; +signal PPUL_SYNC_P2 : std_logic ; +signal PPUL_SYNC_P1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_20 : std_logic ; +signal UN13_LOCK_19 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_19 : std_logic ; +signal UN13_LOCK_18 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_18 : std_logic ; +signal UN13_LOCK_17 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_17_0_RNO : std_logic ; +signal UN13_LOCK_16 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_16 : std_logic ; +signal UN13_LOCK_15 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_15 : std_logic ; +signal UN13_LOCK_14 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_14 : std_logic ; +signal UN13_LOCK_13 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_13 : std_logic ; +signal UN13_LOCK_12 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_12 : std_logic ; +signal UN13_LOCK_11 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_11 : std_logic ; +signal UN13_LOCK_10 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_10 : std_logic ; +signal UN13_LOCK_9 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_9 : std_logic ; +signal UN13_LOCK_8 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_8 : std_logic ; +signal UN13_LOCK_7 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_7 : std_logic ; +signal UN13_LOCK_6 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_6 : std_logic ; +signal UN13_LOCK_5 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_5 : std_logic ; +signal UN13_LOCK_4 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_4 : std_logic ; +signal UN13_LOCK_3 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_3 : std_logic ; +signal UN13_LOCK_2 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_2 : std_logic ; +signal UN13_LOCK_1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_1 : std_logic ; +signal UN13_LOCK_21 : std_logic ; +signal PPUL_SYNC_P3 : std_logic ; +signal N_7 : std_logic ; +signal UN13_LOCK_0 : std_logic ; +signal RTC_CTRL4 : std_logic ; +signal RTC_CTRL : std_logic ; +signal VCC : std_logic ; +signal N_2085_0 : std_logic ; +signal UNLOCK_5 : std_logic ; +signal UNLOCK_1_SQMUXA_I : std_logic ; +signal UNLOCK : std_logic ; +signal UNLOCK_QN : std_logic ; +signal N_95_I : std_logic ; +signal N_97_I : std_logic ; +signal RTC_PUL : std_logic ; +signal RTC_PUL_P1 : std_logic ; +signal RTC_PUL_P1_QN : std_logic ; +signal RTC_PUL5 : std_logic ; +signal RTC_PUL_QN : std_logic ; +signal RTC_CTRL_QN : std_logic ; +signal RSTAT_PCLK_2 : std_logic ; +signal RSTAT_PCLK : std_logic ; +signal RSTAT_PCLK_QN : std_logic ; +signal RHB_SYNC_P1 : std_logic ; +signal RHB_SYNC_P2 : std_logic ; +signal RHB_SYNC_P2_QN : std_logic ; +signal RHB_SYNC : std_logic ; +signal RHB_SYNC_P1_QN : std_logic ; +signal PPUL_SYNC_P3_QN : std_logic ; +signal PPUL_SYNC_P2_QN : std_logic ; +signal PPUL_SYNC : std_logic ; +signal PPUL_SYNC_P1_QN : std_logic ; +signal N_53_I : std_logic ; +signal PLL_LOCK_QN : std_logic ; +signal PHB : std_logic ; +signal PHB_QN : std_logic ; +signal PDIFF_SYNC : std_logic ; +signal PDIFF_SYNC_P1 : std_logic ; +signal PDIFF_SYNC_P1_QN : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_1_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_1_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_3_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_3_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_5_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_5_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_7_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_7_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_9_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_9_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_11_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_11_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_13_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_13_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_15_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_15_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_17_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_17_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_19_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_19_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_S_21_0_S0 : std_logic ; +signal LOCK_5 : std_logic ; +signal LOCK_1_SQMUXA_I : std_logic ; +signal LOCK : std_logic ; +signal LOCK_QN : std_logic ; +signal N_98 : std_logic ; +signal RTC_PUL5_0_O3 : std_logic ; +signal RTC_PUL5_0_A3_6 : std_logic ; +signal RTC_PUL5_0_A3_7 : std_logic ; +signal UN1_RCOUNT_1_0_A3 : std_logic ; +signal RHB_WAIT_CNT12 : std_logic ; +signal UN1_RHB_WAIT_CNT_4 : std_logic ; +signal UN1_RHB_WAIT_CNT_5 : std_logic ; +signal N_99 : std_logic ; +signal RTC_CTRL4_0_A3_12_4 : std_logic ; +signal RTC_CTRL4_0_A3_12_5 : std_logic ; +signal RTC_CTRL4_10 : std_logic ; +signal UN1_RCOUNT_1_0_A3_1 : std_logic ; +signal N_6 : std_logic ; +signal RTC_PUL5_0_A3_5 : std_logic ; +signal N_8 : std_logic ; +signal UN13_UNLOCK_CRY_21 : std_logic ; +signal UN13_LOCK_CRY_21_I : std_logic ; +signal \RHB_WAIT_CNT_\ : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_0_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_0_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_2 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_4 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_6 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_8 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_10 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_12 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_14 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_16 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_18 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_20 : std_logic ; +signal UN1_PCOUNT_DIFF_1_S_21_0_COUT : std_logic ; +signal UN1_PCOUNT_DIFF_1_S_21_0_S1 : std_logic ; +signal UN13_LOCK_CRY_0 : std_logic ; +signal UN13_LOCK_CRY_0_0_S0 : std_logic ; +signal UN13_LOCK_CRY_0_0_S1 : std_logic ; +signal UN13_LOCK_CRY_2 : std_logic ; +signal UN13_LOCK_CRY_1_0_S0 : std_logic ; +signal UN13_LOCK_CRY_1_0_S1 : std_logic ; +signal UN13_LOCK_CRY_4 : std_logic ; +signal UN13_LOCK_CRY_3_0_S0 : std_logic ; +signal UN13_LOCK_CRY_3_0_S1 : std_logic ; +signal UN13_LOCK_CRY_6 : std_logic ; +signal UN13_LOCK_CRY_5_0_S0 : std_logic ; +signal UN13_LOCK_CRY_5_0_S1 : std_logic ; +signal UN13_LOCK_CRY_8 : std_logic ; +signal UN13_LOCK_CRY_7_0_S0 : std_logic ; +signal UN13_LOCK_CRY_7_0_S1 : std_logic ; +signal UN13_LOCK_CRY_10 : std_logic ; +signal UN13_LOCK_CRY_9_0_S0 : std_logic ; +signal UN13_LOCK_CRY_9_0_S1 : std_logic ; +signal UN13_LOCK_CRY_12 : std_logic ; +signal UN13_LOCK_CRY_11_0_S0 : std_logic ; +signal UN13_LOCK_CRY_11_0_S1 : std_logic ; +signal UN13_LOCK_CRY_14 : std_logic ; +signal UN13_LOCK_CRY_13_0_S0 : std_logic ; +signal UN13_LOCK_CRY_13_0_S1 : std_logic ; +signal UN13_LOCK_CRY_16 : std_logic ; +signal UN13_LOCK_CRY_15_0_S0 : std_logic ; +signal UN13_LOCK_CRY_15_0_S1 : std_logic ; +signal UN13_LOCK_CRY_18 : std_logic ; +signal UN13_LOCK_CRY_17_0_S0 : std_logic ; +signal UN13_LOCK_CRY_17_0_S1 : std_logic ; +signal UN13_LOCK_CRY_20 : std_logic ; +signal UN13_LOCK_CRY_19_0_S0 : std_logic ; +signal UN13_LOCK_CRY_19_0_S1 : std_logic ; +signal UN13_LOCK_CRY_21_0_COUT : std_logic ; +signal UN13_LOCK_CRY_21_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_0 : std_logic ; +signal UN13_UNLOCK_CRY_0_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_0_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_2 : std_logic ; +signal UN13_UNLOCK_CRY_1_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_1_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_4 : std_logic ; +signal UN13_UNLOCK_CRY_3_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_3_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_6 : std_logic ; +signal UN13_UNLOCK_CRY_5_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_5_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_8 : std_logic ; +signal UN13_UNLOCK_CRY_7_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_7_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_10 : std_logic ; +signal UN13_UNLOCK_CRY_9_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_9_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_12 : std_logic ; +signal UN13_UNLOCK_CRY_11_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_11_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_14 : std_logic ; +signal UN13_UNLOCK_CRY_13_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_13_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_16 : std_logic ; +signal UN13_UNLOCK_CRY_15_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_15_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_18 : std_logic ; +signal UN13_UNLOCK_CRY_17_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_17_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_20 : std_logic ; +signal UN13_UNLOCK_CRY_19_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_19_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_21_0_COUT : std_logic ; +signal UN13_UNLOCK_CRY_21_0_S0 : std_logic ; +signal N_21 : std_logic ; +signal N_20 : std_logic ; +signal N_19 : std_logic ; +signal N_18 : std_logic ; +signal N_14 : std_logic ; +signal GND : std_logic ; +signal N_1 : std_logic ; +signal N_2 : std_logic ; +signal N_3 : std_logic ; +signal N_4 : std_logic ; +signal N_5 : std_logic ; +signal N_9 : std_logic ; +component sync_0s +port( +phb : in std_logic; +rhb_sync : out std_logic; +sli_rst : in std_logic; +pll_refclki : in std_logic ); +end component; +component sync_0s_6 +port( +rtc_pul : in std_logic; +ppul_sync : out std_logic; +sli_rst : in std_logic; +tx_pclk : in std_logic ); +end component; +component sync_0s_0 +port( +ppul_sync : in std_logic; +pdiff_sync : out std_logic; +sli_rst : in std_logic; +pll_refclki : in std_logic ); +end component; +begin +PHB_RNO: INV port map ( +A => PHB_CNT(2), +Z => PHB_CNT_I(2)); +\PHB_CNT_RNO[0]\: INV port map ( +A => PHB_CNT(0), +Z => PHB_CNT_I(0)); +PLL_LOCK_RNI6JK9: INV port map ( +A => PLL_LOCK, +Z => pll_lock_i); +RTC_CTRL4_0_A3_RNO: LUT4 +generic map( + init => X"2000" +) +port map ( +A => RCOUNT(2), +B => RCOUNT(0), +C => RCOUNT(5), +D => RCOUNT(4), +Z => RTC_CTRL4_0_A3_1); +UN1_PCOUNT_DIFF_1_CRY_19_0_RNO_0: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_20, +B => PCOUNT(20), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_20); +UN1_PCOUNT_DIFF_1_CRY_19_0_RNO: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_19, +B => PCOUNT(19), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_19); +UN1_PCOUNT_DIFF_1_CRY_17_0_RNO_0: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_18, +B => PCOUNT(18), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_18); +UN1_PCOUNT_DIFF_1_CRY_17_0_RNO_Z477: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_17, +B => PCOUNT(17), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_CRY_17_0_RNO); +UN1_PCOUNT_DIFF_1_CRY_15_0_RNO_0: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_16, +B => PCOUNT(16), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_16); +UN1_PCOUNT_DIFF_1_CRY_15_0_RNO: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_15, +B => PCOUNT(15), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_15); +UN1_PCOUNT_DIFF_1_CRY_13_0_RNO_0: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_14, +B => PCOUNT(14), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_14); +UN1_PCOUNT_DIFF_1_CRY_13_0_RNO: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_13, +B => PCOUNT(13), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_13); +UN1_PCOUNT_DIFF_1_CRY_11_0_RNO_0: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_12, +B => PCOUNT(12), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_12); +UN1_PCOUNT_DIFF_1_CRY_11_0_RNO: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_11, +B => PCOUNT(11), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_11); +UN1_PCOUNT_DIFF_1_CRY_9_0_RNO_0: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_10, +B => PCOUNT(10), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_10); +UN1_PCOUNT_DIFF_1_CRY_9_0_RNO: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_9, +B => PCOUNT(9), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_9); +UN1_PCOUNT_DIFF_1_CRY_7_0_RNO_0: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_8, +B => PCOUNT(8), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_8); +UN1_PCOUNT_DIFF_1_CRY_7_0_RNO: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_7, +B => PCOUNT(7), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_7); +UN1_PCOUNT_DIFF_1_CRY_5_0_RNO_0: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_6, +B => PCOUNT(6), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_6); +UN1_PCOUNT_DIFF_1_CRY_5_0_RNO: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_5, +B => PCOUNT(5), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_5); +UN1_PCOUNT_DIFF_1_CRY_3_0_RNO_0: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_4, +B => PCOUNT(4), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_4); +UN1_PCOUNT_DIFF_1_CRY_3_0_RNO: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_3, +B => PCOUNT(3), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_3); +UN1_PCOUNT_DIFF_1_CRY_1_0_RNO_0: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_2, +B => PCOUNT(2), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_2); +UN1_PCOUNT_DIFF_1_CRY_1_0_RNO: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_1, +B => PCOUNT(1), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_1); +PPUL_SYNC_P3_RNIU65C: LUT4 +generic map( + init => X"2F20" +) +port map ( +A => UN13_LOCK_21, +B => PPUL_SYNC_P3, +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => N_7); +\PCOUNT_DIFF_RNO[0]\: LUT4 +generic map( + init => X"FD20" +) +port map ( +A => PPUL_SYNC_P1, +B => PPUL_SYNC_P2, +C => PCOUNT(0), +D => UN13_LOCK_0, +Z => UN1_PCOUNT_DIFF_I(0)); +RTC_CTRL_0: LUT4 +generic map( + init => X"EEEE" +) +port map ( +A => RTC_CTRL4, +B => RTC_CTRL, +C => VCC, +D => VCC, +Z => N_2085_0); +UNLOCK_REG_Z498: FD1P3DX port map ( +D => UNLOCK_5, +SP => UNLOCK_1_SQMUXA_I, +CK => pll_refclki, +CD => sli_rst, +Q => UNLOCK); +\SLL_STATE[0]_REG_Z500\: FD1S3DX port map ( +D => N_95_I, +CK => pll_refclki, +CD => sli_rst, +Q => SLL_STATE(0)); +\SLL_STATE[1]_REG_Z502\: FD1S3DX port map ( +D => N_97_I, +CK => pll_refclki, +CD => sli_rst, +Q => SLL_STATE(1)); +RTC_PUL_P1_REG_Z504: FD1S3DX port map ( +D => RTC_PUL, +CK => pll_refclki, +CD => sli_rst, +Q => RTC_PUL_P1); +RTC_PUL_REG_Z506: FD1P3DX port map ( +D => RTC_PUL5, +SP => RTC_CTRL, +CK => pll_refclki, +CD => sli_rst, +Q => RTC_PUL); +RTC_CTRL_REG_Z508: FD1S3DX port map ( +D => N_2085_0, +CK => pll_refclki, +CD => sli_rst, +Q => RTC_CTRL); +RSTAT_PCLK_REG_Z510: FD1P3DX port map ( +D => RSTAT_PCLK_2, +SP => RTC_CTRL, +CK => pll_refclki, +CD => sli_rst, +Q => RSTAT_PCLK); +\RHB_WAIT_CNT[0]_REG_Z512\: FD1P3DX port map ( +D => RHB_WAIT_CNT_S(0), +SP => RTC_CTRL, +CK => pll_refclki, +CD => sli_rst, +Q => RHB_WAIT_CNT(0)); +\RHB_WAIT_CNT[1]_REG_Z514\: FD1P3DX port map ( +D => RHB_WAIT_CNT_S(1), +SP => RTC_CTRL, +CK => pll_refclki, +CD => sli_rst, +Q => RHB_WAIT_CNT(1)); +\RHB_WAIT_CNT[2]_REG_Z516\: FD1P3DX port map ( +D => RHB_WAIT_CNT_S(2), +SP => RTC_CTRL, +CK => pll_refclki, +CD => sli_rst, +Q => RHB_WAIT_CNT(2)); +\RHB_WAIT_CNT[3]_REG_Z518\: FD1P3DX port map ( +D => RHB_WAIT_CNT_S(3), +SP => RTC_CTRL, +CK => pll_refclki, +CD => sli_rst, +Q => RHB_WAIT_CNT(3)); +\RHB_WAIT_CNT[4]_REG_Z520\: FD1P3DX port map ( +D => RHB_WAIT_CNT_S(4), +SP => RTC_CTRL, +CK => pll_refclki, +CD => sli_rst, +Q => RHB_WAIT_CNT(4)); +\RHB_WAIT_CNT[5]_REG_Z522\: FD1P3DX port map ( +D => RHB_WAIT_CNT_S(5), +SP => RTC_CTRL, +CK => pll_refclki, +CD => sli_rst, +Q => RHB_WAIT_CNT(5)); +\RHB_WAIT_CNT[6]_REG_Z524\: FD1P3DX port map ( +D => RHB_WAIT_CNT_S(6), +SP => RTC_CTRL, +CK => pll_refclki, +CD => sli_rst, +Q => RHB_WAIT_CNT(6)); +\RHB_WAIT_CNT[7]_REG_Z526\: FD1P3DX port map ( +D => RHB_WAIT_CNT_S(7), +SP => RTC_CTRL, +CK => pll_refclki, +CD => sli_rst, +Q => RHB_WAIT_CNT(7)); +RHB_SYNC_P2_REG_Z528: FD1S3DX port map ( +D => RHB_SYNC_P1, +CK => pll_refclki, +CD => sli_rst, +Q => RHB_SYNC_P2); +RHB_SYNC_P1_REG_Z530: FD1S3DX port map ( +D => RHB_SYNC, +CK => pll_refclki, +CD => sli_rst, +Q => RHB_SYNC_P1); +\RCOUNT[0]_REG_Z532\: FD1S3DX port map ( +D => RCOUNT_S(0), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(0)); +\RCOUNT[1]_REG_Z534\: FD1S3DX port map ( +D => RCOUNT_S(1), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(1)); +\RCOUNT[2]_REG_Z536\: FD1S3DX port map ( +D => RCOUNT_S(2), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(2)); +\RCOUNT[3]_REG_Z538\: FD1S3DX port map ( +D => RCOUNT_S(3), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(3)); +\RCOUNT[4]_REG_Z540\: FD1S3DX port map ( +D => RCOUNT_S(4), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(4)); +\RCOUNT[5]_REG_Z542\: FD1S3DX port map ( +D => RCOUNT_S(5), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(5)); +\RCOUNT[6]_REG_Z544\: FD1S3DX port map ( +D => RCOUNT_S(6), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(6)); +\RCOUNT[7]_REG_Z546\: FD1S3DX port map ( +D => RCOUNT_S(7), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(7)); +\RCOUNT[8]_REG_Z548\: FD1S3DX port map ( +D => RCOUNT_S(8), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(8)); +\RCOUNT[9]_REG_Z550\: FD1S3DX port map ( +D => RCOUNT_S(9), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(9)); +\RCOUNT[10]_REG_Z552\: FD1S3DX port map ( +D => RCOUNT_S(10), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(10)); +\RCOUNT[11]_REG_Z554\: FD1S3DX port map ( +D => RCOUNT_S(11), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(11)); +\RCOUNT[12]_REG_Z556\: FD1S3DX port map ( +D => RCOUNT_S(12), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(12)); +\RCOUNT[13]_REG_Z558\: FD1S3DX port map ( +D => RCOUNT_S(13), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(13)); +\RCOUNT[14]_REG_Z560\: FD1S3DX port map ( +D => RCOUNT_S(14), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(14)); +\RCOUNT[15]_REG_Z562\: FD1S3DX port map ( +D => RCOUNT_S(15), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(15)); +PPUL_SYNC_P3_REG_Z564: FD1S3DX port map ( +D => PPUL_SYNC_P2, +CK => tx_pclk, +CD => sli_rst, +Q => PPUL_SYNC_P3); +PPUL_SYNC_P2_REG_Z566: FD1S3DX port map ( +D => PPUL_SYNC_P1, +CK => tx_pclk, +CD => sli_rst, +Q => PPUL_SYNC_P2); +PPUL_SYNC_P1_REG_Z568: FD1S3DX port map ( +D => PPUL_SYNC, +CK => tx_pclk, +CD => sli_rst, +Q => PPUL_SYNC_P1); +PLL_LOCK_REG_Z570: FD1S3DX port map ( +D => N_53_I, +CK => pll_refclki, +CD => sli_rst, +Q => PLL_LOCK); +\PHB_CNT[0]_REG_Z572\: FD1S3DX port map ( +D => PHB_CNT_I(0), +CK => tx_pclk, +CD => sli_rst, +Q => PHB_CNT(0)); +\PHB_CNT[1]_REG_Z574\: FD1S3DX port map ( +D => PHB_CNT_RNO(1), +CK => tx_pclk, +CD => sli_rst, +Q => PHB_CNT(1)); +\PHB_CNT[2]_REG_Z576\: FD1S3DX port map ( +D => PHB_CNT_RNO(2), +CK => tx_pclk, +CD => sli_rst, +Q => PHB_CNT(2)); +PHB_REG_Z578: FD1S3DX port map ( +D => PHB_CNT_I(2), +CK => tx_pclk, +CD => sli_rst, +Q => PHB); +PDIFF_SYNC_P1_REG_Z580: FD1S3DX port map ( +D => PDIFF_SYNC, +CK => pll_refclki, +CD => sli_rst, +Q => PDIFF_SYNC_P1); +\PCOUNT[0]_REG_Z582\: FD1S3DX port map ( +D => PCOUNT_S(0), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(0)); +\PCOUNT_DIFF[0]_REG_Z584\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_I(0), +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_0); +\PCOUNT[1]_REG_Z586\: FD1S3DX port map ( +D => PCOUNT_S(1), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(1)); +\PCOUNT_DIFF[1]_REG_Z588\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_1_0_S0, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_1); +\PCOUNT_DIFF[2]_REG_Z590\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_1_0_S1, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_2); +\PCOUNT[2]_REG_Z592\: FD1S3DX port map ( +D => PCOUNT_S(2), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(2)); +\PCOUNT_DIFF[3]_REG_Z594\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_3_0_S0, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_3); +\PCOUNT[3]_REG_Z596\: FD1S3DX port map ( +D => PCOUNT_S(3), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(3)); +\PCOUNT_DIFF[4]_REG_Z598\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_3_0_S1, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_4); +\PCOUNT[4]_REG_Z600\: FD1S3DX port map ( +D => PCOUNT_S(4), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(4)); +\PCOUNT_DIFF[5]_REG_Z602\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_5_0_S0, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_5); +\PCOUNT[5]_REG_Z604\: FD1S3DX port map ( +D => PCOUNT_S(5), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(5)); +\PCOUNT[6]_REG_Z606\: FD1S3DX port map ( +D => PCOUNT_S(6), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(6)); +\PCOUNT_DIFF[6]_REG_Z608\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_5_0_S1, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_6); +\PCOUNT[7]_REG_Z610\: FD1S3DX port map ( +D => PCOUNT_S(7), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(7)); +\PCOUNT_DIFF[7]_REG_Z612\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_7_0_S0, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_7); +\PCOUNT[8]_REG_Z614\: FD1S3DX port map ( +D => PCOUNT_S(8), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(8)); +\PCOUNT_DIFF[8]_REG_Z616\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_7_0_S1, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_8); +\PCOUNT_DIFF[9]_REG_Z618\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_9_0_S0, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_9); +\PCOUNT[9]_REG_Z620\: FD1S3DX port map ( +D => PCOUNT_S(9), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(9)); +\PCOUNT[10]_REG_Z622\: FD1S3DX port map ( +D => PCOUNT_S(10), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(10)); +\PCOUNT_DIFF[10]_REG_Z624\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_9_0_S1, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_10); +\PCOUNT_DIFF[11]_REG_Z626\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_11_0_S0, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_11); +\PCOUNT[11]_REG_Z628\: FD1S3DX port map ( +D => PCOUNT_S(11), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(11)); +\PCOUNT[12]_REG_Z630\: FD1S3DX port map ( +D => PCOUNT_S(12), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(12)); +\PCOUNT_DIFF[12]_REG_Z632\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_11_0_S1, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_12); +\PCOUNT_DIFF[13]_REG_Z634\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_13_0_S0, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_13); +\PCOUNT[13]_REG_Z636\: FD1S3DX port map ( +D => PCOUNT_S(13), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(13)); +\PCOUNT_DIFF[14]_REG_Z638\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_13_0_S1, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_14); +\PCOUNT[14]_REG_Z640\: FD1S3DX port map ( +D => PCOUNT_S(14), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(14)); +\PCOUNT[15]_REG_Z642\: FD1S3DX port map ( +D => PCOUNT_S(15), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(15)); +\PCOUNT_DIFF[15]_REG_Z644\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_15_0_S0, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_15); +\PCOUNT[16]_REG_Z646\: FD1S3DX port map ( +D => PCOUNT_S(16), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(16)); +\PCOUNT_DIFF[16]_REG_Z648\: FD1P3DX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_15_0_S1, +SP => N_7, +CK => tx_pclk, +CD => sli_rst, +Q => UN13_LOCK_16); +\PCOUNT_DIFF[17]_REG_Z650\: FD1P3DX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_17_0_S0, +SP => N_7, +CK => tx_pclk, +CD => sli_rst, +Q => UN13_LOCK_17); +\PCOUNT[17]_REG_Z652\: FD1S3DX port map ( +D => PCOUNT_S(17), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(17)); +\PCOUNT_DIFF[18]_REG_Z654\: FD1P3DX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_17_0_S1, +SP => N_7, +CK => tx_pclk, +CD => sli_rst, +Q => UN13_LOCK_18); +\PCOUNT[18]_REG_Z656\: FD1S3DX port map ( +D => PCOUNT_S(18), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(18)); +\PCOUNT[19]_REG_Z658\: FD1S3DX port map ( +D => PCOUNT_S(19), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(19)); +\PCOUNT_DIFF[19]_REG_Z660\: FD1P3DX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_19_0_S0, +SP => N_7, +CK => tx_pclk, +CD => sli_rst, +Q => UN13_LOCK_19); +\PCOUNT[20]_REG_Z662\: FD1S3DX port map ( +D => PCOUNT_S(20), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(20)); +\PCOUNT_DIFF[20]_REG_Z664\: FD1P3DX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_19_0_S1, +SP => N_7, +CK => tx_pclk, +CD => sli_rst, +Q => UN13_LOCK_20); +\PCOUNT_DIFF[21]_REG_Z666\: FD1P3DX port map ( +D => UN1_PCOUNT_DIFF_1_S_21_0_S0, +SP => N_7, +CK => tx_pclk, +CD => sli_rst, +Q => UN13_LOCK_21); +\PCOUNT[21]_REG_Z668\: FD1S3DX port map ( +D => PCOUNT_S(21), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(21)); +LOCK_REG_Z670: FD1P3DX port map ( +D => LOCK_5, +SP => LOCK_1_SQMUXA_I, +CK => pll_refclki, +CD => sli_rst, +Q => LOCK); +\GENBLK5.RDIFF_COMP_LOCK[2]_REG_Z672\: FD1S3DX port map ( +D => VCC, +CK => pll_refclki, +CD => sli_rst, +Q => RDIFF_COMP_LOCK(2)); +\SLL_STATE_RNO[0]\: LUT4 +generic map( + init => X"E050" +) +port map ( +A => N_98, +B => LOCK, +C => RSTAT_PCLK, +D => SLL_STATE(0), +Z => N_95_I); +RTC_PUL5_0_0: LUT4 +generic map( + init => X"FF80" +) +port map ( +A => RTC_PUL5_0_O3, +B => RTC_PUL5_0_A3_6, +C => RTC_PUL5_0_A3_7, +D => UN1_RCOUNT_1_0_A3, +Z => RTC_PUL5); +RSTAT_PCLK_2_IV: LUT4 +generic map( + init => X"AEEE" +) +port map ( +A => RHB_WAIT_CNT12, +B => RSTAT_PCLK, +C => UN1_RHB_WAIT_CNT_4, +D => UN1_RHB_WAIT_CNT_5, +Z => RSTAT_PCLK_2); +\SLL_STATE_RNO[1]\: LUT4 +generic map( + init => X"8088" +) +port map ( +A => N_99, +B => RSTAT_PCLK, +C => SLL_STATE(1), +D => UNLOCK, +Z => N_97_I); +RTC_CTRL4_0_A3: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RTC_CTRL4_0_A3_1, +B => RTC_CTRL4_0_A3_12_4, +C => RTC_CTRL4_0_A3_12_5, +D => RTC_CTRL4_10, +Z => RTC_CTRL4); +UN1_RCOUNT_1_0_A3_Z678: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RTC_CTRL4_0_A3_12_4, +B => RTC_CTRL4_0_A3_12_5, +C => RTC_CTRL4_10, +D => UN1_RCOUNT_1_0_A3_1, +Z => UN1_RCOUNT_1_0_A3); +LOCK_1_SQMUXA_I_Z679: LUT4 +generic map( + init => X"7575" +) +port map ( +A => LOCK, +B => PDIFF_SYNC, +C => PDIFF_SYNC_P1, +D => VCC, +Z => LOCK_1_SQMUXA_I); +UNLOCK_1_SQMUXA_I_Z680: LUT4 +generic map( + init => X"4F4F" +) +port map ( +A => PDIFF_SYNC, +B => PDIFF_SYNC_P1, +C => UNLOCK, +D => VCC, +Z => UNLOCK_1_SQMUXA_I); +RTC_PUL5_0_O3_Z681: LUT4 +generic map( + init => X"AAAB" +) +port map ( +A => N_6, +B => RCOUNT(1), +C => RCOUNT(2), +D => RCOUNT(3), +Z => RTC_PUL5_0_O3); +RTC_PUL5_0_A3_7_Z682: LUT4 +generic map( + init => X"1010" +) +port map ( +A => RCOUNT(7), +B => RCOUNT(8), +C => RTC_PUL5_0_A3_5, +D => VCC, +Z => RTC_PUL5_0_A3_7); +\SLL_STATE_NS_I_M4[1]\: LUT4 +generic map( + init => X"EF20" +) +port map ( +A => LOCK, +B => RTC_PUL, +C => RTC_PUL_P1, +D => SLL_STATE(1), +Z => N_99); +PLL_LOCK_RNO: LUT4 +generic map( + init => X"8888" +) +port map ( +A => SLL_STATE(0), +B => SLL_STATE(1), +C => VCC, +D => VCC, +Z => N_53_I); +\PHB_CNT_RNO[2]_Z685\: LUT4 +generic map( + init => X"7878" +) +port map ( +A => PHB_CNT(0), +B => PHB_CNT(1), +C => PHB_CNT(2), +D => VCC, +Z => PHB_CNT_RNO(2)); +\SLL_STATE_NS_I_O4[0]\: LUT4 +generic map( + init => X"BFBF" +) +port map ( +A => RTC_PUL, +B => RTC_PUL_P1, +C => SLL_STATE(1), +D => VCC, +Z => N_98); +RTC_CTRL4_0_A3_10: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RCOUNT(1), +B => RCOUNT(3), +C => RCOUNT(6), +D => RCOUNT(15), +Z => RTC_CTRL4_10); +UN1_RHB_WAIT_CNT_4_Z688: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RHB_WAIT_CNT(4), +B => RHB_WAIT_CNT(5), +C => RHB_WAIT_CNT(6), +D => RHB_WAIT_CNT(7), +Z => UN1_RHB_WAIT_CNT_4); +UN1_RHB_WAIT_CNT_5_Z689: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RHB_WAIT_CNT(0), +B => RHB_WAIT_CNT(1), +C => RHB_WAIT_CNT(2), +D => RHB_WAIT_CNT(3), +Z => UN1_RHB_WAIT_CNT_5); +RTC_CTRL4_0_A3_12_4_Z690: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RCOUNT(11), +B => RCOUNT(12), +C => RCOUNT(13), +D => RCOUNT(14), +Z => RTC_CTRL4_0_A3_12_4); +RTC_CTRL4_0_A3_12_5_Z691: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RCOUNT(7), +B => RCOUNT(8), +C => RCOUNT(9), +D => RCOUNT(10), +Z => RTC_CTRL4_0_A3_12_5); +RTC_PUL5_0_A3_5_Z692: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RCOUNT(6), +B => RCOUNT(13), +C => RCOUNT(14), +D => RCOUNT(15), +Z => RTC_PUL5_0_A3_5); +RTC_PUL5_0_A3_6_Z693: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RCOUNT(9), +B => RCOUNT(10), +C => RCOUNT(11), +D => RCOUNT(12), +Z => RTC_PUL5_0_A3_6); +PCOUNT10_0_O3: LUT4 +generic map( + init => X"DDDD" +) +port map ( +A => PPUL_SYNC_P1, +B => PPUL_SYNC_P2, +C => VCC, +D => VCC, +Z => N_8); +\PHB_CNT_RNO[1]_Z695\: LUT4 +generic map( + init => X"6666" +) +port map ( +A => PHB_CNT(0), +B => PHB_CNT(1), +C => VCC, +D => VCC, +Z => PHB_CNT_RNO(1)); +RTC_CTRL4_0_O3: LUT4 +generic map( + init => X"7777" +) +port map ( +A => RCOUNT(4), +B => RCOUNT(5), +C => VCC, +D => VCC, +Z => N_6); +UNLOCK_5_Z697: LUT4 +generic map( + init => X"8888" +) +port map ( +A => PDIFF_SYNC, +B => UN13_UNLOCK_CRY_21, +C => VCC, +D => VCC, +Z => UNLOCK_5); +LOCK_5_Z698: LUT4 +generic map( + init => X"8888" +) +port map ( +A => PDIFF_SYNC, +B => UN13_LOCK_CRY_21_I, +C => VCC, +D => VCC, +Z => LOCK_5); +RHB_WAIT_CNT12_Z699: LUT4 +generic map( + init => X"2222" +) +port map ( +A => RHB_SYNC_P1, +B => RHB_SYNC_P2, +C => VCC, +D => VCC, +Z => RHB_WAIT_CNT12); +\UN1_PCOUNT_DIFF[0]_Z700\: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_0, +B => PCOUNT(0), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF(0)); +UN1_RCOUNT_1_0_A3_1_Z701: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RCOUNT(2), +B => RCOUNT(0), +C => RCOUNT(5), +D => RCOUNT(4), +Z => UN1_RCOUNT_1_0_A3_1); +RHB_SYNC_P2_RNIU9TG1: LUT4 +generic map( + init => X"7077" +) +port map ( +A => UN1_RHB_WAIT_CNT_5, +B => UN1_RHB_WAIT_CNT_4, +C => RHB_SYNC_P2, +D => RHB_SYNC_P1, +Z => \RHB_WAIT_CNT_\); +\PCOUNT_CRY_0[0]\: CCU2C +generic map( + INIT0 => X"500c", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => N_8, +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(0), +C1 => VCC, +D1 => VCC, +CIN => N_9, +COUT => PCOUNT_CRY(0), +S0 => PCOUNT_CRY_0_S0(0), +S1 => PCOUNT_S(0)); +\PCOUNT_CRY_0[1]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(1), +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(2), +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(0), +COUT => PCOUNT_CRY(2), +S0 => PCOUNT_S(1), +S1 => PCOUNT_S(2)); +\PCOUNT_CRY_0[3]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(3), +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(4), +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(2), +COUT => PCOUNT_CRY(4), +S0 => PCOUNT_S(3), +S1 => PCOUNT_S(4)); +\PCOUNT_CRY_0[5]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(5), +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(6), +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(4), +COUT => PCOUNT_CRY(6), +S0 => PCOUNT_S(5), +S1 => PCOUNT_S(6)); +\PCOUNT_CRY_0[7]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(7), +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(8), +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(6), +COUT => PCOUNT_CRY(8), +S0 => PCOUNT_S(7), +S1 => PCOUNT_S(8)); +\PCOUNT_CRY_0[9]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(9), +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(10), +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(8), +COUT => PCOUNT_CRY(10), +S0 => PCOUNT_S(9), +S1 => PCOUNT_S(10)); +\PCOUNT_CRY_0[11]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(11), +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(12), +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(10), +COUT => PCOUNT_CRY(12), +S0 => PCOUNT_S(11), +S1 => PCOUNT_S(12)); +\PCOUNT_CRY_0[13]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(13), +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(14), +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(12), +COUT => PCOUNT_CRY(14), +S0 => PCOUNT_S(13), +S1 => PCOUNT_S(14)); +\PCOUNT_CRY_0[15]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(15), +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(16), +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(14), +COUT => PCOUNT_CRY(16), +S0 => PCOUNT_S(15), +S1 => PCOUNT_S(16)); +\PCOUNT_CRY_0[17]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(17), +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(18), +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(16), +COUT => PCOUNT_CRY(18), +S0 => PCOUNT_S(17), +S1 => PCOUNT_S(18)); +\PCOUNT_CRY_0[19]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(19), +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(20), +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(18), +COUT => PCOUNT_CRY(20), +S0 => PCOUNT_S(19), +S1 => PCOUNT_S(20)); +\PCOUNT_S_0[21]\: CCU2C +generic map( + INIT0 => X"800a", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(21), +C0 => VCC, +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(20), +COUT => PCOUNT_S_0_COUT(21), +S0 => PCOUNT_S(21), +S1 => PCOUNT_S_0_S1(21)); +\RCOUNT_CRY_0[0]\: CCU2C +generic map( + INIT0 => X"5003", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => UN1_RCOUNT_1_0_A3, +C0 => VCC, +D0 => VCC, +A1 => UN1_RCOUNT_1_0_A3, +B1 => RCOUNT(0), +C1 => VCC, +D1 => VCC, +CIN => N_5, +COUT => RCOUNT_CRY(0), +S0 => RCOUNT_CRY_0_S0(0), +S1 => RCOUNT_S(0)); +\RCOUNT_CRY_0[1]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_RCOUNT_1_0_A3, +B0 => RCOUNT(1), +C0 => VCC, +D0 => VCC, +A1 => UN1_RCOUNT_1_0_A3, +B1 => RCOUNT(2), +C1 => VCC, +D1 => VCC, +CIN => RCOUNT_CRY(0), +COUT => RCOUNT_CRY(2), +S0 => RCOUNT_S(1), +S1 => RCOUNT_S(2)); +\RCOUNT_CRY_0[3]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_RCOUNT_1_0_A3, +B0 => RCOUNT(3), +C0 => VCC, +D0 => VCC, +A1 => UN1_RCOUNT_1_0_A3, +B1 => RCOUNT(4), +C1 => VCC, +D1 => VCC, +CIN => RCOUNT_CRY(2), +COUT => RCOUNT_CRY(4), +S0 => RCOUNT_S(3), +S1 => RCOUNT_S(4)); +\RCOUNT_CRY_0[5]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_RCOUNT_1_0_A3, +B0 => RCOUNT(5), +C0 => VCC, +D0 => VCC, +A1 => UN1_RCOUNT_1_0_A3, +B1 => RCOUNT(6), +C1 => VCC, +D1 => VCC, +CIN => RCOUNT_CRY(4), +COUT => RCOUNT_CRY(6), +S0 => RCOUNT_S(5), +S1 => RCOUNT_S(6)); +\RCOUNT_CRY_0[7]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_RCOUNT_1_0_A3, +B0 => RCOUNT(7), +C0 => VCC, +D0 => VCC, +A1 => UN1_RCOUNT_1_0_A3, +B1 => RCOUNT(8), +C1 => VCC, +D1 => VCC, +CIN => RCOUNT_CRY(6), +COUT => RCOUNT_CRY(8), +S0 => RCOUNT_S(7), +S1 => RCOUNT_S(8)); +\RCOUNT_CRY_0[9]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_RCOUNT_1_0_A3, +B0 => RCOUNT(9), +C0 => VCC, +D0 => VCC, +A1 => UN1_RCOUNT_1_0_A3, +B1 => RCOUNT(10), +C1 => VCC, +D1 => VCC, +CIN => RCOUNT_CRY(8), +COUT => RCOUNT_CRY(10), +S0 => RCOUNT_S(9), +S1 => RCOUNT_S(10)); +\RCOUNT_CRY_0[11]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_RCOUNT_1_0_A3, +B0 => RCOUNT(11), +C0 => VCC, +D0 => VCC, +A1 => UN1_RCOUNT_1_0_A3, +B1 => RCOUNT(12), +C1 => VCC, +D1 => VCC, +CIN => RCOUNT_CRY(10), +COUT => RCOUNT_CRY(12), +S0 => RCOUNT_S(11), +S1 => RCOUNT_S(12)); +\RCOUNT_CRY_0[13]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_RCOUNT_1_0_A3, +B0 => RCOUNT(13), +C0 => VCC, +D0 => VCC, +A1 => UN1_RCOUNT_1_0_A3, +B1 => RCOUNT(14), +C1 => VCC, +D1 => VCC, +CIN => RCOUNT_CRY(12), +COUT => RCOUNT_CRY(14), +S0 => RCOUNT_S(13), +S1 => RCOUNT_S(14)); +\RCOUNT_S_0[15]\: CCU2C +generic map( + INIT0 => X"4005", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_RCOUNT_1_0_A3, +B0 => RCOUNT(15), +C0 => VCC, +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => RCOUNT_CRY(14), +COUT => RCOUNT_S_0_COUT(15), +S0 => RCOUNT_S(15), +S1 => RCOUNT_S_0_S1(15)); +\RHB_WAIT_CNT_CRY_0[0]\: CCU2C +generic map( + INIT0 => X"500c", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => \RHB_WAIT_CNT_\, +C0 => VCC, +D0 => VCC, +A1 => \RHB_WAIT_CNT_\, +B1 => RHB_WAIT_CNT(0), +C1 => VCC, +D1 => VCC, +CIN => N_4, +COUT => RHB_WAIT_CNT_CRY(0), +S0 => RHB_WAIT_CNT_CRY_0_S0(0), +S1 => RHB_WAIT_CNT_S(0)); +\RHB_WAIT_CNT_CRY_0[1]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RHB_WAIT_CNT_\, +B0 => RHB_WAIT_CNT(1), +C0 => VCC, +D0 => VCC, +A1 => \RHB_WAIT_CNT_\, +B1 => RHB_WAIT_CNT(2), +C1 => VCC, +D1 => VCC, +CIN => RHB_WAIT_CNT_CRY(0), +COUT => RHB_WAIT_CNT_CRY(2), +S0 => RHB_WAIT_CNT_S(1), +S1 => RHB_WAIT_CNT_S(2)); +\RHB_WAIT_CNT_CRY_0[3]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RHB_WAIT_CNT_\, +B0 => RHB_WAIT_CNT(3), +C0 => VCC, +D0 => VCC, +A1 => \RHB_WAIT_CNT_\, +B1 => RHB_WAIT_CNT(4), +C1 => VCC, +D1 => VCC, +CIN => RHB_WAIT_CNT_CRY(2), +COUT => RHB_WAIT_CNT_CRY(4), +S0 => RHB_WAIT_CNT_S(3), +S1 => RHB_WAIT_CNT_S(4)); +\RHB_WAIT_CNT_CRY_0[5]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RHB_WAIT_CNT_\, +B0 => RHB_WAIT_CNT(5), +C0 => VCC, +D0 => VCC, +A1 => \RHB_WAIT_CNT_\, +B1 => RHB_WAIT_CNT(6), +C1 => VCC, +D1 => VCC, +CIN => RHB_WAIT_CNT_CRY(4), +COUT => RHB_WAIT_CNT_CRY(6), +S0 => RHB_WAIT_CNT_S(5), +S1 => RHB_WAIT_CNT_S(6)); +\RHB_WAIT_CNT_S_0[7]\: CCU2C +generic map( + INIT0 => X"800a", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RHB_WAIT_CNT_\, +B0 => RHB_WAIT_CNT(7), +C0 => VCC, +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => RHB_WAIT_CNT_CRY(6), +COUT => RHB_WAIT_CNT_S_0_COUT(7), +S0 => RHB_WAIT_CNT_S(7), +S1 => RHB_WAIT_CNT_S_0_S1(7)); +UN1_PCOUNT_DIFF_1_CRY_0_0: CCU2C +generic map( + INIT0 => X"5003", + INIT1 => X"500f", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF(0), +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => N_3, +COUT => UN1_PCOUNT_DIFF_1_CRY_0, +S0 => UN1_PCOUNT_DIFF_1_CRY_0_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_0_0_S1); +UN1_PCOUNT_DIFF_1_CRY_1_0: CCU2C +generic map( + INIT0 => X"a003", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_PCOUNT_DIFF_1_AXB_1, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF_1_AXB_2, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_0, +COUT => UN1_PCOUNT_DIFF_1_CRY_2, +S0 => UN1_PCOUNT_DIFF_1_CRY_1_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_1_0_S1); +UN1_PCOUNT_DIFF_1_CRY_3_0: CCU2C +generic map( + INIT0 => X"a003", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_PCOUNT_DIFF_1_AXB_3, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF_1_AXB_4, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_2, +COUT => UN1_PCOUNT_DIFF_1_CRY_4, +S0 => UN1_PCOUNT_DIFF_1_CRY_3_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_3_0_S1); +UN1_PCOUNT_DIFF_1_CRY_5_0: CCU2C +generic map( + INIT0 => X"a003", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_PCOUNT_DIFF_1_AXB_5, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF_1_AXB_6, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_4, +COUT => UN1_PCOUNT_DIFF_1_CRY_6, +S0 => UN1_PCOUNT_DIFF_1_CRY_5_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_5_0_S1); +UN1_PCOUNT_DIFF_1_CRY_7_0: CCU2C +generic map( + INIT0 => X"a003", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_PCOUNT_DIFF_1_AXB_7, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF_1_AXB_8, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_6, +COUT => UN1_PCOUNT_DIFF_1_CRY_8, +S0 => UN1_PCOUNT_DIFF_1_CRY_7_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_7_0_S1); +UN1_PCOUNT_DIFF_1_CRY_9_0: CCU2C +generic map( + INIT0 => X"a003", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_PCOUNT_DIFF_1_AXB_9, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF_1_AXB_10, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_8, +COUT => UN1_PCOUNT_DIFF_1_CRY_10, +S0 => UN1_PCOUNT_DIFF_1_CRY_9_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_9_0_S1); +UN1_PCOUNT_DIFF_1_CRY_11_0: CCU2C +generic map( + INIT0 => X"a003", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_PCOUNT_DIFF_1_AXB_11, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF_1_AXB_12, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_10, +COUT => UN1_PCOUNT_DIFF_1_CRY_12, +S0 => UN1_PCOUNT_DIFF_1_CRY_11_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_11_0_S1); +UN1_PCOUNT_DIFF_1_CRY_13_0: CCU2C +generic map( + INIT0 => X"a003", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_PCOUNT_DIFF_1_AXB_13, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF_1_AXB_14, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_12, +COUT => UN1_PCOUNT_DIFF_1_CRY_14, +S0 => UN1_PCOUNT_DIFF_1_CRY_13_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_13_0_S1); +UN1_PCOUNT_DIFF_1_CRY_15_0: CCU2C +generic map( + INIT0 => X"a003", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_PCOUNT_DIFF_1_AXB_15, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF_1_AXB_16, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_14, +COUT => UN1_PCOUNT_DIFF_1_CRY_16, +S0 => UN1_PCOUNT_DIFF_1_CRY_15_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_15_0_S1); +UN1_PCOUNT_DIFF_1_CRY_17_0: CCU2C +generic map( + INIT0 => X"b404", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => RDIFF_COMP_LOCK(2), +C0 => UN1_PCOUNT_DIFF_1_CRY_17_0_RNO, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF_1_AXB_18, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_16, +COUT => UN1_PCOUNT_DIFF_1_CRY_18, +S0 => UN1_PCOUNT_DIFF_1_CRY_17_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_17_0_S1); +UN1_PCOUNT_DIFF_1_CRY_19_0: CCU2C +generic map( + INIT0 => X"a003", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_PCOUNT_DIFF_1_AXB_19, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF_1_AXB_20, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_18, +COUT => UN1_PCOUNT_DIFF_1_CRY_20, +S0 => UN1_PCOUNT_DIFF_1_CRY_19_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_19_0_S1); +UN1_PCOUNT_DIFF_1_S_21_0: CCU2C +generic map( + INIT0 => X"350a", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => PCOUNT(21), +B0 => UN13_LOCK_21, +C0 => N_8, +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_20, +COUT => UN1_PCOUNT_DIFF_1_S_21_0_COUT, +S0 => UN1_PCOUNT_DIFF_1_S_21_0_S0, +S1 => UN1_PCOUNT_DIFF_1_S_21_0_S1); +UN13_LOCK_CRY_0_0: CCU2C +generic map( + INIT0 => X"5003", + INIT1 => X"900a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_0, +B1 => RDIFF_COMP_LOCK(2), +C1 => VCC, +D1 => VCC, +CIN => N_2, +COUT => UN13_LOCK_CRY_0, +S0 => UN13_LOCK_CRY_0_0_S0, +S1 => UN13_LOCK_CRY_0_0_S1); +UN13_LOCK_CRY_1_0: CCU2C +generic map( + INIT0 => X"900a", + INIT1 => X"900a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_1, +B0 => RDIFF_COMP_LOCK(2), +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_2, +B1 => RDIFF_COMP_LOCK(2), +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_0, +COUT => UN13_LOCK_CRY_2, +S0 => UN13_LOCK_CRY_1_0_S0, +S1 => UN13_LOCK_CRY_1_0_S1); +UN13_LOCK_CRY_3_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_3, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_4, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_2, +COUT => UN13_LOCK_CRY_4, +S0 => UN13_LOCK_CRY_3_0_S0, +S1 => UN13_LOCK_CRY_3_0_S1); +UN13_LOCK_CRY_5_0: CCU2C +generic map( + INIT0 => X"900a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_5, +B0 => RDIFF_COMP_LOCK(2), +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_6, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_4, +COUT => UN13_LOCK_CRY_6, +S0 => UN13_LOCK_CRY_5_0_S0, +S1 => UN13_LOCK_CRY_5_0_S1); +UN13_LOCK_CRY_7_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_7, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_8, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_6, +COUT => UN13_LOCK_CRY_8, +S0 => UN13_LOCK_CRY_7_0_S0, +S1 => UN13_LOCK_CRY_7_0_S1); +UN13_LOCK_CRY_9_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_9, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_10, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_8, +COUT => UN13_LOCK_CRY_10, +S0 => UN13_LOCK_CRY_9_0_S0, +S1 => UN13_LOCK_CRY_9_0_S1); +UN13_LOCK_CRY_11_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_11, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_12, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_10, +COUT => UN13_LOCK_CRY_12, +S0 => UN13_LOCK_CRY_11_0_S0, +S1 => UN13_LOCK_CRY_11_0_S1); +UN13_LOCK_CRY_13_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_13, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_14, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_12, +COUT => UN13_LOCK_CRY_14, +S0 => UN13_LOCK_CRY_13_0_S0, +S1 => UN13_LOCK_CRY_13_0_S1); +UN13_LOCK_CRY_15_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_15, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_16, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_14, +COUT => UN13_LOCK_CRY_16, +S0 => UN13_LOCK_CRY_15_0_S0, +S1 => UN13_LOCK_CRY_15_0_S1); +UN13_LOCK_CRY_17_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_17, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_18, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_16, +COUT => UN13_LOCK_CRY_18, +S0 => UN13_LOCK_CRY_17_0_S0, +S1 => UN13_LOCK_CRY_17_0_S1); +UN13_LOCK_CRY_19_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_19, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_20, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_18, +COUT => UN13_LOCK_CRY_20, +S0 => UN13_LOCK_CRY_19_0_S0, +S1 => UN13_LOCK_CRY_19_0_S1); +UN13_LOCK_CRY_21_0: CCU2C +generic map( + INIT0 => X"500f", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_21, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_20, +COUT => UN13_LOCK_CRY_21_0_COUT, +S0 => UN13_LOCK_CRY_21_0_S0, +S1 => UN13_LOCK_CRY_21_I); +UN13_UNLOCK_CRY_0_0: CCU2C +generic map( + INIT0 => X"5003", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_0, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => N_1, +COUT => UN13_UNLOCK_CRY_0, +S0 => UN13_UNLOCK_CRY_0_0_S0, +S1 => UN13_UNLOCK_CRY_0_0_S1); +UN13_UNLOCK_CRY_1_0: CCU2C +generic map( + INIT0 => X"900a", + INIT1 => X"900a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_1, +B0 => RDIFF_COMP_LOCK(2), +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_2, +B1 => RDIFF_COMP_LOCK(2), +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_0, +COUT => UN13_UNLOCK_CRY_2, +S0 => UN13_UNLOCK_CRY_1_0_S0, +S1 => UN13_UNLOCK_CRY_1_0_S1); +UN13_UNLOCK_CRY_3_0: CCU2C +generic map( + INIT0 => X"900a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_3, +B0 => RDIFF_COMP_LOCK(2), +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_4, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_2, +COUT => UN13_UNLOCK_CRY_4, +S0 => UN13_UNLOCK_CRY_3_0_S0, +S1 => UN13_UNLOCK_CRY_3_0_S1); +UN13_UNLOCK_CRY_5_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"900a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_5, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_6, +B1 => RDIFF_COMP_LOCK(2), +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_4, +COUT => UN13_UNLOCK_CRY_6, +S0 => UN13_UNLOCK_CRY_5_0_S0, +S1 => UN13_UNLOCK_CRY_5_0_S1); +UN13_UNLOCK_CRY_7_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_7, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_8, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_6, +COUT => UN13_UNLOCK_CRY_8, +S0 => UN13_UNLOCK_CRY_7_0_S0, +S1 => UN13_UNLOCK_CRY_7_0_S1); +UN13_UNLOCK_CRY_9_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_9, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_10, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_8, +COUT => UN13_UNLOCK_CRY_10, +S0 => UN13_UNLOCK_CRY_9_0_S0, +S1 => UN13_UNLOCK_CRY_9_0_S1); +UN13_UNLOCK_CRY_11_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_11, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_12, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_10, +COUT => UN13_UNLOCK_CRY_12, +S0 => UN13_UNLOCK_CRY_11_0_S0, +S1 => UN13_UNLOCK_CRY_11_0_S1); +UN13_UNLOCK_CRY_13_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_13, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_14, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_12, +COUT => UN13_UNLOCK_CRY_14, +S0 => UN13_UNLOCK_CRY_13_0_S0, +S1 => UN13_UNLOCK_CRY_13_0_S1); +UN13_UNLOCK_CRY_15_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_15, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_16, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_14, +COUT => UN13_UNLOCK_CRY_16, +S0 => UN13_UNLOCK_CRY_15_0_S0, +S1 => UN13_UNLOCK_CRY_15_0_S1); +UN13_UNLOCK_CRY_17_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_17, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_18, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_16, +COUT => UN13_UNLOCK_CRY_18, +S0 => UN13_UNLOCK_CRY_17_0_S0, +S1 => UN13_UNLOCK_CRY_17_0_S1); +UN13_UNLOCK_CRY_19_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_19, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_20, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_18, +COUT => UN13_UNLOCK_CRY_20, +S0 => UN13_UNLOCK_CRY_19_0_S0, +S1 => UN13_UNLOCK_CRY_19_0_S1); +UN13_UNLOCK_CRY_21_0: CCU2C +generic map( + INIT0 => X"500f", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_21, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_20, +COUT => UN13_UNLOCK_CRY_21_0_COUT, +S0 => UN13_UNLOCK_CRY_21_0_S0, +S1 => UN13_UNLOCK_CRY_21); +PHB_SYNC_INST: sync_0s port map ( +phb => PHB, +rhb_sync => RHB_SYNC, +sli_rst => sli_rst, +pll_refclki => pll_refclki); +RTC_SYNC_INST: sync_0s_6 port map ( +rtc_pul => RTC_PUL, +ppul_sync => PPUL_SYNC, +sli_rst => sli_rst, +tx_pclk => tx_pclk); +PDIFF_SYNC_INST: sync_0s_0 port map ( +ppul_sync => PPUL_SYNC, +pdiff_sync => PDIFF_SYNC, +sli_rst => sli_rst, +pll_refclki => pll_refclki); +VCC_0: VHI port map ( +Z => VCC); +II_GND: VLO port map ( +Z => GND); +end beh; + +-- +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; +library synplify; +use synplify.components.all; +library pmi; +use pmi.pmi_components.all; +library ecp5um; +use ecp5um.components.all; + +entity sgmii_ecp5 is +port( +hdoutp : out std_logic; +hdoutn : out std_logic; +hdinp : in std_logic; +hdinn : in std_logic; +rxrefclk : in std_logic; +tx_pclk : out std_logic; +txi_clk : in std_logic; +txdata : in std_logic_vector(7 downto 0); +tx_k : in std_logic_vector(0 downto 0); +xmit : in std_logic_vector(0 downto 0); +tx_disp_correct : in std_logic_vector(0 downto 0); +rxdata : out std_logic_vector(7 downto 0); +rx_k : out std_logic_vector(0 downto 0); +rx_disp_err : out std_logic_vector(0 downto 0); +rx_cv_err : out std_logic_vector(0 downto 0); +signal_detect_c : in std_logic; +rx_los_low_s : out std_logic; +lsm_status_s : out std_logic; +ctc_urun_s : out std_logic; +ctc_orun_s : out std_logic; +rx_cdr_lol_s : out std_logic; +ctc_ins_s : out std_logic; +ctc_del_s : out std_logic; +sli_rst : in std_logic; +tx_pwrup_c : in std_logic; +rx_pwrup_c : in std_logic; +sci_wrdata : in std_logic_vector(7 downto 0); +sci_addr : in std_logic_vector(5 downto 0); +sci_rddata : out std_logic_vector(7 downto 0); +sci_en_dual : in std_logic; +sci_sel_dual : in std_logic; +sci_en : in std_logic; +sci_sel : in std_logic; +sci_rd : in std_logic; +sci_wrn : in std_logic; +sci_int : out std_logic; +cyawstn : in std_logic; +serdes_pdb : in std_logic; +pll_refclki : in std_logic; +rsl_disable : in std_logic; +rsl_rst : in std_logic; +serdes_rst_dual_c : in std_logic; +rst_dual_c : in std_logic; +tx_serdes_rst_c : in std_logic; +tx_pcs_rst_c : in std_logic; +pll_lol : out std_logic; +rsl_tx_rdy : out std_logic; +rx_serdes_rst_c : in std_logic; +rx_pcs_rst_c : in std_logic; +rsl_rx_rdy : out std_logic); +end sgmii_ecp5; + +architecture beh of sgmii_ecp5 is +signal TX_PCLK_11 : std_logic ; +signal RX_LOS_LOW_S_12 : std_logic ; +signal RX_CDR_LOL_S_13 : std_logic ; +signal RSL_TX_PCS_RST_C : std_logic ; +signal RSL_RX_PCS_RST_C : std_logic ; +signal RSL_RX_SERDES_RST_C : std_logic ; +signal RSL_SERDES_RST_DUAL_C : std_logic ; +signal RSL_TX_SERDES_RST_C : std_logic ; +signal N47_1 : std_logic ; +signal N48_1 : std_logic ; +signal N1_1 : std_logic ; +signal N2_1 : std_logic ; +signal N3_1 : std_logic ; +signal N4_1 : std_logic ; +signal N5_1 : std_logic ; +signal N49_1 : std_logic ; +signal N6_1 : std_logic ; +signal N50_1 : std_logic ; +signal N7_1 : std_logic ; +signal N51_1 : std_logic ; +signal N8_1 : std_logic ; +signal N52_1 : std_logic ; +signal N9_1 : std_logic ; +signal N53_1 : std_logic ; +signal N54_1 : std_logic ; +signal N55_1 : std_logic ; +signal N56_1 : std_logic ; +signal N57_1 : std_logic ; +signal N58_1 : std_logic ; +signal N59_1 : std_logic ; +signal N60_1 : std_logic ; +signal N61_1 : std_logic ; +signal N62_1 : std_logic ; +signal N63_1 : std_logic ; +signal N64_1 : std_logic ; +signal N65_1 : std_logic ; +signal N10_1 : std_logic ; +signal N66_1 : std_logic ; +signal N67_1 : std_logic ; +signal N68_1 : std_logic ; +signal N69_1 : std_logic ; +signal N70_1 : std_logic ; +signal N71_1 : std_logic ; +signal N72_1 : std_logic ; +signal N73_1 : std_logic ; +signal N74_1 : std_logic ; +signal N75_1 : std_logic ; +signal N76_1 : std_logic ; +signal N77_1 : std_logic ; +signal N78_1 : std_logic ; +signal N79_1 : std_logic ; +signal N80_1 : std_logic ; +signal N81_1 : std_logic ; +signal N82_1 : std_logic ; +signal N83_1 : std_logic ; +signal N84_1 : std_logic ; +signal N85_1 : std_logic ; +signal N86_1 : std_logic ; +signal N87_1 : std_logic ; +signal N88_1 : std_logic ; +signal N11_1 : std_logic ; +signal N89_1 : std_logic ; +signal N12_1 : std_logic ; +signal N90_1 : std_logic ; +signal N13_1 : std_logic ; +signal N91_1 : std_logic ; +signal N92_1 : std_logic ; +signal N93_1 : std_logic ; +signal N94_1 : std_logic ; +signal N95_1 : std_logic ; +signal N14_1 : std_logic ; +signal N96_1 : std_logic ; +signal N15_1 : std_logic ; +signal N97_1 : std_logic ; +signal N98_1 : std_logic ; +signal N99_1 : std_logic ; +signal N100_1 : std_logic ; +signal N101_1 : std_logic ; +signal N112_1 : std_logic ; +signal N16_1 : std_logic ; +signal N17_1 : std_logic ; +signal N18_1 : std_logic ; +signal N19_1 : std_logic ; +signal N20_1 : std_logic ; +signal N21_1 : std_logic ; +signal N22_1 : std_logic ; +signal N23_1 : std_logic ; +signal N24_1 : std_logic ; +signal N25_1 : std_logic ; +signal N26_1 : std_logic ; +signal N27_1 : std_logic ; +signal N28_1 : std_logic ; +signal N29_1 : std_logic ; +signal N30_1 : std_logic ; +signal N31_1 : std_logic ; +signal N32_1 : std_logic ; +signal N33_1 : std_logic ; +signal N34_1 : std_logic ; +signal N35_1 : std_logic ; +signal N36_1 : std_logic ; +signal N37_1 : std_logic ; +signal N38_1 : std_logic ; +signal N39_1 : std_logic ; +signal N40_1 : std_logic ; +signal N41_1 : std_logic ; +signal N42_1 : std_logic ; +signal N43_1 : std_logic ; +signal N46_1 : std_logic ; +signal TX_PCLK_I : std_logic ; +signal GND : std_logic ; +signal VCC : std_logic ; +signal \SLL_INST.PLL_LOCK_I_14\ : std_logic ; +component sgmii_ecp5sll_core_Z1_layer1 +port( +tx_pclk : in std_logic; +sli_rst : in std_logic; +pll_refclki : in std_logic; +pll_lock_i : out std_logic ); +end component; +component sgmii_ecp5rsl_core_Z2_layer1 +port( +rx_pcs_rst_c : in std_logic; +tx_pcs_rst_c : in std_logic; +tx_serdes_rst_c : in std_logic; +serdes_rst_dual_c : in std_logic; +rsl_tx_pcs_rst_c : out std_logic; +rsl_rx_serdes_rst_c : out std_logic; +rsl_serdes_rst_dual_c : out std_logic; +rsl_tx_serdes_rst_c : out std_logic; +rsl_tx_rdy : out std_logic; +pll_lock_i : in std_logic; +pll_refclki : in std_logic; +rsl_rx_rdy : out std_logic; +rsl_rst : in std_logic; +rxrefclk : in std_logic; +rsl_disable : in std_logic; +rx_serdes_rst_c : in std_logic; +rsl_rx_pcs_rst_c : out std_logic; +rst_dual_c : in std_logic; +rx_cdr_lol_s : in std_logic; +rx_los_low_s : in std_logic ); +end component; +begin +VCC_0: VHI port map ( +Z => VCC); +GND_0: VLO port map ( +Z => GND); +PUR_INST: PUR port map ( +PUR => VCC); +GSR_INST: GSR port map ( +GSR => VCC); +TX_PCLK_11 <= TX_PCLK_I; +DCU0_INST: DCUA +generic map( + D_MACROPDB => "0b1", + D_IB_PWDNB => "0b1", + D_XGE_MODE => "0b0", + D_LOW_MARK => "0d4", + D_HIGH_MARK => "0d12", + D_BUS8BIT_SEL => "0b0", + D_CDR_LOL_SET => "0b00", + D_BITCLK_LOCAL_EN => "0b1", + D_BITCLK_ND_EN => "0b0", + D_BITCLK_FROM_ND_EN => "0b0", + D_SYNC_LOCAL_EN => "0b1", + D_SYNC_ND_EN => "0b0", + CH0_UC_MODE => "0b0", + CH0_PCIE_MODE => "0b0", + CH0_RIO_MODE => "0b0", + CH0_WA_MODE => "0b0", + CH0_INVERT_RX => "0b0", + CH0_INVERT_TX => "0b0", + CH0_PRBS_SELECTION => "0b0", + CH0_GE_AN_ENABLE => "0b0", + CH0_PRBS_LOCK => "0b0", + CH0_PRBS_ENABLE => "0b0", + CH0_ENABLE_CG_ALIGN => "0b1", + CH0_TX_GEAR_MODE => "0b0", + CH0_RX_GEAR_MODE => "0b0", + CH0_PCS_DET_TIME_SEL => "0b00", + CH0_PCIE_EI_EN => "0b0", + CH0_TX_GEAR_BYPASS => "0b0", + CH0_ENC_BYPASS => "0b0", + CH0_SB_BYPASS => "0b0", + CH0_RX_SB_BYPASS => "0b0", + CH0_WA_BYPASS => "0b0", + CH0_DEC_BYPASS => "0b0", + CH0_CTC_BYPASS => "0b0", + CH0_RX_GEAR_BYPASS => "0b0", + CH0_LSM_DISABLE => "0b0", + CH0_MATCH_2_ENABLE => "0b1", + CH0_MATCH_4_ENABLE => "0b0", + CH0_MIN_IPG_CNT => "0b11", + CH0_CC_MATCH_1 => "0x000", + CH0_CC_MATCH_2 => "0x000", + CH0_CC_MATCH_3 => "0x1BC", + CH0_CC_MATCH_4 => "0x050", + CH0_UDF_COMMA_MASK => "0x3ff", + CH0_UDF_COMMA_A => "0x283", + CH0_UDF_COMMA_B => "0x17C", + CH0_RX_DCO_CK_DIV => "0b010", + CH0_RCV_DCC_EN => "0b0", + CH0_REQ_LVL_SET => "0b00", + CH0_REQ_EN => "0b1", + CH0_RTERM_RX => "0d22", + CH0_PDEN_SEL => "0b1", + CH0_LDR_RX2CORE_SEL => "0b0", + CH0_LDR_CORE2TX_SEL => "0b0", + CH0_TPWDNB => "0b1", + CH0_RATE_MODE_TX => "0b0", + CH0_RTERM_TX => "0d19", + CH0_TX_CM_SEL => "0b00", + CH0_TDRV_PRE_EN => "0b0", + CH0_TDRV_SLICE0_SEL => "0b01", + CH0_TDRV_SLICE1_SEL => "0b00", + CH0_TDRV_SLICE2_SEL => "0b01", + CH0_TDRV_SLICE3_SEL => "0b01", + CH0_TDRV_SLICE4_SEL => "0b01", + CH0_TDRV_SLICE5_SEL => "0b01", + CH0_TDRV_SLICE0_CUR => "0b101", + CH0_TDRV_SLICE1_CUR => "0b000", + CH0_TDRV_SLICE2_CUR => "0b11", + CH0_TDRV_SLICE3_CUR => "0b11", + CH0_TDRV_SLICE4_CUR => "0b11", + CH0_TDRV_SLICE5_CUR => "0b00", + CH0_TDRV_DAT_SEL => "0b00", + CH0_TX_DIV11_SEL => "0b0", + CH0_RPWDNB => "0b1", + CH0_RATE_MODE_RX => "0b0", + CH0_RLOS_SEL => "0b1", + CH0_RX_LOS_LVL => "0b010", + CH0_RX_LOS_CEQ => "0b11", + CH0_RX_LOS_HYST_EN => "0b0", + CH0_RX_LOS_EN => "0b1", + CH0_RX_DIV11_SEL => "0b0", + CH0_SEL_SD_RX_CLK => "0b0", + CH0_FF_RX_H_CLK_EN => "0b0", + CH0_FF_RX_F_CLK_DIS => "0b0", + CH0_FF_TX_H_CLK_EN => "0b0", + CH0_FF_TX_F_CLK_DIS => "0b0", + CH0_RX_RATE_SEL => "0d8", + CH0_TDRV_POST_EN => "0b0", + CH0_TX_POST_SIGN => "0b0", + CH0_TX_PRE_SIGN => "0b0", + CH0_RXTERM_CM => "0b11", + CH0_RXIN_CM => "0b11", + CH0_LEQ_OFFSET_SEL => "0b0", + CH0_LEQ_OFFSET_TRIM => "0b000", + D_TX_MAX_RATE => "1.25", + CH0_CDR_MAX_RATE => "1.25", + CH0_TXAMPLITUDE => "0d1100", + CH0_TXDEPRE => "DISABLED", + CH0_TXDEPOST => "DISABLED", + CH0_PROTOCOL => "GBE", + D_ISETLOS => "0d0", + D_SETIRPOLY_AUX => "0b00", + D_SETICONST_AUX => "0b00", + D_SETIRPOLY_CH => "0b00", + D_SETICONST_CH => "0b00", + D_REQ_ISET => "0b000", + D_PD_ISET => "0b00", + D_DCO_CALIB_TIME_SEL => "0b00", + CH0_DCOCTLGI => "0b010", + CH0_DCOATDDLY => "0b00", + CH0_DCOATDCFG => "0b00", + CH0_DCOBYPSATD => "0b1", + CH0_DCOSCALEI => "0b00", + CH0_DCOITUNE4LSB => "0b111", + CH0_DCOIOSTUNE => "0b000", + CH0_DCODISBDAVOID => "0b0", + CH0_DCOCALDIV => "0b001", + CH0_DCONUOFLSB => "0b101", + CH0_DCOIUPDNX2 => "0b1", + CH0_DCOSTEP => "0b00", + CH0_DCOSTARTVAL => "0b000", + CH0_DCOFLTDAC => "0b01", + CH0_DCOITUNE => "0b00", + CH0_DCOFTNRG => "0b110", + CH0_CDR_CNT4SEL => "0b00", + CH0_CDR_CNT8SEL => "0b00", + CH0_BAND_THRESHOLD => "0d0", + CH0_AUTO_FACQ_EN => "0b1", + CH0_AUTO_CALIB_EN => "0b1", + CH0_CALIB_CK_MODE => "0b0", + CH0_REG_BAND_OFFSET => "0d0", + CH0_REG_BAND_SEL => "0d0", + CH0_REG_IDAC_SEL => "0d0", + CH0_REG_IDAC_EN => "0b0", + D_TXPLL_PWDNB => "0b1", + D_SETPLLRC => "0d1", + D_REFCK_MODE => "0b001", + D_TX_VCO_CK_DIV => "0b010", + D_PLL_LOL_SET => "0b00", + D_RG_EN => "0b0", + D_RG_SET => "0b00", + D_CMUSETISCL4VCO => "0b000", + D_CMUSETI4VCO => "0b00", + D_CMUSETINITVCT => "0b00", + D_CMUSETZGM => "0b000", + D_CMUSETP2AGM => "0b000", + D_CMUSETP1GM => "0b000", + D_CMUSETI4CPZ => "0d3", + D_CMUSETI4CPP => "0d3", + D_CMUSETICP4Z => "0b101", + D_CMUSETICP4P => "0b01", + D_CMUSETBIASI => "0b00" +) +port map ( +CH0_HDINP => hdinp, +CH1_HDINP => GND, +CH0_HDINN => hdinn, +CH1_HDINN => GND, +D_TXBIT_CLKP_FROM_ND => GND, +D_TXBIT_CLKN_FROM_ND => GND, +D_SYNC_ND => GND, +D_TXPLL_LOL_FROM_ND => GND, +CH0_RX_REFCLK => rxrefclk, +CH1_RX_REFCLK => GND, +CH0_FF_RXI_CLK => TX_PCLK_11, +CH1_FF_RXI_CLK => VCC, +CH0_FF_TXI_CLK => txi_clk, +CH1_FF_TXI_CLK => VCC, +CH0_FF_EBRD_CLK => TX_PCLK_11, +CH1_FF_EBRD_CLK => VCC, +CH0_FF_TX_D_0 => txdata(0), +CH1_FF_TX_D_0 => GND, +CH0_FF_TX_D_1 => txdata(1), +CH1_FF_TX_D_1 => GND, +CH0_FF_TX_D_2 => txdata(2), +CH1_FF_TX_D_2 => GND, +CH0_FF_TX_D_3 => txdata(3), +CH1_FF_TX_D_3 => GND, +CH0_FF_TX_D_4 => txdata(4), +CH1_FF_TX_D_4 => GND, +CH0_FF_TX_D_5 => txdata(5), +CH1_FF_TX_D_5 => GND, +CH0_FF_TX_D_6 => txdata(6), +CH1_FF_TX_D_6 => GND, +CH0_FF_TX_D_7 => txdata(7), +CH1_FF_TX_D_7 => GND, +CH0_FF_TX_D_8 => tx_k(0), +CH1_FF_TX_D_8 => GND, +CH0_FF_TX_D_9 => GND, +CH1_FF_TX_D_9 => GND, +CH0_FF_TX_D_10 => xmit(0), +CH1_FF_TX_D_10 => GND, +CH0_FF_TX_D_11 => tx_disp_correct(0), +CH1_FF_TX_D_11 => GND, +CH0_FF_TX_D_12 => GND, +CH1_FF_TX_D_12 => GND, +CH0_FF_TX_D_13 => GND, +CH1_FF_TX_D_13 => GND, +CH0_FF_TX_D_14 => GND, +CH1_FF_TX_D_14 => GND, +CH0_FF_TX_D_15 => GND, +CH1_FF_TX_D_15 => GND, +CH0_FF_TX_D_16 => GND, +CH1_FF_TX_D_16 => GND, +CH0_FF_TX_D_17 => GND, +CH1_FF_TX_D_17 => GND, +CH0_FF_TX_D_18 => GND, +CH1_FF_TX_D_18 => GND, +CH0_FF_TX_D_19 => GND, +CH1_FF_TX_D_19 => GND, +CH0_FF_TX_D_20 => GND, +CH1_FF_TX_D_20 => GND, +CH0_FF_TX_D_21 => GND, +CH1_FF_TX_D_21 => GND, +CH0_FF_TX_D_22 => GND, +CH1_FF_TX_D_22 => GND, +CH0_FF_TX_D_23 => GND, +CH1_FF_TX_D_23 => GND, +CH0_FFC_EI_EN => GND, +CH1_FFC_EI_EN => GND, +CH0_FFC_PCIE_DET_EN => GND, +CH1_FFC_PCIE_DET_EN => GND, +CH0_FFC_PCIE_CT => GND, +CH1_FFC_PCIE_CT => GND, +CH0_FFC_SB_INV_RX => GND, +CH1_FFC_SB_INV_RX => GND, +CH0_FFC_ENABLE_CGALIGN => GND, +CH1_FFC_ENABLE_CGALIGN => GND, +CH0_FFC_SIGNAL_DETECT => signal_detect_c, +CH1_FFC_SIGNAL_DETECT => GND, +CH0_FFC_FB_LOOPBACK => GND, +CH1_FFC_FB_LOOPBACK => GND, +CH0_FFC_SB_PFIFO_LP => GND, +CH1_FFC_SB_PFIFO_LP => GND, +CH0_FFC_PFIFO_CLR => GND, +CH1_FFC_PFIFO_CLR => GND, +CH0_FFC_RATE_MODE_RX => GND, +CH1_FFC_RATE_MODE_RX => GND, +CH0_FFC_RATE_MODE_TX => GND, +CH1_FFC_RATE_MODE_TX => GND, +CH0_FFC_DIV11_MODE_RX => GND, +CH1_FFC_DIV11_MODE_RX => GND, +CH0_FFC_RX_GEAR_MODE => GND, +CH1_FFC_RX_GEAR_MODE => GND, +CH0_FFC_TX_GEAR_MODE => GND, +CH1_FFC_TX_GEAR_MODE => GND, +CH0_FFC_DIV11_MODE_TX => GND, +CH1_FFC_DIV11_MODE_TX => GND, +CH0_FFC_LDR_CORE2TX_EN => GND, +CH1_FFC_LDR_CORE2TX_EN => GND, +CH0_FFC_LANE_TX_RST => RSL_TX_PCS_RST_C, +CH1_FFC_LANE_TX_RST => GND, +CH0_FFC_LANE_RX_RST => RSL_RX_PCS_RST_C, +CH1_FFC_LANE_RX_RST => GND, +CH0_FFC_RRST => RSL_RX_SERDES_RST_C, +CH1_FFC_RRST => GND, +CH0_FFC_TXPWDNB => tx_pwrup_c, +CH1_FFC_TXPWDNB => GND, +CH0_FFC_RXPWDNB => rx_pwrup_c, +CH1_FFC_RXPWDNB => GND, +CH0_LDR_CORE2TX => GND, +CH1_LDR_CORE2TX => GND, +D_SCIWDATA0 => sci_wrdata(0), +D_SCIWDATA1 => sci_wrdata(1), +D_SCIWDATA2 => sci_wrdata(2), +D_SCIWDATA3 => sci_wrdata(3), +D_SCIWDATA4 => sci_wrdata(4), +D_SCIWDATA5 => sci_wrdata(5), +D_SCIWDATA6 => sci_wrdata(6), +D_SCIWDATA7 => sci_wrdata(7), +D_SCIADDR0 => sci_addr(0), +D_SCIADDR1 => sci_addr(1), +D_SCIADDR2 => sci_addr(2), +D_SCIADDR3 => sci_addr(3), +D_SCIADDR4 => sci_addr(4), +D_SCIADDR5 => sci_addr(5), +D_SCIENAUX => sci_en_dual, +D_SCISELAUX => sci_sel_dual, +CH0_SCIEN => sci_en, +CH1_SCIEN => GND, +CH0_SCISEL => sci_sel, +CH1_SCISEL => GND, +D_SCIRD => sci_rd, +D_SCIWSTN => sci_wrn, +D_CYAWSTN => cyawstn, +D_FFC_SYNC_TOGGLE => GND, +D_FFC_DUAL_RST => rst_dual_c, +D_FFC_MACRO_RST => RSL_SERDES_RST_DUAL_C, +D_FFC_MACROPDB => serdes_pdb, +D_FFC_TRST => RSL_TX_SERDES_RST_C, +CH0_FFC_CDR_EN_BITSLIP => GND, +CH1_FFC_CDR_EN_BITSLIP => GND, +D_SCAN_ENABLE => GND, +D_SCAN_IN_0 => GND, +D_SCAN_IN_1 => GND, +D_SCAN_IN_2 => GND, +D_SCAN_IN_3 => GND, +D_SCAN_IN_4 => GND, +D_SCAN_IN_5 => GND, +D_SCAN_IN_6 => GND, +D_SCAN_IN_7 => GND, +D_SCAN_MODE => GND, +D_SCAN_RESET => GND, +D_CIN0 => GND, +D_CIN1 => GND, +D_CIN2 => GND, +D_CIN3 => GND, +D_CIN4 => GND, +D_CIN5 => GND, +D_CIN6 => GND, +D_CIN7 => GND, +D_CIN8 => GND, +D_CIN9 => GND, +D_CIN10 => GND, +D_CIN11 => GND, +CH0_HDOUTP => hdoutp, +CH1_HDOUTP => N47_1, +CH0_HDOUTN => hdoutn, +CH1_HDOUTN => N48_1, +D_TXBIT_CLKP_TO_ND => N1_1, +D_TXBIT_CLKN_TO_ND => N2_1, +D_SYNC_PULSE2ND => N3_1, +D_TXPLL_LOL_TO_ND => N4_1, +CH0_FF_RX_F_CLK => N5_1, +CH1_FF_RX_F_CLK => N49_1, +CH0_FF_RX_H_CLK => N6_1, +CH1_FF_RX_H_CLK => N50_1, +CH0_FF_TX_F_CLK => N7_1, +CH1_FF_TX_F_CLK => N51_1, +CH0_FF_TX_H_CLK => N8_1, +CH1_FF_TX_H_CLK => N52_1, +CH0_FF_RX_PCLK => N9_1, +CH1_FF_RX_PCLK => N53_1, +CH0_FF_TX_PCLK => TX_PCLK_I, +CH1_FF_TX_PCLK => N54_1, +CH0_FF_RX_D_0 => rxdata(0), +CH1_FF_RX_D_0 => N55_1, +CH0_FF_RX_D_1 => rxdata(1), +CH1_FF_RX_D_1 => N56_1, +CH0_FF_RX_D_2 => rxdata(2), +CH1_FF_RX_D_2 => N57_1, +CH0_FF_RX_D_3 => rxdata(3), +CH1_FF_RX_D_3 => N58_1, +CH0_FF_RX_D_4 => rxdata(4), +CH1_FF_RX_D_4 => N59_1, +CH0_FF_RX_D_5 => rxdata(5), +CH1_FF_RX_D_5 => N60_1, +CH0_FF_RX_D_6 => rxdata(6), +CH1_FF_RX_D_6 => N61_1, +CH0_FF_RX_D_7 => rxdata(7), +CH1_FF_RX_D_7 => N62_1, +CH0_FF_RX_D_8 => rx_k(0), +CH1_FF_RX_D_8 => N63_1, +CH0_FF_RX_D_9 => rx_disp_err(0), +CH1_FF_RX_D_9 => N64_1, +CH0_FF_RX_D_10 => rx_cv_err(0), +CH1_FF_RX_D_10 => N65_1, +CH0_FF_RX_D_11 => N10_1, +CH1_FF_RX_D_11 => N66_1, +CH0_FF_RX_D_12 => N67_1, +CH1_FF_RX_D_12 => N68_1, +CH0_FF_RX_D_13 => N69_1, +CH1_FF_RX_D_13 => N70_1, +CH0_FF_RX_D_14 => N71_1, +CH1_FF_RX_D_14 => N72_1, +CH0_FF_RX_D_15 => N73_1, +CH1_FF_RX_D_15 => N74_1, +CH0_FF_RX_D_16 => N75_1, +CH1_FF_RX_D_16 => N76_1, +CH0_FF_RX_D_17 => N77_1, +CH1_FF_RX_D_17 => N78_1, +CH0_FF_RX_D_18 => N79_1, +CH1_FF_RX_D_18 => N80_1, +CH0_FF_RX_D_19 => N81_1, +CH1_FF_RX_D_19 => N82_1, +CH0_FF_RX_D_20 => N83_1, +CH1_FF_RX_D_20 => N84_1, +CH0_FF_RX_D_21 => N85_1, +CH1_FF_RX_D_21 => N86_1, +CH0_FF_RX_D_22 => N87_1, +CH1_FF_RX_D_22 => N88_1, +CH0_FF_RX_D_23 => N11_1, +CH1_FF_RX_D_23 => N89_1, +CH0_FFS_PCIE_DONE => N12_1, +CH1_FFS_PCIE_DONE => N90_1, +CH0_FFS_PCIE_CON => N13_1, +CH1_FFS_PCIE_CON => N91_1, +CH0_FFS_RLOS => RX_LOS_LOW_S_12, +CH1_FFS_RLOS => N92_1, +CH0_FFS_LS_SYNC_STATUS => lsm_status_s, +CH1_FFS_LS_SYNC_STATUS => N93_1, +CH0_FFS_CC_UNDERRUN => ctc_urun_s, +CH1_FFS_CC_UNDERRUN => N94_1, +CH0_FFS_CC_OVERRUN => ctc_orun_s, +CH1_FFS_CC_OVERRUN => N95_1, +CH0_FFS_RXFBFIFO_ERROR => N14_1, +CH1_FFS_RXFBFIFO_ERROR => N96_1, +CH0_FFS_TXFBFIFO_ERROR => N15_1, +CH1_FFS_TXFBFIFO_ERROR => N97_1, +CH0_FFS_RLOL => RX_CDR_LOL_S_13, +CH1_FFS_RLOL => N98_1, +CH0_FFS_SKP_ADDED => ctc_ins_s, +CH1_FFS_SKP_ADDED => N99_1, +CH0_FFS_SKP_DELETED => ctc_del_s, +CH1_FFS_SKP_DELETED => N100_1, +CH0_LDR_RX2CORE => N101_1, +CH1_LDR_RX2CORE => N112_1, +D_SCIRDATA0 => sci_rddata(0), +D_SCIRDATA1 => sci_rddata(1), +D_SCIRDATA2 => sci_rddata(2), +D_SCIRDATA3 => sci_rddata(3), +D_SCIRDATA4 => sci_rddata(4), +D_SCIRDATA5 => sci_rddata(5), +D_SCIRDATA6 => sci_rddata(6), +D_SCIRDATA7 => sci_rddata(7), +D_SCIINT => sci_int, +D_SCAN_OUT_0 => N16_1, +D_SCAN_OUT_1 => N17_1, +D_SCAN_OUT_2 => N18_1, +D_SCAN_OUT_3 => N19_1, +D_SCAN_OUT_4 => N20_1, +D_SCAN_OUT_5 => N21_1, +D_SCAN_OUT_6 => N22_1, +D_SCAN_OUT_7 => N23_1, +D_COUT0 => N24_1, +D_COUT1 => N25_1, +D_COUT2 => N26_1, +D_COUT3 => N27_1, +D_COUT4 => N28_1, +D_COUT5 => N29_1, +D_COUT6 => N30_1, +D_COUT7 => N31_1, +D_COUT8 => N32_1, +D_COUT9 => N33_1, +D_COUT10 => N34_1, +D_COUT11 => N35_1, +D_COUT12 => N36_1, +D_COUT13 => N37_1, +D_COUT14 => N38_1, +D_COUT15 => N39_1, +D_COUT16 => N40_1, +D_COUT17 => N41_1, +D_COUT18 => N42_1, +D_COUT19 => N43_1, +D_REFCLKI => pll_refclki, +D_FFS_PLOL => N46_1); +SLL_INST: sgmii_ecp5sll_core_Z1_layer1 port map ( +tx_pclk => TX_PCLK_11, +sli_rst => sli_rst, +pll_refclki => pll_refclki, +pll_lock_i => \SLL_INST.PLL_LOCK_I_14\); +RSL_INST: sgmii_ecp5rsl_core_Z2_layer1 port map ( +rx_pcs_rst_c => rx_pcs_rst_c, +tx_pcs_rst_c => tx_pcs_rst_c, +tx_serdes_rst_c => tx_serdes_rst_c, +serdes_rst_dual_c => serdes_rst_dual_c, +rsl_tx_pcs_rst_c => RSL_TX_PCS_RST_C, +rsl_rx_serdes_rst_c => RSL_RX_SERDES_RST_C, +rsl_serdes_rst_dual_c => RSL_SERDES_RST_DUAL_C, +rsl_tx_serdes_rst_c => RSL_TX_SERDES_RST_C, +rsl_tx_rdy => rsl_tx_rdy, +pll_lock_i => \SLL_INST.PLL_LOCK_I_14\, +pll_refclki => pll_refclki, +rsl_rx_rdy => rsl_rx_rdy, +rsl_rst => rsl_rst, +rxrefclk => rxrefclk, +rsl_disable => rsl_disable, +rx_serdes_rst_c => rx_serdes_rst_c, +rsl_rx_pcs_rst_c => RSL_RX_PCS_RST_C, +rst_dual_c => rst_dual_c, +rx_cdr_lol_s => RX_CDR_LOL_S_13, +rx_los_low_s => RX_LOS_LOW_S_12); +tx_pclk <= TX_PCLK_11; +rx_los_low_s <= RX_LOS_LOW_S_12; +rx_cdr_lol_s <= RX_CDR_LOL_S_13; +pll_lol <= \SLL_INST.PLL_LOCK_I_14\; +end beh; + diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.vm b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.vm new file mode 100644 index 0000000..eff3561 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.vm @@ -0,0 +1,6626 @@ +// +// Written by Synplify Pro +// Product Version "M-2017.03L-SP1-1" +// Program "Synplify Pro", Mapper "maplat, Build 1796R" +// Mon May 13 09:09:10 2019 +// +// Source file index table: +// Object locations will have the form : +// file 0 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd " +// file 1 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/snps_haps_pkg.vhd " +// file 2 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std1164.vhd " +// file 3 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/numeric.vhd " +// file 4 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/umr_capim.vhd " +// file 5 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/arith.vhd " +// file 6 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/unsigned.vhd " +// file 7 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/hyperents.vhd " +// file 8 "\/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.vhd " +// file 9 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd " +// file 10 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v " +// file 11 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v " +// file 12 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v " +// file 13 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v " +// file 14 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v " +// file 15 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh " +// file 16 "\/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v " +// file 17 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/nlconst.dat " +// file 18 "\/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.fdc " + +`timescale 100 ps/100 ps +module sync_0s ( + phb, + rhb_sync, + sli_rst, + pll_refclki +) +; +input phb ; +output rhb_sync ; +input sli_rst ; +input pll_refclki ; +wire phb ; +wire rhb_sync ; +wire sli_rst ; +wire pll_refclki ; +wire data_p1 ; +wire data_p2_QN_0 ; +wire VCC ; +wire data_p1_QN_0 ; +wire GND ; +// @16:1988 + FD1S3DX data_p2 ( + .D(data_p1), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_sync) +); +// @16:1988 + FD1S3DX data_p1_reg ( + .D(phb), + .CK(pll_refclki), + .CD(sli_rst), + .Q(data_p1) +); + VHI VCC_0 ( + .Z(VCC) +); +// @16:865 + VLO GND_cZ ( + .Z(GND) +); +endmodule /* sync_0s */ + +module sync_0s_6 ( + rtc_pul, + ppul_sync, + sli_rst, + tx_pclk +) +; +input rtc_pul ; +output ppul_sync ; +input sli_rst ; +input tx_pclk ; +wire rtc_pul ; +wire ppul_sync ; +wire sli_rst ; +wire tx_pclk ; +wire data_p1 ; +wire data_p2_QN ; +wire VCC ; +wire data_p1_QN ; +wire GND ; +// @16:1988 + FD1S3DX data_p2 ( + .D(data_p1), + .CK(tx_pclk), + .CD(sli_rst), + .Q(ppul_sync) +); +// @16:1988 + FD1S3DX data_p1_reg ( + .D(rtc_pul), + .CK(tx_pclk), + .CD(sli_rst), + .Q(data_p1) +); + VHI VCC_0 ( + .Z(VCC) +); +// @16:865 + VLO GND_cZ ( + .Z(GND) +); +endmodule /* sync_0s_6 */ + +module sync_0s_0 ( + ppul_sync, + pdiff_sync, + sli_rst, + pll_refclki +) +; +input ppul_sync ; +output pdiff_sync ; +input sli_rst ; +input pll_refclki ; +wire ppul_sync ; +wire pdiff_sync ; +wire sli_rst ; +wire pll_refclki ; +wire data_p1 ; +wire data_p2_QN_1 ; +wire VCC ; +wire data_p1_QN_1 ; +wire GND ; +// @16:1988 + FD1S3DX data_p2 ( + .D(data_p1), + .CK(pll_refclki), + .CD(sli_rst), + .Q(pdiff_sync) +); +// @16:1988 + FD1S3DX data_p1_reg ( + .D(ppul_sync), + .CK(pll_refclki), + .CD(sli_rst), + .Q(data_p1) +); + VHI VCC_0 ( + .Z(VCC) +); +// @16:865 + VLO GND_cZ ( + .Z(GND) +); +endmodule /* sync_0s_0 */ + +module sgmii_ecp5sll_core_Z1_layer1 ( + tx_pclk, + sli_rst, + pll_refclki, + pll_lock_i +) +; +input tx_pclk ; +input sli_rst ; +input pll_refclki ; +output pll_lock_i ; +wire tx_pclk ; +wire sli_rst ; +wire pll_refclki ; +wire pll_lock_i ; +wire [2:0] phb_cnt; +wire [2:0] phb_cnt_i; +wire [15:0] rcount; +wire [21:0] pcount; +wire [0:0] un1_pcount_diff_i; +wire [1:0] sll_state; +wire [1:0] sll_state_QN; +wire [7:0] rhb_wait_cnt_s; +wire [7:0] rhb_wait_cnt; +wire [7:0] rhb_wait_cnt_QN; +wire [15:0] rcount_s; +wire [15:0] rcount_QN; +wire [2:0] phb_cnt_QN; +wire [2:1] phb_cnt_RNO; +wire [21:0] pcount_s; +wire [21:0] pcount_QN; +wire [21:0] pcount_diff_QN; +wire [2:2] rdiff_comp_lock; +wire [2:2] rdiff_comp_lock_QN; +wire [0:0] un1_pcount_diff; +wire [20:0] pcount_cry; +wire [0:0] pcount_cry_0_S0; +wire [21:21] pcount_s_0_COUT; +wire [21:21] pcount_s_0_S1; +wire [14:0] rcount_cry; +wire [0:0] rcount_cry_0_S0; +wire [15:15] rcount_s_0_COUT; +wire [15:15] rcount_s_0_S1; +wire [6:0] rhb_wait_cnt_cry; +wire [0:0] rhb_wait_cnt_cry_0_S0; +wire [7:7] rhb_wait_cnt_s_0_COUT; +wire [7:7] rhb_wait_cnt_s_0_S1; +wire pll_lock ; +wire rtc_ctrl4_0_a3_1 ; +wire un13_lock_20 ; +wire ppul_sync_p2 ; +wire ppul_sync_p1 ; +wire un1_pcount_diff_1_axb_20 ; +wire un13_lock_19 ; +wire un1_pcount_diff_1_axb_19 ; +wire un13_lock_18 ; +wire un1_pcount_diff_1_axb_18 ; +wire un13_lock_17 ; +wire un1_pcount_diff_1_cry_17_0_RNO ; +wire un13_lock_16 ; +wire un1_pcount_diff_1_axb_16 ; +wire un13_lock_15 ; +wire un1_pcount_diff_1_axb_15 ; +wire un13_lock_14 ; +wire un1_pcount_diff_1_axb_14 ; +wire un13_lock_13 ; +wire un1_pcount_diff_1_axb_13 ; +wire un13_lock_12 ; +wire un1_pcount_diff_1_axb_12 ; +wire un13_lock_11 ; +wire un1_pcount_diff_1_axb_11 ; +wire un13_lock_10 ; +wire un1_pcount_diff_1_axb_10 ; +wire un13_lock_9 ; +wire un1_pcount_diff_1_axb_9 ; +wire un13_lock_8 ; +wire un1_pcount_diff_1_axb_8 ; +wire un13_lock_7 ; +wire un1_pcount_diff_1_axb_7 ; +wire un13_lock_6 ; +wire un1_pcount_diff_1_axb_6 ; +wire un13_lock_5 ; +wire un1_pcount_diff_1_axb_5 ; +wire un13_lock_4 ; +wire un1_pcount_diff_1_axb_4 ; +wire un13_lock_3 ; +wire un1_pcount_diff_1_axb_3 ; +wire un13_lock_2 ; +wire un1_pcount_diff_1_axb_2 ; +wire un13_lock_1 ; +wire un1_pcount_diff_1_axb_1 ; +wire un13_lock_21 ; +wire ppul_sync_p3 ; +wire N_7 ; +wire un13_lock_0 ; +wire rtc_ctrl4 ; +wire rtc_ctrl ; +wire VCC ; +wire N_2085_0 ; +wire unlock_5 ; +wire unlock_1_sqmuxa_i ; +wire unlock ; +wire unlock_QN ; +wire N_95_i ; +wire N_97_i ; +wire rtc_pul ; +wire rtc_pul_p1 ; +wire rtc_pul_p1_QN ; +wire rtc_pul5 ; +wire rtc_pul_QN ; +wire rtc_ctrl_QN ; +wire rstat_pclk_2 ; +wire rstat_pclk ; +wire rstat_pclk_QN ; +wire rhb_sync_p1 ; +wire rhb_sync_p2 ; +wire rhb_sync_p2_QN ; +wire rhb_sync ; +wire rhb_sync_p1_QN ; +wire ppul_sync_p3_QN ; +wire ppul_sync_p2_QN ; +wire ppul_sync ; +wire ppul_sync_p1_QN ; +wire N_53_i ; +wire pll_lock_QN ; +wire phb ; +wire phb_QN ; +wire pdiff_sync ; +wire pdiff_sync_p1 ; +wire pdiff_sync_p1_QN ; +wire un1_pcount_diff_1_cry_1_0_S0 ; +wire un1_pcount_diff_1_cry_1_0_S1 ; +wire un1_pcount_diff_1_cry_3_0_S0 ; +wire un1_pcount_diff_1_cry_3_0_S1 ; +wire un1_pcount_diff_1_cry_5_0_S0 ; +wire un1_pcount_diff_1_cry_5_0_S1 ; +wire un1_pcount_diff_1_cry_7_0_S0 ; +wire un1_pcount_diff_1_cry_7_0_S1 ; +wire un1_pcount_diff_1_cry_9_0_S0 ; +wire un1_pcount_diff_1_cry_9_0_S1 ; +wire un1_pcount_diff_1_cry_11_0_S0 ; +wire un1_pcount_diff_1_cry_11_0_S1 ; +wire un1_pcount_diff_1_cry_13_0_S0 ; +wire un1_pcount_diff_1_cry_13_0_S1 ; +wire un1_pcount_diff_1_cry_15_0_S0 ; +wire un1_pcount_diff_1_cry_15_0_S1 ; +wire un1_pcount_diff_1_cry_17_0_S0 ; +wire un1_pcount_diff_1_cry_17_0_S1 ; +wire un1_pcount_diff_1_cry_19_0_S0 ; +wire un1_pcount_diff_1_cry_19_0_S1 ; +wire un1_pcount_diff_1_s_21_0_S0 ; +wire lock_5 ; +wire lock_1_sqmuxa_i ; +wire lock ; +wire lock_QN ; +wire N_98 ; +wire rtc_pul5_0_o3 ; +wire rtc_pul5_0_a3_6 ; +wire rtc_pul5_0_a3_7 ; +wire un1_rcount_1_0_a3 ; +wire rhb_wait_cnt12 ; +wire un1_rhb_wait_cnt_4 ; +wire un1_rhb_wait_cnt_5 ; +wire N_99 ; +wire rtc_ctrl4_0_a3_12_4 ; +wire rtc_ctrl4_0_a3_12_5 ; +wire rtc_ctrl4_10 ; +wire un1_rcount_1_0_a3_1 ; +wire N_6 ; +wire rtc_pul5_0_a3_5 ; +wire N_8 ; +wire un13_unlock_cry_21 ; +wire un13_lock_cry_21_i ; +wire rhb_wait_cnt_scalar ; +wire un1_pcount_diff_1_cry_0 ; +wire un1_pcount_diff_1_cry_0_0_S0 ; +wire un1_pcount_diff_1_cry_0_0_S1 ; +wire un1_pcount_diff_1_cry_2 ; +wire un1_pcount_diff_1_cry_4 ; +wire un1_pcount_diff_1_cry_6 ; +wire un1_pcount_diff_1_cry_8 ; +wire un1_pcount_diff_1_cry_10 ; +wire un1_pcount_diff_1_cry_12 ; +wire un1_pcount_diff_1_cry_14 ; +wire un1_pcount_diff_1_cry_16 ; +wire un1_pcount_diff_1_cry_18 ; +wire un1_pcount_diff_1_cry_20 ; +wire un1_pcount_diff_1_s_21_0_COUT ; +wire un1_pcount_diff_1_s_21_0_S1 ; +wire un13_lock_cry_0 ; +wire un13_lock_cry_0_0_S0 ; +wire un13_lock_cry_0_0_S1 ; +wire un13_lock_cry_2 ; +wire un13_lock_cry_1_0_S0 ; +wire un13_lock_cry_1_0_S1 ; +wire un13_lock_cry_4 ; +wire un13_lock_cry_3_0_S0 ; +wire un13_lock_cry_3_0_S1 ; +wire un13_lock_cry_6 ; +wire un13_lock_cry_5_0_S0 ; +wire un13_lock_cry_5_0_S1 ; +wire un13_lock_cry_8 ; +wire un13_lock_cry_7_0_S0 ; +wire un13_lock_cry_7_0_S1 ; +wire un13_lock_cry_10 ; +wire un13_lock_cry_9_0_S0 ; +wire un13_lock_cry_9_0_S1 ; +wire un13_lock_cry_12 ; +wire un13_lock_cry_11_0_S0 ; +wire un13_lock_cry_11_0_S1 ; +wire un13_lock_cry_14 ; +wire un13_lock_cry_13_0_S0 ; +wire un13_lock_cry_13_0_S1 ; +wire un13_lock_cry_16 ; +wire un13_lock_cry_15_0_S0 ; +wire un13_lock_cry_15_0_S1 ; +wire un13_lock_cry_18 ; +wire un13_lock_cry_17_0_S0 ; +wire un13_lock_cry_17_0_S1 ; +wire un13_lock_cry_20 ; +wire un13_lock_cry_19_0_S0 ; +wire un13_lock_cry_19_0_S1 ; +wire un13_lock_cry_21_0_COUT ; +wire un13_lock_cry_21_0_S0 ; +wire un13_unlock_cry_0 ; +wire un13_unlock_cry_0_0_S0 ; +wire un13_unlock_cry_0_0_S1 ; +wire un13_unlock_cry_2 ; +wire un13_unlock_cry_1_0_S0 ; +wire un13_unlock_cry_1_0_S1 ; +wire un13_unlock_cry_4 ; +wire un13_unlock_cry_3_0_S0 ; +wire un13_unlock_cry_3_0_S1 ; +wire un13_unlock_cry_6 ; +wire un13_unlock_cry_5_0_S0 ; +wire un13_unlock_cry_5_0_S1 ; +wire un13_unlock_cry_8 ; +wire un13_unlock_cry_7_0_S0 ; +wire un13_unlock_cry_7_0_S1 ; +wire un13_unlock_cry_10 ; +wire un13_unlock_cry_9_0_S0 ; +wire un13_unlock_cry_9_0_S1 ; +wire un13_unlock_cry_12 ; +wire un13_unlock_cry_11_0_S0 ; +wire un13_unlock_cry_11_0_S1 ; +wire un13_unlock_cry_14 ; +wire un13_unlock_cry_13_0_S0 ; +wire un13_unlock_cry_13_0_S1 ; +wire un13_unlock_cry_16 ; +wire un13_unlock_cry_15_0_S0 ; +wire un13_unlock_cry_15_0_S1 ; +wire un13_unlock_cry_18 ; +wire un13_unlock_cry_17_0_S0 ; +wire un13_unlock_cry_17_0_S1 ; +wire un13_unlock_cry_20 ; +wire un13_unlock_cry_19_0_S0 ; +wire un13_unlock_cry_19_0_S1 ; +wire un13_unlock_cry_21_0_COUT ; +wire un13_unlock_cry_21_0_S0 ; +wire N_21 ; +wire N_20 ; +wire N_19 ; +wire N_18 ; +wire N_14 ; +wire GND ; +wire N_1 ; +wire N_2 ; +wire N_3 ; +wire N_4 ; +wire N_5 ; +wire N_9 ; + INV phb_RNO ( + .A(phb_cnt[2]), + .Z(phb_cnt_i[2]) +); + INV \phb_cnt_RNO[0] ( + .A(phb_cnt[0]), + .Z(phb_cnt_i[0]) +); + INV pll_lock_RNI6JK9 ( + .A(pll_lock), + .Z(pll_lock_i) +); + LUT4 rtc_ctrl4_0_a3_RNO ( + .A(rcount[2]), + .B(rcount[0]), + .C(rcount[5]), + .D(rcount[4]), + .Z(rtc_ctrl4_0_a3_1) +); +defparam rtc_ctrl4_0_a3_RNO.init=16'h2000; + LUT4 un1_pcount_diff_1_cry_19_0_RNO_0 ( + .A(un13_lock_20), + .B(pcount[20]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_20) +); +defparam un1_pcount_diff_1_cry_19_0_RNO_0.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_19_0_RNO ( + .A(un13_lock_19), + .B(pcount[19]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_19) +); +defparam un1_pcount_diff_1_cry_19_0_RNO.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_17_0_RNO_0 ( + .A(un13_lock_18), + .B(pcount[18]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_18) +); +defparam un1_pcount_diff_1_cry_17_0_RNO_0.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_17_0_RNO_cZ ( + .A(un13_lock_17), + .B(pcount[17]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_cry_17_0_RNO) +); +defparam un1_pcount_diff_1_cry_17_0_RNO_cZ.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_15_0_RNO_0 ( + .A(un13_lock_16), + .B(pcount[16]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_16) +); +defparam un1_pcount_diff_1_cry_15_0_RNO_0.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_15_0_RNO ( + .A(un13_lock_15), + .B(pcount[15]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_15) +); +defparam un1_pcount_diff_1_cry_15_0_RNO.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_13_0_RNO_0 ( + .A(un13_lock_14), + .B(pcount[14]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_14) +); +defparam un1_pcount_diff_1_cry_13_0_RNO_0.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_13_0_RNO ( + .A(un13_lock_13), + .B(pcount[13]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_13) +); +defparam un1_pcount_diff_1_cry_13_0_RNO.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_11_0_RNO_0 ( + .A(un13_lock_12), + .B(pcount[12]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_12) +); +defparam un1_pcount_diff_1_cry_11_0_RNO_0.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_11_0_RNO ( + .A(un13_lock_11), + .B(pcount[11]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_11) +); +defparam un1_pcount_diff_1_cry_11_0_RNO.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_9_0_RNO_0 ( + .A(un13_lock_10), + .B(pcount[10]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_10) +); +defparam un1_pcount_diff_1_cry_9_0_RNO_0.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_9_0_RNO ( + .A(un13_lock_9), + .B(pcount[9]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_9) +); +defparam un1_pcount_diff_1_cry_9_0_RNO.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_7_0_RNO_0 ( + .A(un13_lock_8), + .B(pcount[8]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_8) +); +defparam un1_pcount_diff_1_cry_7_0_RNO_0.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_7_0_RNO ( + .A(un13_lock_7), + .B(pcount[7]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_7) +); +defparam un1_pcount_diff_1_cry_7_0_RNO.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_5_0_RNO_0 ( + .A(un13_lock_6), + .B(pcount[6]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_6) +); +defparam un1_pcount_diff_1_cry_5_0_RNO_0.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_5_0_RNO ( + .A(un13_lock_5), + .B(pcount[5]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_5) +); +defparam un1_pcount_diff_1_cry_5_0_RNO.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_3_0_RNO_0 ( + .A(un13_lock_4), + .B(pcount[4]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_4) +); +defparam un1_pcount_diff_1_cry_3_0_RNO_0.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_3_0_RNO ( + .A(un13_lock_3), + .B(pcount[3]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_3) +); +defparam un1_pcount_diff_1_cry_3_0_RNO.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_1_0_RNO_0 ( + .A(un13_lock_2), + .B(pcount[2]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_2) +); +defparam un1_pcount_diff_1_cry_1_0_RNO_0.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_1_0_RNO ( + .A(un13_lock_1), + .B(pcount[1]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_1) +); +defparam un1_pcount_diff_1_cry_1_0_RNO.init=16'h5355; + LUT4 ppul_sync_p3_RNIU65C ( + .A(un13_lock_21), + .B(ppul_sync_p3), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(N_7) +); +defparam ppul_sync_p3_RNIU65C.init=16'h2F20; + LUT4 \pcount_diff_RNO[0] ( + .A(ppul_sync_p1), + .B(ppul_sync_p2), + .C(pcount[0]), + .D(un13_lock_0), + .Z(un1_pcount_diff_i[0]) +); +defparam \pcount_diff_RNO[0] .init=16'hFD20; +// @16:1304 + LUT4 rtc_ctrl_0 ( + .A(rtc_ctrl4), + .B(rtc_ctrl), + .C(VCC), + .D(VCC), + .Z(N_2085_0) +); +defparam rtc_ctrl_0.init=16'hEEEE; +// @16:1278 + FD1P3DX unlock_reg ( + .D(unlock_5), + .SP(unlock_1_sqmuxa_i), + .CK(pll_refclki), + .CD(sli_rst), + .Q(unlock) +); +// @16:1801 + FD1S3DX \sll_state_reg[0] ( + .D(N_95_i), + .CK(pll_refclki), + .CD(sli_rst), + .Q(sll_state[0]) +); +// @16:1801 + FD1S3DX \sll_state_reg[1] ( + .D(N_97_i), + .CK(pll_refclki), + .CD(sli_rst), + .Q(sll_state[1]) +); +// @16:1304 + FD1S3DX rtc_pul_p1_reg ( + .D(rtc_pul), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rtc_pul_p1) +); +// @16:1304 + FD1P3DX rtc_pul_reg ( + .D(rtc_pul5), + .SP(rtc_ctrl), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rtc_pul) +); +// @16:1304 + FD1S3DX rtc_ctrl_reg ( + .D(N_2085_0), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rtc_ctrl) +); +// @16:1350 + FD1P3DX rstat_pclk_reg ( + .D(rstat_pclk_2), + .SP(rtc_ctrl), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rstat_pclk) +); +// @16:1350 + FD1P3DX \rhb_wait_cnt_reg[0] ( + .D(rhb_wait_cnt_s[0]), + .SP(rtc_ctrl), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_wait_cnt[0]) +); +// @16:1350 + FD1P3DX \rhb_wait_cnt_reg[1] ( + .D(rhb_wait_cnt_s[1]), + .SP(rtc_ctrl), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_wait_cnt[1]) +); +// @16:1350 + FD1P3DX \rhb_wait_cnt_reg[2] ( + .D(rhb_wait_cnt_s[2]), + .SP(rtc_ctrl), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_wait_cnt[2]) +); +// @16:1350 + FD1P3DX \rhb_wait_cnt_reg[3] ( + .D(rhb_wait_cnt_s[3]), + .SP(rtc_ctrl), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_wait_cnt[3]) +); +// @16:1350 + FD1P3DX \rhb_wait_cnt_reg[4] ( + .D(rhb_wait_cnt_s[4]), + .SP(rtc_ctrl), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_wait_cnt[4]) +); +// @16:1350 + FD1P3DX \rhb_wait_cnt_reg[5] ( + .D(rhb_wait_cnt_s[5]), + .SP(rtc_ctrl), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_wait_cnt[5]) +); +// @16:1350 + FD1P3DX \rhb_wait_cnt_reg[6] ( + .D(rhb_wait_cnt_s[6]), + .SP(rtc_ctrl), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_wait_cnt[6]) +); +// @16:1350 + FD1P3DX \rhb_wait_cnt_reg[7] ( + .D(rhb_wait_cnt_s[7]), + .SP(rtc_ctrl), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_wait_cnt[7]) +); +// @16:1350 + FD1S3DX rhb_sync_p2_reg ( + .D(rhb_sync_p1), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_sync_p2) +); +// @16:1350 + FD1S3DX rhb_sync_p1_reg ( + .D(rhb_sync), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_sync_p1) +); +// @16:1304 + FD1S3DX \rcount_reg[0] ( + .D(rcount_s[0]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[0]) +); +// @16:1304 + FD1S3DX \rcount_reg[1] ( + .D(rcount_s[1]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[1]) +); +// @16:1304 + FD1S3DX \rcount_reg[2] ( + .D(rcount_s[2]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[2]) +); +// @16:1304 + FD1S3DX \rcount_reg[3] ( + .D(rcount_s[3]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[3]) +); +// @16:1304 + FD1S3DX \rcount_reg[4] ( + .D(rcount_s[4]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[4]) +); +// @16:1304 + FD1S3DX \rcount_reg[5] ( + .D(rcount_s[5]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[5]) +); +// @16:1304 + FD1S3DX \rcount_reg[6] ( + .D(rcount_s[6]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[6]) +); +// @16:1304 + FD1S3DX \rcount_reg[7] ( + .D(rcount_s[7]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[7]) +); +// @16:1304 + FD1S3DX \rcount_reg[8] ( + .D(rcount_s[8]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[8]) +); +// @16:1304 + FD1S3DX \rcount_reg[9] ( + .D(rcount_s[9]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[9]) +); +// @16:1304 + FD1S3DX \rcount_reg[10] ( + .D(rcount_s[10]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[10]) +); +// @16:1304 + FD1S3DX \rcount_reg[11] ( + .D(rcount_s[11]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[11]) +); +// @16:1304 + FD1S3DX \rcount_reg[12] ( + .D(rcount_s[12]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[12]) +); +// @16:1304 + FD1S3DX \rcount_reg[13] ( + .D(rcount_s[13]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[13]) +); +// @16:1304 + FD1S3DX \rcount_reg[14] ( + .D(rcount_s[14]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[14]) +); +// @16:1304 + FD1S3DX \rcount_reg[15] ( + .D(rcount_s[15]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[15]) +); +// @16:1408 + FD1S3DX ppul_sync_p3_reg ( + .D(ppul_sync_p2), + .CK(tx_pclk), + .CD(sli_rst), + .Q(ppul_sync_p3) +); +// @16:1408 + FD1S3DX ppul_sync_p2_reg ( + .D(ppul_sync_p1), + .CK(tx_pclk), + .CD(sli_rst), + .Q(ppul_sync_p2) +); +// @16:1408 + FD1S3DX ppul_sync_p1_reg ( + .D(ppul_sync), + .CK(tx_pclk), + .CD(sli_rst), + .Q(ppul_sync_p1) +); +// @16:1879 + FD1S3DX pll_lock_reg ( + .D(N_53_i), + .CK(pll_refclki), + .CD(sli_rst), + .Q(pll_lock) +); +// @16:1759 + FD1S3DX \phb_cnt_reg[0] ( + .D(phb_cnt_i[0]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(phb_cnt[0]) +); +// @16:1759 + FD1S3DX \phb_cnt_reg[1] ( + .D(phb_cnt_RNO[1]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(phb_cnt[1]) +); +// @16:1759 + FD1S3DX \phb_cnt_reg[2] ( + .D(phb_cnt_RNO[2]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(phb_cnt[2]) +); +// @16:1759 + FD1S3DX phb_reg ( + .D(phb_cnt_i[2]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(phb) +); +// @16:1278 + FD1S3DX pdiff_sync_p1_reg ( + .D(pdiff_sync), + .CK(pll_refclki), + .CD(sli_rst), + .Q(pdiff_sync_p1) +); +// @16:1759 + FD1S3DX \pcount_reg[0] ( + .D(pcount_s[0]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[0]) +); +// @16:1759 + FD1P3BX \pcount_diff[0] ( + .D(un1_pcount_diff_i[0]), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_0) +); +// @16:1759 + FD1S3DX \pcount_reg[1] ( + .D(pcount_s[1]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[1]) +); +// @16:1759 + FD1P3BX \pcount_diff[1] ( + .D(un1_pcount_diff_1_cry_1_0_S0), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_1) +); +// @16:1759 + FD1P3BX \pcount_diff[2] ( + .D(un1_pcount_diff_1_cry_1_0_S1), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_2) +); +// @16:1759 + FD1S3DX \pcount_reg[2] ( + .D(pcount_s[2]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[2]) +); +// @16:1759 + FD1P3BX \pcount_diff[3] ( + .D(un1_pcount_diff_1_cry_3_0_S0), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_3) +); +// @16:1759 + FD1S3DX \pcount_reg[3] ( + .D(pcount_s[3]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[3]) +); +// @16:1759 + FD1P3BX \pcount_diff[4] ( + .D(un1_pcount_diff_1_cry_3_0_S1), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_4) +); +// @16:1759 + FD1S3DX \pcount_reg[4] ( + .D(pcount_s[4]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[4]) +); +// @16:1759 + FD1P3BX \pcount_diff[5] ( + .D(un1_pcount_diff_1_cry_5_0_S0), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_5) +); +// @16:1759 + FD1S3DX \pcount_reg[5] ( + .D(pcount_s[5]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[5]) +); +// @16:1759 + FD1S3DX \pcount_reg[6] ( + .D(pcount_s[6]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[6]) +); +// @16:1759 + FD1P3BX \pcount_diff[6] ( + .D(un1_pcount_diff_1_cry_5_0_S1), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_6) +); +// @16:1759 + FD1S3DX \pcount_reg[7] ( + .D(pcount_s[7]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[7]) +); +// @16:1759 + FD1P3BX \pcount_diff[7] ( + .D(un1_pcount_diff_1_cry_7_0_S0), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_7) +); +// @16:1759 + FD1S3DX \pcount_reg[8] ( + .D(pcount_s[8]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[8]) +); +// @16:1759 + FD1P3BX \pcount_diff[8] ( + .D(un1_pcount_diff_1_cry_7_0_S1), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_8) +); +// @16:1759 + FD1P3BX \pcount_diff[9] ( + .D(un1_pcount_diff_1_cry_9_0_S0), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_9) +); +// @16:1759 + FD1S3DX \pcount_reg[9] ( + .D(pcount_s[9]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[9]) +); +// @16:1759 + FD1S3DX \pcount_reg[10] ( + .D(pcount_s[10]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[10]) +); +// @16:1759 + FD1P3BX \pcount_diff[10] ( + .D(un1_pcount_diff_1_cry_9_0_S1), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_10) +); +// @16:1759 + FD1P3BX \pcount_diff[11] ( + .D(un1_pcount_diff_1_cry_11_0_S0), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_11) +); +// @16:1759 + FD1S3DX \pcount_reg[11] ( + .D(pcount_s[11]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[11]) +); +// @16:1759 + FD1S3DX \pcount_reg[12] ( + .D(pcount_s[12]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[12]) +); +// @16:1759 + FD1P3BX \pcount_diff[12] ( + .D(un1_pcount_diff_1_cry_11_0_S1), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_12) +); +// @16:1759 + FD1P3BX \pcount_diff[13] ( + .D(un1_pcount_diff_1_cry_13_0_S0), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_13) +); +// @16:1759 + FD1S3DX \pcount_reg[13] ( + .D(pcount_s[13]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[13]) +); +// @16:1759 + FD1P3BX \pcount_diff[14] ( + .D(un1_pcount_diff_1_cry_13_0_S1), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_14) +); +// @16:1759 + FD1S3DX \pcount_reg[14] ( + .D(pcount_s[14]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[14]) +); +// @16:1759 + FD1S3DX \pcount_reg[15] ( + .D(pcount_s[15]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[15]) +); +// @16:1759 + FD1P3BX \pcount_diff[15] ( + .D(un1_pcount_diff_1_cry_15_0_S0), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_15) +); +// @16:1759 + FD1S3DX \pcount_reg[16] ( + .D(pcount_s[16]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[16]) +); +// @16:1759 + FD1P3DX \pcount_diff[16] ( + .D(un1_pcount_diff_1_cry_15_0_S1), + .SP(N_7), + .CK(tx_pclk), + .CD(sli_rst), + .Q(un13_lock_16) +); +// @16:1759 + FD1P3DX \pcount_diff[17] ( + .D(un1_pcount_diff_1_cry_17_0_S0), + .SP(N_7), + .CK(tx_pclk), + .CD(sli_rst), + .Q(un13_lock_17) +); +// @16:1759 + FD1S3DX \pcount_reg[17] ( + .D(pcount_s[17]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[17]) +); +// @16:1759 + FD1P3DX \pcount_diff[18] ( + .D(un1_pcount_diff_1_cry_17_0_S1), + .SP(N_7), + .CK(tx_pclk), + .CD(sli_rst), + .Q(un13_lock_18) +); +// @16:1759 + FD1S3DX \pcount_reg[18] ( + .D(pcount_s[18]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[18]) +); +// @16:1759 + FD1S3DX \pcount_reg[19] ( + .D(pcount_s[19]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[19]) +); +// @16:1759 + FD1P3DX \pcount_diff[19] ( + .D(un1_pcount_diff_1_cry_19_0_S0), + .SP(N_7), + .CK(tx_pclk), + .CD(sli_rst), + .Q(un13_lock_19) +); +// @16:1759 + FD1S3DX \pcount_reg[20] ( + .D(pcount_s[20]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[20]) +); +// @16:1759 + FD1P3DX \pcount_diff[20] ( + .D(un1_pcount_diff_1_cry_19_0_S1), + .SP(N_7), + .CK(tx_pclk), + .CD(sli_rst), + .Q(un13_lock_20) +); +// @16:1759 + FD1P3DX \pcount_diff[21] ( + .D(un1_pcount_diff_1_s_21_0_S0), + .SP(N_7), + .CK(tx_pclk), + .CD(sli_rst), + .Q(un13_lock_21) +); +// @16:1759 + FD1S3DX \pcount_reg[21] ( + .D(pcount_s[21]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[21]) +); +// @16:1278 + FD1P3DX lock_reg ( + .D(lock_5), + .SP(lock_1_sqmuxa_i), + .CK(pll_refclki), + .CD(sli_rst), + .Q(lock) +); +// @16:1739 + FD1S3DX \genblk5.rdiff_comp_lock[2] ( + .D(VCC), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rdiff_comp_lock[2]) +); +// @16:1801 + LUT4 \sll_state_RNO[0] ( + .A(N_98), + .B(lock), + .C(rstat_pclk), + .D(sll_state[0]), + .Z(N_95_i) +); +defparam \sll_state_RNO[0] .init=16'hE050; +// @16:1334 + LUT4 rtc_pul5_0_0 ( + .A(rtc_pul5_0_o3), + .B(rtc_pul5_0_a3_6), + .C(rtc_pul5_0_a3_7), + .D(un1_rcount_1_0_a3), + .Z(rtc_pul5) +); +defparam rtc_pul5_0_0.init=16'hFF80; +// @16:1389 + LUT4 rstat_pclk_2_iv ( + .A(rhb_wait_cnt12), + .B(rstat_pclk), + .C(un1_rhb_wait_cnt_4), + .D(un1_rhb_wait_cnt_5), + .Z(rstat_pclk_2) +); +defparam rstat_pclk_2_iv.init=16'hAEEE; +// @16:1801 + LUT4 \sll_state_RNO[1] ( + .A(N_99), + .B(rstat_pclk), + .C(sll_state[1]), + .D(unlock), + .Z(N_97_i) +); +defparam \sll_state_RNO[1] .init=16'h8088; +// @16:1328 + LUT4 rtc_ctrl4_0_a3 ( + .A(rtc_ctrl4_0_a3_1), + .B(rtc_ctrl4_0_a3_12_4), + .C(rtc_ctrl4_0_a3_12_5), + .D(rtc_ctrl4_10), + .Z(rtc_ctrl4) +); +defparam rtc_ctrl4_0_a3.init=16'h8000; +// @16:1319 + LUT4 un1_rcount_1_0_a3_cZ ( + .A(rtc_ctrl4_0_a3_12_4), + .B(rtc_ctrl4_0_a3_12_5), + .C(rtc_ctrl4_10), + .D(un1_rcount_1_0_a3_1), + .Z(un1_rcount_1_0_a3) +); +defparam un1_rcount_1_0_a3_cZ.init=16'h8000; +// @16:1278 + LUT4 lock_1_sqmuxa_i_cZ ( + .A(lock), + .B(pdiff_sync), + .C(pdiff_sync_p1), + .D(VCC), + .Z(lock_1_sqmuxa_i) +); +defparam lock_1_sqmuxa_i_cZ.init=16'h7575; +// @16:1278 + LUT4 unlock_1_sqmuxa_i_cZ ( + .A(pdiff_sync), + .B(pdiff_sync_p1), + .C(unlock), + .D(VCC), + .Z(unlock_1_sqmuxa_i) +); +defparam unlock_1_sqmuxa_i_cZ.init=16'h4F4F; +// @16:1334 + LUT4 rtc_pul5_0_o3_cZ ( + .A(N_6), + .B(rcount[1]), + .C(rcount[2]), + .D(rcount[3]), + .Z(rtc_pul5_0_o3) +); +defparam rtc_pul5_0_o3_cZ.init=16'hAAAB; +// @16:1334 + LUT4 rtc_pul5_0_a3_7_cZ ( + .A(rcount[7]), + .B(rcount[8]), + .C(rtc_pul5_0_a3_5), + .D(VCC), + .Z(rtc_pul5_0_a3_7) +); +defparam rtc_pul5_0_a3_7_cZ.init=16'h1010; +// @16:1801 + LUT4 \sll_state_ns_i_m4[1] ( + .A(lock), + .B(rtc_pul), + .C(rtc_pul_p1), + .D(sll_state[1]), + .Z(N_99) +); +defparam \sll_state_ns_i_m4[1] .init=16'hEF20; +// @16:1879 + LUT4 pll_lock_RNO ( + .A(sll_state[0]), + .B(sll_state[1]), + .C(VCC), + .D(VCC), + .Z(N_53_i) +); +defparam pll_lock_RNO.init=16'h8888; +// @16:1776 + LUT4 \phb_cnt_RNO_cZ[2] ( + .A(phb_cnt[0]), + .B(phb_cnt[1]), + .C(phb_cnt[2]), + .D(VCC), + .Z(phb_cnt_RNO[2]) +); +defparam \phb_cnt_RNO_cZ[2] .init=16'h7878; +// @16:1801 + LUT4 \sll_state_ns_i_o4[0] ( + .A(rtc_pul), + .B(rtc_pul_p1), + .C(sll_state[1]), + .D(VCC), + .Z(N_98) +); +defparam \sll_state_ns_i_o4[0] .init=16'hBFBF; +// @16:1328 + LUT4 rtc_ctrl4_0_a3_10 ( + .A(rcount[1]), + .B(rcount[3]), + .C(rcount[6]), + .D(rcount[15]), + .Z(rtc_ctrl4_10) +); +defparam rtc_ctrl4_0_a3_10.init=16'h8000; +// @16:1393 + LUT4 un1_rhb_wait_cnt_4_cZ ( + .A(rhb_wait_cnt[4]), + .B(rhb_wait_cnt[5]), + .C(rhb_wait_cnt[6]), + .D(rhb_wait_cnt[7]), + .Z(un1_rhb_wait_cnt_4) +); +defparam un1_rhb_wait_cnt_4_cZ.init=16'h8000; +// @16:1393 + LUT4 un1_rhb_wait_cnt_5_cZ ( + .A(rhb_wait_cnt[0]), + .B(rhb_wait_cnt[1]), + .C(rhb_wait_cnt[2]), + .D(rhb_wait_cnt[3]), + .Z(un1_rhb_wait_cnt_5) +); +defparam un1_rhb_wait_cnt_5_cZ.init=16'h8000; +// @16:1328 + LUT4 rtc_ctrl4_0_a3_12_4_cZ ( + .A(rcount[11]), + .B(rcount[12]), + .C(rcount[13]), + .D(rcount[14]), + .Z(rtc_ctrl4_0_a3_12_4) +); +defparam rtc_ctrl4_0_a3_12_4_cZ.init=16'h8000; +// @16:1328 + LUT4 rtc_ctrl4_0_a3_12_5_cZ ( + .A(rcount[7]), + .B(rcount[8]), + .C(rcount[9]), + .D(rcount[10]), + .Z(rtc_ctrl4_0_a3_12_5) +); +defparam rtc_ctrl4_0_a3_12_5_cZ.init=16'h8000; +// @16:1334 + LUT4 rtc_pul5_0_a3_5_cZ ( + .A(rcount[6]), + .B(rcount[13]), + .C(rcount[14]), + .D(rcount[15]), + .Z(rtc_pul5_0_a3_5) +); +defparam rtc_pul5_0_a3_5_cZ.init=16'h0001; +// @16:1334 + LUT4 rtc_pul5_0_a3_6_cZ ( + .A(rcount[9]), + .B(rcount[10]), + .C(rcount[11]), + .D(rcount[12]), + .Z(rtc_pul5_0_a3_6) +); +defparam rtc_pul5_0_a3_6_cZ.init=16'h0001; +// @16:1768 + LUT4 pcount10_0_o3 ( + .A(ppul_sync_p1), + .B(ppul_sync_p2), + .C(VCC), + .D(VCC), + .Z(N_8) +); +defparam pcount10_0_o3.init=16'hDDDD; +// @16:1776 + LUT4 \phb_cnt_RNO_cZ[1] ( + .A(phb_cnt[0]), + .B(phb_cnt[1]), + .C(VCC), + .D(VCC), + .Z(phb_cnt_RNO[1]) +); +defparam \phb_cnt_RNO_cZ[1] .init=16'h6666; +// @16:1328 + LUT4 rtc_ctrl4_0_o3 ( + .A(rcount[4]), + .B(rcount[5]), + .C(VCC), + .D(VCC), + .Z(N_6) +); +defparam rtc_ctrl4_0_o3.init=16'h7777; +// @16:1286 + LUT4 unlock_5_cZ ( + .A(pdiff_sync), + .B(un13_unlock_cry_21), + .C(VCC), + .D(VCC), + .Z(unlock_5) +); +defparam unlock_5_cZ.init=16'h8888; +// @16:1292 + LUT4 lock_5_cZ ( + .A(pdiff_sync), + .B(un13_lock_cry_21_i), + .C(VCC), + .D(VCC), + .Z(lock_5) +); +defparam lock_5_cZ.init=16'h8888; +// @16:1389 + LUT4 rhb_wait_cnt12_cZ ( + .A(rhb_sync_p1), + .B(rhb_sync_p2), + .C(VCC), + .D(VCC), + .Z(rhb_wait_cnt12) +); +defparam rhb_wait_cnt12_cZ.init=16'h2222; +// @16:1786 + LUT4 \un1_pcount_diff_cZ[0] ( + .A(un13_lock_0), + .B(pcount[0]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff[0]) +); +defparam \un1_pcount_diff_cZ[0] .init=16'h5355; +// @16:1319 + LUT4 un1_rcount_1_0_a3_1_cZ ( + .A(rcount[2]), + .B(rcount[0]), + .C(rcount[5]), + .D(rcount[4]), + .Z(un1_rcount_1_0_a3_1) +); +defparam un1_rcount_1_0_a3_1_cZ.init=16'h8000; +// @16:1350 + LUT4 rhb_sync_p2_RNIU9TG1 ( + .A(un1_rhb_wait_cnt_5), + .B(un1_rhb_wait_cnt_4), + .C(rhb_sync_p2), + .D(rhb_sync_p1), + .Z(rhb_wait_cnt_scalar) +); +defparam rhb_sync_p2_RNIU9TG1.init=16'h7077; + CCU2C \pcount_cry_0[0] ( + .A0(VCC), + .B0(N_8), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_9), + .COUT(pcount_cry[0]), + .S0(pcount_cry_0_S0[0]), + .S1(pcount_s[0]) +); +defparam \pcount_cry_0[0] .INIT0=16'h500c; +defparam \pcount_cry_0[0] .INIT1=16'h8000; +defparam \pcount_cry_0[0] .INJECT1_0="NO"; +defparam \pcount_cry_0[0] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_cry_0[1] ( + .A0(N_8), + .B0(pcount[1]), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[2]), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[0]), + .COUT(pcount_cry[2]), + .S0(pcount_s[1]), + .S1(pcount_s[2]) +); +defparam \pcount_cry_0[1] .INIT0=16'h8000; +defparam \pcount_cry_0[1] .INIT1=16'h8000; +defparam \pcount_cry_0[1] .INJECT1_0="NO"; +defparam \pcount_cry_0[1] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_cry_0[3] ( + .A0(N_8), + .B0(pcount[3]), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[4]), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[2]), + .COUT(pcount_cry[4]), + .S0(pcount_s[3]), + .S1(pcount_s[4]) +); +defparam \pcount_cry_0[3] .INIT0=16'h8000; +defparam \pcount_cry_0[3] .INIT1=16'h8000; +defparam \pcount_cry_0[3] .INJECT1_0="NO"; +defparam \pcount_cry_0[3] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_cry_0[5] ( + .A0(N_8), + .B0(pcount[5]), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[6]), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[4]), + .COUT(pcount_cry[6]), + .S0(pcount_s[5]), + .S1(pcount_s[6]) +); +defparam \pcount_cry_0[5] .INIT0=16'h8000; +defparam \pcount_cry_0[5] .INIT1=16'h8000; +defparam \pcount_cry_0[5] .INJECT1_0="NO"; +defparam \pcount_cry_0[5] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_cry_0[7] ( + .A0(N_8), + .B0(pcount[7]), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[8]), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[6]), + .COUT(pcount_cry[8]), + .S0(pcount_s[7]), + .S1(pcount_s[8]) +); +defparam \pcount_cry_0[7] .INIT0=16'h8000; +defparam \pcount_cry_0[7] .INIT1=16'h8000; +defparam \pcount_cry_0[7] .INJECT1_0="NO"; +defparam \pcount_cry_0[7] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_cry_0[9] ( + .A0(N_8), + .B0(pcount[9]), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[10]), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[8]), + .COUT(pcount_cry[10]), + .S0(pcount_s[9]), + .S1(pcount_s[10]) +); +defparam \pcount_cry_0[9] .INIT0=16'h8000; +defparam \pcount_cry_0[9] .INIT1=16'h8000; +defparam \pcount_cry_0[9] .INJECT1_0="NO"; +defparam \pcount_cry_0[9] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_cry_0[11] ( + .A0(N_8), + .B0(pcount[11]), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[12]), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[10]), + .COUT(pcount_cry[12]), + .S0(pcount_s[11]), + .S1(pcount_s[12]) +); +defparam \pcount_cry_0[11] .INIT0=16'h8000; +defparam \pcount_cry_0[11] .INIT1=16'h8000; +defparam \pcount_cry_0[11] .INJECT1_0="NO"; +defparam \pcount_cry_0[11] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_cry_0[13] ( + .A0(N_8), + .B0(pcount[13]), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[14]), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[12]), + .COUT(pcount_cry[14]), + .S0(pcount_s[13]), + .S1(pcount_s[14]) +); +defparam \pcount_cry_0[13] .INIT0=16'h8000; +defparam \pcount_cry_0[13] .INIT1=16'h8000; +defparam \pcount_cry_0[13] .INJECT1_0="NO"; +defparam \pcount_cry_0[13] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_cry_0[15] ( + .A0(N_8), + .B0(pcount[15]), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[16]), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[14]), + .COUT(pcount_cry[16]), + .S0(pcount_s[15]), + .S1(pcount_s[16]) +); +defparam \pcount_cry_0[15] .INIT0=16'h8000; +defparam \pcount_cry_0[15] .INIT1=16'h8000; +defparam \pcount_cry_0[15] .INJECT1_0="NO"; +defparam \pcount_cry_0[15] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_cry_0[17] ( + .A0(N_8), + .B0(pcount[17]), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[18]), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[16]), + .COUT(pcount_cry[18]), + .S0(pcount_s[17]), + .S1(pcount_s[18]) +); +defparam \pcount_cry_0[17] .INIT0=16'h8000; +defparam \pcount_cry_0[17] .INIT1=16'h8000; +defparam \pcount_cry_0[17] .INJECT1_0="NO"; +defparam \pcount_cry_0[17] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_cry_0[19] ( + .A0(N_8), + .B0(pcount[19]), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[20]), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[18]), + .COUT(pcount_cry[20]), + .S0(pcount_s[19]), + .S1(pcount_s[20]) +); +defparam \pcount_cry_0[19] .INIT0=16'h8000; +defparam \pcount_cry_0[19] .INIT1=16'h8000; +defparam \pcount_cry_0[19] .INJECT1_0="NO"; +defparam \pcount_cry_0[19] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_s_0[21] ( + .A0(N_8), + .B0(pcount[21]), + .C0(VCC), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[20]), + .COUT(pcount_s_0_COUT[21]), + .S0(pcount_s[21]), + .S1(pcount_s_0_S1[21]) +); +defparam \pcount_s_0[21] .INIT0=16'h800a; +defparam \pcount_s_0[21] .INIT1=16'h5003; +defparam \pcount_s_0[21] .INJECT1_0="NO"; +defparam \pcount_s_0[21] .INJECT1_1="NO"; + CCU2C \rcount_cry_0[0] ( + .A0(VCC), + .B0(un1_rcount_1_0_a3), + .C0(VCC), + .D0(VCC), + .A1(un1_rcount_1_0_a3), + .B1(rcount[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_5), + .COUT(rcount_cry[0]), + .S0(rcount_cry_0_S0[0]), + .S1(rcount_s[0]) +); +defparam \rcount_cry_0[0] .INIT0=16'h5003; +defparam \rcount_cry_0[0] .INIT1=16'h4000; +defparam \rcount_cry_0[0] .INJECT1_0="NO"; +defparam \rcount_cry_0[0] .INJECT1_1="NO"; +// @16:1304 + CCU2C \rcount_cry_0[1] ( + .A0(un1_rcount_1_0_a3), + .B0(rcount[1]), + .C0(VCC), + .D0(VCC), + .A1(un1_rcount_1_0_a3), + .B1(rcount[2]), + .C1(VCC), + .D1(VCC), + .CIN(rcount_cry[0]), + .COUT(rcount_cry[2]), + .S0(rcount_s[1]), + .S1(rcount_s[2]) +); +defparam \rcount_cry_0[1] .INIT0=16'h4000; +defparam \rcount_cry_0[1] .INIT1=16'h4000; +defparam \rcount_cry_0[1] .INJECT1_0="NO"; +defparam \rcount_cry_0[1] .INJECT1_1="NO"; +// @16:1304 + CCU2C \rcount_cry_0[3] ( + .A0(un1_rcount_1_0_a3), + .B0(rcount[3]), + .C0(VCC), + .D0(VCC), + .A1(un1_rcount_1_0_a3), + .B1(rcount[4]), + .C1(VCC), + .D1(VCC), + .CIN(rcount_cry[2]), + .COUT(rcount_cry[4]), + .S0(rcount_s[3]), + .S1(rcount_s[4]) +); +defparam \rcount_cry_0[3] .INIT0=16'h4000; +defparam \rcount_cry_0[3] .INIT1=16'h4000; +defparam \rcount_cry_0[3] .INJECT1_0="NO"; +defparam \rcount_cry_0[3] .INJECT1_1="NO"; +// @16:1304 + CCU2C \rcount_cry_0[5] ( + .A0(un1_rcount_1_0_a3), + .B0(rcount[5]), + .C0(VCC), + .D0(VCC), + .A1(un1_rcount_1_0_a3), + .B1(rcount[6]), + .C1(VCC), + .D1(VCC), + .CIN(rcount_cry[4]), + .COUT(rcount_cry[6]), + .S0(rcount_s[5]), + .S1(rcount_s[6]) +); +defparam \rcount_cry_0[5] .INIT0=16'h4000; +defparam \rcount_cry_0[5] .INIT1=16'h4000; +defparam \rcount_cry_0[5] .INJECT1_0="NO"; +defparam \rcount_cry_0[5] .INJECT1_1="NO"; +// @16:1304 + CCU2C \rcount_cry_0[7] ( + .A0(un1_rcount_1_0_a3), + .B0(rcount[7]), + .C0(VCC), + .D0(VCC), + .A1(un1_rcount_1_0_a3), + .B1(rcount[8]), + .C1(VCC), + .D1(VCC), + .CIN(rcount_cry[6]), + .COUT(rcount_cry[8]), + .S0(rcount_s[7]), + .S1(rcount_s[8]) +); +defparam \rcount_cry_0[7] .INIT0=16'h4000; +defparam \rcount_cry_0[7] .INIT1=16'h4000; +defparam \rcount_cry_0[7] .INJECT1_0="NO"; +defparam \rcount_cry_0[7] .INJECT1_1="NO"; +// @16:1304 + CCU2C \rcount_cry_0[9] ( + .A0(un1_rcount_1_0_a3), + .B0(rcount[9]), + .C0(VCC), + .D0(VCC), + .A1(un1_rcount_1_0_a3), + .B1(rcount[10]), + .C1(VCC), + .D1(VCC), + .CIN(rcount_cry[8]), + .COUT(rcount_cry[10]), + .S0(rcount_s[9]), + .S1(rcount_s[10]) +); +defparam \rcount_cry_0[9] .INIT0=16'h4000; +defparam \rcount_cry_0[9] .INIT1=16'h4000; +defparam \rcount_cry_0[9] .INJECT1_0="NO"; +defparam \rcount_cry_0[9] .INJECT1_1="NO"; +// @16:1304 + CCU2C \rcount_cry_0[11] ( + .A0(un1_rcount_1_0_a3), + .B0(rcount[11]), + .C0(VCC), + .D0(VCC), + .A1(un1_rcount_1_0_a3), + .B1(rcount[12]), + .C1(VCC), + .D1(VCC), + .CIN(rcount_cry[10]), + .COUT(rcount_cry[12]), + .S0(rcount_s[11]), + .S1(rcount_s[12]) +); +defparam \rcount_cry_0[11] .INIT0=16'h4000; +defparam \rcount_cry_0[11] .INIT1=16'h4000; +defparam \rcount_cry_0[11] .INJECT1_0="NO"; +defparam \rcount_cry_0[11] .INJECT1_1="NO"; +// @16:1304 + CCU2C \rcount_cry_0[13] ( + .A0(un1_rcount_1_0_a3), + .B0(rcount[13]), + .C0(VCC), + .D0(VCC), + .A1(un1_rcount_1_0_a3), + .B1(rcount[14]), + .C1(VCC), + .D1(VCC), + .CIN(rcount_cry[12]), + .COUT(rcount_cry[14]), + .S0(rcount_s[13]), + .S1(rcount_s[14]) +); +defparam \rcount_cry_0[13] .INIT0=16'h4000; +defparam \rcount_cry_0[13] .INIT1=16'h4000; +defparam \rcount_cry_0[13] .INJECT1_0="NO"; +defparam \rcount_cry_0[13] .INJECT1_1="NO"; +// @16:1304 + CCU2C \rcount_s_0[15] ( + .A0(un1_rcount_1_0_a3), + .B0(rcount[15]), + .C0(VCC), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(rcount_cry[14]), + .COUT(rcount_s_0_COUT[15]), + .S0(rcount_s[15]), + .S1(rcount_s_0_S1[15]) +); +defparam \rcount_s_0[15] .INIT0=16'h4005; +defparam \rcount_s_0[15] .INIT1=16'h5003; +defparam \rcount_s_0[15] .INJECT1_0="NO"; +defparam \rcount_s_0[15] .INJECT1_1="NO"; + CCU2C \rhb_wait_cnt_cry_0[0] ( + .A0(VCC), + .B0(rhb_wait_cnt_scalar), + .C0(VCC), + .D0(VCC), + .A1(rhb_wait_cnt_scalar), + .B1(rhb_wait_cnt[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_4), + .COUT(rhb_wait_cnt_cry[0]), + .S0(rhb_wait_cnt_cry_0_S0[0]), + .S1(rhb_wait_cnt_s[0]) +); +defparam \rhb_wait_cnt_cry_0[0] .INIT0=16'h500c; +defparam \rhb_wait_cnt_cry_0[0] .INIT1=16'h8000; +defparam \rhb_wait_cnt_cry_0[0] .INJECT1_0="NO"; +defparam \rhb_wait_cnt_cry_0[0] .INJECT1_1="NO"; +// @16:1350 + CCU2C \rhb_wait_cnt_cry_0[1] ( + .A0(rhb_wait_cnt_scalar), + .B0(rhb_wait_cnt[1]), + .C0(VCC), + .D0(VCC), + .A1(rhb_wait_cnt_scalar), + .B1(rhb_wait_cnt[2]), + .C1(VCC), + .D1(VCC), + .CIN(rhb_wait_cnt_cry[0]), + .COUT(rhb_wait_cnt_cry[2]), + .S0(rhb_wait_cnt_s[1]), + .S1(rhb_wait_cnt_s[2]) +); +defparam \rhb_wait_cnt_cry_0[1] .INIT0=16'h8000; +defparam \rhb_wait_cnt_cry_0[1] .INIT1=16'h8000; +defparam \rhb_wait_cnt_cry_0[1] .INJECT1_0="NO"; +defparam \rhb_wait_cnt_cry_0[1] .INJECT1_1="NO"; +// @16:1350 + CCU2C \rhb_wait_cnt_cry_0[3] ( + .A0(rhb_wait_cnt_scalar), + .B0(rhb_wait_cnt[3]), + .C0(VCC), + .D0(VCC), + .A1(rhb_wait_cnt_scalar), + .B1(rhb_wait_cnt[4]), + .C1(VCC), + .D1(VCC), + .CIN(rhb_wait_cnt_cry[2]), + .COUT(rhb_wait_cnt_cry[4]), + .S0(rhb_wait_cnt_s[3]), + .S1(rhb_wait_cnt_s[4]) +); +defparam \rhb_wait_cnt_cry_0[3] .INIT0=16'h8000; +defparam \rhb_wait_cnt_cry_0[3] .INIT1=16'h8000; +defparam \rhb_wait_cnt_cry_0[3] .INJECT1_0="NO"; +defparam \rhb_wait_cnt_cry_0[3] .INJECT1_1="NO"; +// @16:1350 + CCU2C \rhb_wait_cnt_cry_0[5] ( + .A0(rhb_wait_cnt_scalar), + .B0(rhb_wait_cnt[5]), + .C0(VCC), + .D0(VCC), + .A1(rhb_wait_cnt_scalar), + .B1(rhb_wait_cnt[6]), + .C1(VCC), + .D1(VCC), + .CIN(rhb_wait_cnt_cry[4]), + .COUT(rhb_wait_cnt_cry[6]), + .S0(rhb_wait_cnt_s[5]), + .S1(rhb_wait_cnt_s[6]) +); +defparam \rhb_wait_cnt_cry_0[5] .INIT0=16'h8000; +defparam \rhb_wait_cnt_cry_0[5] .INIT1=16'h8000; +defparam \rhb_wait_cnt_cry_0[5] .INJECT1_0="NO"; +defparam \rhb_wait_cnt_cry_0[5] .INJECT1_1="NO"; +// @16:1350 + CCU2C \rhb_wait_cnt_s_0[7] ( + .A0(rhb_wait_cnt_scalar), + .B0(rhb_wait_cnt[7]), + .C0(VCC), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(rhb_wait_cnt_cry[6]), + .COUT(rhb_wait_cnt_s_0_COUT[7]), + .S0(rhb_wait_cnt_s[7]), + .S1(rhb_wait_cnt_s_0_S1[7]) +); +defparam \rhb_wait_cnt_s_0[7] .INIT0=16'h800a; +defparam \rhb_wait_cnt_s_0[7] .INIT1=16'h5003; +defparam \rhb_wait_cnt_s_0[7] .INJECT1_0="NO"; +defparam \rhb_wait_cnt_s_0[7] .INJECT1_1="NO"; + CCU2C un1_pcount_diff_1_cry_0_0 ( + .A0(VCC), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un1_pcount_diff[0]), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(N_3), + .COUT(un1_pcount_diff_1_cry_0), + .S0(un1_pcount_diff_1_cry_0_0_S0), + .S1(un1_pcount_diff_1_cry_0_0_S1) +); +defparam un1_pcount_diff_1_cry_0_0.INIT0=16'h5003; +defparam un1_pcount_diff_1_cry_0_0.INIT1=16'h500f; +defparam un1_pcount_diff_1_cry_0_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_0_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_cry_1_0 ( + .A0(un1_pcount_diff_1_axb_1), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un1_pcount_diff_1_axb_2), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_0), + .COUT(un1_pcount_diff_1_cry_2), + .S0(un1_pcount_diff_1_cry_1_0_S0), + .S1(un1_pcount_diff_1_cry_1_0_S1) +); +defparam un1_pcount_diff_1_cry_1_0.INIT0=16'ha003; +defparam un1_pcount_diff_1_cry_1_0.INIT1=16'ha003; +defparam un1_pcount_diff_1_cry_1_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_1_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_cry_3_0 ( + .A0(un1_pcount_diff_1_axb_3), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un1_pcount_diff_1_axb_4), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_2), + .COUT(un1_pcount_diff_1_cry_4), + .S0(un1_pcount_diff_1_cry_3_0_S0), + .S1(un1_pcount_diff_1_cry_3_0_S1) +); +defparam un1_pcount_diff_1_cry_3_0.INIT0=16'ha003; +defparam un1_pcount_diff_1_cry_3_0.INIT1=16'ha003; +defparam un1_pcount_diff_1_cry_3_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_3_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_cry_5_0 ( + .A0(un1_pcount_diff_1_axb_5), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un1_pcount_diff_1_axb_6), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_4), + .COUT(un1_pcount_diff_1_cry_6), + .S0(un1_pcount_diff_1_cry_5_0_S0), + .S1(un1_pcount_diff_1_cry_5_0_S1) +); +defparam un1_pcount_diff_1_cry_5_0.INIT0=16'ha003; +defparam un1_pcount_diff_1_cry_5_0.INIT1=16'ha003; +defparam un1_pcount_diff_1_cry_5_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_5_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_cry_7_0 ( + .A0(un1_pcount_diff_1_axb_7), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un1_pcount_diff_1_axb_8), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_6), + .COUT(un1_pcount_diff_1_cry_8), + .S0(un1_pcount_diff_1_cry_7_0_S0), + .S1(un1_pcount_diff_1_cry_7_0_S1) +); +defparam un1_pcount_diff_1_cry_7_0.INIT0=16'ha003; +defparam un1_pcount_diff_1_cry_7_0.INIT1=16'ha003; +defparam un1_pcount_diff_1_cry_7_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_7_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_cry_9_0 ( + .A0(un1_pcount_diff_1_axb_9), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un1_pcount_diff_1_axb_10), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_8), + .COUT(un1_pcount_diff_1_cry_10), + .S0(un1_pcount_diff_1_cry_9_0_S0), + .S1(un1_pcount_diff_1_cry_9_0_S1) +); +defparam un1_pcount_diff_1_cry_9_0.INIT0=16'ha003; +defparam un1_pcount_diff_1_cry_9_0.INIT1=16'ha003; +defparam un1_pcount_diff_1_cry_9_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_9_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_cry_11_0 ( + .A0(un1_pcount_diff_1_axb_11), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un1_pcount_diff_1_axb_12), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_10), + .COUT(un1_pcount_diff_1_cry_12), + .S0(un1_pcount_diff_1_cry_11_0_S0), + .S1(un1_pcount_diff_1_cry_11_0_S1) +); +defparam un1_pcount_diff_1_cry_11_0.INIT0=16'ha003; +defparam un1_pcount_diff_1_cry_11_0.INIT1=16'ha003; +defparam un1_pcount_diff_1_cry_11_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_11_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_cry_13_0 ( + .A0(un1_pcount_diff_1_axb_13), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un1_pcount_diff_1_axb_14), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_12), + .COUT(un1_pcount_diff_1_cry_14), + .S0(un1_pcount_diff_1_cry_13_0_S0), + .S1(un1_pcount_diff_1_cry_13_0_S1) +); +defparam un1_pcount_diff_1_cry_13_0.INIT0=16'ha003; +defparam un1_pcount_diff_1_cry_13_0.INIT1=16'ha003; +defparam un1_pcount_diff_1_cry_13_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_13_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_cry_15_0 ( + .A0(un1_pcount_diff_1_axb_15), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un1_pcount_diff_1_axb_16), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_14), + .COUT(un1_pcount_diff_1_cry_16), + .S0(un1_pcount_diff_1_cry_15_0_S0), + .S1(un1_pcount_diff_1_cry_15_0_S1) +); +defparam un1_pcount_diff_1_cry_15_0.INIT0=16'ha003; +defparam un1_pcount_diff_1_cry_15_0.INIT1=16'ha003; +defparam un1_pcount_diff_1_cry_15_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_15_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_cry_17_0 ( + .A0(N_8), + .B0(rdiff_comp_lock[2]), + .C0(un1_pcount_diff_1_cry_17_0_RNO), + .D0(VCC), + .A1(un1_pcount_diff_1_axb_18), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_16), + .COUT(un1_pcount_diff_1_cry_18), + .S0(un1_pcount_diff_1_cry_17_0_S0), + .S1(un1_pcount_diff_1_cry_17_0_S1) +); +defparam un1_pcount_diff_1_cry_17_0.INIT0=16'hb404; +defparam un1_pcount_diff_1_cry_17_0.INIT1=16'ha003; +defparam un1_pcount_diff_1_cry_17_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_17_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_cry_19_0 ( + .A0(un1_pcount_diff_1_axb_19), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un1_pcount_diff_1_axb_20), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_18), + .COUT(un1_pcount_diff_1_cry_20), + .S0(un1_pcount_diff_1_cry_19_0_S0), + .S1(un1_pcount_diff_1_cry_19_0_S1) +); +defparam un1_pcount_diff_1_cry_19_0.INIT0=16'ha003; +defparam un1_pcount_diff_1_cry_19_0.INIT1=16'ha003; +defparam un1_pcount_diff_1_cry_19_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_19_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_s_21_0 ( + .A0(pcount[21]), + .B0(un13_lock_21), + .C0(N_8), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_20), + .COUT(un1_pcount_diff_1_s_21_0_COUT), + .S0(un1_pcount_diff_1_s_21_0_S0), + .S1(un1_pcount_diff_1_s_21_0_S1) +); +defparam un1_pcount_diff_1_s_21_0.INIT0=16'h350a; +defparam un1_pcount_diff_1_s_21_0.INIT1=16'h5003; +defparam un1_pcount_diff_1_s_21_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_s_21_0.INJECT1_1="NO"; + CCU2C un13_lock_cry_0_0 ( + .A0(VCC), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_0), + .B1(rdiff_comp_lock[2]), + .C1(VCC), + .D1(VCC), + .CIN(N_2), + .COUT(un13_lock_cry_0), + .S0(un13_lock_cry_0_0_S0), + .S1(un13_lock_cry_0_0_S1) +); +defparam un13_lock_cry_0_0.INIT0=16'h5003; +defparam un13_lock_cry_0_0.INIT1=16'h900a; +defparam un13_lock_cry_0_0.INJECT1_0="NO"; +defparam un13_lock_cry_0_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_1_0 ( + .A0(un13_lock_1), + .B0(rdiff_comp_lock[2]), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_2), + .B1(rdiff_comp_lock[2]), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_0), + .COUT(un13_lock_cry_2), + .S0(un13_lock_cry_1_0_S0), + .S1(un13_lock_cry_1_0_S1) +); +defparam un13_lock_cry_1_0.INIT0=16'h900a; +defparam un13_lock_cry_1_0.INIT1=16'h900a; +defparam un13_lock_cry_1_0.INJECT1_0="NO"; +defparam un13_lock_cry_1_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_3_0 ( + .A0(un13_lock_3), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_4), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_2), + .COUT(un13_lock_cry_4), + .S0(un13_lock_cry_3_0_S0), + .S1(un13_lock_cry_3_0_S1) +); +defparam un13_lock_cry_3_0.INIT0=16'h500a; +defparam un13_lock_cry_3_0.INIT1=16'h500a; +defparam un13_lock_cry_3_0.INJECT1_0="NO"; +defparam un13_lock_cry_3_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_5_0 ( + .A0(un13_lock_5), + .B0(rdiff_comp_lock[2]), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_6), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_4), + .COUT(un13_lock_cry_6), + .S0(un13_lock_cry_5_0_S0), + .S1(un13_lock_cry_5_0_S1) +); +defparam un13_lock_cry_5_0.INIT0=16'h900a; +defparam un13_lock_cry_5_0.INIT1=16'h500a; +defparam un13_lock_cry_5_0.INJECT1_0="NO"; +defparam un13_lock_cry_5_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_7_0 ( + .A0(un13_lock_7), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_8), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_6), + .COUT(un13_lock_cry_8), + .S0(un13_lock_cry_7_0_S0), + .S1(un13_lock_cry_7_0_S1) +); +defparam un13_lock_cry_7_0.INIT0=16'h500a; +defparam un13_lock_cry_7_0.INIT1=16'h500a; +defparam un13_lock_cry_7_0.INJECT1_0="NO"; +defparam un13_lock_cry_7_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_9_0 ( + .A0(un13_lock_9), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_10), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_8), + .COUT(un13_lock_cry_10), + .S0(un13_lock_cry_9_0_S0), + .S1(un13_lock_cry_9_0_S1) +); +defparam un13_lock_cry_9_0.INIT0=16'h500a; +defparam un13_lock_cry_9_0.INIT1=16'h500a; +defparam un13_lock_cry_9_0.INJECT1_0="NO"; +defparam un13_lock_cry_9_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_11_0 ( + .A0(un13_lock_11), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_12), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_10), + .COUT(un13_lock_cry_12), + .S0(un13_lock_cry_11_0_S0), + .S1(un13_lock_cry_11_0_S1) +); +defparam un13_lock_cry_11_0.INIT0=16'h500a; +defparam un13_lock_cry_11_0.INIT1=16'h500a; +defparam un13_lock_cry_11_0.INJECT1_0="NO"; +defparam un13_lock_cry_11_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_13_0 ( + .A0(un13_lock_13), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_14), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_12), + .COUT(un13_lock_cry_14), + .S0(un13_lock_cry_13_0_S0), + .S1(un13_lock_cry_13_0_S1) +); +defparam un13_lock_cry_13_0.INIT0=16'h500a; +defparam un13_lock_cry_13_0.INIT1=16'h500a; +defparam un13_lock_cry_13_0.INJECT1_0="NO"; +defparam un13_lock_cry_13_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_15_0 ( + .A0(un13_lock_15), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_16), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_14), + .COUT(un13_lock_cry_16), + .S0(un13_lock_cry_15_0_S0), + .S1(un13_lock_cry_15_0_S1) +); +defparam un13_lock_cry_15_0.INIT0=16'h500a; +defparam un13_lock_cry_15_0.INIT1=16'h500a; +defparam un13_lock_cry_15_0.INJECT1_0="NO"; +defparam un13_lock_cry_15_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_17_0 ( + .A0(un13_lock_17), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_18), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_16), + .COUT(un13_lock_cry_18), + .S0(un13_lock_cry_17_0_S0), + .S1(un13_lock_cry_17_0_S1) +); +defparam un13_lock_cry_17_0.INIT0=16'h500a; +defparam un13_lock_cry_17_0.INIT1=16'h500a; +defparam un13_lock_cry_17_0.INJECT1_0="NO"; +defparam un13_lock_cry_17_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_19_0 ( + .A0(un13_lock_19), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_20), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_18), + .COUT(un13_lock_cry_20), + .S0(un13_lock_cry_19_0_S0), + .S1(un13_lock_cry_19_0_S1) +); +defparam un13_lock_cry_19_0.INIT0=16'h500a; +defparam un13_lock_cry_19_0.INIT1=16'h500a; +defparam un13_lock_cry_19_0.INJECT1_0="NO"; +defparam un13_lock_cry_19_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_21_0 ( + .A0(un13_lock_21), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_20), + .COUT(un13_lock_cry_21_0_COUT), + .S0(un13_lock_cry_21_0_S0), + .S1(un13_lock_cry_21_i) +); +defparam un13_lock_cry_21_0.INIT0=16'h500f; +defparam un13_lock_cry_21_0.INIT1=16'ha003; +defparam un13_lock_cry_21_0.INJECT1_0="NO"; +defparam un13_lock_cry_21_0.INJECT1_1="NO"; + CCU2C un13_unlock_cry_0_0 ( + .A0(VCC), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_0), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(N_1), + .COUT(un13_unlock_cry_0), + .S0(un13_unlock_cry_0_0_S0), + .S1(un13_unlock_cry_0_0_S1) +); +defparam un13_unlock_cry_0_0.INIT0=16'h5003; +defparam un13_unlock_cry_0_0.INIT1=16'h500a; +defparam un13_unlock_cry_0_0.INJECT1_0="NO"; +defparam un13_unlock_cry_0_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_1_0 ( + .A0(un13_lock_1), + .B0(rdiff_comp_lock[2]), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_2), + .B1(rdiff_comp_lock[2]), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_0), + .COUT(un13_unlock_cry_2), + .S0(un13_unlock_cry_1_0_S0), + .S1(un13_unlock_cry_1_0_S1) +); +defparam un13_unlock_cry_1_0.INIT0=16'h900a; +defparam un13_unlock_cry_1_0.INIT1=16'h900a; +defparam un13_unlock_cry_1_0.INJECT1_0="NO"; +defparam un13_unlock_cry_1_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_3_0 ( + .A0(un13_lock_3), + .B0(rdiff_comp_lock[2]), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_4), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_2), + .COUT(un13_unlock_cry_4), + .S0(un13_unlock_cry_3_0_S0), + .S1(un13_unlock_cry_3_0_S1) +); +defparam un13_unlock_cry_3_0.INIT0=16'h900a; +defparam un13_unlock_cry_3_0.INIT1=16'h500a; +defparam un13_unlock_cry_3_0.INJECT1_0="NO"; +defparam un13_unlock_cry_3_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_5_0 ( + .A0(un13_lock_5), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_6), + .B1(rdiff_comp_lock[2]), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_4), + .COUT(un13_unlock_cry_6), + .S0(un13_unlock_cry_5_0_S0), + .S1(un13_unlock_cry_5_0_S1) +); +defparam un13_unlock_cry_5_0.INIT0=16'h500a; +defparam un13_unlock_cry_5_0.INIT1=16'h900a; +defparam un13_unlock_cry_5_0.INJECT1_0="NO"; +defparam un13_unlock_cry_5_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_7_0 ( + .A0(un13_lock_7), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_8), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_6), + .COUT(un13_unlock_cry_8), + .S0(un13_unlock_cry_7_0_S0), + .S1(un13_unlock_cry_7_0_S1) +); +defparam un13_unlock_cry_7_0.INIT0=16'h500a; +defparam un13_unlock_cry_7_0.INIT1=16'h500a; +defparam un13_unlock_cry_7_0.INJECT1_0="NO"; +defparam un13_unlock_cry_7_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_9_0 ( + .A0(un13_lock_9), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_10), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_8), + .COUT(un13_unlock_cry_10), + .S0(un13_unlock_cry_9_0_S0), + .S1(un13_unlock_cry_9_0_S1) +); +defparam un13_unlock_cry_9_0.INIT0=16'h500a; +defparam un13_unlock_cry_9_0.INIT1=16'h500a; +defparam un13_unlock_cry_9_0.INJECT1_0="NO"; +defparam un13_unlock_cry_9_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_11_0 ( + .A0(un13_lock_11), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_12), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_10), + .COUT(un13_unlock_cry_12), + .S0(un13_unlock_cry_11_0_S0), + .S1(un13_unlock_cry_11_0_S1) +); +defparam un13_unlock_cry_11_0.INIT0=16'h500a; +defparam un13_unlock_cry_11_0.INIT1=16'h500a; +defparam un13_unlock_cry_11_0.INJECT1_0="NO"; +defparam un13_unlock_cry_11_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_13_0 ( + .A0(un13_lock_13), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_14), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_12), + .COUT(un13_unlock_cry_14), + .S0(un13_unlock_cry_13_0_S0), + .S1(un13_unlock_cry_13_0_S1) +); +defparam un13_unlock_cry_13_0.INIT0=16'h500a; +defparam un13_unlock_cry_13_0.INIT1=16'h500a; +defparam un13_unlock_cry_13_0.INJECT1_0="NO"; +defparam un13_unlock_cry_13_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_15_0 ( + .A0(un13_lock_15), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_16), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_14), + .COUT(un13_unlock_cry_16), + .S0(un13_unlock_cry_15_0_S0), + .S1(un13_unlock_cry_15_0_S1) +); +defparam un13_unlock_cry_15_0.INIT0=16'h500a; +defparam un13_unlock_cry_15_0.INIT1=16'h500a; +defparam un13_unlock_cry_15_0.INJECT1_0="NO"; +defparam un13_unlock_cry_15_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_17_0 ( + .A0(un13_lock_17), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_18), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_16), + .COUT(un13_unlock_cry_18), + .S0(un13_unlock_cry_17_0_S0), + .S1(un13_unlock_cry_17_0_S1) +); +defparam un13_unlock_cry_17_0.INIT0=16'h500a; +defparam un13_unlock_cry_17_0.INIT1=16'h500a; +defparam un13_unlock_cry_17_0.INJECT1_0="NO"; +defparam un13_unlock_cry_17_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_19_0 ( + .A0(un13_lock_19), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_20), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_18), + .COUT(un13_unlock_cry_20), + .S0(un13_unlock_cry_19_0_S0), + .S1(un13_unlock_cry_19_0_S1) +); +defparam un13_unlock_cry_19_0.INIT0=16'h500a; +defparam un13_unlock_cry_19_0.INIT1=16'h500a; +defparam un13_unlock_cry_19_0.INJECT1_0="NO"; +defparam un13_unlock_cry_19_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_21_0 ( + .A0(un13_lock_21), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_20), + .COUT(un13_unlock_cry_21_0_COUT), + .S0(un13_unlock_cry_21_0_S0), + .S1(un13_unlock_cry_21) +); +defparam un13_unlock_cry_21_0.INIT0=16'h500f; +defparam un13_unlock_cry_21_0.INIT1=16'h5003; +defparam un13_unlock_cry_21_0.INJECT1_0="NO"; +defparam un13_unlock_cry_21_0.INJECT1_1="NO"; +//@16:1801 +//@8:424 +// @16:1211 + sync_0s phb_sync_inst ( + .phb(phb), + .rhb_sync(rhb_sync), + .sli_rst(sli_rst), + .pll_refclki(pll_refclki) +); +// @16:1220 + sync_0s_6 rtc_sync_inst ( + .rtc_pul(rtc_pul), + .ppul_sync(ppul_sync), + .sli_rst(sli_rst), + .tx_pclk(tx_pclk) +); +// @16:1228 + sync_0s_0 pdiff_sync_inst ( + .ppul_sync(ppul_sync), + .pdiff_sync(pdiff_sync), + .sli_rst(sli_rst), + .pll_refclki(pll_refclki) +); + VHI VCC_0 ( + .Z(VCC) +); +// @16:865 + VLO GND_cZ ( + .Z(GND) +); +endmodule /* sgmii_ecp5sll_core_Z1_layer1 */ + +module sgmii_ecp5rsl_core_Z2_layer1 ( + rx_pcs_rst_c, + tx_pcs_rst_c, + tx_serdes_rst_c, + serdes_rst_dual_c, + rsl_tx_pcs_rst_c, + rsl_rx_serdes_rst_c, + rsl_serdes_rst_dual_c, + rsl_tx_serdes_rst_c, + rsl_tx_rdy, + pll_lock_i, + pll_refclki, + rsl_rx_rdy, + rsl_rst, + rxrefclk, + rsl_disable, + rx_serdes_rst_c, + rsl_rx_pcs_rst_c, + rst_dual_c, + rx_cdr_lol_s, + rx_los_low_s +) +; +input rx_pcs_rst_c ; +input tx_pcs_rst_c ; +input tx_serdes_rst_c ; +input serdes_rst_dual_c ; +output rsl_tx_pcs_rst_c ; +output rsl_rx_serdes_rst_c ; +output rsl_serdes_rst_dual_c ; +output rsl_tx_serdes_rst_c ; +output rsl_tx_rdy ; +input pll_lock_i ; +input pll_refclki ; +output rsl_rx_rdy ; +input rsl_rst ; +input rxrefclk ; +input rsl_disable ; +input rx_serdes_rst_c ; +output rsl_rx_pcs_rst_c ; +input rst_dual_c ; +input rx_cdr_lol_s ; +input rx_los_low_s ; +wire rx_pcs_rst_c ; +wire tx_pcs_rst_c ; +wire tx_serdes_rst_c ; +wire serdes_rst_dual_c ; +wire rsl_tx_pcs_rst_c ; +wire rsl_rx_serdes_rst_c ; +wire rsl_serdes_rst_dual_c ; +wire rsl_tx_serdes_rst_c ; +wire rsl_tx_rdy ; +wire pll_lock_i ; +wire pll_refclki ; +wire rsl_rx_rdy ; +wire rsl_rst ; +wire rxrefclk ; +wire rsl_disable ; +wire rx_serdes_rst_c ; +wire rsl_rx_pcs_rst_c ; +wire rst_dual_c ; +wire rx_cdr_lol_s ; +wire rx_los_low_s ; +wire [1:0] rxs_cnt; +wire [1:0] rxs_cnt_3; +wire [0:0] rxpr_appd_RNO; +wire [2:0] plol0_cnt; +wire [2:0] plol0_cnt_3; +wire [0:0] rxsr_appd; +wire [1:0] rxs_cnt_QN; +wire [3:0] rlos_db_cnt; +wire [3:0] rlos_db_cnt_QN; +wire [17:0] rlols0_cnt_s; +wire [17:0] rlols0_cnt; +wire [17:0] rlols0_cnt_QN; +wire [3:0] rlol_db_cnt; +wire [3:0] rlol_db_cnt_QN; +wire [18:0] rlol1_cnt_s; +wire [18:0] rlol1_cnt; +wire [18:0] rlol1_cnt_QN; +wire [11:0] rxr_wt_cnt_s; +wire [11:0] rxr_wt_cnt; +wire [11:0] rxr_wt_cnt_QN; +wire [0:0] rxsr_appd_QN; +wire [0:0] rxpr_appd; +wire [0:0] rxpr_appd_QN; +wire [1:0] txs_cnt; +wire [1:0] txs_cnt_QN; +wire [1:1] txs_cnt_RNO; +wire [1:0] txp_cnt; +wire [1:0] txp_cnt_QN; +wire [1:1] txp_cnt_RNO; +wire [19:0] plol_cnt_s; +wire [19:0] plol_cnt; +wire [19:0] plol_cnt_QN; +wire [2:0] plol0_cnt_QN; +wire [11:0] txr_wt_cnt_s; +wire [11:0] txr_wt_cnt; +wire [11:0] txr_wt_cnt_QN; +wire [0:0] txpr_appd; +wire [0:0] txpr_appd_QN; +wire [0:0] un1_rlol_db_cnt_zero; +wire [0:0] un1_rlos_db_cnt_zero; +wire [0:0] un1_rlol_db_cnt_zero_bm; +wire [0:0] un1_rlol_db_cnt_zero_am; +wire [0:0] un1_rlos_db_cnt_zero_bm; +wire [0:0] un1_rlos_db_cnt_zero_am; +wire [16:0] rlol1_cnt_cry; +wire [0:0] rlol1_cnt_cry_0_S0; +wire [17:17] rlol1_cnt_cry_0_COUT; +wire [16:0] rlols0_cnt_cry; +wire [0:0] rlols0_cnt_cry_0_S0; +wire [17:17] rlols0_cnt_s_0_COUT; +wire [17:17] rlols0_cnt_s_0_S1; +wire [10:0] txr_wt_cnt_cry; +wire [0:0] txr_wt_cnt_cry_0_S0; +wire [11:11] txr_wt_cnt_s_0_COUT; +wire [11:11] txr_wt_cnt_s_0_S1; +wire [10:0] rxr_wt_cnt_cry; +wire [0:0] rxr_wt_cnt_cry_0_S0; +wire [11:11] rxr_wt_cnt_s_0_COUT; +wire [11:11] rxr_wt_cnt_s_0_S1; +wire [18:0] plol_cnt_cry; +wire [0:0] plol_cnt_cry_0_S0; +wire [19:19] plol_cnt_s_0_COUT; +wire [19:19] plol_cnt_s_0_S1; +wire rxs_rst ; +wire VCC ; +wire dual_or_rserd_rst ; +wire plol0_cnt9 ; +wire waita_plol0 ; +wire rlos_db_p1 ; +wire rlos_db ; +wire rxp_rst25 ; +wire rlol_db ; +wire un1_rui_rst_dual_c_1_1 ; +wire rx_all_well ; +wire un3_rx_all_well_2 ; +wire un17_rxr_wt_tc ; +wire un3_rx_all_well_1 ; +wire rx_any_rst ; +wire rxr_wt_cnt9 ; +wire un1_rui_rst_dual_c_1_i ; +wire rlol1_cnt_tc_1 ; +wire rlol1_cnt_scalar ; +wire rxr_wt_en ; +wire rxr_wt_cnte ; +wire rlols0_cnt_tc_1 ; +wire un2_rlos_redge_1_i ; +wire un18_txr_wt_tc ; +wire tx_any_rst ; +wire pll_lol_p2 ; +wire un2_plol_fedge_5_i ; +wire N_2124_0 ; +wire waita_rlols06 ; +wire un1_rlols0_cnt_tc ; +wire waita_rlols0 ; +wire waita_rlols0_QN ; +wire wait_calib_RNO ; +wire un1_rlos_fedge_1 ; +wire wait_calib ; +wire wait_calib_QN ; +wire rxs_rst6 ; +wire un1_rxs_cnt_tc ; +wire rxs_rst_QN ; +wire rxp_rst2 ; +wire rxp_rst2_QN ; +wire rlos_p1 ; +wire rlos_p2 ; +wire rlos_p2_QN ; +wire rlos_p1_QN ; +wire rlos_db_p1_QN ; +wire rlos_db_cnt_axb_0 ; +wire rlos_db_cnt_cry_1_0_S0 ; +wire rlos_db_cnt_cry_1_0_S1 ; +wire rlos_db_cnt_s_3_0_S0 ; +wire un1_rlos_db_cnt_max ; +wire rlos_db_QN ; +wire rlols0_cnte ; +wire rlol_p1 ; +wire rlol_p2 ; +wire rlol_p2_QN ; +wire rlol_p1_QN ; +wire rlol_db_p1 ; +wire rlol_db_p1_QN ; +wire rlol_db_cnt_axb_0 ; +wire rlol_db_cnt_cry_1_0_S0 ; +wire rlol_db_cnt_cry_1_0_S1 ; +wire rlol_db_cnt_s_3_0_S0 ; +wire un1_rlol_db_cnt_max ; +wire rlol_db_QN ; +wire rlol1_cnte ; +wire rxsdr_appd_2 ; +wire rxsdr_appd_4 ; +wire rxsdr_appd_QN ; +wire un1_dual_or_rserd_rst_2_i ; +wire rxr_wt_en_QN ; +wire rxdpr_appd ; +wire rxdpr_appd_QN ; +wire ruo_rx_rdyr_QN ; +wire un2_rdo_serdes_rst_dual_c_2_i ; +wire plol_fedge ; +wire un1_plol0_cnt_tc_1_i ; +wire waita_plol0_QN ; +wire un1_plol_cnt_tc ; +wire un2_plol_cnt_tc ; +wire txs_rst ; +wire txs_rst_QN ; +wire N_10_i ; +wire un9_plol0_cnt_tc ; +wire un1_plol0_cnt_tc_1 ; +wire txp_rst ; +wire txp_rst_QN ; +wire N_11_i ; +wire pll_lol_p3 ; +wire pll_lol_p3_QN ; +wire pll_lol_p1 ; +wire pll_lol_p2_QN ; +wire pll_lol_p1_QN ; +wire txsr_appd_2 ; +wire txsr_appd_4 ; +wire txsr_appd_QN ; +wire un1_dual_or_serd_rst_1_1 ; +wire un1_dual_or_serd_rst_1_i ; +wire txr_wt_en ; +wire txr_wt_en_QN ; +wire txr_wt_cnte ; +wire un2_plol_fedge_2 ; +wire un2_plol_fedge_3_i ; +wire txdpr_appd ; +wire txdpr_appd_QN ; +wire un2_plol_fedge_5_1 ; +wire ruo_tx_rdyr_QN ; +wire un2_plol_fedge_8_i ; +wire rlos_redge ; +wire rlols0_cnt11_0 ; +wire plol_cnt_scalar ; +wire rlols0_cnt_scalar ; +wire un8_rxs_cnt_tc ; +wire un1_txsr_appd ; +wire un3_rx_all_well_2_1 ; +wire un1_rxsdr_or_sr_appd ; +wire un2_rdo_serdes_rst_dual_c_1_1 ; +wire rlols0_cnt_tc_1_10 ; +wire rlols0_cnt_tc_1_11 ; +wire rlols0_cnt_tc_1_12 ; +wire rlols0_cnt_tc_1_13 ; +wire un1_plol_cnt_tc_11 ; +wire un1_plol_cnt_tc_12 ; +wire un1_plol_cnt_tc_13 ; +wire un1_plol_cnt_tc_14 ; +wire rlol1_cnt_tc_1_11 ; +wire rlol1_cnt_tc_1_12 ; +wire rlol1_cnt_tc_1_13 ; +wire rlol1_cnt_tc_1_14 ; +wire CO0_2 ; +wire un18_txr_wt_tc_6 ; +wire un18_txr_wt_tc_7 ; +wire un18_txr_wt_tc_8 ; +wire un17_rxr_wt_tc_6 ; +wire un17_rxr_wt_tc_7 ; +wire un17_rxr_wt_tc_8 ; +wire rlols0_cnt_tc_1_9 ; +wire un1_plol_cnt_tc_10 ; +wire rlol1_cnt_tc_1_10 ; +wire txr_wt_cnt_scalar ; +wire rlos_db_cnt_cry_0 ; +wire rlos_db_cnt_cry_0_0_S0 ; +wire rlos_db_cnt_cry_0_0_S1 ; +wire rlos_db_cnt_cry_2 ; +wire rlos_db_cnt_s_3_0_COUT ; +wire rlos_db_cnt_s_3_0_S1 ; +wire rlol_db_cnt_cry_0 ; +wire rlol_db_cnt_cry_0_0_S0 ; +wire rlol_db_cnt_cry_0_0_S1 ; +wire rlol_db_cnt_cry_2 ; +wire rlol_db_cnt_s_3_0_COUT ; +wire rlol_db_cnt_s_3_0_S1 ; +wire GND ; +wire N_1 ; +wire N_2 ; +wire N_3 ; +wire N_4 ; +wire N_5 ; +wire N_6 ; +wire N_7 ; + LUT4 \genblk2.rxs_cnt_RNO[0] ( + .A(rxs_rst), + .B(rxs_cnt[0]), + .C(rxs_cnt[1]), + .D(VCC), + .Z(rxs_cnt_3[0]) +); +defparam \genblk2.rxs_cnt_RNO[0] .init=16'h2626; + LUT4 \genblk2.genblk3.lfor[0].rxpr_appd_RNO[0] ( + .A(dual_or_rserd_rst), + .B(rx_los_low_s), + .C(rx_cdr_lol_s), + .D(VCC), + .Z(rxpr_appd_RNO[0]) +); +defparam \genblk2.genblk3.lfor[0].rxpr_appd_RNO[0] .init=16'h0101; + LUT4 \genblk1.plol0_cnt_RNO[1] ( + .A(plol0_cnt[1]), + .B(plol0_cnt9), + .C(waita_plol0), + .D(plol0_cnt[0]), + .Z(plol0_cnt_3[1]) +); +defparam \genblk1.plol0_cnt_RNO[1] .init=16'h1222; + LUT4 \genblk2.rxp_rst2_RNO ( + .A(dual_or_rserd_rst), + .B(rlos_db_p1), + .C(rlos_db), + .D(VCC), + .Z(rxp_rst25) +); +defparam \genblk2.rxp_rst2_RNO .init=16'hBABA; + LUT4 \genblk2.genblk3.rxdpr_appd_RNO ( + .A(dual_or_rserd_rst), + .B(rlos_db), + .C(rlol_db), + .D(VCC), + .Z(un1_rui_rst_dual_c_1_1) +); +defparam \genblk2.genblk3.rxdpr_appd_RNO .init=16'h0101; + LUT4 \genblk2.genblk3.ruo_rx_rdyr_RNO ( + .A(rx_all_well), + .B(rst_dual_c), + .C(rsl_rx_pcs_rst_c), + .D(dual_or_rserd_rst), + .Z(un3_rx_all_well_2) +); +defparam \genblk2.genblk3.ruo_rx_rdyr_RNO .init=16'h0002; + LUT4 \genblk2.genblk3.rxr_wt_en_RNO ( + .A(un17_rxr_wt_tc), + .B(rx_all_well), + .C(dual_or_rserd_rst), + .D(VCC), + .Z(un3_rx_all_well_1) +); +defparam \genblk2.genblk3.rxr_wt_en_RNO .init=16'h0404; + LUT4 rx_any_rst_RNIFD021 ( + .A(rx_any_rst), + .B(un17_rxr_wt_tc), + .C(rlos_db), + .D(rlol_db), + .Z(rxr_wt_cnt9) +); +defparam rx_any_rst_RNIFD021.init=16'hFFFE; + LUT4 \genblk2.genblk3.rxdpr_appd_RNO_0 ( + .A(rst_dual_c), + .B(rx_all_well), + .C(dual_or_rserd_rst), + .D(VCC), + .Z(un1_rui_rst_dual_c_1_i) +); +defparam \genblk2.genblk3.rxdpr_appd_RNO_0 .init=16'hFBFB; + LUT4 \genblk2.rxs_rst_RNIS0OP ( + .A(rlol1_cnt_tc_1), + .B(rxs_rst), + .C(rlos_db_p1), + .D(rlos_db), + .Z(rlol1_cnt_scalar) +); +defparam \genblk2.rxs_rst_RNIS0OP .init=16'h1011; + LUT4 \genblk2.genblk3.rxr_wt_en_RNIQF0H1 ( + .A(rxr_wt_en), + .B(rx_any_rst), + .C(rx_all_well), + .D(un17_rxr_wt_tc), + .Z(rxr_wt_cnte) +); +defparam \genblk2.genblk3.rxr_wt_en_RNIQF0H1 .init=16'hFFEF; + LUT4 \genblk2.rxp_rst2_RNO_0 ( + .A(rlols0_cnt_tc_1), + .B(dual_or_rserd_rst), + .C(rlos_db_p1), + .D(rlos_db), + .Z(un2_rlos_redge_1_i) +); +defparam \genblk2.rxp_rst2_RNO_0 .init=16'hEFEE; + LUT4 \genblk1.genblk2.ruo_tx_rdyr_RNO ( + .A(un18_txr_wt_tc), + .B(tx_any_rst), + .C(pll_lol_p2), + .D(VCC), + .Z(un2_plol_fedge_5_i) +); +defparam \genblk1.genblk2.ruo_tx_rdyr_RNO .init=16'hFEFE; + LUT4 \genblk2.genblk3.lfor[0].rxsr_appd_RNO[0] ( + .A(rxsr_appd[0]), + .B(rx_serdes_rst_c), + .C(rxs_rst), + .D(rsl_disable), + .Z(N_2124_0) +); +defparam \genblk2.genblk3.lfor[0].rxsr_appd_RNO[0] .init=16'hEEFE; +// @16:759 + FD1P3DX \genblk2.waita_rlols0 ( + .D(waita_rlols06), + .SP(un1_rlols0_cnt_tc), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(waita_rlols0) +); +// @16:656 + FD1P3BX \genblk2.wait_calib ( + .D(wait_calib_RNO), + .SP(un1_rlos_fedge_1), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(wait_calib) +); +// @16:694 + FD1P3DX \genblk2.rxs_rst ( + .D(rxs_rst6), + .SP(un1_rxs_cnt_tc), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxs_rst) +); +// @16:694 + FD1S3DX \genblk2.rxs_cnt[0] ( + .D(rxs_cnt_3[0]), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxs_cnt[0]) +); +// @16:694 + FD1S3DX \genblk2.rxs_cnt[1] ( + .D(rxs_cnt_3[1]), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxs_cnt[1]) +); +// @16:806 + FD1P3BX \genblk2.rxp_rst2 ( + .D(rxp_rst25), + .SP(un2_rlos_redge_1_i), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rxp_rst2) +); +// @16:567 + FD1S3DX \genblk2.rlos_p2 ( + .D(rlos_p1), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlos_p2) +); +// @16:567 + FD1S3DX \genblk2.rlos_p1 ( + .D(rx_los_low_s), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlos_p1) +); +// @16:567 + FD1S3BX \genblk2.rlos_db_p1 ( + .D(rlos_db), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlos_db_p1) +); +// @16:640 + FD1S3BX \genblk2.rlos_db_cnt[0] ( + .D(rlos_db_cnt_axb_0), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlos_db_cnt[0]) +); +// @16:640 + FD1S3BX \genblk2.rlos_db_cnt[1] ( + .D(rlos_db_cnt_cry_1_0_S0), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlos_db_cnt[1]) +); +// @16:640 + FD1S3BX \genblk2.rlos_db_cnt[2] ( + .D(rlos_db_cnt_cry_1_0_S1), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlos_db_cnt[2]) +); +// @16:640 + FD1S3BX \genblk2.rlos_db_cnt[3] ( + .D(rlos_db_cnt_s_3_0_S0), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlos_db_cnt[3]) +); +// @16:649 + FD1P3BX \genblk2.rlos_db ( + .D(rlos_db_cnt[1]), + .SP(un1_rlos_db_cnt_max), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlos_db) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[0] ( + .D(rlols0_cnt_s[0]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[0]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[1] ( + .D(rlols0_cnt_s[1]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[1]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[2] ( + .D(rlols0_cnt_s[2]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[2]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[3] ( + .D(rlols0_cnt_s[3]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[3]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[4] ( + .D(rlols0_cnt_s[4]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[4]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[5] ( + .D(rlols0_cnt_s[5]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[5]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[6] ( + .D(rlols0_cnt_s[6]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[6]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[7] ( + .D(rlols0_cnt_s[7]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[7]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[8] ( + .D(rlols0_cnt_s[8]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[8]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[9] ( + .D(rlols0_cnt_s[9]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[9]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[10] ( + .D(rlols0_cnt_s[10]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[10]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[11] ( + .D(rlols0_cnt_s[11]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[11]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[12] ( + .D(rlols0_cnt_s[12]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[12]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[13] ( + .D(rlols0_cnt_s[13]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[13]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[14] ( + .D(rlols0_cnt_s[14]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[14]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[15] ( + .D(rlols0_cnt_s[15]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[15]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[16] ( + .D(rlols0_cnt_s[16]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[16]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[17] ( + .D(rlols0_cnt_s[17]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[17]) +); +// @16:567 + FD1S3DX \genblk2.rlol_p2 ( + .D(rlol_p1), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol_p2) +); +// @16:567 + FD1S3DX \genblk2.rlol_p1 ( + .D(rx_cdr_lol_s), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol_p1) +); +// @16:567 + FD1S3BX \genblk2.rlol_db_p1 ( + .D(rlol_db), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlol_db_p1) +); +// @16:624 + FD1S3BX \genblk2.rlol_db_cnt[0] ( + .D(rlol_db_cnt_axb_0), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlol_db_cnt[0]) +); +// @16:624 + FD1S3BX \genblk2.rlol_db_cnt[1] ( + .D(rlol_db_cnt_cry_1_0_S0), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlol_db_cnt[1]) +); +// @16:624 + FD1S3BX \genblk2.rlol_db_cnt[2] ( + .D(rlol_db_cnt_cry_1_0_S1), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlol_db_cnt[2]) +); +// @16:624 + FD1S3BX \genblk2.rlol_db_cnt[3] ( + .D(rlol_db_cnt_s_3_0_S0), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlol_db_cnt[3]) +); +// @16:633 + FD1P3BX \genblk2.rlol_db ( + .D(rlol_db_cnt[1]), + .SP(un1_rlol_db_cnt_max), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlol_db) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[0] ( + .D(rlol1_cnt_s[0]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[0]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[1] ( + .D(rlol1_cnt_s[1]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[1]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[2] ( + .D(rlol1_cnt_s[2]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[2]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[3] ( + .D(rlol1_cnt_s[3]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[3]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[4] ( + .D(rlol1_cnt_s[4]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[4]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[5] ( + .D(rlol1_cnt_s[5]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[5]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[6] ( + .D(rlol1_cnt_s[6]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[6]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[7] ( + .D(rlol1_cnt_s[7]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[7]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[8] ( + .D(rlol1_cnt_s[8]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[8]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[9] ( + .D(rlol1_cnt_s[9]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[9]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[10] ( + .D(rlol1_cnt_s[10]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[10]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[11] ( + .D(rlol1_cnt_s[11]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[11]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[12] ( + .D(rlol1_cnt_s[12]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[12]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[13] ( + .D(rlol1_cnt_s[13]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[13]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[14] ( + .D(rlol1_cnt_s[14]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[14]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[15] ( + .D(rlol1_cnt_s[15]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[15]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[16] ( + .D(rlol1_cnt_s[16]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[16]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[17] ( + .D(rlol1_cnt_s[17]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[17]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[18] ( + .D(rlol1_cnt_s[18]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[18]) +); +// @16:865 + FD1S3BX \genblk2.genblk3.rxsdr_appd ( + .D(rxsdr_appd_2), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rxsdr_appd_4) +); +// @16:900 + FD1P3DX \genblk2.genblk3.rxr_wt_en ( + .D(un3_rx_all_well_1), + .SP(un1_dual_or_rserd_rst_2_i), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_en) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[0] ( + .D(rxr_wt_cnt_s[0]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[0]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[1] ( + .D(rxr_wt_cnt_s[1]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[1]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[2] ( + .D(rxr_wt_cnt_s[2]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[2]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[3] ( + .D(rxr_wt_cnt_s[3]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[3]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[4] ( + .D(rxr_wt_cnt_s[4]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[4]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[5] ( + .D(rxr_wt_cnt_s[5]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[5]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[6] ( + .D(rxr_wt_cnt_s[6]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[6]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[7] ( + .D(rxr_wt_cnt_s[7]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[7]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[8] ( + .D(rxr_wt_cnt_s[8]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[8]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[9] ( + .D(rxr_wt_cnt_s[9]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[9]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[10] ( + .D(rxr_wt_cnt_s[10]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[10]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[11] ( + .D(rxr_wt_cnt_s[11]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[11]) +); +// @16:871 + FD1P3DX \genblk2.genblk3.rxdpr_appd ( + .D(un1_rui_rst_dual_c_1_1), + .SP(un1_rui_rst_dual_c_1_i), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxdpr_appd) +); +// @16:920 + FD1P3DX \genblk2.genblk3.ruo_rx_rdyr ( + .D(un3_rx_all_well_2), + .SP(rxr_wt_cnt9), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rsl_rx_rdy) +); +// @16:882 + FD1S3DX \genblk2.genblk3.lfor[0].rxsr_appd[0] ( + .D(N_2124_0), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxsr_appd[0]) +); +// @16:888 + FD1P3DX \genblk2.genblk3.lfor[0].rxpr_appd[0] ( + .D(rxpr_appd_RNO[0]), + .SP(un2_rdo_serdes_rst_dual_c_2_i), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxpr_appd[0]) +); +// @16:443 + FD1P3DX \genblk1.waita_plol0 ( + .D(plol_fedge), + .SP(un1_plol0_cnt_tc_1_i), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(waita_plol0) +); +// @16:422 + FD1P3DX \genblk1.txs_rst ( + .D(un1_plol_cnt_tc), + .SP(un2_plol_cnt_tc), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txs_rst) +); +// @16:422 + FD1S3DX \genblk1.txs_cnt[0] ( + .D(N_10_i), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txs_cnt[0]) +); +// @16:422 + FD1S3DX \genblk1.txs_cnt[1] ( + .D(txs_cnt_RNO[1]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txs_cnt[1]) +); +// @16:461 + FD1P3DX \genblk1.txp_rst ( + .D(un9_plol0_cnt_tc), + .SP(un1_plol0_cnt_tc_1), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txp_rst) +); +// @16:461 + FD1S3DX \genblk1.txp_cnt[0] ( + .D(N_11_i), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txp_cnt[0]) +); +// @16:461 + FD1S3DX \genblk1.txp_cnt[1] ( + .D(txp_cnt_RNO[1]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txp_cnt[1]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[0] ( + .D(plol_cnt_s[0]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[0]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[1] ( + .D(plol_cnt_s[1]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[1]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[2] ( + .D(plol_cnt_s[2]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[2]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[3] ( + .D(plol_cnt_s[3]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[3]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[4] ( + .D(plol_cnt_s[4]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[4]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[5] ( + .D(plol_cnt_s[5]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[5]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[6] ( + .D(plol_cnt_s[6]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[6]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[7] ( + .D(plol_cnt_s[7]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[7]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[8] ( + .D(plol_cnt_s[8]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[8]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[9] ( + .D(plol_cnt_s[9]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[9]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[10] ( + .D(plol_cnt_s[10]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[10]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[11] ( + .D(plol_cnt_s[11]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[11]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[12] ( + .D(plol_cnt_s[12]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[12]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[13] ( + .D(plol_cnt_s[13]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[13]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[14] ( + .D(plol_cnt_s[14]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[14]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[15] ( + .D(plol_cnt_s[15]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[15]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[16] ( + .D(plol_cnt_s[16]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[16]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[17] ( + .D(plol_cnt_s[17]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[17]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[18] ( + .D(plol_cnt_s[18]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[18]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[19] ( + .D(plol_cnt_s[19]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[19]) +); +// @16:451 + FD1S3DX \genblk1.plol0_cnt[0] ( + .D(plol0_cnt_3[0]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol0_cnt[0]) +); +// @16:451 + FD1S3DX \genblk1.plol0_cnt[1] ( + .D(plol0_cnt_3[1]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol0_cnt[1]) +); +// @16:451 + FD1S3DX \genblk1.plol0_cnt[2] ( + .D(plol0_cnt_3[2]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol0_cnt[2]) +); +// @16:398 + FD1S3DX \genblk1.pll_lol_p3 ( + .D(pll_lol_p2), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(pll_lol_p3) +); +// @16:398 + FD1S3DX \genblk1.pll_lol_p2 ( + .D(pll_lol_p1), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(pll_lol_p2) +); +// @16:398 + FD1S3DX \genblk1.pll_lol_p1 ( + .D(pll_lock_i), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(pll_lol_p1) +); +// @16:492 + FD1S3BX \genblk1.genblk2.txsr_appd ( + .D(txsr_appd_2), + .CK(pll_refclki), + .PD(rsl_rst), + .Q(txsr_appd_4) +); +// @16:519 + FD1P3DX \genblk1.genblk2.txr_wt_en ( + .D(un1_dual_or_serd_rst_1_1), + .SP(un1_dual_or_serd_rst_1_i), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_en) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[0] ( + .D(txr_wt_cnt_s[0]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[0]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[1] ( + .D(txr_wt_cnt_s[1]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[1]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[2] ( + .D(txr_wt_cnt_s[2]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[2]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[3] ( + .D(txr_wt_cnt_s[3]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[3]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[4] ( + .D(txr_wt_cnt_s[4]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[4]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[5] ( + .D(txr_wt_cnt_s[5]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[5]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[6] ( + .D(txr_wt_cnt_s[6]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[6]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[7] ( + .D(txr_wt_cnt_s[7]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[7]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[8] ( + .D(txr_wt_cnt_s[8]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[8]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[9] ( + .D(txr_wt_cnt_s[9]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[9]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[10] ( + .D(txr_wt_cnt_s[10]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[10]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[11] ( + .D(txr_wt_cnt_s[11]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[11]) +); +// @16:498 + FD1P3DX \genblk1.genblk2.txdpr_appd ( + .D(un2_plol_fedge_2), + .SP(un2_plol_fedge_3_i), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txdpr_appd) +); +// @16:537 + FD1P3DX \genblk1.genblk2.ruo_tx_rdyr ( + .D(un2_plol_fedge_5_1), + .SP(un2_plol_fedge_5_i), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(rsl_tx_rdy) +); +// @16:509 + FD1P3DX \genblk1.genblk2.mfor[0].txpr_appd[0] ( + .D(un2_plol_fedge_2), + .SP(un2_plol_fedge_8_i), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txpr_appd[0]) +); +// @16:422 + LUT4 \genblk1.txs_cnt_RNO[0] ( + .A(txs_cnt[0]), + .B(txs_rst), + .C(un1_plol_cnt_tc), + .D(VCC), + .Z(N_10_i) +); +defparam \genblk1.txs_cnt_RNO[0] .init=16'hA6A6; +// @16:434 + LUT4 \genblk1.txs_cnt_RNO[1] ( + .A(txs_cnt[0]), + .B(txs_cnt[1]), + .C(txs_rst), + .D(un1_plol_cnt_tc), + .Z(txs_cnt_RNO[1]) +); +defparam \genblk1.txs_cnt_RNO[1] .init=16'hCC6C; +// @16:519 + LUT4 \genblk1.genblk2.txr_wt_en_RNO ( + .A(txpr_appd[0]), + .B(pll_lol_p2), + .C(un1_dual_or_serd_rst_1_1), + .D(rsl_tx_rdy), + .Z(un1_dual_or_serd_rst_1_i) +); +defparam \genblk1.genblk2.txr_wt_en_RNO .init=16'h0F2F; +// @16:317 + LUT4 \genblk2.rxs_rst6 ( + .A(rlol_db), + .B(rlos_db), + .C(rlol1_cnt_tc_1), + .D(VCC), + .Z(rxs_rst6) +); +defparam \genblk2.rxs_rst6 .init=16'h2020; +// @8:394 + LUT4 \genblk2.wait_calib_RNIKRP81 ( + .A(rxs_rst), + .B(wait_calib), + .C(rlol1_cnt_tc_1), + .D(rlos_redge), + .Z(rlol1_cnte) +); +defparam \genblk2.wait_calib_RNIKRP81 .init=16'hFFFE; +// @8:394 + LUT4 \genblk2.waita_rlols0_RNI266C ( + .A(rlols0_cnt11_0), + .B(waita_rlols0), + .C(rlols0_cnt_tc_1), + .D(VCC), + .Z(rlols0_cnte) +); +defparam \genblk2.waita_rlols0_RNI266C .init=16'hFEFE; +// @16:412 + LUT4 \genblk1.plol_cnt11_i ( + .A(pll_lol_p2), + .B(un1_plol_cnt_tc), + .C(rsl_tx_serdes_rst_c), + .D(VCC), + .Z(plol_cnt_scalar) +); +defparam \genblk1.plol_cnt11_i .init=16'h0202; +// @16:778 + LUT4 \genblk2.rlols0_cnt11_i ( + .A(rlols0_cnt11_0), + .B(rlols0_cnt_tc_1), + .C(VCC), + .D(VCC), + .Z(rlols0_cnt_scalar) +); +defparam \genblk2.rlols0_cnt11_i .init=16'h1111; +// @16:317 + LUT4 \genblk2.un1_rxs_cnt_tc ( + .A(rlol_db), + .B(rlos_db), + .C(un8_rxs_cnt_tc), + .D(rlol1_cnt_tc_1), + .Z(un1_rxs_cnt_tc) +); +defparam \genblk2.un1_rxs_cnt_tc .init=16'hFEFC; +// @8:394 + LUT4 \genblk2.wait_calib_RNO ( + .A(rlol_db), + .B(rlos_db), + .C(rlol1_cnt_tc_1), + .D(VCC), + .Z(wait_calib_RNO) +); +defparam \genblk2.wait_calib_RNO .init=16'hA3A3; +// @16:509 + LUT4 \genblk1.genblk2.mfor[0].txpr_appd_RNO[0] ( + .A(un1_txsr_appd), + .B(pll_lol_p2), + .C(rsl_serdes_rst_dual_c), + .D(rsl_tx_serdes_rst_c), + .Z(un2_plol_fedge_8_i) +); +defparam \genblk1.genblk2.mfor[0].txpr_appd_RNO[0] .init=16'hFFFE; +// @16:900 + LUT4 \genblk2.genblk3.rxr_wt_en_RNO_0 ( + .A(dual_or_rserd_rst), + .B(un3_rx_all_well_2_1), + .C(un17_rxr_wt_tc), + .D(rx_all_well), + .Z(un1_dual_or_rserd_rst_2_i) +); +defparam \genblk2.genblk3.rxr_wt_en_RNO_0 .init=16'hFEFF; +// @16:888 + LUT4 \genblk2.genblk3.lfor[0].rxpr_appd_RNO_0[0] ( + .A(un1_rxsdr_or_sr_appd), + .B(un2_rdo_serdes_rst_dual_c_1_1), + .C(rsl_rx_serdes_rst_c), + .D(rsl_serdes_rst_dual_c), + .Z(un2_rdo_serdes_rst_dual_c_2_i) +); +defparam \genblk2.genblk3.lfor[0].rxpr_appd_RNO_0[0] .init=16'hFFFB; +// @16:259 + LUT4 \genblk1.un2_plol_cnt_tc ( + .A(txs_cnt[0]), + .B(txs_cnt[1]), + .C(un1_plol_cnt_tc), + .D(VCC), + .Z(un2_plol_cnt_tc) +); +defparam \genblk1.un2_plol_cnt_tc .init=16'hF8F8; +// @8:394 + LUT4 \genblk1.genblk2.txr_wt_en_RNICEBT ( + .A(txr_wt_en), + .B(un18_txr_wt_tc), + .C(tx_any_rst), + .D(VCC), + .Z(txr_wt_cnte) +); +defparam \genblk1.genblk2.txr_wt_en_RNICEBT .init=16'hFEFE; +// @16:322 + LUT4 \genblk2.un1_rlos_fedge_1 ( + .A(rlos_db), + .B(rlos_db_p1), + .C(rlol1_cnt_tc_1), + .D(VCC), + .Z(un1_rlos_fedge_1) +); +defparam \genblk2.un1_rlos_fedge_1 .init=16'hF6F6; +// @16:340 + LUT4 \genblk2.un1_rlols0_cnt_tc ( + .A(rlols0_cnt11_0), + .B(waita_rlols06), + .C(rlols0_cnt_tc_1), + .D(VCC), + .Z(un1_rlols0_cnt_tc) +); +defparam \genblk2.un1_rlols0_cnt_tc .init=16'hFEFE; +// @16:498 + LUT4 \genblk1.genblk2.txdpr_appd_RNO ( + .A(pll_lol_p2), + .B(rsl_serdes_rst_dual_c), + .C(rsl_tx_serdes_rst_c), + .D(rst_dual_c), + .Z(un2_plol_fedge_3_i) +); +defparam \genblk1.genblk2.txdpr_appd_RNO .init=16'hFFFE; +// @16:461 + LUT4 \genblk1.txp_cnt_RNO[0] ( + .A(txp_cnt[0]), + .B(txp_rst), + .C(un9_plol0_cnt_tc), + .D(VCC), + .Z(N_11_i) +); +defparam \genblk1.txp_cnt_RNO[0] .init=16'hA6A6; +// @16:282 + LUT4 un2_plol_fedge_5_1_cZ ( + .A(pll_lol_p2), + .B(tx_any_rst), + .C(VCC), + .D(VCC), + .Z(un2_plol_fedge_5_1) +); +defparam un2_plol_fedge_5_1_cZ.init=16'h1111; +// @16:522 + LUT4 un1_dual_or_serd_rst_1_1_cZ ( + .A(un18_txr_wt_tc), + .B(rsl_serdes_rst_dual_c), + .C(rsl_tx_serdes_rst_c), + .D(VCC), + .Z(un1_dual_or_serd_rst_1_1) +); +defparam un1_dual_or_serd_rst_1_1_cZ.init=16'h0101; +// @16:473 + LUT4 \genblk1.txp_cnt_RNO[1] ( + .A(txp_cnt[0]), + .B(txp_cnt[1]), + .C(txp_rst), + .D(un9_plol0_cnt_tc), + .Z(txp_cnt_RNO[1]) +); +defparam \genblk1.txp_cnt_RNO[1] .init=16'hCC6C; +// @16:388 + LUT4 rlols0_cnt_tc_1_cZ ( + .A(rlols0_cnt_tc_1_10), + .B(rlols0_cnt_tc_1_11), + .C(rlols0_cnt_tc_1_12), + .D(rlols0_cnt_tc_1_13), + .Z(rlols0_cnt_tc_1) +); +defparam rlols0_cnt_tc_1_cZ.init=16'h8000; +// @16:386 + LUT4 \genblk1.un1_plol_cnt_tc ( + .A(un1_plol_cnt_tc_11), + .B(un1_plol_cnt_tc_12), + .C(un1_plol_cnt_tc_13), + .D(un1_plol_cnt_tc_14), + .Z(un1_plol_cnt_tc) +); +defparam \genblk1.un1_plol_cnt_tc .init=16'h8000; +// @16:387 + LUT4 rlol1_cnt_tc_1_cZ ( + .A(rlol1_cnt_tc_1_11), + .B(rlol1_cnt_tc_1_12), + .C(rlol1_cnt_tc_1_13), + .D(rlol1_cnt_tc_1_14), + .Z(rlol1_cnt_tc_1) +); +defparam rlol1_cnt_tc_1_cZ.init=16'h8000; +// @16:625 + LUT4 \un1_genblk2.rlol_db_cnt_axb_0 ( + .A(rlol_db_cnt[0]), + .B(un1_rlol_db_cnt_zero[0]), + .C(VCC), + .D(VCC), + .Z(rlol_db_cnt_axb_0) +); +defparam \un1_genblk2.rlol_db_cnt_axb_0 .init=16'h9999; +// @16:641 + LUT4 \un1_genblk2.rlos_db_cnt_axb_0 ( + .A(rlos_db_cnt[0]), + .B(un1_rlos_db_cnt_zero[0]), + .C(VCC), + .D(VCC), + .Z(rlos_db_cnt_axb_0) +); +defparam \un1_genblk2.rlos_db_cnt_axb_0 .init=16'h9999; +// @16:443 + LUT4 \genblk1.waita_plol0_RNO ( + .A(pll_lol_p2), + .B(pll_lol_p3), + .C(un9_plol0_cnt_tc), + .D(VCC), + .Z(un1_plol0_cnt_tc_1_i) +); +defparam \genblk1.waita_plol0_RNO .init=16'hF6F6; +// @16:514 + LUT4 \genblk1.genblk2.mfor[0].un1_txsr_appd ( + .A(txdpr_appd), + .B(txsr_appd_4), + .C(rsl_tx_pcs_rst_c), + .D(VCC), + .Z(un1_txsr_appd) +); +defparam \genblk1.genblk2.mfor[0].un1_txsr_appd .init=16'hC8C8; +// @16:493 + LUT4 \genblk1.genblk2.txsr_appd_2 ( + .A(txsr_appd_4), + .B(rsl_serdes_rst_dual_c), + .C(rsl_tx_serdes_rst_c), + .D(VCC), + .Z(txsr_appd_2) +); +defparam \genblk1.genblk2.txsr_appd_2 .init=16'hFEFE; +// @16:452 + LUT4 \genblk1.plol0_cnt_3[0] ( + .A(plol0_cnt9), + .B(plol0_cnt[0]), + .C(waita_plol0), + .D(VCC), + .Z(plol0_cnt_3[0]) +); +defparam \genblk1.plol0_cnt_3[0] .init=16'h1414; +// @16:452 + LUT4 \genblk1.plol0_cnt_3[2] ( + .A(CO0_2), + .B(plol0_cnt9), + .C(plol0_cnt[1]), + .D(plol0_cnt[2]), + .Z(plol0_cnt_3[2]) +); +defparam \genblk1.plol0_cnt_3[2] .init=16'h1320; +// @16:535 + LUT4 \genblk1.genblk2.un18_txr_wt_tc ( + .A(un18_txr_wt_tc_6), + .B(un18_txr_wt_tc_7), + .C(un18_txr_wt_tc_8), + .D(VCC), + .Z(un18_txr_wt_tc) +); +defparam \genblk1.genblk2.un18_txr_wt_tc .init=16'h8080; +// @16:211 + LUT4 un2_plol_fedge_2_cZ ( + .A(pll_lol_p2), + .B(rsl_serdes_rst_dual_c), + .C(rsl_tx_serdes_rst_c), + .D(VCC), + .Z(un2_plol_fedge_2) +); +defparam un2_plol_fedge_2_cZ.init=16'h0101; +// @16:490 + LUT4 tx_any_rst_cZ ( + .A(rsl_serdes_rst_dual_c), + .B(rsl_tx_pcs_rst_c), + .C(rsl_tx_serdes_rst_c), + .D(rst_dual_c), + .Z(tx_any_rst) +); +defparam tx_any_rst_cZ.init=16'hFFFE; +// @16:863 + LUT4 rx_any_rst_cZ ( + .A(dual_or_rserd_rst), + .B(rsl_rx_pcs_rst_c), + .C(rst_dual_c), + .D(VCC), + .Z(rx_any_rst) +); +defparam rx_any_rst_cZ.init=16'hFEFE; +// @16:535 + LUT4 \genblk2.genblk3.un17_rxr_wt_tc ( + .A(un17_rxr_wt_tc_6), + .B(un17_rxr_wt_tc_7), + .C(un17_rxr_wt_tc_8), + .D(VCC), + .Z(un17_rxr_wt_tc) +); +defparam \genblk2.genblk3.un17_rxr_wt_tc .init=16'h8080; +// @16:219 + LUT4 \un1_rlol_db_cnt_zero_bm_cZ[0] ( + .A(rlol_db_cnt[0]), + .B(rlol_db_cnt[1]), + .C(rlol_db_cnt[2]), + .D(rlol_db_cnt[3]), + .Z(un1_rlol_db_cnt_zero_bm[0]) +); +defparam \un1_rlol_db_cnt_zero_bm_cZ[0] .init=16'h8000; +// @16:219 + PFUMX \un1_rlol_db_cnt_zero_cZ[0] ( + .ALUT(un1_rlol_db_cnt_zero_bm[0]), + .BLUT(un1_rlol_db_cnt_zero_am[0]), + .C0(rlol_p2), + .Z(un1_rlol_db_cnt_zero[0]) +); +// @16:219 + LUT4 \un1_rlos_db_cnt_zero_bm_cZ[0] ( + .A(rlos_db_cnt[0]), + .B(rlos_db_cnt[1]), + .C(rlos_db_cnt[2]), + .D(rlos_db_cnt[3]), + .Z(un1_rlos_db_cnt_zero_bm[0]) +); +defparam \un1_rlos_db_cnt_zero_bm_cZ[0] .init=16'h8000; +// @16:219 + PFUMX \un1_rlos_db_cnt_zero_cZ[0] ( + .ALUT(un1_rlos_db_cnt_zero_bm[0]), + .BLUT(un1_rlos_db_cnt_zero_am[0]), + .C0(rlos_p2), + .Z(un1_rlos_db_cnt_zero[0]) +); +// @16:309 + LUT4 \genblk2.un1_rlol_db_cnt_max ( + .A(rlol_db_cnt[0]), + .B(rlol_db_cnt[1]), + .C(rlol_db_cnt[2]), + .D(rlol_db_cnt[3]), + .Z(un1_rlol_db_cnt_max) +); +defparam \genblk2.un1_rlol_db_cnt_max .init=16'h8001; +// @16:315 + LUT4 \genblk2.un1_rlos_db_cnt_max ( + .A(rlos_db_cnt[0]), + .B(rlos_db_cnt[1]), + .C(rlos_db_cnt[2]), + .D(rlos_db_cnt[3]), + .Z(un1_rlos_db_cnt_max) +); +defparam \genblk2.un1_rlos_db_cnt_max .init=16'h8001; +// @16:269 + LUT4 \genblk1.un1_plol0_cnt_tc_1 ( + .A(txp_cnt[0]), + .B(txp_cnt[1]), + .C(un9_plol0_cnt_tc), + .D(VCC), + .Z(un1_plol0_cnt_tc_1) +); +defparam \genblk1.un1_plol0_cnt_tc_1 .init=16'hF8F8; +// @16:764 + LUT4 \genblk2.waita_rlols06 ( + .A(rlol_db), + .B(rlol_db_p1), + .C(rlos_db), + .D(rlos_db_p1), + .Z(waita_rlols06) +); +defparam \genblk2.waita_rlols06 .init=16'h0504; +// @16:708 + LUT4 \rxs_cnt_3_cZ[1] ( + .A(rxs_cnt[0]), + .B(rxs_cnt[1]), + .C(rxs_rst), + .D(VCC), + .Z(rxs_cnt_3[1]) +); +defparam \rxs_cnt_3_cZ[1] .init=16'h6464; +// @16:893 + LUT4 \genblk2.genblk3.lfor[0].un1_rxsdr_or_sr_appd ( + .A(rxsr_appd[0]), + .B(rx_all_well), + .C(rxsdr_appd_4), + .D(rsl_rx_pcs_rst_c), + .Z(un1_rxsdr_or_sr_appd) +); +defparam \genblk2.genblk3.lfor[0].un1_rxsdr_or_sr_appd .init=16'h3200; +// @16:388 + LUT4 rlols0_cnt_tc_1_13_cZ ( + .A(rlols0_cnt[16]), + .B(rlols0_cnt[17]), + .C(rlols0_cnt_tc_1_9), + .D(VCC), + .Z(rlols0_cnt_tc_1_13) +); +defparam rlols0_cnt_tc_1_13_cZ.init=16'h1010; +// @16:386 + LUT4 \genblk1.un1_plol_cnt_tc_14 ( + .A(plol_cnt[4]), + .B(plol_cnt[5]), + .C(plol_cnt[18]), + .D(un1_plol_cnt_tc_10), + .Z(un1_plol_cnt_tc_14) +); +defparam \genblk1.un1_plol_cnt_tc_14 .init=16'h0100; +// @16:387 + LUT4 rlol1_cnt_tc_1_14_cZ ( + .A(rlol1_cnt[11]), + .B(rlol1_cnt[12]), + .C(rlol1_cnt[18]), + .D(rlol1_cnt_tc_1_10), + .Z(rlol1_cnt_tc_1_14) +); +defparam rlol1_cnt_tc_1_14_cZ.init=16'h0100; +// @16:906 + LUT4 \genblk2.genblk3.un3_rx_all_well_2_1 ( + .A(rxpr_appd[0]), + .B(rxdpr_appd), + .C(rsl_rx_rdy), + .D(VCC), + .Z(un3_rx_all_well_2_1) +); +defparam \genblk2.genblk3.un3_rx_all_well_2_1 .init=16'h0E0E; +// @16:375 + LUT4 rdo_serdes_rst_dual_c ( + .A(rsl_disable), + .B(rsl_rst), + .C(serdes_rst_dual_c), + .D(VCC), + .Z(rsl_serdes_rst_dual_c) +); +defparam rdo_serdes_rst_dual_c.init=16'hF4F4; +// @16:438 + LUT4 rdo_tx_serdes_rst_c ( + .A(rsl_disable), + .B(txs_rst), + .C(tx_serdes_rst_c), + .D(VCC), + .Z(rsl_tx_serdes_rst_c) +); +defparam rdo_tx_serdes_rst_c.init=16'hF4F4; +// @16:479 + LUT4 \rdo_tx_pcs_rst_c_1[0] ( + .A(rsl_disable), + .B(txp_rst), + .C(tx_pcs_rst_c), + .D(VCC), + .Z(rsl_tx_pcs_rst_c) +); +defparam \rdo_tx_pcs_rst_c_1[0] .init=16'hF4F4; +// @16:743 + LUT4 \rdo_rx_serdes_rst_c_1[0] ( + .A(rsl_disable), + .B(rxs_rst), + .C(rx_serdes_rst_c), + .D(VCC), + .Z(rsl_rx_serdes_rst_c) +); +defparam \rdo_rx_serdes_rst_c_1[0] .init=16'hF4F4; +// @16:852 + LUT4 \rdo_rx_pcs_rst_c_1[0] ( + .A(rsl_disable), + .B(rxp_rst2), + .C(rx_pcs_rst_c), + .D(VCC), + .Z(rsl_rx_pcs_rst_c) +); +defparam \rdo_rx_pcs_rst_c_1[0] .init=16'hF4F4; +// @16:459 + LUT4 \genblk1.un9_plol0_cnt_tc ( + .A(plol0_cnt[0]), + .B(plol0_cnt[1]), + .C(plol0_cnt[2]), + .D(VCC), + .Z(un9_plol0_cnt_tc) +); +defparam \genblk1.un9_plol0_cnt_tc .init=16'h1010; +// @16:535 + LUT4 \genblk2.genblk3.un17_rxr_wt_tc_6 ( + .A(rxr_wt_cnt[0]), + .B(rxr_wt_cnt[8]), + .C(rxr_wt_cnt[9]), + .D(rxr_wt_cnt[11]), + .Z(un17_rxr_wt_tc_6) +); +defparam \genblk2.genblk3.un17_rxr_wt_tc_6 .init=16'h4000; +// @16:535 + LUT4 \genblk2.genblk3.un17_rxr_wt_tc_7 ( + .A(rxr_wt_cnt[3]), + .B(rxr_wt_cnt[4]), + .C(rxr_wt_cnt[5]), + .D(rxr_wt_cnt[7]), + .Z(un17_rxr_wt_tc_7) +); +defparam \genblk2.genblk3.un17_rxr_wt_tc_7 .init=16'h8000; +// @16:535 + LUT4 \genblk2.genblk3.un17_rxr_wt_tc_8 ( + .A(rxr_wt_cnt[1]), + .B(rxr_wt_cnt[2]), + .C(rxr_wt_cnt[6]), + .D(rxr_wt_cnt[10]), + .Z(un17_rxr_wt_tc_8) +); +defparam \genblk2.genblk3.un17_rxr_wt_tc_8 .init=16'h0001; +// @16:535 + LUT4 \genblk1.genblk2.un18_txr_wt_tc_6 ( + .A(txr_wt_cnt[0]), + .B(txr_wt_cnt[8]), + .C(txr_wt_cnt[9]), + .D(txr_wt_cnt[11]), + .Z(un18_txr_wt_tc_6) +); +defparam \genblk1.genblk2.un18_txr_wt_tc_6 .init=16'h4000; +// @16:535 + LUT4 \genblk1.genblk2.un18_txr_wt_tc_7 ( + .A(txr_wt_cnt[3]), + .B(txr_wt_cnt[4]), + .C(txr_wt_cnt[5]), + .D(txr_wt_cnt[7]), + .Z(un18_txr_wt_tc_7) +); +defparam \genblk1.genblk2.un18_txr_wt_tc_7 .init=16'h8000; +// @16:535 + LUT4 \genblk1.genblk2.un18_txr_wt_tc_8 ( + .A(txr_wt_cnt[1]), + .B(txr_wt_cnt[2]), + .C(txr_wt_cnt[6]), + .D(txr_wt_cnt[10]), + .Z(un18_txr_wt_tc_8) +); +defparam \genblk1.genblk2.un18_txr_wt_tc_8 .init=16'h0001; +// @16:388 + LUT4 rlols0_cnt_tc_1_9_cZ ( + .A(rlols0_cnt[1]), + .B(rlols0_cnt[2]), + .C(rlols0_cnt[3]), + .D(rlols0_cnt[4]), + .Z(rlols0_cnt_tc_1_9) +); +defparam rlols0_cnt_tc_1_9_cZ.init=16'h0001; +// @16:388 + LUT4 rlols0_cnt_tc_1_10_cZ ( + .A(rlols0_cnt[0]), + .B(rlols0_cnt[10]), + .C(rlols0_cnt[14]), + .D(rlols0_cnt[15]), + .Z(rlols0_cnt_tc_1_10) +); +defparam rlols0_cnt_tc_1_10_cZ.init=16'h4000; +// @16:388 + LUT4 rlols0_cnt_tc_1_11_cZ ( + .A(rlols0_cnt[9]), + .B(rlols0_cnt[11]), + .C(rlols0_cnt[12]), + .D(rlols0_cnt[13]), + .Z(rlols0_cnt_tc_1_11) +); +defparam rlols0_cnt_tc_1_11_cZ.init=16'h0001; +// @16:388 + LUT4 rlols0_cnt_tc_1_12_cZ ( + .A(rlols0_cnt[5]), + .B(rlols0_cnt[6]), + .C(rlols0_cnt[7]), + .D(rlols0_cnt[8]), + .Z(rlols0_cnt_tc_1_12) +); +defparam rlols0_cnt_tc_1_12_cZ.init=16'h0001; +// @16:386 + LUT4 \genblk1.un1_plol_cnt_tc_10 ( + .A(plol_cnt[2]), + .B(plol_cnt[3]), + .C(plol_cnt[17]), + .D(plol_cnt[19]), + .Z(un1_plol_cnt_tc_10) +); +defparam \genblk1.un1_plol_cnt_tc_10 .init=16'h1000; +// @16:386 + LUT4 \genblk1.un1_plol_cnt_tc_11 ( + .A(plol_cnt[13]), + .B(plol_cnt[14]), + .C(plol_cnt[15]), + .D(plol_cnt[16]), + .Z(un1_plol_cnt_tc_11) +); +defparam \genblk1.un1_plol_cnt_tc_11 .init=16'h8000; +// @16:386 + LUT4 \genblk1.un1_plol_cnt_tc_12 ( + .A(plol_cnt[7]), + .B(plol_cnt[8]), + .C(plol_cnt[9]), + .D(plol_cnt[11]), + .Z(un1_plol_cnt_tc_12) +); +defparam \genblk1.un1_plol_cnt_tc_12 .init=16'h8000; +// @16:386 + LUT4 \genblk1.un1_plol_cnt_tc_13 ( + .A(plol_cnt[1]), + .B(plol_cnt[6]), + .C(plol_cnt[10]), + .D(plol_cnt[12]), + .Z(un1_plol_cnt_tc_13) +); +defparam \genblk1.un1_plol_cnt_tc_13 .init=16'h0008; +// @16:387 + LUT4 rlol1_cnt_tc_1_10_cZ ( + .A(rlol1_cnt[7]), + .B(rlol1_cnt[8]), + .C(rlol1_cnt[9]), + .D(rlol1_cnt[10]), + .Z(rlol1_cnt_tc_1_10) +); +defparam rlol1_cnt_tc_1_10_cZ.init=16'h0001; +// @16:387 + LUT4 rlol1_cnt_tc_1_11_cZ ( + .A(rlol1_cnt[3]), + .B(rlol1_cnt[4]), + .C(rlol1_cnt[5]), + .D(rlol1_cnt[6]), + .Z(rlol1_cnt_tc_1_11) +); +defparam rlol1_cnt_tc_1_11_cZ.init=16'h0001; +// @16:387 + LUT4 rlol1_cnt_tc_1_12_cZ ( + .A(rlol1_cnt[0]), + .B(rlol1_cnt[1]), + .C(rlol1_cnt[2]), + .D(rlol1_cnt[17]), + .Z(rlol1_cnt_tc_1_12) +); +defparam rlol1_cnt_tc_1_12_cZ.init=16'h0100; +// @16:387 + LUT4 rlol1_cnt_tc_1_13_cZ ( + .A(rlol1_cnt[13]), + .B(rlol1_cnt[14]), + .C(rlol1_cnt[15]), + .D(rlol1_cnt[16]), + .Z(rlol1_cnt_tc_1_13) +); +defparam rlol1_cnt_tc_1_13_cZ.init=16'h0040; +// @16:866 + LUT4 \genblk2.genblk3.rxsdr_appd_2 ( + .A(rxsdr_appd_4), + .B(serdes_rst_dual_c), + .C(VCC), + .D(VCC), + .Z(rxsdr_appd_2) +); +defparam \genblk2.genblk3.rxsdr_appd_2 .init=16'hEEEE; +// @16:601 + LUT4 rx_all_well_cZ ( + .A(rlol_db), + .B(rlos_db), + .C(VCC), + .D(VCC), + .Z(rx_all_well) +); +defparam rx_all_well_cZ.init=16'h1111; +// @16:436 + LUT4 \genblk2.un8_rxs_cnt_tc ( + .A(rxs_cnt[0]), + .B(rxs_cnt[1]), + .C(VCC), + .D(VCC), + .Z(un8_rxs_cnt_tc) +); +defparam \genblk2.un8_rxs_cnt_tc .init=16'h8888; +// @16:441 + LUT4 plol_fedge_cZ ( + .A(pll_lol_p2), + .B(pll_lol_p3), + .C(VCC), + .D(VCC), + .Z(plol_fedge) +); +defparam plol_fedge_cZ.init=16'h4444; +// @16:757 + LUT4 rlos_redge_cZ ( + .A(rlos_db), + .B(rlos_db_p1), + .C(VCC), + .D(VCC), + .Z(rlos_redge) +); +defparam rlos_redge_cZ.init=16'h2222; +// @16:457 + LUT4 \genblk1.plol0_cnt_3_RNO[2] ( + .A(plol0_cnt[0]), + .B(waita_plol0), + .C(VCC), + .D(VCC), + .Z(CO0_2) +); +defparam \genblk1.plol0_cnt_3_RNO[2] .init=16'h8888; +// @16:891 + LUT4 un2_rdo_serdes_rst_dual_c_1_1_cZ ( + .A(rx_cdr_lol_s), + .B(rx_los_low_s), + .C(VCC), + .D(VCC), + .Z(un2_rdo_serdes_rst_dual_c_1_1) +); +defparam un2_rdo_serdes_rst_dual_c_1_1_cZ.init=16'h1111; +// @16:219 + LUT4 \un1_rlos_db_cnt_zero_am_cZ[0] ( + .A(rlos_db_cnt[0]), + .B(rlos_db_cnt[1]), + .C(rlos_db_cnt[2]), + .D(rlos_db_cnt[3]), + .Z(un1_rlos_db_cnt_zero_am[0]) +); +defparam \un1_rlos_db_cnt_zero_am_cZ[0] .init=16'h0001; +// @16:219 + LUT4 \un1_rlol_db_cnt_zero_am_cZ[0] ( + .A(rlol_db_cnt[0]), + .B(rlol_db_cnt[1]), + .C(rlol_db_cnt[2]), + .D(rlol_db_cnt[3]), + .Z(un1_rlol_db_cnt_zero_am[0]) +); +defparam \un1_rlol_db_cnt_zero_am_cZ[0] .init=16'h0001; +// @16:861 + LUT4 dual_or_rserd_rst_cZ ( + .A(rsl_rx_serdes_rst_c), + .B(serdes_rst_dual_c), + .C(rsl_rst), + .D(rsl_disable), + .Z(dual_or_rserd_rst) +); +defparam dual_or_rserd_rst_cZ.init=16'hEEFE; +// @16:454 + LUT4 \genblk1.plol0_cnt9 ( + .A(pll_lol_p2), + .B(plol0_cnt[2]), + .C(plol0_cnt[1]), + .D(plol0_cnt[0]), + .Z(plol0_cnt9) +); +defparam \genblk1.plol0_cnt9 .init=16'hAAAE; +// @16:783 + LUT4 \genblk2.rlols0_cnt11_0 ( + .A(rlol_db_p1), + .B(rlol_db), + .C(rlos_db_p1), + .D(rlos_db), + .Z(rlols0_cnt11_0) +); +defparam \genblk2.rlols0_cnt11_0 .init=16'h4F44; +// @16:527 + LUT4 \genblk1.genblk2.txr_wt_cnt9_i ( + .A(tx_any_rst), + .B(un18_txr_wt_tc_8), + .C(un18_txr_wt_tc_7), + .D(un18_txr_wt_tc_6), + .Z(txr_wt_cnt_scalar) +); +defparam \genblk1.genblk2.txr_wt_cnt9_i .init=16'h1555; + CCU2C \genblk2.rlol1_cnt_cry_0[0] ( + .A0(VCC), + .B0(rlol1_cnt_scalar), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_7), + .COUT(rlol1_cnt_cry[0]), + .S0(rlol1_cnt_cry_0_S0[0]), + .S1(rlol1_cnt_s[0]) +); +defparam \genblk2.rlol1_cnt_cry_0[0] .INIT0=16'h500c; +defparam \genblk2.rlol1_cnt_cry_0[0] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[0] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[0] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[1] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[1]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[2]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[0]), + .COUT(rlol1_cnt_cry[2]), + .S0(rlol1_cnt_s[1]), + .S1(rlol1_cnt_s[2]) +); +defparam \genblk2.rlol1_cnt_cry_0[1] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[1] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[1] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[1] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[3] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[3]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[4]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[2]), + .COUT(rlol1_cnt_cry[4]), + .S0(rlol1_cnt_s[3]), + .S1(rlol1_cnt_s[4]) +); +defparam \genblk2.rlol1_cnt_cry_0[3] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[3] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[3] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[3] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[5] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[5]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[6]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[4]), + .COUT(rlol1_cnt_cry[6]), + .S0(rlol1_cnt_s[5]), + .S1(rlol1_cnt_s[6]) +); +defparam \genblk2.rlol1_cnt_cry_0[5] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[5] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[5] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[5] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[7] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[7]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[8]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[6]), + .COUT(rlol1_cnt_cry[8]), + .S0(rlol1_cnt_s[7]), + .S1(rlol1_cnt_s[8]) +); +defparam \genblk2.rlol1_cnt_cry_0[7] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[7] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[7] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[7] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[9] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[9]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[10]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[8]), + .COUT(rlol1_cnt_cry[10]), + .S0(rlol1_cnt_s[9]), + .S1(rlol1_cnt_s[10]) +); +defparam \genblk2.rlol1_cnt_cry_0[9] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[9] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[9] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[9] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[11] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[11]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[12]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[10]), + .COUT(rlol1_cnt_cry[12]), + .S0(rlol1_cnt_s[11]), + .S1(rlol1_cnt_s[12]) +); +defparam \genblk2.rlol1_cnt_cry_0[11] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[11] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[11] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[11] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[13] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[13]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[14]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[12]), + .COUT(rlol1_cnt_cry[14]), + .S0(rlol1_cnt_s[13]), + .S1(rlol1_cnt_s[14]) +); +defparam \genblk2.rlol1_cnt_cry_0[13] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[13] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[13] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[13] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[15] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[15]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[16]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[14]), + .COUT(rlol1_cnt_cry[16]), + .S0(rlol1_cnt_s[15]), + .S1(rlol1_cnt_s[16]) +); +defparam \genblk2.rlol1_cnt_cry_0[15] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[15] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[15] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[15] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[17] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[17]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[18]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[16]), + .COUT(rlol1_cnt_cry_0_COUT[17]), + .S0(rlol1_cnt_s[17]), + .S1(rlol1_cnt_s[18]) +); +defparam \genblk2.rlol1_cnt_cry_0[17] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[17] .INIT1=16'h800a; +defparam \genblk2.rlol1_cnt_cry_0[17] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[17] .INJECT1_1="NO"; + CCU2C \genblk2.rlols0_cnt_cry_0[0] ( + .A0(VCC), + .B0(rlols0_cnt_scalar), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_6), + .COUT(rlols0_cnt_cry[0]), + .S0(rlols0_cnt_cry_0_S0[0]), + .S1(rlols0_cnt_s[0]) +); +defparam \genblk2.rlols0_cnt_cry_0[0] .INIT0=16'h500c; +defparam \genblk2.rlols0_cnt_cry_0[0] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[0] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[0] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_cry_0[1] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[1]), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[2]), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[0]), + .COUT(rlols0_cnt_cry[2]), + .S0(rlols0_cnt_s[1]), + .S1(rlols0_cnt_s[2]) +); +defparam \genblk2.rlols0_cnt_cry_0[1] .INIT0=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[1] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[1] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[1] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_cry_0[3] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[3]), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[4]), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[2]), + .COUT(rlols0_cnt_cry[4]), + .S0(rlols0_cnt_s[3]), + .S1(rlols0_cnt_s[4]) +); +defparam \genblk2.rlols0_cnt_cry_0[3] .INIT0=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[3] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[3] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[3] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_cry_0[5] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[5]), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[6]), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[4]), + .COUT(rlols0_cnt_cry[6]), + .S0(rlols0_cnt_s[5]), + .S1(rlols0_cnt_s[6]) +); +defparam \genblk2.rlols0_cnt_cry_0[5] .INIT0=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[5] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[5] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[5] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_cry_0[7] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[7]), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[8]), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[6]), + .COUT(rlols0_cnt_cry[8]), + .S0(rlols0_cnt_s[7]), + .S1(rlols0_cnt_s[8]) +); +defparam \genblk2.rlols0_cnt_cry_0[7] .INIT0=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[7] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[7] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[7] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_cry_0[9] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[9]), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[10]), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[8]), + .COUT(rlols0_cnt_cry[10]), + .S0(rlols0_cnt_s[9]), + .S1(rlols0_cnt_s[10]) +); +defparam \genblk2.rlols0_cnt_cry_0[9] .INIT0=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[9] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[9] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[9] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_cry_0[11] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[11]), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[12]), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[10]), + .COUT(rlols0_cnt_cry[12]), + .S0(rlols0_cnt_s[11]), + .S1(rlols0_cnt_s[12]) +); +defparam \genblk2.rlols0_cnt_cry_0[11] .INIT0=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[11] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[11] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[11] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_cry_0[13] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[13]), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[14]), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[12]), + .COUT(rlols0_cnt_cry[14]), + .S0(rlols0_cnt_s[13]), + .S1(rlols0_cnt_s[14]) +); +defparam \genblk2.rlols0_cnt_cry_0[13] .INIT0=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[13] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[13] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[13] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_cry_0[15] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[15]), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[16]), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[14]), + .COUT(rlols0_cnt_cry[16]), + .S0(rlols0_cnt_s[15]), + .S1(rlols0_cnt_s[16]) +); +defparam \genblk2.rlols0_cnt_cry_0[15] .INIT0=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[15] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[15] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[15] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_s_0[17] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[17]), + .C0(VCC), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[16]), + .COUT(rlols0_cnt_s_0_COUT[17]), + .S0(rlols0_cnt_s[17]), + .S1(rlols0_cnt_s_0_S1[17]) +); +defparam \genblk2.rlols0_cnt_s_0[17] .INIT0=16'h800a; +defparam \genblk2.rlols0_cnt_s_0[17] .INIT1=16'h5003; +defparam \genblk2.rlols0_cnt_s_0[17] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_s_0[17] .INJECT1_1="NO"; + CCU2C \genblk1.genblk2.txr_wt_cnt_cry_0[0] ( + .A0(VCC), + .B0(txr_wt_cnt_scalar), + .C0(VCC), + .D0(VCC), + .A1(txr_wt_cnt_scalar), + .B1(txr_wt_cnt[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_5), + .COUT(txr_wt_cnt_cry[0]), + .S0(txr_wt_cnt_cry_0_S0[0]), + .S1(txr_wt_cnt_s[0]) +); +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[0] .INIT0=16'h500c; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[0] .INIT1=16'h8000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[0] .INJECT1_0="NO"; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[0] .INJECT1_1="NO"; +// @16:527 + CCU2C \genblk1.genblk2.txr_wt_cnt_cry_0[1] ( + .A0(txr_wt_cnt_scalar), + .B0(txr_wt_cnt[1]), + .C0(VCC), + .D0(VCC), + .A1(txr_wt_cnt_scalar), + .B1(txr_wt_cnt[2]), + .C1(VCC), + .D1(VCC), + .CIN(txr_wt_cnt_cry[0]), + .COUT(txr_wt_cnt_cry[2]), + .S0(txr_wt_cnt_s[1]), + .S1(txr_wt_cnt_s[2]) +); +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[1] .INIT0=16'h8000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[1] .INIT1=16'h8000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[1] .INJECT1_0="NO"; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[1] .INJECT1_1="NO"; +// @16:527 + CCU2C \genblk1.genblk2.txr_wt_cnt_cry_0[3] ( + .A0(txr_wt_cnt_scalar), + .B0(txr_wt_cnt[3]), + .C0(VCC), + .D0(VCC), + .A1(txr_wt_cnt_scalar), + .B1(txr_wt_cnt[4]), + .C1(VCC), + .D1(VCC), + .CIN(txr_wt_cnt_cry[2]), + .COUT(txr_wt_cnt_cry[4]), + .S0(txr_wt_cnt_s[3]), + .S1(txr_wt_cnt_s[4]) +); +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[3] .INIT0=16'h8000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[3] .INIT1=16'h8000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[3] .INJECT1_0="NO"; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[3] .INJECT1_1="NO"; +// @16:527 + CCU2C \genblk1.genblk2.txr_wt_cnt_cry_0[5] ( + .A0(txr_wt_cnt_scalar), + .B0(txr_wt_cnt[5]), + .C0(VCC), + .D0(VCC), + .A1(txr_wt_cnt_scalar), + .B1(txr_wt_cnt[6]), + .C1(VCC), + .D1(VCC), + .CIN(txr_wt_cnt_cry[4]), + .COUT(txr_wt_cnt_cry[6]), + .S0(txr_wt_cnt_s[5]), + .S1(txr_wt_cnt_s[6]) +); +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[5] .INIT0=16'h8000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[5] .INIT1=16'h8000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[5] .INJECT1_0="NO"; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[5] .INJECT1_1="NO"; +// @16:527 + CCU2C \genblk1.genblk2.txr_wt_cnt_cry_0[7] ( + .A0(txr_wt_cnt_scalar), + .B0(txr_wt_cnt[7]), + .C0(VCC), + .D0(VCC), + .A1(txr_wt_cnt_scalar), + .B1(txr_wt_cnt[8]), + .C1(VCC), + .D1(VCC), + .CIN(txr_wt_cnt_cry[6]), + .COUT(txr_wt_cnt_cry[8]), + .S0(txr_wt_cnt_s[7]), + .S1(txr_wt_cnt_s[8]) +); +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[7] .INIT0=16'h8000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[7] .INIT1=16'h8000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[7] .INJECT1_0="NO"; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[7] .INJECT1_1="NO"; +// @16:527 + CCU2C \genblk1.genblk2.txr_wt_cnt_cry_0[9] ( + .A0(txr_wt_cnt_scalar), + .B0(txr_wt_cnt[9]), + .C0(VCC), + .D0(VCC), + .A1(txr_wt_cnt_scalar), + .B1(txr_wt_cnt[10]), + .C1(VCC), + .D1(VCC), + .CIN(txr_wt_cnt_cry[8]), + .COUT(txr_wt_cnt_cry[10]), + .S0(txr_wt_cnt_s[9]), + .S1(txr_wt_cnt_s[10]) +); +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[9] .INIT0=16'h8000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[9] .INIT1=16'h8000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[9] .INJECT1_0="NO"; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[9] .INJECT1_1="NO"; +// @16:527 + CCU2C \genblk1.genblk2.txr_wt_cnt_s_0[11] ( + .A0(txr_wt_cnt_scalar), + .B0(txr_wt_cnt[11]), + .C0(VCC), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(txr_wt_cnt_cry[10]), + .COUT(txr_wt_cnt_s_0_COUT[11]), + .S0(txr_wt_cnt_s[11]), + .S1(txr_wt_cnt_s_0_S1[11]) +); +defparam \genblk1.genblk2.txr_wt_cnt_s_0[11] .INIT0=16'h800a; +defparam \genblk1.genblk2.txr_wt_cnt_s_0[11] .INIT1=16'h5003; +defparam \genblk1.genblk2.txr_wt_cnt_s_0[11] .INJECT1_0="NO"; +defparam \genblk1.genblk2.txr_wt_cnt_s_0[11] .INJECT1_1="NO"; + CCU2C \genblk2.genblk3.rxr_wt_cnt_cry_0[0] ( + .A0(VCC), + .B0(rxr_wt_cnt9), + .C0(VCC), + .D0(VCC), + .A1(rxr_wt_cnt9), + .B1(rxr_wt_cnt[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_4), + .COUT(rxr_wt_cnt_cry[0]), + .S0(rxr_wt_cnt_cry_0_S0[0]), + .S1(rxr_wt_cnt_s[0]) +); +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[0] .INIT0=16'h5003; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[0] .INIT1=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[0] .INJECT1_0="NO"; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[0] .INJECT1_1="NO"; +// @16:909 + CCU2C \genblk2.genblk3.rxr_wt_cnt_cry_0[1] ( + .A0(rxr_wt_cnt9), + .B0(rxr_wt_cnt[1]), + .C0(VCC), + .D0(VCC), + .A1(rxr_wt_cnt9), + .B1(rxr_wt_cnt[2]), + .C1(VCC), + .D1(VCC), + .CIN(rxr_wt_cnt_cry[0]), + .COUT(rxr_wt_cnt_cry[2]), + .S0(rxr_wt_cnt_s[1]), + .S1(rxr_wt_cnt_s[2]) +); +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[1] .INIT0=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[1] .INIT1=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[1] .INJECT1_0="NO"; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[1] .INJECT1_1="NO"; +// @16:909 + CCU2C \genblk2.genblk3.rxr_wt_cnt_cry_0[3] ( + .A0(rxr_wt_cnt9), + .B0(rxr_wt_cnt[3]), + .C0(VCC), + .D0(VCC), + .A1(rxr_wt_cnt9), + .B1(rxr_wt_cnt[4]), + .C1(VCC), + .D1(VCC), + .CIN(rxr_wt_cnt_cry[2]), + .COUT(rxr_wt_cnt_cry[4]), + .S0(rxr_wt_cnt_s[3]), + .S1(rxr_wt_cnt_s[4]) +); +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[3] .INIT0=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[3] .INIT1=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[3] .INJECT1_0="NO"; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[3] .INJECT1_1="NO"; +// @16:909 + CCU2C \genblk2.genblk3.rxr_wt_cnt_cry_0[5] ( + .A0(rxr_wt_cnt9), + .B0(rxr_wt_cnt[5]), + .C0(VCC), + .D0(VCC), + .A1(rxr_wt_cnt9), + .B1(rxr_wt_cnt[6]), + .C1(VCC), + .D1(VCC), + .CIN(rxr_wt_cnt_cry[4]), + .COUT(rxr_wt_cnt_cry[6]), + .S0(rxr_wt_cnt_s[5]), + .S1(rxr_wt_cnt_s[6]) +); +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[5] .INIT0=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[5] .INIT1=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[5] .INJECT1_0="NO"; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[5] .INJECT1_1="NO"; +// @16:909 + CCU2C \genblk2.genblk3.rxr_wt_cnt_cry_0[7] ( + .A0(rxr_wt_cnt9), + .B0(rxr_wt_cnt[7]), + .C0(VCC), + .D0(VCC), + .A1(rxr_wt_cnt9), + .B1(rxr_wt_cnt[8]), + .C1(VCC), + .D1(VCC), + .CIN(rxr_wt_cnt_cry[6]), + .COUT(rxr_wt_cnt_cry[8]), + .S0(rxr_wt_cnt_s[7]), + .S1(rxr_wt_cnt_s[8]) +); +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[7] .INIT0=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[7] .INIT1=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[7] .INJECT1_0="NO"; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[7] .INJECT1_1="NO"; +// @16:909 + CCU2C \genblk2.genblk3.rxr_wt_cnt_cry_0[9] ( + .A0(rxr_wt_cnt9), + .B0(rxr_wt_cnt[9]), + .C0(VCC), + .D0(VCC), + .A1(rxr_wt_cnt9), + .B1(rxr_wt_cnt[10]), + .C1(VCC), + .D1(VCC), + .CIN(rxr_wt_cnt_cry[8]), + .COUT(rxr_wt_cnt_cry[10]), + .S0(rxr_wt_cnt_s[9]), + .S1(rxr_wt_cnt_s[10]) +); +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[9] .INIT0=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[9] .INIT1=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[9] .INJECT1_0="NO"; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[9] .INJECT1_1="NO"; +// @16:909 + CCU2C \genblk2.genblk3.rxr_wt_cnt_s_0[11] ( + .A0(rxr_wt_cnt9), + .B0(rxr_wt_cnt[11]), + .C0(VCC), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(rxr_wt_cnt_cry[10]), + .COUT(rxr_wt_cnt_s_0_COUT[11]), + .S0(rxr_wt_cnt_s[11]), + .S1(rxr_wt_cnt_s_0_S1[11]) +); +defparam \genblk2.genblk3.rxr_wt_cnt_s_0[11] .INIT0=16'h4005; +defparam \genblk2.genblk3.rxr_wt_cnt_s_0[11] .INIT1=16'h5003; +defparam \genblk2.genblk3.rxr_wt_cnt_s_0[11] .INJECT1_0="NO"; +defparam \genblk2.genblk3.rxr_wt_cnt_s_0[11] .INJECT1_1="NO"; + CCU2C \genblk1.plol_cnt_cry_0[0] ( + .A0(VCC), + .B0(plol_cnt_scalar), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_3), + .COUT(plol_cnt_cry[0]), + .S0(plol_cnt_cry_0_S0[0]), + .S1(plol_cnt_s[0]) +); +defparam \genblk1.plol_cnt_cry_0[0] .INIT0=16'h500c; +defparam \genblk1.plol_cnt_cry_0[0] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[0] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[0] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[1] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[1]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[2]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[0]), + .COUT(plol_cnt_cry[2]), + .S0(plol_cnt_s[1]), + .S1(plol_cnt_s[2]) +); +defparam \genblk1.plol_cnt_cry_0[1] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[1] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[1] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[1] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[3] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[3]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[4]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[2]), + .COUT(plol_cnt_cry[4]), + .S0(plol_cnt_s[3]), + .S1(plol_cnt_s[4]) +); +defparam \genblk1.plol_cnt_cry_0[3] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[3] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[3] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[3] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[5] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[5]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[6]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[4]), + .COUT(plol_cnt_cry[6]), + .S0(plol_cnt_s[5]), + .S1(plol_cnt_s[6]) +); +defparam \genblk1.plol_cnt_cry_0[5] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[5] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[5] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[5] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[7] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[7]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[8]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[6]), + .COUT(plol_cnt_cry[8]), + .S0(plol_cnt_s[7]), + .S1(plol_cnt_s[8]) +); +defparam \genblk1.plol_cnt_cry_0[7] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[7] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[7] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[7] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[9] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[9]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[10]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[8]), + .COUT(plol_cnt_cry[10]), + .S0(plol_cnt_s[9]), + .S1(plol_cnt_s[10]) +); +defparam \genblk1.plol_cnt_cry_0[9] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[9] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[9] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[9] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[11] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[11]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[12]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[10]), + .COUT(plol_cnt_cry[12]), + .S0(plol_cnt_s[11]), + .S1(plol_cnt_s[12]) +); +defparam \genblk1.plol_cnt_cry_0[11] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[11] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[11] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[11] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[13] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[13]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[14]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[12]), + .COUT(plol_cnt_cry[14]), + .S0(plol_cnt_s[13]), + .S1(plol_cnt_s[14]) +); +defparam \genblk1.plol_cnt_cry_0[13] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[13] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[13] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[13] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[15] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[15]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[16]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[14]), + .COUT(plol_cnt_cry[16]), + .S0(plol_cnt_s[15]), + .S1(plol_cnt_s[16]) +); +defparam \genblk1.plol_cnt_cry_0[15] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[15] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[15] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[15] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[17] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[17]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[18]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[16]), + .COUT(plol_cnt_cry[18]), + .S0(plol_cnt_s[17]), + .S1(plol_cnt_s[18]) +); +defparam \genblk1.plol_cnt_cry_0[17] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[17] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[17] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[17] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_s_0[19] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[19]), + .C0(VCC), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[18]), + .COUT(plol_cnt_s_0_COUT[19]), + .S0(plol_cnt_s[19]), + .S1(plol_cnt_s_0_S1[19]) +); +defparam \genblk1.plol_cnt_s_0[19] .INIT0=16'h800a; +defparam \genblk1.plol_cnt_s_0[19] .INIT1=16'h5003; +defparam \genblk1.plol_cnt_s_0[19] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_s_0[19] .INJECT1_1="NO"; + CCU2C \un1_genblk2.rlos_db_cnt_cry_0_0 ( + .A0(VCC), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(rlos_db_cnt[0]), + .B1(un1_rlos_db_cnt_zero[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_2), + .COUT(rlos_db_cnt_cry_0), + .S0(rlos_db_cnt_cry_0_0_S0), + .S1(rlos_db_cnt_cry_0_0_S1) +); +defparam \un1_genblk2.rlos_db_cnt_cry_0_0 .INIT0=16'h5003; +defparam \un1_genblk2.rlos_db_cnt_cry_0_0 .INIT1=16'h900a; +defparam \un1_genblk2.rlos_db_cnt_cry_0_0 .INJECT1_0="NO"; +defparam \un1_genblk2.rlos_db_cnt_cry_0_0 .INJECT1_1="NO"; +// @16:641 + CCU2C \un1_genblk2.rlos_db_cnt_cry_1_0 ( + .A0(un1_rlos_db_cnt_zero[0]), + .B0(rlos_p2), + .C0(rlos_db_cnt[1]), + .D0(VCC), + .A1(un1_rlos_db_cnt_zero[0]), + .B1(rlos_p2), + .C1(rlos_db_cnt[2]), + .D1(VCC), + .CIN(rlos_db_cnt_cry_0), + .COUT(rlos_db_cnt_cry_2), + .S0(rlos_db_cnt_cry_1_0_S0), + .S1(rlos_db_cnt_cry_1_0_S1) +); +defparam \un1_genblk2.rlos_db_cnt_cry_1_0 .INIT0=16'he101; +defparam \un1_genblk2.rlos_db_cnt_cry_1_0 .INIT1=16'he101; +defparam \un1_genblk2.rlos_db_cnt_cry_1_0 .INJECT1_0="NO"; +defparam \un1_genblk2.rlos_db_cnt_cry_1_0 .INJECT1_1="NO"; +// @16:641 + CCU2C \un1_genblk2.rlos_db_cnt_s_3_0 ( + .A0(rlos_db_cnt[3]), + .B0(rlos_p2), + .C0(un1_rlos_db_cnt_zero[0]), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(rlos_db_cnt_cry_2), + .COUT(rlos_db_cnt_s_3_0_COUT), + .S0(rlos_db_cnt_s_3_0_S0), + .S1(rlos_db_cnt_s_3_0_S1) +); +defparam \un1_genblk2.rlos_db_cnt_s_3_0 .INIT0=16'ha90a; +defparam \un1_genblk2.rlos_db_cnt_s_3_0 .INIT1=16'h5003; +defparam \un1_genblk2.rlos_db_cnt_s_3_0 .INJECT1_0="NO"; +defparam \un1_genblk2.rlos_db_cnt_s_3_0 .INJECT1_1="NO"; + CCU2C \un1_genblk2.rlol_db_cnt_cry_0_0 ( + .A0(VCC), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(rlol_db_cnt[0]), + .B1(un1_rlol_db_cnt_zero[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_1), + .COUT(rlol_db_cnt_cry_0), + .S0(rlol_db_cnt_cry_0_0_S0), + .S1(rlol_db_cnt_cry_0_0_S1) +); +defparam \un1_genblk2.rlol_db_cnt_cry_0_0 .INIT0=16'h5003; +defparam \un1_genblk2.rlol_db_cnt_cry_0_0 .INIT1=16'h900a; +defparam \un1_genblk2.rlol_db_cnt_cry_0_0 .INJECT1_0="NO"; +defparam \un1_genblk2.rlol_db_cnt_cry_0_0 .INJECT1_1="NO"; +// @16:625 + CCU2C \un1_genblk2.rlol_db_cnt_cry_1_0 ( + .A0(un1_rlol_db_cnt_zero[0]), + .B0(rlol_p2), + .C0(rlol_db_cnt[1]), + .D0(VCC), + .A1(un1_rlol_db_cnt_zero[0]), + .B1(rlol_p2), + .C1(rlol_db_cnt[2]), + .D1(VCC), + .CIN(rlol_db_cnt_cry_0), + .COUT(rlol_db_cnt_cry_2), + .S0(rlol_db_cnt_cry_1_0_S0), + .S1(rlol_db_cnt_cry_1_0_S1) +); +defparam \un1_genblk2.rlol_db_cnt_cry_1_0 .INIT0=16'he101; +defparam \un1_genblk2.rlol_db_cnt_cry_1_0 .INIT1=16'he101; +defparam \un1_genblk2.rlol_db_cnt_cry_1_0 .INJECT1_0="NO"; +defparam \un1_genblk2.rlol_db_cnt_cry_1_0 .INJECT1_1="NO"; +// @16:625 + CCU2C \un1_genblk2.rlol_db_cnt_s_3_0 ( + .A0(rlol_db_cnt[3]), + .B0(rlol_p2), + .C0(un1_rlol_db_cnt_zero[0]), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(rlol_db_cnt_cry_2), + .COUT(rlol_db_cnt_s_3_0_COUT), + .S0(rlol_db_cnt_s_3_0_S0), + .S1(rlol_db_cnt_s_3_0_S1) +); +defparam \un1_genblk2.rlol_db_cnt_s_3_0 .INIT0=16'ha90a; +defparam \un1_genblk2.rlol_db_cnt_s_3_0 .INIT1=16'h5003; +defparam \un1_genblk2.rlol_db_cnt_s_3_0 .INJECT1_0="NO"; +defparam \un1_genblk2.rlol_db_cnt_s_3_0 .INJECT1_1="NO"; +//@16:865 +//@16:492 + VHI VCC_0 ( + .Z(VCC) +); +// @16:865 + VLO GND_cZ ( + .Z(GND) +); +endmodule /* sgmii_ecp5rsl_core_Z2_layer1 */ + +module sgmii_ecp5 ( + hdoutp, + hdoutn, + hdinp, + hdinn, + rxrefclk, + tx_pclk, + txi_clk, + txdata, + tx_k, + xmit, + tx_disp_correct, + rxdata, + rx_k, + rx_disp_err, + rx_cv_err, + signal_detect_c, + rx_los_low_s, + lsm_status_s, + ctc_urun_s, + ctc_orun_s, + rx_cdr_lol_s, + ctc_ins_s, + ctc_del_s, + sli_rst, + tx_pwrup_c, + rx_pwrup_c, + sci_wrdata, + sci_addr, + sci_rddata, + sci_en_dual, + sci_sel_dual, + sci_en, + sci_sel, + sci_rd, + sci_wrn, + sci_int, + cyawstn, + serdes_pdb, + pll_refclki, + rsl_disable, + rsl_rst, + serdes_rst_dual_c, + rst_dual_c, + tx_serdes_rst_c, + tx_pcs_rst_c, + pll_lol, + rsl_tx_rdy, + rx_serdes_rst_c, + rx_pcs_rst_c, + rsl_rx_rdy +) +; +output hdoutp ; +output hdoutn ; +input hdinp ; +input hdinn ; +input rxrefclk ; +output tx_pclk ; +input txi_clk ; +input [7:0] txdata ; +input [0:0] tx_k ; +input [0:0] xmit ; +input [0:0] tx_disp_correct ; +output [7:0] rxdata ; +output [0:0] rx_k ; +output [0:0] rx_disp_err ; +output [0:0] rx_cv_err ; +input signal_detect_c ; +output rx_los_low_s ; +output lsm_status_s ; +output ctc_urun_s ; +output ctc_orun_s ; +output rx_cdr_lol_s ; +output ctc_ins_s ; +output ctc_del_s ; +input sli_rst ; +input tx_pwrup_c ; +input rx_pwrup_c ; +input [7:0] sci_wrdata ; +input [5:0] sci_addr ; +output [7:0] sci_rddata ; +input sci_en_dual ; +input sci_sel_dual ; +input sci_en ; +input sci_sel ; +input sci_rd ; +input sci_wrn ; +output sci_int ; +input cyawstn ; +input serdes_pdb ; +input pll_refclki ; +input rsl_disable ; +input rsl_rst ; +input serdes_rst_dual_c ; +input rst_dual_c ; +input tx_serdes_rst_c ; +input tx_pcs_rst_c ; +output pll_lol ; +output rsl_tx_rdy ; +input rx_serdes_rst_c ; +input rx_pcs_rst_c ; +output rsl_rx_rdy ; +wire hdoutp ; +wire hdoutn ; +wire hdinp ; +wire hdinn ; +wire rxrefclk ; +wire tx_pclk ; +wire txi_clk ; +wire signal_detect_c ; +wire rx_los_low_s ; +wire lsm_status_s ; +wire ctc_urun_s ; +wire ctc_orun_s ; +wire rx_cdr_lol_s ; +wire ctc_ins_s ; +wire ctc_del_s ; +wire sli_rst ; +wire tx_pwrup_c ; +wire rx_pwrup_c ; +wire sci_en_dual ; +wire sci_sel_dual ; +wire sci_en ; +wire sci_sel ; +wire sci_rd ; +wire sci_wrn ; +wire sci_int ; +wire cyawstn ; +wire serdes_pdb ; +wire pll_refclki ; +wire rsl_disable ; +wire rsl_rst ; +wire serdes_rst_dual_c ; +wire rst_dual_c ; +wire tx_serdes_rst_c ; +wire tx_pcs_rst_c ; +wire pll_lol ; +wire rsl_tx_rdy ; +wire rx_serdes_rst_c ; +wire rx_pcs_rst_c ; +wire rsl_rx_rdy ; +wire rsl_tx_pcs_rst_c ; +wire rsl_rx_pcs_rst_c ; +wire rsl_rx_serdes_rst_c ; +wire rsl_serdes_rst_dual_c ; +wire rsl_tx_serdes_rst_c ; +wire n47_1 ; +wire n48_1 ; +wire n1_1 ; +wire n2_1 ; +wire n3_1 ; +wire n4_1 ; +wire n5_1 ; +wire n49_1 ; +wire n6_1 ; +wire n50_1 ; +wire n7_1 ; +wire n51_1 ; +wire n8_1 ; +wire n52_1 ; +wire n9_1 ; +wire n53_1 ; +wire n54_1 ; +wire n55_1 ; +wire n56_1 ; +wire n57_1 ; +wire n58_1 ; +wire n59_1 ; +wire n60_1 ; +wire n61_1 ; +wire n62_1 ; +wire n63_1 ; +wire n64_1 ; +wire n65_1 ; +wire n10_1 ; +wire n66_1 ; +wire n67_1 ; +wire n68_1 ; +wire n69_1 ; +wire n70_1 ; +wire n71_1 ; +wire n72_1 ; +wire n73_1 ; +wire n74_1 ; +wire n75_1 ; +wire n76_1 ; +wire n77_1 ; +wire n78_1 ; +wire n79_1 ; +wire n80_1 ; +wire n81_1 ; +wire n82_1 ; +wire n83_1 ; +wire n84_1 ; +wire n85_1 ; +wire n86_1 ; +wire n87_1 ; +wire n88_1 ; +wire n11_1 ; +wire n89_1 ; +wire n12_1 ; +wire n90_1 ; +wire n13_1 ; +wire n91_1 ; +wire n92_1 ; +wire n93_1 ; +wire n94_1 ; +wire n95_1 ; +wire n14_1 ; +wire n96_1 ; +wire n15_1 ; +wire n97_1 ; +wire n98_1 ; +wire n99_1 ; +wire n100_1 ; +wire n101_1 ; +wire n112_1 ; +wire n16_1 ; +wire n17_1 ; +wire n18_1 ; +wire n19_1 ; +wire n20_1 ; +wire n21_1 ; +wire n22_1 ; +wire n23_1 ; +wire n24_1 ; +wire n25_1 ; +wire n26_1 ; +wire n27_1 ; +wire n28_1 ; +wire n29_1 ; +wire n30_1 ; +wire n31_1 ; +wire n32_1 ; +wire n33_1 ; +wire n34_1 ; +wire n35_1 ; +wire n36_1 ; +wire n37_1 ; +wire n38_1 ; +wire n39_1 ; +wire n40_1 ; +wire n41_1 ; +wire n42_1 ; +wire n43_1 ; +wire n46_1 ; +wire GND ; +wire VCC ; + VHI VCC_0 ( + .Z(VCC) +); + VLO GND_0 ( + .Z(GND) +); +// @16:865 + PUR PUR_INST ( + .PUR(VCC) +); +// @16:865 + GSR GSR_INST ( + .GSR(VCC) +); +// @8:162 +(* CHAN="CH0" *) DCUA DCU0_inst ( + .CH0_HDINP(hdinp), + .CH1_HDINP(GND), + .CH0_HDINN(hdinn), + .CH1_HDINN(GND), + .D_TXBIT_CLKP_FROM_ND(GND), + .D_TXBIT_CLKN_FROM_ND(GND), + .D_SYNC_ND(GND), + .D_TXPLL_LOL_FROM_ND(GND), + .CH0_RX_REFCLK(rxrefclk), + .CH1_RX_REFCLK(GND), + .CH0_FF_RXI_CLK(tx_pclk), + .CH1_FF_RXI_CLK(VCC), + .CH0_FF_TXI_CLK(txi_clk), + .CH1_FF_TXI_CLK(VCC), + .CH0_FF_EBRD_CLK(tx_pclk), + .CH1_FF_EBRD_CLK(VCC), + .CH0_FF_TX_D_0(txdata[0]), + .CH1_FF_TX_D_0(GND), + .CH0_FF_TX_D_1(txdata[1]), + .CH1_FF_TX_D_1(GND), + .CH0_FF_TX_D_2(txdata[2]), + .CH1_FF_TX_D_2(GND), + .CH0_FF_TX_D_3(txdata[3]), + .CH1_FF_TX_D_3(GND), + .CH0_FF_TX_D_4(txdata[4]), + .CH1_FF_TX_D_4(GND), + .CH0_FF_TX_D_5(txdata[5]), + .CH1_FF_TX_D_5(GND), + .CH0_FF_TX_D_6(txdata[6]), + .CH1_FF_TX_D_6(GND), + .CH0_FF_TX_D_7(txdata[7]), + .CH1_FF_TX_D_7(GND), + .CH0_FF_TX_D_8(tx_k[0]), + .CH1_FF_TX_D_8(GND), + .CH0_FF_TX_D_9(GND), + .CH1_FF_TX_D_9(GND), + .CH0_FF_TX_D_10(xmit[0]), + .CH1_FF_TX_D_10(GND), + .CH0_FF_TX_D_11(tx_disp_correct[0]), + .CH1_FF_TX_D_11(GND), + .CH0_FF_TX_D_12(GND), + .CH1_FF_TX_D_12(GND), + .CH0_FF_TX_D_13(GND), + .CH1_FF_TX_D_13(GND), + .CH0_FF_TX_D_14(GND), + .CH1_FF_TX_D_14(GND), + .CH0_FF_TX_D_15(GND), + .CH1_FF_TX_D_15(GND), + .CH0_FF_TX_D_16(GND), + .CH1_FF_TX_D_16(GND), + .CH0_FF_TX_D_17(GND), + .CH1_FF_TX_D_17(GND), + .CH0_FF_TX_D_18(GND), + .CH1_FF_TX_D_18(GND), + .CH0_FF_TX_D_19(GND), + .CH1_FF_TX_D_19(GND), + .CH0_FF_TX_D_20(GND), + .CH1_FF_TX_D_20(GND), + .CH0_FF_TX_D_21(GND), + .CH1_FF_TX_D_21(GND), + .CH0_FF_TX_D_22(GND), + .CH1_FF_TX_D_22(GND), + .CH0_FF_TX_D_23(GND), + .CH1_FF_TX_D_23(GND), + .CH0_FFC_EI_EN(GND), + .CH1_FFC_EI_EN(GND), + .CH0_FFC_PCIE_DET_EN(GND), + .CH1_FFC_PCIE_DET_EN(GND), + .CH0_FFC_PCIE_CT(GND), + .CH1_FFC_PCIE_CT(GND), + .CH0_FFC_SB_INV_RX(GND), + .CH1_FFC_SB_INV_RX(GND), + .CH0_FFC_ENABLE_CGALIGN(GND), + .CH1_FFC_ENABLE_CGALIGN(GND), + .CH0_FFC_SIGNAL_DETECT(signal_detect_c), + .CH1_FFC_SIGNAL_DETECT(GND), + .CH0_FFC_FB_LOOPBACK(GND), + .CH1_FFC_FB_LOOPBACK(GND), + .CH0_FFC_SB_PFIFO_LP(GND), + .CH1_FFC_SB_PFIFO_LP(GND), + .CH0_FFC_PFIFO_CLR(GND), + .CH1_FFC_PFIFO_CLR(GND), + .CH0_FFC_RATE_MODE_RX(GND), + .CH1_FFC_RATE_MODE_RX(GND), + .CH0_FFC_RATE_MODE_TX(GND), + .CH1_FFC_RATE_MODE_TX(GND), + .CH0_FFC_DIV11_MODE_RX(GND), + .CH1_FFC_DIV11_MODE_RX(GND), + .CH0_FFC_RX_GEAR_MODE(GND), + .CH1_FFC_RX_GEAR_MODE(GND), + .CH0_FFC_TX_GEAR_MODE(GND), + .CH1_FFC_TX_GEAR_MODE(GND), + .CH0_FFC_DIV11_MODE_TX(GND), + .CH1_FFC_DIV11_MODE_TX(GND), + .CH0_FFC_LDR_CORE2TX_EN(GND), + .CH1_FFC_LDR_CORE2TX_EN(GND), + .CH0_FFC_LANE_TX_RST(rsl_tx_pcs_rst_c), + .CH1_FFC_LANE_TX_RST(GND), + .CH0_FFC_LANE_RX_RST(rsl_rx_pcs_rst_c), + .CH1_FFC_LANE_RX_RST(GND), + .CH0_FFC_RRST(rsl_rx_serdes_rst_c), + .CH1_FFC_RRST(GND), + .CH0_FFC_TXPWDNB(tx_pwrup_c), + .CH1_FFC_TXPWDNB(GND), + .CH0_FFC_RXPWDNB(rx_pwrup_c), + .CH1_FFC_RXPWDNB(GND), + .CH0_LDR_CORE2TX(GND), + .CH1_LDR_CORE2TX(GND), + .D_SCIWDATA0(sci_wrdata[0]), + .D_SCIWDATA1(sci_wrdata[1]), + .D_SCIWDATA2(sci_wrdata[2]), + .D_SCIWDATA3(sci_wrdata[3]), + .D_SCIWDATA4(sci_wrdata[4]), + .D_SCIWDATA5(sci_wrdata[5]), + .D_SCIWDATA6(sci_wrdata[6]), + .D_SCIWDATA7(sci_wrdata[7]), + .D_SCIADDR0(sci_addr[0]), + .D_SCIADDR1(sci_addr[1]), + .D_SCIADDR2(sci_addr[2]), + .D_SCIADDR3(sci_addr[3]), + .D_SCIADDR4(sci_addr[4]), + .D_SCIADDR5(sci_addr[5]), + .D_SCIENAUX(sci_en_dual), + .D_SCISELAUX(sci_sel_dual), + .CH0_SCIEN(sci_en), + .CH1_SCIEN(GND), + .CH0_SCISEL(sci_sel), + .CH1_SCISEL(GND), + .D_SCIRD(sci_rd), + .D_SCIWSTN(sci_wrn), + .D_CYAWSTN(cyawstn), + .D_FFC_SYNC_TOGGLE(GND), + .D_FFC_DUAL_RST(rst_dual_c), + .D_FFC_MACRO_RST(rsl_serdes_rst_dual_c), + .D_FFC_MACROPDB(serdes_pdb), + .D_FFC_TRST(rsl_tx_serdes_rst_c), + .CH0_FFC_CDR_EN_BITSLIP(GND), + .CH1_FFC_CDR_EN_BITSLIP(GND), + .D_SCAN_ENABLE(GND), + .D_SCAN_IN_0(GND), + .D_SCAN_IN_1(GND), + .D_SCAN_IN_2(GND), + .D_SCAN_IN_3(GND), + .D_SCAN_IN_4(GND), + .D_SCAN_IN_5(GND), + .D_SCAN_IN_6(GND), + .D_SCAN_IN_7(GND), + .D_SCAN_MODE(GND), + .D_SCAN_RESET(GND), + .D_CIN0(GND), + .D_CIN1(GND), + .D_CIN2(GND), + .D_CIN3(GND), + .D_CIN4(GND), + .D_CIN5(GND), + .D_CIN6(GND), + .D_CIN7(GND), + .D_CIN8(GND), + .D_CIN9(GND), + .D_CIN10(GND), + .D_CIN11(GND), + .CH0_HDOUTP(hdoutp), + .CH1_HDOUTP(n47_1), + .CH0_HDOUTN(hdoutn), + .CH1_HDOUTN(n48_1), + .D_TXBIT_CLKP_TO_ND(n1_1), + .D_TXBIT_CLKN_TO_ND(n2_1), + .D_SYNC_PULSE2ND(n3_1), + .D_TXPLL_LOL_TO_ND(n4_1), + .CH0_FF_RX_F_CLK(n5_1), + .CH1_FF_RX_F_CLK(n49_1), + .CH0_FF_RX_H_CLK(n6_1), + .CH1_FF_RX_H_CLK(n50_1), + .CH0_FF_TX_F_CLK(n7_1), + .CH1_FF_TX_F_CLK(n51_1), + .CH0_FF_TX_H_CLK(n8_1), + .CH1_FF_TX_H_CLK(n52_1), + .CH0_FF_RX_PCLK(n9_1), + .CH1_FF_RX_PCLK(n53_1), + .CH0_FF_TX_PCLK(tx_pclk), + .CH1_FF_TX_PCLK(n54_1), + .CH0_FF_RX_D_0(rxdata[0]), + .CH1_FF_RX_D_0(n55_1), + .CH0_FF_RX_D_1(rxdata[1]), + .CH1_FF_RX_D_1(n56_1), + .CH0_FF_RX_D_2(rxdata[2]), + .CH1_FF_RX_D_2(n57_1), + .CH0_FF_RX_D_3(rxdata[3]), + .CH1_FF_RX_D_3(n58_1), + .CH0_FF_RX_D_4(rxdata[4]), + .CH1_FF_RX_D_4(n59_1), + .CH0_FF_RX_D_5(rxdata[5]), + .CH1_FF_RX_D_5(n60_1), + .CH0_FF_RX_D_6(rxdata[6]), + .CH1_FF_RX_D_6(n61_1), + .CH0_FF_RX_D_7(rxdata[7]), + .CH1_FF_RX_D_7(n62_1), + .CH0_FF_RX_D_8(rx_k[0]), + .CH1_FF_RX_D_8(n63_1), + .CH0_FF_RX_D_9(rx_disp_err[0]), + .CH1_FF_RX_D_9(n64_1), + .CH0_FF_RX_D_10(rx_cv_err[0]), + .CH1_FF_RX_D_10(n65_1), + .CH0_FF_RX_D_11(n10_1), + .CH1_FF_RX_D_11(n66_1), + .CH0_FF_RX_D_12(n67_1), + .CH1_FF_RX_D_12(n68_1), + .CH0_FF_RX_D_13(n69_1), + .CH1_FF_RX_D_13(n70_1), + .CH0_FF_RX_D_14(n71_1), + .CH1_FF_RX_D_14(n72_1), + .CH0_FF_RX_D_15(n73_1), + .CH1_FF_RX_D_15(n74_1), + .CH0_FF_RX_D_16(n75_1), + .CH1_FF_RX_D_16(n76_1), + .CH0_FF_RX_D_17(n77_1), + .CH1_FF_RX_D_17(n78_1), + .CH0_FF_RX_D_18(n79_1), + .CH1_FF_RX_D_18(n80_1), + .CH0_FF_RX_D_19(n81_1), + .CH1_FF_RX_D_19(n82_1), + .CH0_FF_RX_D_20(n83_1), + .CH1_FF_RX_D_20(n84_1), + .CH0_FF_RX_D_21(n85_1), + .CH1_FF_RX_D_21(n86_1), + .CH0_FF_RX_D_22(n87_1), + .CH1_FF_RX_D_22(n88_1), + .CH0_FF_RX_D_23(n11_1), + .CH1_FF_RX_D_23(n89_1), + .CH0_FFS_PCIE_DONE(n12_1), + .CH1_FFS_PCIE_DONE(n90_1), + .CH0_FFS_PCIE_CON(n13_1), + .CH1_FFS_PCIE_CON(n91_1), + .CH0_FFS_RLOS(rx_los_low_s), + .CH1_FFS_RLOS(n92_1), + .CH0_FFS_LS_SYNC_STATUS(lsm_status_s), + .CH1_FFS_LS_SYNC_STATUS(n93_1), + .CH0_FFS_CC_UNDERRUN(ctc_urun_s), + .CH1_FFS_CC_UNDERRUN(n94_1), + .CH0_FFS_CC_OVERRUN(ctc_orun_s), + .CH1_FFS_CC_OVERRUN(n95_1), + .CH0_FFS_RXFBFIFO_ERROR(n14_1), + .CH1_FFS_RXFBFIFO_ERROR(n96_1), + .CH0_FFS_TXFBFIFO_ERROR(n15_1), + .CH1_FFS_TXFBFIFO_ERROR(n97_1), + .CH0_FFS_RLOL(rx_cdr_lol_s), + .CH1_FFS_RLOL(n98_1), + .CH0_FFS_SKP_ADDED(ctc_ins_s), + .CH1_FFS_SKP_ADDED(n99_1), + .CH0_FFS_SKP_DELETED(ctc_del_s), + .CH1_FFS_SKP_DELETED(n100_1), + .CH0_LDR_RX2CORE(n101_1), + .CH1_LDR_RX2CORE(n112_1), + .D_SCIRDATA0(sci_rddata[0]), + .D_SCIRDATA1(sci_rddata[1]), + .D_SCIRDATA2(sci_rddata[2]), + .D_SCIRDATA3(sci_rddata[3]), + .D_SCIRDATA4(sci_rddata[4]), + .D_SCIRDATA5(sci_rddata[5]), + .D_SCIRDATA6(sci_rddata[6]), + .D_SCIRDATA7(sci_rddata[7]), + .D_SCIINT(sci_int), + .D_SCAN_OUT_0(n16_1), + .D_SCAN_OUT_1(n17_1), + .D_SCAN_OUT_2(n18_1), + .D_SCAN_OUT_3(n19_1), + .D_SCAN_OUT_4(n20_1), + .D_SCAN_OUT_5(n21_1), + .D_SCAN_OUT_6(n22_1), + .D_SCAN_OUT_7(n23_1), + .D_COUT0(n24_1), + .D_COUT1(n25_1), + .D_COUT2(n26_1), + .D_COUT3(n27_1), + .D_COUT4(n28_1), + .D_COUT5(n29_1), + .D_COUT6(n30_1), + .D_COUT7(n31_1), + .D_COUT8(n32_1), + .D_COUT9(n33_1), + .D_COUT10(n34_1), + .D_COUT11(n35_1), + .D_COUT12(n36_1), + .D_COUT13(n37_1), + .D_COUT14(n38_1), + .D_COUT15(n39_1), + .D_COUT16(n40_1), + .D_COUT17(n41_1), + .D_COUT18(n42_1), + .D_COUT19(n43_1), + .D_REFCLKI(pll_refclki), + .D_FFS_PLOL(n46_1) +); +defparam DCU0_inst.D_MACROPDB = "0b1"; +defparam DCU0_inst.D_IB_PWDNB = "0b1"; +defparam DCU0_inst.D_XGE_MODE = "0b0"; +defparam DCU0_inst.D_LOW_MARK = "0d4"; +defparam DCU0_inst.D_HIGH_MARK = "0d12"; +defparam DCU0_inst.D_BUS8BIT_SEL = "0b0"; +defparam DCU0_inst.D_CDR_LOL_SET = "0b00"; +defparam DCU0_inst.D_BITCLK_LOCAL_EN = "0b1"; +defparam DCU0_inst.D_BITCLK_ND_EN = "0b0"; +defparam DCU0_inst.D_BITCLK_FROM_ND_EN = "0b0"; +defparam DCU0_inst.D_SYNC_LOCAL_EN = "0b1"; +defparam DCU0_inst.D_SYNC_ND_EN = "0b0"; +defparam DCU0_inst.CH0_UC_MODE = "0b0"; +defparam DCU0_inst.CH0_PCIE_MODE = "0b0"; +defparam DCU0_inst.CH0_RIO_MODE = "0b0"; +defparam DCU0_inst.CH0_WA_MODE = "0b0"; +defparam DCU0_inst.CH0_INVERT_RX = "0b0"; +defparam DCU0_inst.CH0_INVERT_TX = "0b0"; +defparam DCU0_inst.CH0_PRBS_SELECTION = "0b0"; +defparam DCU0_inst.CH0_GE_AN_ENABLE = "0b0"; +defparam DCU0_inst.CH0_PRBS_LOCK = "0b0"; +defparam DCU0_inst.CH0_PRBS_ENABLE = "0b0"; +defparam DCU0_inst.CH0_ENABLE_CG_ALIGN = "0b1"; +defparam DCU0_inst.CH0_TX_GEAR_MODE = "0b0"; +defparam DCU0_inst.CH0_RX_GEAR_MODE = "0b0"; +defparam DCU0_inst.CH0_PCS_DET_TIME_SEL = "0b00"; +defparam DCU0_inst.CH0_PCIE_EI_EN = "0b0"; +defparam DCU0_inst.CH0_TX_GEAR_BYPASS = "0b0"; +defparam DCU0_inst.CH0_ENC_BYPASS = "0b0"; +defparam DCU0_inst.CH0_SB_BYPASS = "0b0"; +defparam DCU0_inst.CH0_RX_SB_BYPASS = "0b0"; +defparam DCU0_inst.CH0_WA_BYPASS = "0b0"; +defparam DCU0_inst.CH0_DEC_BYPASS = "0b0"; +defparam DCU0_inst.CH0_CTC_BYPASS = "0b0"; +defparam DCU0_inst.CH0_RX_GEAR_BYPASS = "0b0"; +defparam DCU0_inst.CH0_LSM_DISABLE = "0b0"; +defparam DCU0_inst.CH0_MATCH_2_ENABLE = "0b1"; +defparam DCU0_inst.CH0_MATCH_4_ENABLE = "0b0"; +defparam DCU0_inst.CH0_MIN_IPG_CNT = "0b11"; +defparam DCU0_inst.CH0_CC_MATCH_1 = "0x000"; +defparam DCU0_inst.CH0_CC_MATCH_2 = "0x000"; +defparam DCU0_inst.CH0_CC_MATCH_3 = "0x1BC"; +defparam DCU0_inst.CH0_CC_MATCH_4 = "0x050"; +defparam DCU0_inst.CH0_UDF_COMMA_MASK = "0x3ff"; +defparam DCU0_inst.CH0_UDF_COMMA_A = "0x283"; +defparam DCU0_inst.CH0_UDF_COMMA_B = "0x17C"; +defparam DCU0_inst.CH0_RX_DCO_CK_DIV = "0b010"; +defparam DCU0_inst.CH0_RCV_DCC_EN = "0b0"; +defparam DCU0_inst.CH0_REQ_LVL_SET = "0b00"; +defparam DCU0_inst.CH0_REQ_EN = "0b1"; +defparam DCU0_inst.CH0_RTERM_RX = "0d22"; +defparam DCU0_inst.CH0_PDEN_SEL = "0b1"; +defparam DCU0_inst.CH0_LDR_RX2CORE_SEL = "0b0"; +defparam DCU0_inst.CH0_LDR_CORE2TX_SEL = "0b0"; +defparam DCU0_inst.CH0_TPWDNB = "0b1"; +defparam DCU0_inst.CH0_RATE_MODE_TX = "0b0"; +defparam DCU0_inst.CH0_RTERM_TX = "0d19"; +defparam DCU0_inst.CH0_TX_CM_SEL = "0b00"; +defparam DCU0_inst.CH0_TDRV_PRE_EN = "0b0"; +defparam DCU0_inst.CH0_TDRV_SLICE0_SEL = "0b01"; +defparam DCU0_inst.CH0_TDRV_SLICE1_SEL = "0b00"; +defparam DCU0_inst.CH0_TDRV_SLICE2_SEL = "0b01"; +defparam DCU0_inst.CH0_TDRV_SLICE3_SEL = "0b01"; +defparam DCU0_inst.CH0_TDRV_SLICE4_SEL = "0b01"; +defparam DCU0_inst.CH0_TDRV_SLICE5_SEL = "0b01"; +defparam DCU0_inst.CH0_TDRV_SLICE0_CUR = "0b101"; +defparam DCU0_inst.CH0_TDRV_SLICE1_CUR = "0b000"; +defparam DCU0_inst.CH0_TDRV_SLICE2_CUR = "0b11"; +defparam DCU0_inst.CH0_TDRV_SLICE3_CUR = "0b11"; +defparam DCU0_inst.CH0_TDRV_SLICE4_CUR = "0b11"; +defparam DCU0_inst.CH0_TDRV_SLICE5_CUR = "0b00"; +defparam DCU0_inst.CH0_TDRV_DAT_SEL = "0b00"; +defparam DCU0_inst.CH0_TX_DIV11_SEL = "0b0"; +defparam DCU0_inst.CH0_RPWDNB = "0b1"; +defparam DCU0_inst.CH0_RATE_MODE_RX = "0b0"; +defparam DCU0_inst.CH0_RLOS_SEL = "0b1"; +defparam DCU0_inst.CH0_RX_LOS_LVL = "0b010"; +defparam DCU0_inst.CH0_RX_LOS_CEQ = "0b11"; +defparam DCU0_inst.CH0_RX_LOS_HYST_EN = "0b0"; +defparam DCU0_inst.CH0_RX_LOS_EN = "0b1"; +defparam DCU0_inst.CH0_RX_DIV11_SEL = "0b0"; +defparam DCU0_inst.CH0_SEL_SD_RX_CLK = "0b0"; +defparam DCU0_inst.CH0_FF_RX_H_CLK_EN = "0b0"; +defparam DCU0_inst.CH0_FF_RX_F_CLK_DIS = "0b0"; +defparam DCU0_inst.CH0_FF_TX_H_CLK_EN = "0b0"; +defparam DCU0_inst.CH0_FF_TX_F_CLK_DIS = "0b0"; +defparam DCU0_inst.CH0_RX_RATE_SEL = "0d8"; +defparam DCU0_inst.CH0_TDRV_POST_EN = "0b0"; +defparam DCU0_inst.CH0_TX_POST_SIGN = "0b0"; +defparam DCU0_inst.CH0_TX_PRE_SIGN = "0b0"; +defparam DCU0_inst.CH0_RXTERM_CM = "0b11"; +defparam DCU0_inst.CH0_RXIN_CM = "0b11"; +defparam DCU0_inst.CH0_LEQ_OFFSET_SEL = "0b0"; +defparam DCU0_inst.CH0_LEQ_OFFSET_TRIM = "0b000"; +defparam DCU0_inst.D_TX_MAX_RATE = "1.25"; +defparam DCU0_inst.CH0_CDR_MAX_RATE = "1.25"; +defparam DCU0_inst.CH0_TXAMPLITUDE = "0d1100"; +defparam DCU0_inst.CH0_TXDEPRE = "DISABLED"; +defparam DCU0_inst.CH0_TXDEPOST = "DISABLED"; +defparam DCU0_inst.CH0_PROTOCOL = "GBE"; +defparam DCU0_inst.D_ISETLOS = "0d0"; +defparam DCU0_inst.D_SETIRPOLY_AUX = "0b00"; +defparam DCU0_inst.D_SETICONST_AUX = "0b00"; +defparam DCU0_inst.D_SETIRPOLY_CH = "0b00"; +defparam DCU0_inst.D_SETICONST_CH = "0b00"; +defparam DCU0_inst.D_REQ_ISET = "0b000"; +defparam DCU0_inst.D_PD_ISET = "0b00"; +defparam DCU0_inst.D_DCO_CALIB_TIME_SEL = "0b00"; +defparam DCU0_inst.CH0_DCOCTLGI = "0b010"; +defparam DCU0_inst.CH0_DCOATDDLY = "0b00"; +defparam DCU0_inst.CH0_DCOATDCFG = "0b00"; +defparam DCU0_inst.CH0_DCOBYPSATD = "0b1"; +defparam DCU0_inst.CH0_DCOSCALEI = "0b00"; +defparam DCU0_inst.CH0_DCOITUNE4LSB = "0b111"; +defparam DCU0_inst.CH0_DCOIOSTUNE = "0b000"; +defparam DCU0_inst.CH0_DCODISBDAVOID = "0b0"; +defparam DCU0_inst.CH0_DCOCALDIV = "0b001"; +defparam DCU0_inst.CH0_DCONUOFLSB = "0b101"; +defparam DCU0_inst.CH0_DCOIUPDNX2 = "0b1"; +defparam DCU0_inst.CH0_DCOSTEP = "0b00"; +defparam DCU0_inst.CH0_DCOSTARTVAL = "0b000"; +defparam DCU0_inst.CH0_DCOFLTDAC = "0b01"; +defparam DCU0_inst.CH0_DCOITUNE = "0b00"; +defparam DCU0_inst.CH0_DCOFTNRG = "0b110"; +defparam DCU0_inst.CH0_CDR_CNT4SEL = "0b00"; +defparam DCU0_inst.CH0_CDR_CNT8SEL = "0b00"; +defparam DCU0_inst.CH0_BAND_THRESHOLD = "0d0"; +defparam DCU0_inst.CH0_AUTO_FACQ_EN = "0b1"; +defparam DCU0_inst.CH0_AUTO_CALIB_EN = "0b1"; +defparam DCU0_inst.CH0_CALIB_CK_MODE = "0b0"; +defparam DCU0_inst.CH0_REG_BAND_OFFSET = "0d0"; +defparam DCU0_inst.CH0_REG_BAND_SEL = "0d0"; +defparam DCU0_inst.CH0_REG_IDAC_SEL = "0d0"; +defparam DCU0_inst.CH0_REG_IDAC_EN = "0b0"; +defparam DCU0_inst.D_TXPLL_PWDNB = "0b1"; +defparam DCU0_inst.D_SETPLLRC = "0d1"; +defparam DCU0_inst.D_REFCK_MODE = "0b001"; +defparam DCU0_inst.D_TX_VCO_CK_DIV = "0b010"; +defparam DCU0_inst.D_PLL_LOL_SET = "0b00"; +defparam DCU0_inst.D_RG_EN = "0b0"; +defparam DCU0_inst.D_RG_SET = "0b00"; +defparam DCU0_inst.D_CMUSETISCL4VCO = "0b000"; +defparam DCU0_inst.D_CMUSETI4VCO = "0b00"; +defparam DCU0_inst.D_CMUSETINITVCT = "0b00"; +defparam DCU0_inst.D_CMUSETZGM = "0b000"; +defparam DCU0_inst.D_CMUSETP2AGM = "0b000"; +defparam DCU0_inst.D_CMUSETP1GM = "0b000"; +defparam DCU0_inst.D_CMUSETI4CPZ = "0d3"; +defparam DCU0_inst.D_CMUSETI4CPP = "0d3"; +defparam DCU0_inst.D_CMUSETICP4Z = "0b101"; +defparam DCU0_inst.D_CMUSETICP4P = "0b01"; +defparam DCU0_inst.D_CMUSETBIASI = "0b00"; +// @8:424 + sgmii_ecp5sll_core_Z1_layer1 sll_inst ( + .tx_pclk(tx_pclk), + .sli_rst(sli_rst), + .pll_refclki(pll_refclki), + .pll_lock_i(pll_lol) +); +// @8:394 + sgmii_ecp5rsl_core_Z2_layer1 rsl_inst ( + .rx_pcs_rst_c(rx_pcs_rst_c), + .tx_pcs_rst_c(tx_pcs_rst_c), + .tx_serdes_rst_c(tx_serdes_rst_c), + .serdes_rst_dual_c(serdes_rst_dual_c), + .rsl_tx_pcs_rst_c(rsl_tx_pcs_rst_c), + .rsl_rx_serdes_rst_c(rsl_rx_serdes_rst_c), + .rsl_serdes_rst_dual_c(rsl_serdes_rst_dual_c), + .rsl_tx_serdes_rst_c(rsl_tx_serdes_rst_c), + .rsl_tx_rdy(rsl_tx_rdy), + .pll_lock_i(pll_lol), + .pll_refclki(pll_refclki), + .rsl_rx_rdy(rsl_rx_rdy), + .rsl_rst(rsl_rst), + .rxrefclk(rxrefclk), + .rsl_disable(rsl_disable), + .rx_serdes_rst_c(rx_serdes_rst_c), + .rsl_rx_pcs_rst_c(rsl_rx_pcs_rst_c), + .rst_dual_c(rst_dual_c), + .rx_cdr_lol_s(rx_cdr_lol_s), + .rx_los_low_s(rx_los_low_s) +); +endmodule /* sgmii_ecp5 */ + diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5_cck.rpt.db b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5_cck.rpt.db new file mode 100644 index 0000000000000000000000000000000000000000..029fa7a6cf9014af50ee9d4aa843536a1f7b5c42 GIT binary patch literal 8192 zcmeI#JqyA>3DEQgKL*xDXO@ z%d=&(imfwzIG4G0Jf%J073BwWN1`{~f``Krs^Nta{J wY>_tId!-qqw)j}S$WL3iQGJ`s(T{)t1Rwwb2tWV=5P$##AOHafK;VZ3UKAiP82|tP literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5_scck.rpt.db b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5_scck.rpt.db new file mode 100644 index 0000000000000000000000000000000000000000..029fa7a6cf9014af50ee9d4aa843536a1f7b5c42 GIT binary patch literal 8192 zcmeI#JqyA>3DEQgKL*xDXO@ z%d=&(imfwzIG4G0Jf%J073BwWN1`{~f``Krs^Nta{J wY>_tId!-qqw)j}S$WL3iQGJ`s(T{)t1Rwwb2tWV=5P$##AOHafK;VZ3UKAiP82|tP literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5_synplify.lpf b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5_synplify.lpf new file mode 100644 index 0000000..9cbac38 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5_synplify.lpf @@ -0,0 +1,29 @@ +# +# Logical Preferences generated for Lattice by Synplify maplat, Build 1796R. +# + +# Period Constraints +#FREQUENCY PORT "pll_refclki" 100.0 MHz; +#FREQUENCY PORT "rxrefclk" 100.0 MHz; +#FREQUENCY NET "tx_pclk" 100.0 MHz; + + +# Output Constraints + +# Input Constraints + +# Point-to-point Delay Constraints + + + +# Block Path Constraints +#BLOCK PATH FROM CLKNET "tx_pclk" TO CLKNET "rxrefclk"; +#BLOCK PATH FROM CLKNET "tx_pclk" TO CLKNET "pll_refclki"; +#BLOCK PATH FROM CLKNET "rxrefclk" TO CLKNET "tx_pclk"; +#BLOCK PATH FROM CLKNET "rxrefclk" TO CLKNET "pll_refclki"; +#BLOCK PATH FROM CLKNET "pll_refclki" TO CLKNET "tx_pclk"; +#BLOCK PATH FROM CLKNET "pll_refclki" TO CLKNET "rxrefclk"; + +BLOCK ASYNCPATHS; + +# End of generated Logical Preferences. diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5_synplify_tmp2.lpf b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5_synplify_tmp2.lpf new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5_synplify_tmp4.lpf b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5_synplify_tmp4.lpf new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5_synplify_tmp8.lpf b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5_synplify_tmp8.lpf new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/layer0.tlg.rptmap b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/layer0.tlg.rptmap new file mode 100644 index 0000000..3910cac --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/layer0.tlg.rptmap @@ -0,0 +1 @@ +./synwork/layer0.tlg,layer0.tlg,An incremental, partial HDL compilation log file that may allow early access to errors or other messages. diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/layer1.tlg.rptmap b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/layer1.tlg.rptmap new file mode 100644 index 0000000..af92e0b --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/layer1.tlg.rptmap @@ -0,0 +1 @@ +./synwork/layer1.tlg,layer1.tlg,An incremental, partial HDL compilation log file that may allow early access to errors or other messages. diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/linker.rpt.rptmap b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/linker.rpt.rptmap new file mode 100644 index 0000000..3793ead --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/linker.rpt.rptmap @@ -0,0 +1 @@ +./synwork/sgmii_ecp5_comp.linkerlog,linker.rpt,Summary of linker messages for components that did not bind diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/metrics.db b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/metrics.db new file mode 100644 index 0000000000000000000000000000000000000000..8452dbd30faf5a61ca8f47f4286531d22ade14d9 GIT binary patch literal 20480 zcmeI3O=}xR7{_;Q*;-LXTN8pYMs$jjDlU~HS@Mghp>b1_w6znO7(xy~tX3m=vS#AHEJ2^#Mh{qqs}Ft*NyUDuNVbn*d4<@&i}~%qz)Pg zfB*=900@8p2!H?xfB*=*g9Oe$&SY2D*3657c3QsBUf{{@@c+`?M~4R|hy3K=%cDbH z8cvpOg{|kp)qLP6_ta6J@jz(hxs&n0@%v&j>`PBali~BQH5s^J5C}P?)l**JsF%k> z$yONp!jT*2Uo2)<%VqPTns{{m&^>Fqp&SSmd7*rLoSF6g`tp^0gBuIk)%A7r;-lmn zsJY#xD2!H?xfB*=900@8p2!H?xfWUi4U_WEA;tDH#o716o{APzr^{Bd+7VYXJp5(G0 zw1nbehu{C|h>zCSDZl<->FN5xg2l>|cATRLuj7e!^9?h3 zs@%SBT5N-SKbuIro%OL&T>mfI9~kx@_D}XJyJhdt01X5{00ck)1V8`;KmY_l00ck) z1m0f)8_O13FRT|?&ZQEc&KJ}+_jc-A^=c&OutYoR^tw(naC$wVK3%d{AqiE&@rSXy zjrwlA^6%Iiw8ucQYh&5!W+iE9Xio_ey-9lsq)1UC#kpah(B1)w6{f_t8#|T8UMe=) zdMMEb0m)I^L~dud*4P^v90kVpzr|h{_AmAi_ICc){P+0+`;8{hKmY_l00ck)1V8`; zKmY_l00jOYfv1+m8a6AQ?#!JM+qJnjdIQaUs_bvtZ0%vrbGuC?wBt#78iuwnY!-Jm}-5C8!X009sH0T2KI t5C8!X009sHfp?0)t#~`2utG-}o`fpW{IT!2XZ6iWy|!Jc$mx>|{{UwLq5}W` literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_notes.txt b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_notes.txt new file mode 100644 index 0000000..f5277c3 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_notes.txt @@ -0,0 +1,16 @@ +@N|Running in 64-bit mode +@N|Running in 64-bit mode +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.vhd":30:7:30:16|Top entity is set to sgmii_ecp5. +@N|Running in 64-bit mode +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.vhd":30:7:30:16|Top entity is set to sgmii_ecp5. +@N: CD630 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.vhd":30:7:30:16|Synthesizing work.sgmii_ecp5.v1. +@N: CG364 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1968:7:1968:10|Synthesizing module sync in library work. +@N: CG364 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1051:7:1051:24|Synthesizing module sgmii_ecp5sll_core in library work. +@N: CG179 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1287:54:1287:59|Removing redundant assignment. +@N: CG179 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1293:52:1293:55|Removing redundant assignment. +@N: CG364 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":92:7:92:24|Synthesizing module sgmii_ecp5rsl_core in library work. +@N: CL201 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1801:0:1801:5|Trying to extract state machine for register sll_state. +@N|Running in 64-bit mode + diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_runstatus.xml b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_runstatus.xml new file mode 100644 index 0000000..978b9de --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_runstatus.xml @@ -0,0 +1,41 @@ + + + + + + /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_compiler.srr + Synopsys HDL Compiler + + + Completed + + + + 15 + /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_notes.txt + + + 76 + /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_warnings.txt + + + 0 + /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_errors.txt + + + - + + + 00h:00m:02s + + + - + + + 1557731345 + + + \ No newline at end of file diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_warnings.txt b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_warnings.txt new file mode 100644 index 0000000..8e5c4f5 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_warnings.txt @@ -0,0 +1,77 @@ +@W: CL169 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1350:0:1350:5|Pruning unused register rcpri_mod_ch_st. Make sure that there are no unused intermediate registers. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 0 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 0 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 1 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 2 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 16 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 18 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 19 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 20 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 21 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":326:33:326:40|Object rrst_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":327:33:327:43|Removing wire rrst_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":328:33:328:41|Object rrst_wait is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":341:33:341:39|Object rxp_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":342:33:342:39|Object rxp_rst is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":343:33:343:42|Removing wire rxp_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":346:33:346:42|Object rlolsz_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":347:33:347:45|Removing wire rlolsz_cnt_tc, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":350:33:350:43|Removing wire rxp_cnt2_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":351:33:351:47|Object data_loop_b_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":352:33:352:43|Object data_loop_b is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":353:33:353:46|Removing wire data_loop_b_tc, as there is no assignment to it. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":806:3:806:8|Pruning unused register genblk2.rxp_cnt2[2:0]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlol_p3. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlos_p3. Make sure that there are no unused intermediate registers. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":694:3:694:8|Optimizing register bit genblk2.rxs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":461:3:461:8|Optimizing register bit genblk1.txp_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":422:3:422:8|Optimizing register bit genblk1.txs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":422:3:422:8|Pruning register bit 2 of genblk1.txs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":461:3:461:8|Pruning register bit 2 of genblk1.txp_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":694:3:694:8|Pruning register bit 2 of genblk2.rxs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":200:33:200:48|Input port bits 3 to 1 of rui_tx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":204:33:204:51|Input port bits 3 to 1 of rui_rx_serdes_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":205:33:205:48|Input port bits 3 to 1 of rui_rx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":206:33:206:48|Input port bits 3 to 1 of rdi_rx_los_low_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":207:33:207:48|Input port bits 3 to 1 of rdi_rx_cdr_lol_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning register bits 6 to 4 of genblk5.rdiff_comp_unlock[6:3]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning register bits 5 to 3 of genblk5.rdiff_comp_lock[5:2]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rdiff_comp_unlock[3]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rcount_tc[17]. Make sure that there are no unused intermediate registers. + diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_area_report.xml b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_area_report.xml new file mode 100644 index 0000000..c262d0f --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_area_report.xml @@ -0,0 +1,26 @@ + + + + +/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_resourceusage.rpt +Resource Usage + + +221 + + +0 + + +0 + + +0 + + +154 + + diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_errors.txt b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_errors.txt new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_notes.txt b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_notes.txt new file mode 100644 index 0000000..b2d9ac0 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_notes.txt @@ -0,0 +1,22 @@ +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) +@N: MO225 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1801:0:1801:5|There are no possible illegal states for state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)); safe FSM implementation is not required. +@N: MO231 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1350:0:1350:5|Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance rhb_wait_cnt[7:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1304:0:1304:5|Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance rcount[15:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1759:0:1759:5|Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance pcount[21:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":412:3:412:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk1\.plol_cnt[19:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":909:3:909:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.genblk3\.rxr_wt_cnt[11:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":527:3:527:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk1\.genblk2\.txr_wt_cnt[11:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":778:3:778:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.rlols0_cnt[17:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":680:3:680:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.rlol1_cnt[18:0] +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX164 |The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute. +@N: FX1056 |Writing EDF file: /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.edn +@N: BW106 |Synplicity Constraint File capacitance units using default value of 1pF +@N: MT320 |This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. +@N: MT322 |Clock constraints include only register-to-register paths associated with each individual clock. diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_opt_report.xml b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_opt_report.xml new file mode 100644 index 0000000..68d4e92 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_opt_report.xml @@ -0,0 +1,14 @@ + + + + +3 / 0 + +/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_combined_clk.rpt +START OF CLOCK OPTIMIZATION REPORT + + + diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_runstatus.xml b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_runstatus.xml new file mode 100644 index 0000000..686a424 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_runstatus.xml @@ -0,0 +1,46 @@ + + + + +/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.srr +Synopsys Lattice Technology Mapper + + +Completed + + + +22 + +/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_notes.txt + + + +4 + +/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_warnings.txt + + + +0 + +/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_errors.txt + + + +0h:00m:03s + + +0h:00m:03s + + +153MB + + +1557731351 + + + diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_timing_report.xml b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_timing_report.xml new file mode 100644 index 0000000..92b3753 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_timing_report.xml @@ -0,0 +1,41 @@ + + + + +/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.srr +START OF TIMING REPORT + + +Clock Name +Req Freq +Est Freq +Slack + + +sgmii_ecp5|pll_refclki +100.0 MHz +168.9 MHz +4.079 + + +sgmii_ecp5|rxrefclk +100.0 MHz +167.9 MHz +4.043 + + +sgmii_ecp5|tx_pclk_inferred_clock +100.0 MHz +237.5 MHz +5.789 + + +System +100.0 MHz +840.7 MHz +8.810 + + diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_warnings.txt b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_warnings.txt new file mode 100644 index 0000000..a40a3f6 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_warnings.txt @@ -0,0 +1,4 @@ +@W: MT246 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.vhd":162:4:162:12|Blackbox DCUA is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) +@W: MT420 |Found inferred clock sgmii_ecp5|rxrefclk with period 10.00ns. Please declare a user-defined clock on object "p:rxrefclk" +@W: MT420 |Found inferred clock sgmii_ecp5|pll_refclki with period 10.00ns. Please declare a user-defined clock on object "p:pll_refclki" +@W: MT420 |Found inferred clock sgmii_ecp5|tx_pclk_inferred_clock with period 10.00ns. Please declare a user-defined clock on object "n:tx_pclk" diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_errors.txt b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_errors.txt new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_notes.txt b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_notes.txt new file mode 100644 index 0000000..958d4b4 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_notes.txt @@ -0,0 +1,9 @@ +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) +@N: BN362 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1408:0:1408:5|Removing sequential instance pcpri_mod_ch (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:PrimLib.dffre(prim) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1244:27:1244:40|Removing instance div2_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_3(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1252:27:1252:41|Removing instance div11_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_2(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1236:27:1236:40|Removing instance gear_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_4(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1268:27:1268:44|Removing instance pcie_mod_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_0(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1260:27:1260:44|Removing instance cpri_mod_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_1(verilog) because it does not drive other instances. +@N: MO225 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1801:0:1801:5|There are no possible illegal states for state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)); safe FSM implementation is not required. diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_runstatus.xml b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_runstatus.xml new file mode 100644 index 0000000..552c1b6 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_runstatus.xml @@ -0,0 +1,46 @@ + + + + +/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_premap.srr +Synopsys Lattice Technology Pre-mapping + + +Completed + + + +9 + +/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_notes.txt + + + +3 + +/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_warnings.txt + + + +0 + +/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_errors.txt + + + +0h:00m:00s + + +0h:00m:00s + + +144MB + + +1557731347 + + + diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_warnings.txt b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_warnings.txt new file mode 100644 index 0000000..71c6352 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_warnings.txt @@ -0,0 +1,3 @@ +@W: MT529 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Found inferred clock sgmii_ecp5|pll_refclki which controls 93 sequential elements including sll_inst.phb_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":567:3:567:8|Found inferred clock sgmii_ecp5|rxrefclk which controls 77 sequential elements including rsl_inst.genblk2\.rlos_db_p1. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Found inferred clock sgmii_ecp5|tx_pclk_inferred_clock which controls 53 sequential elements including sll_inst.rtc_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_compiler.srr b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_compiler.srr new file mode 100644 index 0000000..7b9d5ac --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_compiler.srr @@ -0,0 +1,351 @@ +Synopsys HDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Synopsys VHDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.vhd":30:7:30:16|Top entity is set to sgmii_ecp5. +VHDL syntax check successful! + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB) + + +Process completed successfully. +# Mon May 13 09:09:04 2019 + +###########################################################] +Synopsys Verilog Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps) +@I::"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v" (library work) +Verilog syntax check successful! + +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB) + + +Process completed successfully. +# Mon May 13 09:09:04 2019 + +###########################################################] +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.vhd":30:7:30:16|Top entity is set to sgmii_ecp5. +VHDL syntax check successful! +@N: CD630 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.vhd":30:7:30:16|Synthesizing work.sgmii_ecp5.v1. +Post processing for work.sgmii_ecp5.v1 + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 74MB peak: 76MB) + + +Process completed successfully. +# Mon May 13 09:09:04 2019 + +###########################################################] +Running on host :lxhadeb07 +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps) +@I::"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v" (library work) +Verilog syntax check successful! +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +@N: CG364 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1968:7:1968:10|Synthesizing module sync in library work. + + PDATA_RST_VAL=32'b00000000000000000000000000000000 + Generated name = sync_0s +@N: CG364 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1051:7:1051:24|Synthesizing module sgmii_ecp5sll_core in library work. + + PPROTOCOL=24'b010001110100001001000101 + PLOL_SETTING=32'b00000000000000000000000000000000 + PDYN_RATE_CTRL=64'b0100010001001001010100110100000101000010010011000100010101000100 + PPCIE_MAX_RATE=24'b001100100010111000110101 + PDIFF_VAL_LOCK=32'b00000000000000000000000000100111 + PDIFF_VAL_UNLOCK=32'b00000000000000000000000001001110 + PPCLK_TC=32'b00000000000000100000000000000000 + PDIFF_DIV11_VAL_LOCK=32'b00000000000000000000000000000000 + PDIFF_DIV11_VAL_UNLOCK=32'b00000000000000000000000000000000 + PPCLK_DIV11_TC=32'b00000000000000000000000000000000 + LPLL_LOSS_ST=2'b00 + LPLL_PRELOSS_ST=2'b01 + LPLL_PRELOCK_ST=2'b10 + LPLL_LOCK_ST=2'b11 + LRCLK_TC=16'b1111111111111111 + LRCLK_TC_PUL_WIDTH=16'b0000000000110010 + LHB_WAIT_CNT=8'b11111111 + LPCLK_TC_0=32'b00000000000000001000000000000000 + LPCLK_TC_1=32'b00000000000000010000000000000000 + LPCLK_TC_2=32'b00000000000000100000000000000000 + LPCLK_TC_3=32'b00000000000000101000000000000000 + LPCLK_TC_4=32'b00000000000000010000000000000000 + LPDIFF_LOCK_00=32'b00000000000000000000000000001001 + LPDIFF_LOCK_10=32'b00000000000000000000000000010011 + LPDIFF_LOCK_20=32'b00000000000000000000000000100111 + LPDIFF_LOCK_30=32'b00000000000000000000000000110001 + LPDIFF_LOCK_40=32'b00000000000000000000000000010011 + LPDIFF_LOCK_01=32'b00000000000000000000000000001001 + LPDIFF_LOCK_11=32'b00000000000000000000000000010011 + LPDIFF_LOCK_21=32'b00000000000000000000000000100111 + LPDIFF_LOCK_31=32'b00000000000000000000000000110001 + LPDIFF_LOCK_41=32'b00000000000000000000000000010011 + LPDIFF_LOCK_02=32'b00000000000000000000000000110001 + LPDIFF_LOCK_12=32'b00000000000000000000000001100010 + LPDIFF_LOCK_22=32'b00000000000000000000000011000100 + LPDIFF_LOCK_32=32'b00000000000000000000000011110101 + LPDIFF_LOCK_42=32'b00000000000000000000000001100010 + LPDIFF_LOCK_03=32'b00000000000000000000000010000011 + LPDIFF_LOCK_13=32'b00000000000000000000000100000110 + LPDIFF_LOCK_23=32'b00000000000000000000001000001100 + LPDIFF_LOCK_33=32'b00000000000000000000001010001111 + LPDIFF_LOCK_43=32'b00000000000000000000000100000110 + LPDIFF_UNLOCK_00=32'b00000000000000000000000000010011 + LPDIFF_UNLOCK_10=32'b00000000000000000000000000100111 + LPDIFF_UNLOCK_20=32'b00000000000000000000000001001110 + LPDIFF_UNLOCK_30=32'b00000000000000000000000001100010 + LPDIFF_UNLOCK_40=32'b00000000000000000000000000100111 + LPDIFF_UNLOCK_01=32'b00000000000000000000000001000001 + LPDIFF_UNLOCK_11=32'b00000000000000000000000010000011 + LPDIFF_UNLOCK_21=32'b00000000000000000000000100000110 + LPDIFF_UNLOCK_31=32'b00000000000000000000000101000111 + LPDIFF_UNLOCK_41=32'b00000000000000000000000010000011 + LPDIFF_UNLOCK_02=32'b00000000000000000000000001001000 + LPDIFF_UNLOCK_12=32'b00000000000000000000000010010000 + LPDIFF_UNLOCK_22=32'b00000000000000000000000100100000 + LPDIFF_UNLOCK_32=32'b00000000000000000000000101101000 + LPDIFF_UNLOCK_42=32'b00000000000000000000000010010000 + LPDIFF_UNLOCK_03=32'b00000000000000000000000011000100 + LPDIFF_UNLOCK_13=32'b00000000000000000000000110001001 + LPDIFF_UNLOCK_23=32'b00000000000000000000001100010010 + LPDIFF_UNLOCK_33=32'b00000000000000000000001111010111 + LPDIFF_UNLOCK_43=32'b00000000000000000000000110001001 + Generated name = sgmii_ecp5sll_core_Z1_layer1 +@N: CG179 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1287:54:1287:59|Removing redundant assignment. +@N: CG179 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1293:52:1293:55|Removing redundant assignment. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1350:0:1350:5|Pruning unused register rcpri_mod_ch_st. Make sure that there are no unused intermediate registers. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 0 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 0 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 1 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 2 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 16 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 18 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 19 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 20 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 21 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +@N: CG364 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":92:7:92:24|Synthesizing module sgmii_ecp5rsl_core in library work. + + pnum_channels=32'b00000000000000000000000000000001 + pprotocol=24'b010001110100001001000101 + pserdes_mode=72'b010100100101100000100000010000010100111001000100001000000101010001011000 + pport_tx_rdy=56'b01000101010011100100000101000010010011000100010101000100 + pwait_tx_rdy=32'b00000000000000000000101110111000 + pport_rx_rdy=56'b01000101010011100100000101000010010011000100010101000100 + pwait_rx_rdy=32'b00000000000000000000101110111000 + wa_num_cycles=32'b00000000000000000000010000000000 + dac_num_cycles=32'b00000000000000000000000000000011 + lreset_pwidth=32'b00000000000000000000000000000011 + lwait_b4_trst=32'b00000000000010111110101111000010 + lwait_b4_trst_s=32'b00000000000000000000001100001101 + lplol_cnt_width=32'b00000000000000000000000000010100 + lwait_after_plol0=32'b00000000000000000000000000000100 + lwait_b4_rrst=32'b00000000000000101100000000000000 + lrrst_wait_width=32'b00000000000000000000000000010100 + lwait_after_rrst=32'b00000000000011000011010100000000 + lwait_b4_rrst_s=32'b00000000000000000000000111001100 + lrlol_cnt_width=32'b00000000000000000000000000010011 + lwait_after_lols=32'b00000000000000001100010000000000 + lwait_after_lols_s=32'b00000000000000000000000010010110 + llols_cnt_width=32'b00000000000000000000000000010010 + lrdb_max=32'b00000000000000000000000000001111 + ltxr_wait_width=32'b00000000000000000000000000001100 + lrxr_wait_width=32'b00000000000000000000000000001100 + Generated name = sgmii_ecp5rsl_core_Z2_layer1 +@W: CG133 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":326:33:326:40|Object rrst_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":327:33:327:43|Removing wire rrst_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":328:33:328:41|Object rrst_wait is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":341:33:341:39|Object rxp_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":342:33:342:39|Object rxp_rst is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":343:33:343:42|Removing wire rxp_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":346:33:346:42|Object rlolsz_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":347:33:347:45|Removing wire rlolsz_cnt_tc, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":350:33:350:43|Removing wire rxp_cnt2_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":351:33:351:47|Object data_loop_b_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":352:33:352:43|Object data_loop_b is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":353:33:353:46|Removing wire data_loop_b_tc, as there is no assignment to it. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":806:3:806:8|Pruning unused register genblk2.rxp_cnt2[2:0]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlol_p3. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlos_p3. Make sure that there are no unused intermediate registers. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":694:3:694:8|Optimizing register bit genblk2.rxs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":461:3:461:8|Optimizing register bit genblk1.txp_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":422:3:422:8|Optimizing register bit genblk1.txs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":422:3:422:8|Pruning register bit 2 of genblk1.txs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":461:3:461:8|Pruning register bit 2 of genblk1.txp_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":694:3:694:8|Pruning register bit 2 of genblk2.rxs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":200:33:200:48|Input port bits 3 to 1 of rui_tx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":204:33:204:51|Input port bits 3 to 1 of rui_rx_serdes_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":205:33:205:48|Input port bits 3 to 1 of rui_rx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":206:33:206:48|Input port bits 3 to 1 of rdi_rx_los_low_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":207:33:207:48|Input port bits 3 to 1 of rdi_rx_cdr_lol_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning register bits 6 to 4 of genblk5.rdiff_comp_unlock[6:3]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning register bits 5 to 3 of genblk5.rdiff_comp_lock[5:2]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rdiff_comp_unlock[3]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rcount_tc[17]. Make sure that there are no unused intermediate registers. +@N: CL201 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1801:0:1801:5|Trying to extract state machine for register sll_state. +Extracted state machine for register sll_state +State machine has 4 reachable states with original encodings of: + 00 + 01 + 10 + 11 + +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 75MB peak: 81MB) + + +Process completed successfully. +# Mon May 13 09:09:05 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode + +======================================================================================= +For a summary of linker messages for components that did not bind, please see log file: +@L: /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.linkerlog +======================================================================================= + + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Mon May 13 09:09:05 2019 + +###########################################################] +@END + +At c_hdl Exit (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 3MB peak: 4MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Mon May 13 09:09:05 2019 + +###########################################################] diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_compiler.srr.db b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_compiler.srr.db new file mode 100644 index 0000000000000000000000000000000000000000..22032b27c0e6d592fd8ff3ba504bfa3cf705b99a GIT binary patch literal 28672 zcmeI5-ESLN6~OI$Ip1zmN*0#DrMt9UNbUJ_Z1-cg+f74gLc47dXrp!*k8hH($1~HJ zalY0FITF$eUJ<mpSGt>6Xm1_&YT9{>;V#?!v^WyOkp;M_ZL>|yJ++00Duim{Tp zi9L4i@7%9*&b{a4&YLT`htay_G*l0XsS~MmI`tYtsZ?qhzBBOMd8FZoq0TQ*lHZ^9 z7*1XI_?;=ZE1msm3civ@B7sB#i3Ab}Boas@kVqhrKq7%e0*M3?2_zEuKbL@)&dkou zrP~)hwPN4~c3pJ?yPb02+U>=wcNfv!tFNytqRzAD^(xv@9c@!}=8>VB_3m#6w{)MV z>t@f*HoQ|ey;q2lKa~BD$Uc+(PxhniqwI$hAB_KN?9u2aqnXUi$lUPxAz|>+!1eU4 z)LTbsqPBZ#bhfRvAG|nlZAIXUXY!j?1LxJMqpN0qL-+EYQ;}UQ@8O1Rs2d{7E1K1?m8NM}T78X|%iO(#HzIBx zK5RpGJ?y{_4QmTmQDqldwx>7rJ=N1KGqtSJRn6sOjn|)bx#l$b~H7+}39GOj+chesJLn!P-%Qb!D2{ z;(hVWv<9F~=axvF7KBcnh_uXS+AbXwGcB6t=-&H|G28%pLa(&4aJ8%iK>fKQ{AM*=6o` zZs^#|bL=t)=jiSUv12oTgdy%!D%iO+C00o!L>US+8n#I!DTxX z+6(N`2Hgjt(9W|<8+06mLi;UtX~WkpYTu-^Ebdi=uUyn#VHP%g-J*7$S=gY1AdEp< zJI5?+_8{T9bd6`1|CM8L0OwJ{Y0p<*2UM*+ z1_Ku&>!KaFqAZq0_<}+zbmRWEb%>vccLwEHHQ{; z!qiD$qCyH7qluB#$zDPy7XR)4o4jQGH46Ftcp!Nnk}pdOkAWmzFf!0fuTs##c={vf zgL0%b594HMe{>Fp+7UbBl`FLRnOLeX!5RR=2@0tv%-65JVHxfoX{jRusFx|gYAhX1 zf~k)H6v~p&>1fVj%_Hk$7cWu9bUcmZ&v_EedBWrS*b!Uk{zY2*rFdG%pYJ3nN{1~3 zL&I^Sn*#2a;{^2QIthvZV3c#*4@(sAMl3BT6zLd)LgEiw5SmZfRzXjWYQ4Htq=@lM z4*8Efi%RkoelM1U3MB!;{^9b}WD1V^ zUuv4eyoiTBVSXVbJMh6B3QJG3M{V*R5w?5u z^Wad87!LFP+1rG9pBPmuLeyD#0(mey4Sbk%2z*v9l8J2_bR>4!=}|ekECBoRI#`OZ za#PcoCL|&mL$O&UMkn4>w{#1#jzT)mEt0Z`IJfL3eEc?8pTy*(sY$``bmxibdGO-8 zV>Rf_o@FBgZ(*ZrV(*`SlL~5$6+snOw~XA<<TBe)UdXrg#T`w z@G{Zr1x|hne3Q1kt+~WvQ?$rh{zt2Hh8T{g+k^j~z)NMBe^R&i;lXiV#ZmL`t;E^* z)NLhj;I?|=um^r`M~S@g_h)Yayt03pHh#oDq7-xNy#XCqBtY1@K{jW1a8WNa)osdL_f>Jm0^0u#@l{B(of&WCU new code + 00 -> 00 + 01 -> 01 + 10 -> 10 + 11 -> 11 +@N: MO225 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1801:0:1801:5|There are no possible illegal states for state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)); safe FSM implementation is not required. +@N: MO231 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1350:0:1350:5|Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance rhb_wait_cnt[7:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1304:0:1304:5|Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance rcount[15:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1759:0:1759:5|Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance pcount[21:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":412:3:412:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk1\.plol_cnt[19:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":909:3:909:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.genblk3\.rxr_wt_cnt[11:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":527:3:527:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk1\.genblk2\.txr_wt_cnt[11:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":778:3:778:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.rlols0_cnt[17:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":680:3:680:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.rlol1_cnt[18:0] + +Starting factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + + +Finished factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 145MB) + + +Starting gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 145MB) + + +Finished gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 145MB) + + +Finished generic timing optimizations - Pass 1 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 145MB) + + +Starting Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:01s; Memory used current: 145MB peak: 146MB) + + +Finished Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:01s; Memory used current: 145MB peak: 146MB) + + +Finished generic timing optimizations - Pass 2 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:01s; Memory used current: 145MB peak: 146MB) + + +Finished preparing to map (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 145MB peak: 146MB) + +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). + +Finished technology mapping (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 147MB peak: 149MB) + +Pass CPU time Worst Slack Luts / Registers +------------------------------------------------------------ + 1 0h:00m:01s 4.90ns 155 / 221 +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). + +Finished technology timing optimizations and critical path resynthesis (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 147MB peak: 149MB) + +@N: FX164 |The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute. + +Finished restoring hierarchy (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 148MB peak: 149MB) + + + +@S |Clock Optimization Summary + + +#### START OF CLOCK OPTIMIZATION REPORT #####[ + +3 non-gated/non-generated clock tree(s) driving 221 clock pin(s) of sequential element(s) +0 gated/generated clock tree(s) driving 0 clock pin(s) of sequential element(s) +0 instances converted, 0 sequential instances remain driven by gated/generated clocks + +============================================= Non-Gated/Non-Generated Clocks ============================================= +Clock Tree ID Driving Element Drive Element Type Fanout Sample Instance +-------------------------------------------------------------------------------------------------------------------------- +@K:CKID0001 pll_refclki port 91 rsl_inst.genblk1\.genblk2\.mfor\[0\]\.txpr_appd[0] +@K:CKID0002 rxrefclk port 77 rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] +@K:CKID0003 DCU0_inst DCUA 53 sll_inst.pcount[21] +========================================================================================================================== + + +##### END OF CLOCK OPTIMIZATION REPORT ######] + + +Start Writing Netlists (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 112MB peak: 149MB) + +Writing Analyst data base /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_m.srm + +Finished Writing Netlist Databases (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 147MB peak: 149MB) + +Writing EDIF Netlist and constraint files +@N: FX1056 |Writing EDF file: /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.edn +M-2017.03L-SP1-1 +@N: BW106 |Synplicity Constraint File capacitance units using default value of 1pF + +Finished Writing EDIF Netlist and constraint files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 151MB peak: 153MB) + +Writing Verilog Simulation files + +Finished Writing Verilog Simulation files (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB) + +Writing VHDL Simulation files + +Finished Writing VHDL Simulation files (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB) + + +Start final timing analysis (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB) + +@W: MT246 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.vhd":162:4:162:12|Blackbox DCUA is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) +@W: MT420 |Found inferred clock sgmii_ecp5|rxrefclk with period 10.00ns. Please declare a user-defined clock on object "p:rxrefclk" +@W: MT420 |Found inferred clock sgmii_ecp5|pll_refclki with period 10.00ns. Please declare a user-defined clock on object "p:pll_refclki" +@W: MT420 |Found inferred clock sgmii_ecp5|tx_pclk_inferred_clock with period 10.00ns. Please declare a user-defined clock on object "n:tx_pclk" + + +##### START OF TIMING REPORT #####[ +# Timing Report written on Mon May 13 09:09:11 2019 +# + + +Top view: sgmii_ecp5 +Requested Frequency: 100.0 MHz +Wire load mode: top +Paths requested: 5 +Constraint File(s): /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.fdc + +@N: MT320 |This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. + +@N: MT322 |Clock constraints include only register-to-register paths associated with each individual clock. + + + +Performance Summary +******************* + + +Worst slack in design: 4.043 + + Requested Estimated Requested Estimated Clock Clock +Starting Clock Frequency Frequency Period Period Slack Type Group +---------------------------------------------------------------------------------------------------------------------------------------- +sgmii_ecp5|pll_refclki 100.0 MHz 168.9 MHz 10.000 5.921 4.079 inferred Inferred_clkgroup_0 +sgmii_ecp5|rxrefclk 100.0 MHz 167.9 MHz 10.000 5.957 4.043 inferred Inferred_clkgroup_1 +sgmii_ecp5|tx_pclk_inferred_clock 100.0 MHz 237.5 MHz 10.000 4.211 5.789 inferred Inferred_clkgroup_2 +System 100.0 MHz 840.7 MHz 10.000 1.190 8.810 system system_clkgroup +======================================================================================================================================== + + + + + +Clock Relationships +******************* + +Clocks | rise to rise | fall to fall | rise to fall | fall to rise +------------------------------------------------------------------------------------------------------------------------------------------------------------ +Starting Ending | constraint slack | constraint slack | constraint slack | constraint slack +------------------------------------------------------------------------------------------------------------------------------------------------------------ +System sgmii_ecp5|rxrefclk | 10.000 8.811 | No paths - | No paths - | No paths - +sgmii_ecp5|pll_refclki System | 10.000 8.253 | No paths - | No paths - | No paths - +sgmii_ecp5|pll_refclki sgmii_ecp5|pll_refclki | 10.000 4.079 | No paths - | No paths - | No paths - +sgmii_ecp5|pll_refclki sgmii_ecp5|tx_pclk_inferred_clock | Diff grp - | No paths - | No paths - | No paths - +sgmii_ecp5|rxrefclk System | 10.000 8.277 | No paths - | No paths - | No paths - +sgmii_ecp5|rxrefclk sgmii_ecp5|rxrefclk | 10.000 4.043 | No paths - | No paths - | No paths - +sgmii_ecp5|tx_pclk_inferred_clock sgmii_ecp5|pll_refclki | Diff grp - | No paths - | No paths - | No paths - +sgmii_ecp5|tx_pclk_inferred_clock sgmii_ecp5|tx_pclk_inferred_clock | 10.000 5.789 | No paths - | No paths - | No paths - +============================================================================================================================================================ + Note: 'No paths' indicates there are no paths in the design for that pair of clock edges. + 'Diff grp' indicates that paths exist but the starting clock and ending clock are in different clock groups. + + + +Interface Information +********************* + +No IO constraint found + + + +==================================== +Detailed Report for Clock: sgmii_ecp5|pll_refclki +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +-------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[2] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[2] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[3] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[3] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[17] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[17] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[19] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[19] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[1] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[1] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[4] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[4] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[5] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[5] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[6] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[6] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[7] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[7] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[8] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[8] 0.907 4.684 +==================================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +----------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[19] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[19] 9.946 4.079 +rsl_inst.genblk1\.plol_cnt[17] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[17] 9.946 4.139 +rsl_inst.genblk1\.plol_cnt[18] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[18] 9.946 4.139 +rsl_inst.genblk1\.plol_cnt[15] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[15] 9.946 4.200 +rsl_inst.genblk1\.plol_cnt[16] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[16] 9.946 4.200 +rsl_inst.genblk1\.plol_cnt[13] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[13] 9.946 4.261 +rsl_inst.genblk1\.plol_cnt[14] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[14] 9.946 4.261 +rsl_inst.genblk1\.plol_cnt[11] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[11] 9.946 4.322 +rsl_inst.genblk1\.plol_cnt[12] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[12] 9.946 4.322 +rsl_inst.genblk1\.plol_cnt[9] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[9] 9.946 4.383 +======================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 5.867 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : 4.079 + + Number of logic level(s): 15 + Starting point: rsl_inst.genblk1\.plol_cnt[2] / Q + Ending point: rsl_inst.genblk1\.plol_cnt[19] / D + The start point is clocked by sgmii_ecp5|pll_refclki [rising] on pin CK + The end point is clocked by sgmii_ecp5|pll_refclki [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[2] FD1S3DX Q Out 0.907 0.907 - +plol_cnt[2] Net - - - - 2 +rsl_inst.genblk1\.un1_plol_cnt_tc_10 ORCALUT4 A In 0.000 0.907 - +rsl_inst.genblk1\.un1_plol_cnt_tc_10 ORCALUT4 Z Out 0.606 1.513 - +un1_plol_cnt_tc_10 Net - - - - 1 +rsl_inst.genblk1\.un1_plol_cnt_tc_14 ORCALUT4 D In 0.000 1.513 - +rsl_inst.genblk1\.un1_plol_cnt_tc_14 ORCALUT4 Z Out 0.606 2.119 - +un1_plol_cnt_tc_14 Net - - - - 1 +rsl_inst.genblk1\.un1_plol_cnt_tc ORCALUT4 D In 0.000 2.119 - +rsl_inst.genblk1\.un1_plol_cnt_tc ORCALUT4 Z Out 0.762 2.881 - +un1_plol_cnt_tc Net - - - - 5 +rsl_inst.genblk1\.plol_cnt11_i ORCALUT4 B In 0.000 2.881 - +rsl_inst.genblk1\.plol_cnt11_i ORCALUT4 Z Out 0.840 3.721 - +plol_cnt Net - - - - 21 +rsl_inst.genblk1\.plol_cnt_cry_0[0] CCU2C A1 In 0.000 3.721 - +rsl_inst.genblk1\.plol_cnt_cry_0[0] CCU2C COUT Out 0.900 4.621 - +plol_cnt_cry[0] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[1] CCU2C CIN In 0.000 4.621 - +rsl_inst.genblk1\.plol_cnt_cry_0[1] CCU2C COUT Out 0.061 4.682 - +plol_cnt_cry[2] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[3] CCU2C CIN In 0.000 4.682 - +rsl_inst.genblk1\.plol_cnt_cry_0[3] CCU2C COUT Out 0.061 4.743 - +plol_cnt_cry[4] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[5] CCU2C CIN In 0.000 4.743 - +rsl_inst.genblk1\.plol_cnt_cry_0[5] CCU2C COUT Out 0.061 4.804 - +plol_cnt_cry[6] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[7] CCU2C CIN In 0.000 4.804 - +rsl_inst.genblk1\.plol_cnt_cry_0[7] CCU2C COUT Out 0.061 4.865 - +plol_cnt_cry[8] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[9] CCU2C CIN In 0.000 4.865 - +rsl_inst.genblk1\.plol_cnt_cry_0[9] CCU2C COUT Out 0.061 4.926 - +plol_cnt_cry[10] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[11] CCU2C CIN In 0.000 4.926 - +rsl_inst.genblk1\.plol_cnt_cry_0[11] CCU2C COUT Out 0.061 4.987 - +plol_cnt_cry[12] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[13] CCU2C CIN In 0.000 4.987 - +rsl_inst.genblk1\.plol_cnt_cry_0[13] CCU2C COUT Out 0.061 5.048 - +plol_cnt_cry[14] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[15] CCU2C CIN In 0.000 5.048 - +rsl_inst.genblk1\.plol_cnt_cry_0[15] CCU2C COUT Out 0.061 5.109 - +plol_cnt_cry[16] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[17] CCU2C CIN In 0.000 5.109 - +rsl_inst.genblk1\.plol_cnt_cry_0[17] CCU2C COUT Out 0.061 5.170 - +plol_cnt_cry[18] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_s_0[19] CCU2C CIN In 0.000 5.170 - +rsl_inst.genblk1\.plol_cnt_s_0[19] CCU2C S0 Out 0.698 5.867 - +plol_cnt_s[19] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt[19] FD1S3DX D In 0.000 5.867 - +======================================================================================================= + + + + +==================================== +Detailed Report for Clock: sgmii_ecp5|rxrefclk +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rxs_rst sgmii_ecp5|rxrefclk FD1P3DX Q rxs_rst 1.015 4.043 +rsl_inst.genblk2\.rlol1_cnt[7] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[7] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[8] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[8] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[9] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[9] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[10] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[10] 0.907 4.136 +rsl_inst.genblk2\.rlols0_cnt[1] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[1] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[2] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[2] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[3] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[3] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[4] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[4] 0.907 4.170 +rsl_inst.genblk2\.rlol1_cnt[0] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[0] 0.907 4.742 +=================================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[11] sgmii_ecp5|rxrefclk FD1P3DX D rxr_wt_cnt_s[11] 9.946 4.043 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[9] sgmii_ecp5|rxrefclk FD1P3DX D rxr_wt_cnt_s[9] 9.946 4.104 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[10] sgmii_ecp5|rxrefclk FD1P3DX D rxr_wt_cnt_s[10] 9.946 4.104 +rsl_inst.genblk2\.rlol1_cnt[17] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[17] 9.946 4.136 +rsl_inst.genblk2\.rlol1_cnt[18] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[18] 9.946 4.136 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[7] sgmii_ecp5|rxrefclk FD1P3DX D rxr_wt_cnt_s[7] 9.946 4.165 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[8] sgmii_ecp5|rxrefclk FD1P3DX D rxr_wt_cnt_s[8] 9.946 4.165 +rsl_inst.genblk2\.rlols0_cnt[17] sgmii_ecp5|rxrefclk FD1P3DX D rlols0_cnt_s[17] 9.946 4.170 +rsl_inst.genblk2\.rlol1_cnt[15] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[15] 9.946 4.197 +rsl_inst.genblk2\.rlol1_cnt[16] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[16] 9.946 4.197 +================================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 5.902 + - Clock delay at starting point: 0.000 (ideal) + = Slack (critical) : 4.043 + + Number of logic level(s): 11 + Starting point: rsl_inst.genblk2\.rxs_rst / Q + Ending point: rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[11] / D + The start point is clocked by sgmii_ecp5|rxrefclk [rising] on pin CK + The end point is clocked by sgmii_ecp5|rxrefclk [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +----------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rxs_rst FD1P3DX Q Out 1.015 1.015 - +rxs_rst Net - - - - 6 +rsl_inst.rdo_rx_serdes_rst_c_1[0] ORCALUT4 B In 0.000 1.015 - +rsl_inst.rdo_rx_serdes_rst_c_1[0] ORCALUT4 Z Out 0.708 1.723 - +rsl_rx_serdes_rst_c Net - - - - 3 +rsl_inst.dual_or_rserd_rst ORCALUT4 A In 0.000 1.723 - +rsl_inst.dual_or_rserd_rst ORCALUT4 Z Out 0.798 2.521 - +dual_or_rserd_rst Net - - - - 9 +rsl_inst.rx_any_rst ORCALUT4 A In 0.000 2.521 - +rsl_inst.rx_any_rst ORCALUT4 Z Out 0.660 3.181 - +rx_any_rst Net - - - - 2 +rsl_inst.rx_any_rst_RNIFD021 ORCALUT4 A In 0.000 3.181 - +rsl_inst.rx_any_rst_RNIFD021 ORCALUT4 Z Out 0.819 4.000 - +rxr_wt_cnt9 Net - - - - 14 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[0] CCU2C A1 In 0.000 4.000 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[0] CCU2C COUT Out 0.900 4.900 - +rxr_wt_cnt_cry[0] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[1] CCU2C CIN In 0.000 4.900 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[1] CCU2C COUT Out 0.061 4.961 - +rxr_wt_cnt_cry[2] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[3] CCU2C CIN In 0.000 4.961 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[3] CCU2C COUT Out 0.061 5.022 - +rxr_wt_cnt_cry[4] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[5] CCU2C CIN In 0.000 5.022 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[5] CCU2C COUT Out 0.061 5.083 - +rxr_wt_cnt_cry[6] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[7] CCU2C CIN In 0.000 5.083 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[7] CCU2C COUT Out 0.061 5.144 - +rxr_wt_cnt_cry[8] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[9] CCU2C CIN In 0.000 5.144 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[9] CCU2C COUT Out 0.061 5.205 - +rxr_wt_cnt_cry[10] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_s_0[11] CCU2C CIN In 0.000 5.205 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_s_0[11] CCU2C S0 Out 0.698 5.902 - +rxr_wt_cnt_s[11] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[11] FD1P3DX D In 0.000 5.902 - +================================================================================================================= + + + + +==================================== +Detailed Report for Clock: sgmii_ecp5|tx_pclk_inferred_clock +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------------------------------------------ +sll_inst.ppul_sync_p1 sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q ppul_sync_p1 1.098 5.789 +sll_inst.ppul_sync_p2 sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q ppul_sync_p2 1.098 5.789 +sll_inst.pcount_diff[0] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_0 0.985 6.147 +sll_inst.pcount[0] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q pcount[0] 0.955 6.178 +sll_inst.pcount_diff[1] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_1 0.955 6.239 +sll_inst.pcount_diff[2] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_2 0.955 6.239 +sll_inst.pcount[1] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q pcount[1] 0.907 6.287 +sll_inst.pcount[2] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q pcount[2] 0.907 6.287 +sll_inst.pcount_diff[3] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_3 0.955 6.300 +sll_inst.pcount_diff[4] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_4 0.955 6.300 +======================================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +----------------------------------------------------------------------------------------------------------------------------------------- +sll_inst.pcount[21] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[21] 9.946 5.789 +sll_inst.pcount[19] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[19] 9.946 5.850 +sll_inst.pcount[20] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[20] 9.946 5.850 +sll_inst.pcount[17] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[17] 9.946 5.911 +sll_inst.pcount[18] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[18] 9.946 5.911 +sll_inst.pcount[15] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[15] 9.946 5.972 +sll_inst.pcount[16] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[16] 9.946 5.972 +sll_inst.pcount[13] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[13] 9.946 6.033 +sll_inst.pcount[14] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[14] 9.946 6.033 +sll_inst.pcount_diff[21] sgmii_ecp5|tx_pclk_inferred_clock FD1P3DX D un1_pcount_diff_1_s_21_0_S0 9.946 6.034 +========================================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 4.157 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : 5.789 + + Number of logic level(s): 13 + Starting point: sll_inst.ppul_sync_p1 / Q + Ending point: sll_inst.pcount[21] / D + The start point is clocked by sgmii_ecp5|tx_pclk_inferred_clock [rising] on pin CK + The end point is clocked by sgmii_ecp5|tx_pclk_inferred_clock [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +-------------------------------------------------------------------------------------------- +sll_inst.ppul_sync_p1 FD1S3DX Q Out 1.098 1.098 - +ppul_sync_p1 Net - - - - 25 +sll_inst.pcount10_0_o3 ORCALUT4 A In 0.000 1.098 - +sll_inst.pcount10_0_o3 ORCALUT4 Z Out 0.851 1.950 - +N_8 Net - - - - 25 +sll_inst.pcount_cry_0[0] CCU2C A1 In 0.000 1.950 - +sll_inst.pcount_cry_0[0] CCU2C COUT Out 0.900 2.850 - +pcount_cry[0] Net - - - - 1 +sll_inst.pcount_cry_0[1] CCU2C CIN In 0.000 2.850 - +sll_inst.pcount_cry_0[1] CCU2C COUT Out 0.061 2.911 - +pcount_cry[2] Net - - - - 1 +sll_inst.pcount_cry_0[3] CCU2C CIN In 0.000 2.911 - +sll_inst.pcount_cry_0[3] CCU2C COUT Out 0.061 2.972 - +pcount_cry[4] Net - - - - 1 +sll_inst.pcount_cry_0[5] CCU2C CIN In 0.000 2.972 - +sll_inst.pcount_cry_0[5] CCU2C COUT Out 0.061 3.033 - +pcount_cry[6] Net - - - - 1 +sll_inst.pcount_cry_0[7] CCU2C CIN In 0.000 3.033 - +sll_inst.pcount_cry_0[7] CCU2C COUT Out 0.061 3.094 - +pcount_cry[8] Net - - - - 1 +sll_inst.pcount_cry_0[9] CCU2C CIN In 0.000 3.094 - +sll_inst.pcount_cry_0[9] CCU2C COUT Out 0.061 3.155 - +pcount_cry[10] Net - - - - 1 +sll_inst.pcount_cry_0[11] CCU2C CIN In 0.000 3.155 - +sll_inst.pcount_cry_0[11] CCU2C COUT Out 0.061 3.216 - +pcount_cry[12] Net - - - - 1 +sll_inst.pcount_cry_0[13] CCU2C CIN In 0.000 3.216 - +sll_inst.pcount_cry_0[13] CCU2C COUT Out 0.061 3.277 - +pcount_cry[14] Net - - - - 1 +sll_inst.pcount_cry_0[15] CCU2C CIN In 0.000 3.277 - +sll_inst.pcount_cry_0[15] CCU2C COUT Out 0.061 3.338 - +pcount_cry[16] Net - - - - 1 +sll_inst.pcount_cry_0[17] CCU2C CIN In 0.000 3.338 - +sll_inst.pcount_cry_0[17] CCU2C COUT Out 0.061 3.399 - +pcount_cry[18] Net - - - - 1 +sll_inst.pcount_cry_0[19] CCU2C CIN In 0.000 3.399 - +sll_inst.pcount_cry_0[19] CCU2C COUT Out 0.061 3.460 - +pcount_cry[20] Net - - - - 1 +sll_inst.pcount_s_0[21] CCU2C CIN In 0.000 3.460 - +sll_inst.pcount_s_0[21] CCU2C S0 Out 0.698 4.157 - +pcount_s[21] Net - - - - 1 +sll_inst.pcount[21] FD1S3DX D In 0.000 4.157 - +============================================================================================ + + + + +==================================== +Detailed Report for Clock: System +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +---------------------------------------------------------------------------------------- +DCU0_inst System DCUA CH0_FFS_RLOL rx_cdr_lol_s 0.000 8.810 +DCU0_inst System DCUA CH0_FFS_RLOS rx_los_low_s 0.000 8.810 +======================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] System FD1P3DX SP un2_rdo_serdes_rst_dual_c_2_i 9.806 8.810 +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] System FD1P3DX D rxpr_appd_RNO[0] 9.946 9.556 +rsl_inst.genblk2\.rlol_p1 System FD1S3DX D rx_cdr_lol_s 9.946 9.946 +rsl_inst.genblk2\.rlos_p1 System FD1S3DX D rx_los_low_s 9.946 9.946 +============================================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.194 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.806 + + - Propagation time: 0.996 + - Clock delay at starting point: 0.000 (ideal) + - Estimated clock delay at start point: -0.000 + = Slack (non-critical) : 8.810 + + Number of logic level(s): 2 + Starting point: DCU0_inst / CH0_FFS_RLOL + Ending point: rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] / SP + The start point is clocked by System [rising] + The end point is clocked by sgmii_ecp5|rxrefclk [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +----------------------------------------------------------------------------------------------------------------------------------- +DCU0_inst DCUA CH0_FFS_RLOL Out 0.000 0.000 - +rx_cdr_lol_s Net - - - - 4 +rsl_inst.un2_rdo_serdes_rst_dual_c_1_1 ORCALUT4 A In 0.000 0.000 - +rsl_inst.un2_rdo_serdes_rst_dual_c_1_1 ORCALUT4 Z Out 0.606 0.606 - +un2_rdo_serdes_rst_dual_c_1_1 Net - - - - 1 +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd_RNO_0[0] ORCALUT4 B In 0.000 0.606 - +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd_RNO_0[0] ORCALUT4 Z Out 0.390 0.996 - +un2_rdo_serdes_rst_dual_c_2_i Net - - - - 1 +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] FD1P3DX SP In 0.000 0.996 - +=================================================================================================================================== + + + +##### END OF TIMING REPORT #####] + +Timing exceptions that could not be applied +None + +Finished final timing analysis (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB) + + +Finished timing report (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB) + +--------------------------------------- +Resource Usage Report +Part: lfe5um_25f-6 + +Register bits: 221 of 24288 (1%) +PIC Latch: 0 +I/O cells: 0 + + +Details: +CCU2C: 113 +DCUA: 1 +FD1P3BX: 20 +FD1P3DX: 92 +FD1S3BX: 12 +FD1S3DX: 97 +GSR: 1 +INV: 3 +ORCALUT4: 154 +PFUMX: 2 +PUR: 1 +VHI: 6 +VLO: 6 +Mapper successful! + +At Mapper Exit (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 35MB peak: 153MB) + +Process took 0h:00m:03s realtime, 0h:00m:03s cputime +# Mon May 13 09:09:11 2019 + +###########################################################] diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.srr.db b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.srr.db new file mode 100644 index 0000000000000000000000000000000000000000..ff725bb590d99c244888547ebe5b829a39a361c2 GIT binary patch literal 16384 zcmeHOO>f&a7`Br%A8p)pO}nfe3J^IZKqFiJO5$Fcq;WBzS=%H zMI9@YOI%4LlZm?sB@&4t_>91(yCmVu`}^HGHFkl!k41DGcsN~qpty{_V9fd0asS_!2mB{XPXl-+SWqTcMudF^; zN8O`y)I&`y+!_|QQ9#-5;a;c6;elPs`U;0|C1q;<06Myg%EK2&~YX9~rqf-1_YX#HLp z`7|IUl&s)eSV&(6w{43r z#&5K7yAh+emuCk8wujr1+*bjwQrBwEmh9!FrBWu|6jnS>)4a0v{M$8WbNxO77DFOb z3ju0qwObRM(KosbWl~}00-zvp^o|vJ)b|}-D&F_7!cJ(TIUuJ=$zBQVaj|P1cEDWI zo}afmpu;N>=-1~Av{3HxAy1u4$YHH=Y{=sB=NQ_lbJ@=)3hl{r3HcA zgwgo5lkJbt?F(lJE0@V@Sb8%+SR#gH7y5eZ`A7t7{Y-i*SI9)LU^7Tq@B?rU(|A2LsLPZg&v)S=i zRL5?OvRJxACwFqXhmI5~ABf@kJ4j-mpz_uRq98p%qBFRiR*5v$fr7klPyq@s7CNmV zEh=|_qH?iVTnjkpNS8C1j-|ecFs<`JF3zp-dL6^mJ`0M`=?KpSpYA(VK;t=Z%7LMe zh-lB%^+;sTc9m#H{zhuqnvZWimmHl*>0zRr%`a^>7>jirD&`j|RG~Weh{Zt24^Qjd z{4@yrsdrO5my1UKKeLVgH~RnoUV5BJBpLmGx>Llb@@mWI|MSw%CwR4G^#5^Q!5{Hf z+UWn%@n7K>{craRNu&Rdks3SVxitE}lRW%@Bs_ehYV`jAlC(!fqS61SqW_~5wATM) zm;Ovl{dW1+%M&R%`EGIrcFkfKFbo(53GHFkl!k41DSgh?_d&xB+>;?OZn7 z%Q#9UFnE2nchwCV9++EM(CS%Q7ZhLU+FQZws%jEpDY;8^x)JSBRYL@_sBp1Io78JS znl;KncI}*3Z@^6tQt?eQ+cijrDq7bGM?pd^l+KP~NOwv&3RNQRBk=8lom8hh1qVMY z(*98kl_6{EQwH_-u8$nMw-GpKBhzj9(ft+FB+P@7@7EFEtlOxYU+G58d<{(Gvzgew zK$%Yjq-W#iqeFM<4{F~D!7&VG*0_Wd0gSPODVA~%*%>R7VX|lL^@tnjEHu`Q6AK=J zmiMZL>@KfpPcoWirB3Cudsyf+EVzEBXLRExKC*Ek*eYU2GaX2a!ct$2eXUA;se|Y3 zN45$qIFZYGKuzjaci5hT@#|nQczBT34a(+=1I{a0&6)?6=wh~%kJff}6@qfN!uQd= zwI?e&XzLW*1rWw@7bDpS!vOr<-RRUw^uR(qc2K+uRDKszjVyng=yWWAf^ literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.szr b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.szr new file mode 100644 index 0000000000000000000000000000000000000000..083876689d06805318d6069d6164d680b50b4e78 GIT binary patch literal 12840 zcmV+@GS|%?iwFP!0000015AuD3&JoIg!lf6EZxL6b#dxa+{D2>q{%gnrcKCuii$tp zbP$AtJNS;TZCjN~5?J{)oSs5N)Ay&(We%)rWQM|OlY`r-2g;ZjDkiVC=Rwh&7Laiz zn3a4Gk}`H|NwDN-1XR`6s;1+Jv*qC_1(S_8V!wo-VRJ|PT6F>6qwuz?{EzA>d!rYV zGs>RdrRj$+00030|LlE#bDPMr=-=W~_+|7e^0^Tj8;mh~aw^s!G~O~`_g*P`_hgGQ z(w4k{rPveO8&^L3>j5Dn31nH3DGM_HYtQ4oTe*c6S!z49fz4M zPq-YXG2yLKDvTEKX~+_rd9>w(;@=df!oHl|?)aq3sOZ;xyOod$4mR*xp+SN=_Qr?} zlr%-?(R=v3b7wpR_o@M2GxR4lk9~nVwcRs7G$$UItl1nx()YTa;X-r@O}pm!;57Tf z^_e3k1bDOGr4x_Yrtc8H22CCM6W(RQWuA!x@@=Q46M&D+-L~IhwcRV%(-S~k#Eb>< zt|SP!%laml&wiwW)Y7AmI@=aBRH}aMpB~Ex1D_FyRRgLgpKZb|$~?fN9TY zcxGswW&$LM6R$7o9Bj5#{Iw_{cHPDKx0nbWI%$z4;G7wL7)<)1=LJb9LZ;c>1aXBR z0{aX(Dv2E&BzqitAMpv!336u0!JRbm4xBzA4m4AIIIT|NF=RBsUEZ2d(W0lmL0Sp& zG4d1>t^`-rM|sO4;c0PlwvE1cm;`;3Y0WcmCbol&A(EHCM@W+*Z9}jp z&ALO}ZNnR8G-EZ0(=@mQ+WS&lj2&jq3N_HTj9@{d?%z;cU*f?wSEQ8(P{qs zG;uu^qF773059+-XokQ|b<`M*6;S>O|FVt+?Oe9wAv10x6U%<~@ zYIBdffAL8Ne>Is0e(2ShHvxLWJ9r=9^Ne_=a`zRSI~P2Zcf%1xmKBX6wE>Z$j}&*W z?jV;D4?d?lh{1*LbX>dcOd!1T!gma5@&_X>N9B@u_B)RPKaOqPgvRb@{4R!Ll!f#f z;t8k&z@^`ah9hfiSVJXjJN1d+odXJOeIG{6(LilPI^;0V-+>Fhc0oFP_MHQy@6i+C zF>pN-Y|jSb6NjTbH61X07AG#H9x{mQfsmMU1P&Xo>vYe7dgwajU7dh`?rJz?(}Se$ zf@7c7ff0yVXhIwdoG$i49q3So--`rL^MdO;Cg=FAOB}Bcz)u8q@dn>Uyto9A;~8U# zdx9tc+SzmJE{?eV&V_UTS_9ibEhswJVNBjJ5KqByE9-J%Pdp;;&Vu_MGEDq!*L7V!aS>#5JU9hT6NV;Ge$RM32K!sv0l(&-Ic_>1 zhNQB+Q`9%wLDF^-Njvt2&@gZ$epCCw3nnyRrWd#-63rEof9xQ$CqRG0sSBMDhbd)M zAL*&tZ2wSE*o1Hw=@~*ye-utsiIY1;N#y{-M$&TI@+eV8=Mu9yPuHL5~nWLpO5R037jUi z^gDfc%pmljCa(v_%D!^XIQH&@>6+-gO?3^SPQNv^cUvf?6Vq{9Ix_P(=nkYV@xoJr z<`^!h7T0iXy!DY-eb2U-iM?EcPhylXeOs<44kpsTcN9_oE?AS(mb6E??YH_dGZG_E z`&^?*|1FY-+a_3Wi3=Ig-RVm>;Gl@+!WY!3bLC!+1=pYJyzN73M>;LiM>XZ4`teQd z-|-T6XtuOKkGie#fP{7TlzF6uwnGc;f94C03aW1eaiTVj{&-#3_lm+%n0JteZPW3j zjYv69-2MbOPHgMEu7f_zc^$9ElGnd?{&trm61u}C3CFxile$LSP4T`(`@Kadqo_mr zU5(No!3W#K!*k#!sBnFa+ONUun$f3kk^f#}eQV9}y08_h?0Fo`hbuIr5MP}BHMLn> z^KR;!9eBIUu9BJUpWyc5p>iGGIV=%z9pv}Ehy}A;3aUQ13y*H8Ti3UX{0E?5)hBM$ni(S)(p zLsuA*%lH(vptIKp=GzPn=H0tK0mqD8OM&Q0j-T_t-1`aakvrrEJD@0oZla-e#Noi@ zaK_-oI;lBA%jFLV4coT^ClKs6TMs-@XF5AL6Arg0u)i9+Qmt6?C8*7v({*LQN z-Hvvnho)uH@qFY(MgrR=cq6lJhS9+h@G~^XEOr8^U#!i18F`XmA|0c$IA`q5Vl9J@~)f5J8E?2WGXB1?~~o)zgv=i7y}2&G@)h7LH$l5*W3qaZ%L z3_p@)=)y_bfS-6BCha36mWRI%*$rA!M+d;&vlGrN2Tla3X^;LU-Y0yA>A`P79evmX zp`URk?0sjlPksUq`s^O|?l}6LtZ3t-1A&&m_*ukUuAdLqhf7fJu7;>k-)zHA&hZo= zo=`s8+?n`qv@^@lhtgTpqoHBl8{Z_aLhL&(3OUH*xby{5!l-^_S+~QNxh@+pvt0;e5M~ zQNQ@E6Qk22@-@7+%;5Xza})H8P=rgIsPslZLUl9s#jbR92rcW)R^xf7kNOU^CmQ$9 z25&5Vs9Kgf(5?I4TC@=X$!Vij(gtmaQ{Aq8vNhxzJ8*S+Gy0M98ojY(OvD>q4=bAPehQeEB!`#bw|qOhY!{j+^I0st z(XcEO6l$Zl4j&5S=@}oYm3%lkWv>0Hrfd0J(Y6*eI0>ll-dMW+LuE&=(XbjrtI_LO z-{O16Ma|~WSjHqE)z2pE7_52CCT()~! z)6`GGwjJU}DStM8B!7*;`eC%0A|AejDPKvijg-iJa6{z$% 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_premap.srr b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_premap.srr new file mode 100644 index 0000000..919edaa --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_premap.srr @@ -0,0 +1,86 @@ +# Mon May 13 09:09:07 2019 + +Synopsys Lattice Technology Pre-mapping, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 100MB) + +Reading constraint file: /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.fdc +@L: /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5_scck.rpt +Printing clock summary report in "/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5_scck.rpt" file +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 102MB peak: 104MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 102MB peak: 104MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 114MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 116MB) + +@N: BN362 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1408:0:1408:5|Removing sequential instance pcpri_mod_ch (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:PrimLib.dffre(prim) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1244:27:1244:40|Removing instance div2_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_3(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1252:27:1252:41|Removing instance div11_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_2(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1236:27:1236:40|Removing instance gear_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_4(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1268:27:1268:44|Removing instance pcie_mod_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_0(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1260:27:1260:44|Removing instance cpri_mod_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_1(verilog) because it does not drive other instances. +ICG Latch Removal Summary: +Number of ICG latches removed: 0 +Number of ICG latches not removed: 0 +syn_allowed_resources : blockrams=56 set on top level netlist sgmii_ecp5 + +Finished netlist restructuring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + + + +Clock Summary +****************** + + Start Requested Requested Clock Clock Clock +Level Clock Frequency Period Type Group Load +---------------------------------------------------------------------------------------------------------------------- +0 - System 100.0 MHz 10.000 system system_clkgroup 0 + +0 - sgmii_ecp5|pll_refclki 100.0 MHz 10.000 inferred Inferred_clkgroup_0 93 + +0 - sgmii_ecp5|rxrefclk 100.0 MHz 10.000 inferred Inferred_clkgroup_1 77 + +0 - sgmii_ecp5|tx_pclk_inferred_clock 100.0 MHz 10.000 inferred Inferred_clkgroup_2 53 +====================================================================================================================== + +@W: MT529 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Found inferred clock sgmii_ecp5|pll_refclki which controls 93 sequential elements including sll_inst.phb_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":567:3:567:8|Found inferred clock sgmii_ecp5|rxrefclk which controls 77 sequential elements including rsl_inst.genblk2\.rlos_db_p1. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Found inferred clock sgmii_ecp5|tx_pclk_inferred_clock which controls 53 sequential elements including sll_inst.rtc_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. + +Finished Pre Mapping Phase. + +Starting constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + +Encoding state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) +original code -> new code + 00 -> 00 + 01 -> 01 + 10 -> 10 + 11 -> 11 +@N: MO225 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1801:0:1801:5|There are no possible illegal states for state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)); safe FSM implementation is not required. + +Finished constraint checker preprocessing (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + +None +None + +Finished constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + +Pre-mapping successful! + +At Mapper Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 58MB peak: 144MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime +# Mon May 13 09:09:07 2019 + +###########################################################] diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_premap.srr.db b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_premap.srr.db new file mode 100644 index 0000000000000000000000000000000000000000..a3a5dfe67b4623696cc202413f82fd1a9534803a GIT binary patch literal 8192 zcmeI0-EJF26vu71P13X>a8cy~Djh`%vL#}B*B@~l3DHIgHwlz95`s{z#&tdE2V8@3&gH$pB?XbK7MEBf6n;nX9q$fc##a4 zhFb3JTt1)s2q2fs6~=Ee$(5(i+v9sO2klXz8hZU-oU;Qyhuk6YQWCSt-8G(#I zMj#`Q5y%K+1Tq2{fsDZaoPf?Ru04F1zu3{N<70qIu`a4hTi89?dvv@9$B!N#?7`)? zMd8ALN#0}f1Mo%IpO(f|reE|$c%^bozZ9V^nX~!*!ne8A-&arGs;(^E`(ydnyFV>C z3%}j@@Yc`tAiFXGGa)cqzrVD0!A74yC>(xj+l}=~FAA{2Tq#&s=?Y!ZveQt!qA`el zrm+&s=xgM<@^J^BaJ6@?C3@WNS5!9;!a*K4uG~5*^0Xgy1uqZQ+g7V;wX3OV9QRNn zFnWg(#F0{hHXI1w$1d|hY3fUvf5g&T2pI2)5JCCAlRP}BwX4sdC_)$rJZr;QB>Uy* zAWS_TNp!xn9G?wQTEziML1QVEc0e%?VgKnN2$~gb^N_j|Q3yiOXf#Ot=2S>@%T&Pd zm+#-ZXCOV_d$(|S+_1N23u(L6GLVdE>_?}h7b5gf(r|$L5%0rvlHcibCnosLWeq2- zan=*O2RsV3jC=)+8Yr3(%~B9rOed_US?-^@BJ3tmMW}RHYVN3E$f-dpxlA)Bw##tb zBQR;xJ!TMrijfOX(3rFcOcT_Z(vp#yLE3x3h7d~}P_O18!B>WGjHVUiy_LS zkhHCU(PYip6=2pAb zHlMBQoFmWEtuY2NamUuyHSUngPaQyjI)2~&sx19TIc~>^t$)2U-npCXmC8Jvk!+Gz z-77IELh2ClPmgTB@&<`}o&Vkj8I_jECpcmc3XeartQm{E-K@6lt+r)sy?%s2G%x~T z6ot{o1s+S`1d%)C_+~0@q(l#6O!YsNe_0nqQF8T5>Z4k@=n2RfDmbl zK$BsqvDS}Di*sew8nbG>lvT_H&X`qo5*J^e)y6`?>WlfTt6DQSZoSCK6$8tfAt?I>pf+yLb3xVXDJZfpTTlebo*}2&4LB8V z5hpg{W1?{}U{bsYdnd+%+ zlCP#|wgPLN;s;P1p-eY96@e#wESJ(_LovUwwz6Y-w(G5<)6itArhc=&*`aVmArQww F=P&Kv66OE^ literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_premap.szr b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_premap.szr new file mode 100644 index 0000000000000000000000000000000000000000..07b0e0ef09467c68e5a37c85d34deb82cb435400 GIT binary patch literal 3856 zcmV+r5AX0FiwFP!0000015AuD3&JoIg!lf6EZxL6b#dxa+{D2>q{+37CQZnDii$tp zbP$AtJNS;TZCjN~5?J{)oSu9@)Ay&(W$~6gYdSi{EzBf5KZ3m zyEOgq1pom5|I}J-Z{#+T{@nT%bEbgUi&2ZVWUZpv4aP1uO%Ix6yB1b}%q;}7y|7PW zT9a_xP6Ge9qGTIEKMx#GME zbH;5B!aI|5aIb@e-14_qbFfG38E*sFTuhi6y|NuRR^@5X9SAmX%M!0@p>w#Mw`G!> zTyV=3sJu4X%eu(V%cH(qv1OjlHOXKg2BnX>&aC`0@AL>A7lwnf$TBW0ek;T7|3D_u z)j@Jd9cq@kR;V;|P6B2+wZUZ^9R``{Fx03*?q?F}+yt#ijZx)u9;%#K?!XH$JeMxK z=A;U|onJk(>Ep`F2G=UZ(`kA%el(8Z^G*C`Ect>U|1^PuQ{ZG$ji>n_S;x|5@affvtS8i1%k$iw7Gns$!OTWPb3b4XHu_kBVQ;855}{{c{LT@-b(=Qwl2U zNP6&vaYyJy=D6$@0!RWWP!BNT!*fUuKz3~(eO>n$KvmS4Mr);>xk(ocxpvO*QR9QL z{J{>kvlCYY-eMLIUX?}P_t^ItMGMM&<_%E51f^9z@{sentyu0!9>oTP+)4Wy_&k3L z?8-h1M;t_JC-33AS4Bq86ftk$5M~~N3YBByoz9K&l+5EMP`55CpG%i!l z)!R6|z>8J#Rr0rneb(t$yX;0YNfdOK`4cKsgWPz{@w*WKV4=de0x`>+A)?s*LY&j3Y?*0_xCW?{%~wSqp1ZN!O$=zZLD!< zYdL5STp2En#^8X^luj8+I-FcI#a+#$OOZW4DYQjm4w!m_Lh2N7j^qXPfG!v|XwH#} z83#Zf&@+R&rs=hkTt!q`L~~3vk|StAv8$1Rfib{FJ|6Sk8E)`*USLmya@Unlnv2 zit$0P_v6~K+j@M3Ng$KNnA~tNqGE&bK7?v#qCJN4tfQhb5P!_chram!~&+ zXV4LERC+aEX3CSJ7WKn3D_pH^GL6Jc6SEkj7?nDoV{OSB|`kvn{ z@BNP4J|+!yqPb91et$4gmqRCs%K(Mf{*E~lpOkZmS3jMBqLdB7)fD4Rf4jsNJwv|+ zi6I^0{a}YcF}lgLxISVx-6`@f_&68qiu5mz8boAS`~!X7Y18u7ooYNSqEgcoo#%cdQ()E^d=k%UX~Bc+5sKg!w4Wf|#RkX`-=+^K)})DGCsVq@MGg!^al>x{4dJ=rhQ z9+IE4k3rm;t;RG^r`5 zrZLTpB^a!7p{u>@(9ZVB+ZV?Q8i~h&O^SD1n~5%131#<9mlA*959NZi6MJ&pYe`4P zQ&6~otK%lTp_l4;(Lx*cX>LC!9z0m$f>bRe)}Uig$T5Ig;7pR+1k{Fc%`6lzlb4qV z4PI7diFvd27~K9r2idV!axoUlF3PQD+ANpTa(nZ+-05#%;bqL{idI4-*5aa8Q|dr8 zO+*}$|88uKj~iJ~|7=s;bv-+WeX7?=jDK2us_890)pWU2{vtjlE4#GQHr_+MuMifB z)WnUR_cBDqgzRki2D;L8A}t~82kNRvA@}4SwkdMApwiwDLey8rd}UeJcZ=!%W-klJ zJ&Ha{sRW24M`F!1N?tF5f;--Rzb5vwxQ(&$vaFsu##YnwrkQSUK5v%&4(0bnQaqrPcA&xt!>0LHZ*`?O3na3W@2g6o>uMj9P z>rIZ8826Diu{6a6WBlDdQRK~(#c2(-7O|aSoH#xUe6WKKYJ39jzC4&daQ9{8?g@?9 zr|nK|d&|G1$zMJmm?U^V%r2)6AAfc1;HI9lxW5v|s~s3fFXAAGhlrbVh`VtZG5dun zHuoWUvp~}BSDyP|1iaqx2()SZdPTKPMwxM>c;@hSIrx?yb;JNa9&gAq(9}ux83qaM z5wp9s?lOOe-LH(zKK(y&{X_iH-+sOS8{;YA?eD&@ly~6mC?+53y?H#r&oYueySsXC zZ}>(8(QWoyiJ5;eNWUJ7evSX!s9W}Z(c_)E#2JY`gpGfl(AUsHpxC_Ew~NnRAfDrA zQa0HjeXH(!=SVjp9Np^r^YLr8RiN8Yhg<(>PpF=UP>aq^>V0j$ah2n zQL+|s|CfrYvb7i@muB>Ctf|G^&AM2Rb*Ctw7pCLJ;j}noGlg+qZZ<&^`vOPBxwVQ2 zK+To%+KyDAH4EA(Dze9ldN?X#sapi1pF|-RQd9rHWbCsIj&UEF+!ycn{P1qiFYXb> z_Y6?A7YtI5%29iWtftmw)Q;Rin&5R|0jUT1dfnjJMKyiW9;Di8R_EJIvt6y4>(d)q zQ^{%7T^yn%nBUD2$nWF4WStLeu+4D$|FA*m*sTrp2=l3!{I@8AtXVfNJ6Fu`OcCqY z*qqG_MTTV5G%ILTt&sbV_QE%^i3!C$eb5WwaUI0L*xgydNPMx5djcejXrj6ICl=34 z;(Ilk1&eVgQf0ie#KT}DG8j)KLMwgbgh_!fo0nf>wLY6R7r6D9XU83JRW4hh2w z#U=)trY}$FT7ZyHltftU~uiUQ{xP;Ou-=G$*xg>f0UmrfSrUt zf^UDDBrfjH>mSs(i`VPuQ@ms5dk*JcHvMnvq1ru4mtmt1-+w^`BLG&j(b3O+-!QU`*>rn5>|Aw3-FC7I}=hU@Ark0y*651Q)W^yh1dcHqQ=P)_d8R?5H-xDo2Pf2Ti|af4=1iH9F0t|@}n={bc*(_h5j zQf$ZHJ0us$kH2+%`QwjCIDoM8*8?~s*$v5#e7fpaJ@JkBdjuAH{{IC40RR8ua!}v` S00030{{sMAagM(+DgXfZzs1-9 literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/syntax_constraint_check.rpt.rptmap b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/syntax_constraint_check.rpt.rptmap new file mode 100644 index 0000000..fe7eb22 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/syntax_constraint_check.rpt.rptmap @@ -0,0 +1 @@ +./sgmii_ecp5_scck.rpt,syntax_constraint_check.rpt,Syntax Constraint Check Report diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/syntmp/closed.png b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/syntmp/closed.png new file mode 100644 index 0000000000000000000000000000000000000000..0d78634f322a904e7bd0c9466498c0a42777589f GIT binary patch literal 3672 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 + + + + + + + + + + + + + + + + diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/syntmp/sgmii_ecp5.plg b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/syntmp/sgmii_ecp5.plg new file mode 100644 index 0000000..bab41a3 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/syntmp/sgmii_ecp5.plg @@ -0,0 +1,28 @@ +@P: Worst Slack : 4.043 +@P: sgmii_ecp5|pll_refclki - Estimated Frequency : 168.9 MHz +@P: sgmii_ecp5|pll_refclki - Requested Frequency : 100.0 MHz +@P: sgmii_ecp5|pll_refclki - Estimated Period : 5.921 +@P: sgmii_ecp5|pll_refclki - Requested Period : 10.000 +@P: sgmii_ecp5|pll_refclki - Slack : 4.079 +@P: sgmii_ecp5|rxrefclk - Estimated Frequency : 167.9 MHz +@P: sgmii_ecp5|rxrefclk - Requested Frequency : 100.0 MHz +@P: sgmii_ecp5|rxrefclk - Estimated Period : 5.957 +@P: sgmii_ecp5|rxrefclk - Requested Period : 10.000 +@P: sgmii_ecp5|rxrefclk - Slack : 4.043 +@P: sgmii_ecp5|tx_pclk_inferred_clock - Estimated Frequency : 237.5 MHz +@P: sgmii_ecp5|tx_pclk_inferred_clock - Requested Frequency : 100.0 MHz +@P: sgmii_ecp5|tx_pclk_inferred_clock - Estimated Period : 4.211 +@P: sgmii_ecp5|tx_pclk_inferred_clock - Requested Period : 10.000 +@P: sgmii_ecp5|tx_pclk_inferred_clock - Slack : 5.789 +@P: System - Estimated Frequency : 840.7 MHz +@P: System - Requested Frequency : 100.0 MHz +@P: System - Estimated Period : 1.190 +@P: System - Requested Period : 10.000 +@P: System - Slack : 8.810 +@P: Total Area : 157.0 +@P: Total Area : 0.0 +@P: Total Area : 0.0 +@P: Total Area : 0.0 +@P: Total Area : 0.0 +@P: Total Area : 0.0 +@P: CPU Time : 0h:00m:03s diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/syntmp/sgmii_ecp5_srr.htm b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/syntmp/sgmii_ecp5_srr.htm new file mode 100644 index 0000000..363baae --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/syntmp/sgmii_ecp5_srr.htm @@ -0,0 +1,1162 @@ +
    +
    +#Build: Synplify Pro (R) M-2017.03L-SP1-1, Build 086R, Aug  4 2017
    +#install: /home/soft/lattice/diamond/3.10_x64/synpbase
    +#OS: Linux 
    +#Hostname: lxhadeb07
    +
    +# Mon May 13 09:09:03 2019
    +
    +#Implementation: syn_results
    +
    +Synopsys HDL Compiler, version comp2017q2p1, Build 190R, built Aug  4 2017
    +@N: :  | Running in 64-bit mode 
    +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited.
    +
    +Synopsys VHDL Compiler, version comp2017q2p1, Build 190R, built Aug  4 2017
    +@N: :  | Running in 64-bit mode 
    +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited.
    +
    +Running on host :lxhadeb07
    +@N:CD720 : std.vhd(123) | Setting time resolution to ps
    +@N: : sgmii_ecp5.vhd(30) | Top entity is set to sgmii_ecp5.
    +VHDL syntax check successful!
    +
    +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB)
    +
    +
    +Process completed successfully.
    +# Mon May 13 09:09:04 2019
    +
    +###########################################################]
    +Synopsys Verilog Compiler, version comp2017q2p1, Build 190R, built Aug  4 2017
    +@N: :  | Running in 64-bit mode 
    +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited.
    +
    +Running on host :lxhadeb07
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps)
    +@I::"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v" (library work)
    +Verilog syntax check successful!
    +
    +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB)
    +
    +
    +Process completed successfully.
    +# Mon May 13 09:09:04 2019
    +
    +###########################################################]
    +Running on host :lxhadeb07
    +@N:CD720 : std.vhd(123) | Setting time resolution to ps
    +@N: : sgmii_ecp5.vhd(30) | Top entity is set to sgmii_ecp5.
    +VHDL syntax check successful!
    +@N:CD630 : sgmii_ecp5.vhd(30) | Synthesizing work.sgmii_ecp5.v1.
    +Post processing for work.sgmii_ecp5.v1
    +
    +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 74MB peak: 76MB)
    +
    +
    +Process completed successfully.
    +# Mon May 13 09:09:04 2019
    +
    +###########################################################]
    +Running on host :lxhadeb07
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps)
    +@I::"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v" (library work)
    +Verilog syntax check successful!
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +@N:CG364 : sgmii_ecp5_softlogic.v(1968) | Synthesizing module sync in library work.
    +
    +	PDATA_RST_VAL=32'b00000000000000000000000000000000
    +   Generated name = sync_0s
    +@N:CG364 : sgmii_ecp5_softlogic.v(1051) | Synthesizing module sgmii_ecp5sll_core in library work.
    +
    +	PPROTOCOL=24'b010001110100001001000101
    +	PLOL_SETTING=32'b00000000000000000000000000000000
    +	PDYN_RATE_CTRL=64'b0100010001001001010100110100000101000010010011000100010101000100
    +	PPCIE_MAX_RATE=24'b001100100010111000110101
    +	PDIFF_VAL_LOCK=32'b00000000000000000000000000100111
    +	PDIFF_VAL_UNLOCK=32'b00000000000000000000000001001110
    +	PPCLK_TC=32'b00000000000000100000000000000000
    +	PDIFF_DIV11_VAL_LOCK=32'b00000000000000000000000000000000
    +	PDIFF_DIV11_VAL_UNLOCK=32'b00000000000000000000000000000000
    +	PPCLK_DIV11_TC=32'b00000000000000000000000000000000
    +	LPLL_LOSS_ST=2'b00
    +	LPLL_PRELOSS_ST=2'b01
    +	LPLL_PRELOCK_ST=2'b10
    +	LPLL_LOCK_ST=2'b11
    +	LRCLK_TC=16'b1111111111111111
    +	LRCLK_TC_PUL_WIDTH=16'b0000000000110010
    +	LHB_WAIT_CNT=8'b11111111
    +	LPCLK_TC_0=32'b00000000000000001000000000000000
    +	LPCLK_TC_1=32'b00000000000000010000000000000000
    +	LPCLK_TC_2=32'b00000000000000100000000000000000
    +	LPCLK_TC_3=32'b00000000000000101000000000000000
    +	LPCLK_TC_4=32'b00000000000000010000000000000000
    +	LPDIFF_LOCK_00=32'b00000000000000000000000000001001
    +	LPDIFF_LOCK_10=32'b00000000000000000000000000010011
    +	LPDIFF_LOCK_20=32'b00000000000000000000000000100111
    +	LPDIFF_LOCK_30=32'b00000000000000000000000000110001
    +	LPDIFF_LOCK_40=32'b00000000000000000000000000010011
    +	LPDIFF_LOCK_01=32'b00000000000000000000000000001001
    +	LPDIFF_LOCK_11=32'b00000000000000000000000000010011
    +	LPDIFF_LOCK_21=32'b00000000000000000000000000100111
    +	LPDIFF_LOCK_31=32'b00000000000000000000000000110001
    +	LPDIFF_LOCK_41=32'b00000000000000000000000000010011
    +	LPDIFF_LOCK_02=32'b00000000000000000000000000110001
    +	LPDIFF_LOCK_12=32'b00000000000000000000000001100010
    +	LPDIFF_LOCK_22=32'b00000000000000000000000011000100
    +	LPDIFF_LOCK_32=32'b00000000000000000000000011110101
    +	LPDIFF_LOCK_42=32'b00000000000000000000000001100010
    +	LPDIFF_LOCK_03=32'b00000000000000000000000010000011
    +	LPDIFF_LOCK_13=32'b00000000000000000000000100000110
    +	LPDIFF_LOCK_23=32'b00000000000000000000001000001100
    +	LPDIFF_LOCK_33=32'b00000000000000000000001010001111
    +	LPDIFF_LOCK_43=32'b00000000000000000000000100000110
    +	LPDIFF_UNLOCK_00=32'b00000000000000000000000000010011
    +	LPDIFF_UNLOCK_10=32'b00000000000000000000000000100111
    +	LPDIFF_UNLOCK_20=32'b00000000000000000000000001001110
    +	LPDIFF_UNLOCK_30=32'b00000000000000000000000001100010
    +	LPDIFF_UNLOCK_40=32'b00000000000000000000000000100111
    +	LPDIFF_UNLOCK_01=32'b00000000000000000000000001000001
    +	LPDIFF_UNLOCK_11=32'b00000000000000000000000010000011
    +	LPDIFF_UNLOCK_21=32'b00000000000000000000000100000110
    +	LPDIFF_UNLOCK_31=32'b00000000000000000000000101000111
    +	LPDIFF_UNLOCK_41=32'b00000000000000000000000010000011
    +	LPDIFF_UNLOCK_02=32'b00000000000000000000000001001000
    +	LPDIFF_UNLOCK_12=32'b00000000000000000000000010010000
    +	LPDIFF_UNLOCK_22=32'b00000000000000000000000100100000
    +	LPDIFF_UNLOCK_32=32'b00000000000000000000000101101000
    +	LPDIFF_UNLOCK_42=32'b00000000000000000000000010010000
    +	LPDIFF_UNLOCK_03=32'b00000000000000000000000011000100
    +	LPDIFF_UNLOCK_13=32'b00000000000000000000000110001001
    +	LPDIFF_UNLOCK_23=32'b00000000000000000000001100010010
    +	LPDIFF_UNLOCK_33=32'b00000000000000000000001111010111
    +	LPDIFF_UNLOCK_43=32'b00000000000000000000000110001001
    +   Generated name = sgmii_ecp5sll_core_Z1_layer1
    +@N:CG179 : sgmii_ecp5_softlogic.v(1287) | Removing redundant assignment.
    +@N:CG179 : sgmii_ecp5_softlogic.v(1293) | Removing redundant assignment.
    +@W:CL169 : sgmii_ecp5_softlogic.v(1350) | Pruning unused register rcpri_mod_ch_st. Make sure that there are no unused intermediate registers.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 0 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 4 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 5 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 7 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 8 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 9 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 10 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 11 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 12 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 13 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 14 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 15 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 3 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 4 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 6 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 7 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 8 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 9 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 10 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 11 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 12 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 13 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 14 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 15 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 0 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 1 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 2 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 3 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 4 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 5 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 6 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 7 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 8 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 9 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 10 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 11 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 12 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 13 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 14 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 15 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 16 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 18 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 19 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 20 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 21 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +@N:CG364 : sgmii_ecp5_softlogic.v(92) | Synthesizing module sgmii_ecp5rsl_core in library work.
    +
    +	pnum_channels=32'b00000000000000000000000000000001
    +	pprotocol=24'b010001110100001001000101
    +	pserdes_mode=72'b010100100101100000100000010000010100111001000100001000000101010001011000
    +	pport_tx_rdy=56'b01000101010011100100000101000010010011000100010101000100
    +	pwait_tx_rdy=32'b00000000000000000000101110111000
    +	pport_rx_rdy=56'b01000101010011100100000101000010010011000100010101000100
    +	pwait_rx_rdy=32'b00000000000000000000101110111000
    +	wa_num_cycles=32'b00000000000000000000010000000000
    +	dac_num_cycles=32'b00000000000000000000000000000011
    +	lreset_pwidth=32'b00000000000000000000000000000011
    +	lwait_b4_trst=32'b00000000000010111110101111000010
    +	lwait_b4_trst_s=32'b00000000000000000000001100001101
    +	lplol_cnt_width=32'b00000000000000000000000000010100
    +	lwait_after_plol0=32'b00000000000000000000000000000100
    +	lwait_b4_rrst=32'b00000000000000101100000000000000
    +	lrrst_wait_width=32'b00000000000000000000000000010100
    +	lwait_after_rrst=32'b00000000000011000011010100000000
    +	lwait_b4_rrst_s=32'b00000000000000000000000111001100
    +	lrlol_cnt_width=32'b00000000000000000000000000010011
    +	lwait_after_lols=32'b00000000000000001100010000000000
    +	lwait_after_lols_s=32'b00000000000000000000000010010110
    +	llols_cnt_width=32'b00000000000000000000000000010010
    +	lrdb_max=32'b00000000000000000000000000001111
    +	ltxr_wait_width=32'b00000000000000000000000000001100
    +	lrxr_wait_width=32'b00000000000000000000000000001100
    +   Generated name = sgmii_ecp5rsl_core_Z2_layer1
    +@W:CG133 : sgmii_ecp5_softlogic.v(326) | Object rrst_cnt is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG360 : sgmii_ecp5_softlogic.v(327) | Removing wire rrst_cnt_tc, as there is no assignment to it.
    +@W:CG133 : sgmii_ecp5_softlogic.v(328) | Object rrst_wait is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG133 : sgmii_ecp5_softlogic.v(341) | Object rxp_cnt is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG133 : sgmii_ecp5_softlogic.v(342) | Object rxp_rst is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG360 : sgmii_ecp5_softlogic.v(343) | Removing wire rxp_cnt_tc, as there is no assignment to it.
    +@W:CG133 : sgmii_ecp5_softlogic.v(346) | Object rlolsz_cnt is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG360 : sgmii_ecp5_softlogic.v(347) | Removing wire rlolsz_cnt_tc, as there is no assignment to it.
    +@W:CG360 : sgmii_ecp5_softlogic.v(350) | Removing wire rxp_cnt2_tc, as there is no assignment to it.
    +@W:CG133 : sgmii_ecp5_softlogic.v(351) | Object data_loop_b_cnt is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG133 : sgmii_ecp5_softlogic.v(352) | Object data_loop_b is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG360 : sgmii_ecp5_softlogic.v(353) | Removing wire data_loop_b_tc, as there is no assignment to it.
    +@W:CL169 : sgmii_ecp5_softlogic.v(806) | Pruning unused register genblk2.rxp_cnt2[2:0]. Make sure that there are no unused intermediate registers.
    +@W:CL169 : sgmii_ecp5_softlogic.v(567) | Pruning unused register genblk2.rlol_p3. Make sure that there are no unused intermediate registers.
    +@W:CL169 : sgmii_ecp5_softlogic.v(567) | Pruning unused register genblk2.rlos_p3. Make sure that there are no unused intermediate registers.
    +@W:CL190 : sgmii_ecp5_softlogic.v(694) | Optimizing register bit genblk2.rxs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance.
    +@W:CL190 : sgmii_ecp5_softlogic.v(461) | Optimizing register bit genblk1.txp_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance.
    +@W:CL190 : sgmii_ecp5_softlogic.v(422) | Optimizing register bit genblk1.txs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance.
    +@W:CL260 : sgmii_ecp5_softlogic.v(422) | Pruning register bit 2 of genblk1.txs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level.
    +@W:CL260 : sgmii_ecp5_softlogic.v(461) | Pruning register bit 2 of genblk1.txp_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level.
    +@W:CL260 : sgmii_ecp5_softlogic.v(694) | Pruning register bit 2 of genblk2.rxs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level.
    +@W:CL246 : sgmii_ecp5_softlogic.v(200) | Input port bits 3 to 1 of rui_tx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size.
    +@W:CL246 : sgmii_ecp5_softlogic.v(204) | Input port bits 3 to 1 of rui_rx_serdes_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size.
    +@W:CL246 : sgmii_ecp5_softlogic.v(205) | Input port bits 3 to 1 of rui_rx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size.
    +@W:CL246 : sgmii_ecp5_softlogic.v(206) | Input port bits 3 to 1 of rdi_rx_los_low_s[3:0] are unused. Assign logic for all port bits or change the input port size.
    +@W:CL246 : sgmii_ecp5_softlogic.v(207) | Input port bits 3 to 1 of rdi_rx_cdr_lol_s[3:0] are unused. Assign logic for all port bits or change the input port size.
    +@W:CL279 : sgmii_ecp5_softlogic.v(1739) | Pruning register bits 6 to 4 of genblk5.rdiff_comp_unlock[6:3]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level.
    +@W:CL279 : sgmii_ecp5_softlogic.v(1739) | Pruning register bits 5 to 3 of genblk5.rdiff_comp_lock[5:2]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level.
    +@W:CL169 : sgmii_ecp5_softlogic.v(1739) | Pruning unused register genblk5.rdiff_comp_unlock[3]. Make sure that there are no unused intermediate registers.
    +@W:CL169 : sgmii_ecp5_softlogic.v(1739) | Pruning unused register genblk5.rcount_tc[17]. Make sure that there are no unused intermediate registers.
    +@N:CL201 : sgmii_ecp5_softlogic.v(1801) | Trying to extract state machine for register sll_state.
    +Extracted state machine for register sll_state
    +State machine has 4 reachable states with original encodings of:
    +   00
    +   01
    +   10
    +   11
    +
    +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 75MB peak: 81MB)
    +
    +
    +Process completed successfully.
    +# Mon May 13 09:09:05 2019
    +
    +###########################################################]
    +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug  4 2017
    +@N: :  | Running in 64-bit mode 
    +
    +=======================================================================================
    +For a summary of linker messages for components that did not bind, please see log file:
    +Linked File: sgmii_ecp5_comp.linkerlog
    +=======================================================================================
    +
    +
    +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB)
    +
    +Process took 0h:00m:01s realtime, 0h:00m:01s cputime
    +
    +Process completed successfully.
    +# Mon May 13 09:09:05 2019
    +
    +###########################################################]
    +@END
    +
    +At c_hdl Exit (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 3MB peak: 4MB)
    +
    +Process took 0h:00m:01s realtime, 0h:00m:01s cputime
    +
    +Process completed successfully.
    +# Mon May 13 09:09:05 2019
    +
    +###########################################################]
    +
    +
    +
    +
    +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug  4 2017
    +@N: :  | Running in 64-bit mode 
    +
    +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB)
    +
    +Process took 0h:00m:01s realtime, 0h:00m:01s cputime
    +
    +Process completed successfully.
    +# Mon May 13 09:09:06 2019
    +
    +###########################################################]
    +
    +
    +
    +
    +Pre-mapping Report
    +
    +
    +
    +
    +
    +# Mon May 13 09:09:07 2019
    +
    +Synopsys Lattice Technology Pre-mapping, Version maplat, Build 1796R, Built Aug  4 2017 09:36:35
    +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited.
    +Product Version M-2017.03L-SP1-1
    +
    +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 100MB)
    +
    +Reading constraint file: /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.fdc
    +Linked File: sgmii_ecp5_scck.rpt
    +Printing clock  summary report in "/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5_scck.rpt" file 
    +@N:MF248 :  | Running in 64-bit mode. 
    +@N:MF666 :  | Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) 
    +
    +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 102MB peak: 104MB)
    +
    +
    +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 102MB peak: 104MB)
    +
    +
    +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 114MB)
    +
    +
    +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 116MB)
    +
    +@N:BN362 : sgmii_ecp5_softlogic.v(1408) | Removing sequential instance pcpri_mod_ch (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:PrimLib.dffre(prim) because it does not drive other instances.
    +@N:BN115 : sgmii_ecp5_softlogic.v(1244) | Removing instance div2_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_3(verilog) because it does not drive other instances.
    +@N:BN115 : sgmii_ecp5_softlogic.v(1252) | Removing instance div11_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_2(verilog) because it does not drive other instances.
    +@N:BN115 : sgmii_ecp5_softlogic.v(1236) | Removing instance gear_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_4(verilog) because it does not drive other instances.
    +@N:BN115 : sgmii_ecp5_softlogic.v(1268) | Removing instance pcie_mod_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_0(verilog) because it does not drive other instances.
    +@N:BN115 : sgmii_ecp5_softlogic.v(1260) | Removing instance cpri_mod_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_1(verilog) because it does not drive other instances.
    +ICG Latch Removal Summary:
    +Number of ICG latches removed:	0
    +Number of ICG latches not removed:	0
    +syn_allowed_resources : blockrams=56  set on top level netlist sgmii_ecp5
    +
    +Finished netlist restructuring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB)
    +
    +
    +
    +Clock Summary
    +******************
    +
    +          Start                                 Requested     Requested     Clock        Clock                   Clock
    +Level     Clock                                 Frequency     Period        Type         Group                   Load 
    +----------------------------------------------------------------------------------------------------------------------
    +0 -       System                                100.0 MHz     10.000        system       system_clkgroup         0    
    +                                                                                                                      
    +0 -       sgmii_ecp5|pll_refclki                100.0 MHz     10.000        inferred     Inferred_clkgroup_0     93   
    +                                                                                                                      
    +0 -       sgmii_ecp5|rxrefclk                   100.0 MHz     10.000        inferred     Inferred_clkgroup_1     77   
    +                                                                                                                      
    +0 -       sgmii_ecp5|tx_pclk_inferred_clock     100.0 MHz     10.000        inferred     Inferred_clkgroup_2     53   
    +======================================================================================================================
    +
    +@W:MT529 : sgmii_ecp5_softlogic.v(1988) | Found inferred clock sgmii_ecp5|pll_refclki which controls 93 sequential elements including sll_inst.phb_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. 
    +@W:MT529 : sgmii_ecp5_softlogic.v(567) | Found inferred clock sgmii_ecp5|rxrefclk which controls 77 sequential elements including rsl_inst.genblk2\.rlos_db_p1. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. 
    +@W:MT529 : sgmii_ecp5_softlogic.v(1988) | Found inferred clock sgmii_ecp5|tx_pclk_inferred_clock which controls 53 sequential elements including sll_inst.rtc_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. 
    +
    +Finished Pre Mapping Phase.
    +
    +Starting constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB)
    +
    +Encoding state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog))
    +original code -> new code
    +   00 -> 00
    +   01 -> 01
    +   10 -> 10
    +   11 -> 11
    +@N:MO225 : sgmii_ecp5_softlogic.v(1801) | There are no possible illegal states for state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)); safe FSM implementation is not required.
    +
    +Finished constraint checker preprocessing (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB)
    +
    +None
    +None
    +
    +Finished constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB)
    +
    +Pre-mapping successful!
    +
    +At Mapper Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 58MB peak: 144MB)
    +
    +Process took 0h:00m:01s realtime, 0h:00m:01s cputime
    +# Mon May 13 09:09:07 2019
    +
    +###########################################################]
    +
    +
    +
    +
    +Map & Optimize Report
    +
    +
    +
    +
    +
    +# Mon May 13 09:09:07 2019
    +
    +Synopsys Lattice Technology Mapper, Version maplat, Build 1796R, Built Aug  4 2017 09:36:35
    +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited.
    +Product Version M-2017.03L-SP1-1
    +
    +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB)
    +
    +@N:MF248 :  | Running in 64-bit mode. 
    +@N:MF666 :  | Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) 
    +
    +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB)
    +
    +
    +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB)
    +
    +
    +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 114MB)
    +
    +
    +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 116MB)
    +
    +
    +
    +Starting Optimization and Mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB)
    +
    +
    +Available hyper_sources - for debug and ip models
    +	None Found
    +
    +
    +Finished RTL optimizations (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB)
    +
    +Encoding state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog))
    +original code -> new code
    +   00 -> 00
    +   01 -> 01
    +   10 -> 10
    +   11 -> 11
    +@N:MO225 : sgmii_ecp5_softlogic.v(1801) | There are no possible illegal states for state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)); safe FSM implementation is not required.
    +@N:MO231 : sgmii_ecp5_softlogic.v(1350) | Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance rhb_wait_cnt[7:0] 
    +@N:MO231 : sgmii_ecp5_softlogic.v(1304) | Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance rcount[15:0] 
    +@N:MO231 : sgmii_ecp5_softlogic.v(1759) | Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance pcount[21:0] 
    +@N:MO231 : sgmii_ecp5_softlogic.v(412) | Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk1\.plol_cnt[19:0] 
    +@N:MO231 : sgmii_ecp5_softlogic.v(909) | Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.genblk3\.rxr_wt_cnt[11:0] 
    +@N:MO231 : sgmii_ecp5_softlogic.v(527) | Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk1\.genblk2\.txr_wt_cnt[11:0] 
    +@N:MO231 : sgmii_ecp5_softlogic.v(778) | Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.rlols0_cnt[17:0] 
    +@N:MO231 : sgmii_ecp5_softlogic.v(680) | Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.rlol1_cnt[18:0] 
    +
    +Starting factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB)
    +
    +
    +Finished factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 145MB)
    +
    +
    +Starting gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 145MB)
    +
    +
    +Finished gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 145MB)
    +
    +
    +Finished generic timing optimizations - Pass 1 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 145MB)
    +
    +
    +Starting Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:01s; Memory used current: 145MB peak: 146MB)
    +
    +
    +Finished Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:01s; Memory used current: 145MB peak: 146MB)
    +
    +
    +Finished generic timing optimizations - Pass 2 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:01s; Memory used current: 145MB peak: 146MB)
    +
    +
    +Finished preparing to map (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 145MB peak: 146MB)
    +
    +@N:FX1019 : sgmii_ecp5_softlogic.v(1988) | Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)).
    +@N:FX1019 : sgmii_ecp5_softlogic.v(1988) | Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)).
    +@N:FX1019 : sgmii_ecp5_softlogic.v(1988) | Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)).
    +
    +Finished technology mapping (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 147MB peak: 149MB)
    +
    +Pass		 CPU time		Worst Slack		Luts / Registers
    +------------------------------------------------------------
    +   1		0h:00m:01s		     4.90ns		 155 /       221
    +@N:FX1019 : sgmii_ecp5_softlogic.v(1988) | Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)).
    +@N:FX1019 : sgmii_ecp5_softlogic.v(1988) | Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)).
    +@N:FX1019 : sgmii_ecp5_softlogic.v(1988) | Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)).
    +
    +Finished technology timing optimizations and critical path resynthesis (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 147MB peak: 149MB)
    +
    +@N:FX164 :  | The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute.   
    +
    +Finished restoring hierarchy (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 148MB peak: 149MB)
    +
    +
    +
    +@S |Clock Optimization Summary
    +
    +
    +#### START OF CLOCK OPTIMIZATION REPORT #####[
    +
    +3 non-gated/non-generated clock tree(s) driving 221 clock pin(s) of sequential element(s)
    +0 gated/generated clock tree(s) driving 0 clock pin(s) of sequential element(s)
    +0 instances converted, 0 sequential instances remain driven by gated/generated clocks
    +
    +============================================= Non-Gated/Non-Generated Clocks =============================================
    +Clock Tree ID     Driving Element     Drive Element Type     Fanout     Sample Instance                                   
    +--------------------------------------------------------------------------------------------------------------------------
    +ClockId0001        pll_refclki         port                   91         rsl_inst.genblk1\.genblk2\.mfor\[0\]\.txpr_appd[0]
    +ClockId0002        rxrefclk            port                   77         rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0]
    +ClockId0003        DCU0_inst           DCUA                   53         sll_inst.pcount[21]                               
    +==========================================================================================================================
    +
    +
    +##### END OF CLOCK OPTIMIZATION REPORT ######]
    +
    +
    +Start Writing Netlists (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 112MB peak: 149MB)
    +
    +Writing Analyst data base /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_m.srm
    +
    +Finished Writing Netlist Databases (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 147MB peak: 149MB)
    +
    +Writing EDIF Netlist and constraint files
    +@N:FX1056 :  | Writing EDF file: /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.edn 
    +M-2017.03L-SP1-1
    +@N:BW106 :  | Synplicity Constraint File capacitance units using default value of 1pF  
    +
    +Finished Writing EDIF Netlist and constraint files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 151MB peak: 153MB)
    +
    +Writing Verilog Simulation files
    +
    +Finished Writing Verilog Simulation files (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB)
    +
    +Writing VHDL Simulation files
    +
    +Finished Writing VHDL Simulation files (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB)
    +
    +
    +Start final timing analysis (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB)
    +
    +@W:MT246 : sgmii_ecp5.vhd(162) | Blackbox DCUA is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) 
    +@W:MT420 :  | Found inferred clock sgmii_ecp5|rxrefclk with period 10.00ns. Please declare a user-defined clock on object "p:rxrefclk" 
    +@W:MT420 :  | Found inferred clock sgmii_ecp5|pll_refclki with period 10.00ns. Please declare a user-defined clock on object "p:pll_refclki" 
    +@W:MT420 :  | Found inferred clock sgmii_ecp5|tx_pclk_inferred_clock with period 10.00ns. Please declare a user-defined clock on object "n:tx_pclk" 
    +
    +
    +##### START OF TIMING REPORT #####[
    +# Timing Report written on Mon May 13 09:09:11 2019
    +#
    +
    +
    +Top view:               sgmii_ecp5
    +Requested Frequency:    100.0 MHz
    +Wire load mode:         top
    +Paths requested:        5
    +Constraint File(s):    /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.fdc
    +                       
    +@N:MT320 :  | This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. 
    +
    +@N:MT322 :  | Clock constraints include only register-to-register paths associated with each individual clock. 
    +
    +
    +
    +Performance Summary
    +*******************
    +
    +
    +Worst slack in design: 4.043
    +
    +                                      Requested     Estimated     Requested     Estimated               Clock        Clock              
    +Starting Clock                        Frequency     Frequency     Period        Period        Slack     Type         Group              
    +----------------------------------------------------------------------------------------------------------------------------------------
    +sgmii_ecp5|pll_refclki                100.0 MHz     168.9 MHz     10.000        5.921         4.079     inferred     Inferred_clkgroup_0
    +sgmii_ecp5|rxrefclk                   100.0 MHz     167.9 MHz     10.000        5.957         4.043     inferred     Inferred_clkgroup_1
    +sgmii_ecp5|tx_pclk_inferred_clock     100.0 MHz     237.5 MHz     10.000        4.211         5.789     inferred     Inferred_clkgroup_2
    +System                                100.0 MHz     840.7 MHz     10.000        1.190         8.810     system       system_clkgroup    
    +========================================================================================================================================
    +
    +
    +
    +
    +
    +Clock Relationships
    +*******************
    +
    +Clocks                                                                |    rise  to  rise   |    fall  to  fall   |    rise  to  fall   |    fall  to  rise 
    +------------------------------------------------------------------------------------------------------------------------------------------------------------
    +Starting                           Ending                             |  constraint  slack  |  constraint  slack  |  constraint  slack  |  constraint  slack
    +------------------------------------------------------------------------------------------------------------------------------------------------------------
    +System                             sgmii_ecp5|rxrefclk                |  10.000      8.811  |  No paths    -      |  No paths    -      |  No paths    -    
    +sgmii_ecp5|pll_refclki             System                             |  10.000      8.253  |  No paths    -      |  No paths    -      |  No paths    -    
    +sgmii_ecp5|pll_refclki             sgmii_ecp5|pll_refclki             |  10.000      4.079  |  No paths    -      |  No paths    -      |  No paths    -    
    +sgmii_ecp5|pll_refclki             sgmii_ecp5|tx_pclk_inferred_clock  |  Diff grp    -      |  No paths    -      |  No paths    -      |  No paths    -    
    +sgmii_ecp5|rxrefclk                System                             |  10.000      8.277  |  No paths    -      |  No paths    -      |  No paths    -    
    +sgmii_ecp5|rxrefclk                sgmii_ecp5|rxrefclk                |  10.000      4.043  |  No paths    -      |  No paths    -      |  No paths    -    
    +sgmii_ecp5|tx_pclk_inferred_clock  sgmii_ecp5|pll_refclki             |  Diff grp    -      |  No paths    -      |  No paths    -      |  No paths    -    
    +sgmii_ecp5|tx_pclk_inferred_clock  sgmii_ecp5|tx_pclk_inferred_clock  |  10.000      5.789  |  No paths    -      |  No paths    -      |  No paths    -    
    +============================================================================================================================================================
    + Note: 'No paths' indicates there are no paths in the design for that pair of clock edges.
    +       'Diff grp' indicates that paths exist but the starting clock and ending clock are in different clock groups.
    +
    +
    +
    +Interface Information 
    +*********************
    +
    +No IO constraint found
    +
    +
    +
    +====================================
    +Detailed Report for Clock: sgmii_ecp5|pll_refclki
    +====================================
    +
    +
    +
    +Starting Points with Worst Slack
    +********************************
    +
    +                                   Starting                                                        Arrival          
    +Instance                           Reference                  Type        Pin     Net              Time        Slack
    +                                   Clock                                                                            
    +--------------------------------------------------------------------------------------------------------------------
    +rsl_inst.genblk1\.plol_cnt[2]      sgmii_ecp5|pll_refclki     FD1S3DX     Q       plol_cnt[2]      0.907       4.079
    +rsl_inst.genblk1\.plol_cnt[3]      sgmii_ecp5|pll_refclki     FD1S3DX     Q       plol_cnt[3]      0.907       4.079
    +rsl_inst.genblk1\.plol_cnt[17]     sgmii_ecp5|pll_refclki     FD1S3DX     Q       plol_cnt[17]     0.907       4.079
    +rsl_inst.genblk1\.plol_cnt[19]     sgmii_ecp5|pll_refclki     FD1S3DX     Q       plol_cnt[19]     0.907       4.079
    +rsl_inst.genblk1\.plol_cnt[1]      sgmii_ecp5|pll_refclki     FD1S3DX     Q       plol_cnt[1]      0.907       4.684
    +rsl_inst.genblk1\.plol_cnt[4]      sgmii_ecp5|pll_refclki     FD1S3DX     Q       plol_cnt[4]      0.907       4.684
    +rsl_inst.genblk1\.plol_cnt[5]      sgmii_ecp5|pll_refclki     FD1S3DX     Q       plol_cnt[5]      0.907       4.684
    +rsl_inst.genblk1\.plol_cnt[6]      sgmii_ecp5|pll_refclki     FD1S3DX     Q       plol_cnt[6]      0.907       4.684
    +rsl_inst.genblk1\.plol_cnt[7]      sgmii_ecp5|pll_refclki     FD1S3DX     Q       plol_cnt[7]      0.907       4.684
    +rsl_inst.genblk1\.plol_cnt[8]      sgmii_ecp5|pll_refclki     FD1S3DX     Q       plol_cnt[8]      0.907       4.684
    +====================================================================================================================
    +
    +
    +Ending Points with Worst Slack
    +******************************
    +
    +                                   Starting                                                          Required          
    +Instance                           Reference                  Type        Pin     Net                Time         Slack
    +                                   Clock                                                                               
    +-----------------------------------------------------------------------------------------------------------------------
    +rsl_inst.genblk1\.plol_cnt[19]     sgmii_ecp5|pll_refclki     FD1S3DX     D       plol_cnt_s[19]     9.946        4.079
    +rsl_inst.genblk1\.plol_cnt[17]     sgmii_ecp5|pll_refclki     FD1S3DX     D       plol_cnt_s[17]     9.946        4.139
    +rsl_inst.genblk1\.plol_cnt[18]     sgmii_ecp5|pll_refclki     FD1S3DX     D       plol_cnt_s[18]     9.946        4.139
    +rsl_inst.genblk1\.plol_cnt[15]     sgmii_ecp5|pll_refclki     FD1S3DX     D       plol_cnt_s[15]     9.946        4.200
    +rsl_inst.genblk1\.plol_cnt[16]     sgmii_ecp5|pll_refclki     FD1S3DX     D       plol_cnt_s[16]     9.946        4.200
    +rsl_inst.genblk1\.plol_cnt[13]     sgmii_ecp5|pll_refclki     FD1S3DX     D       plol_cnt_s[13]     9.946        4.261
    +rsl_inst.genblk1\.plol_cnt[14]     sgmii_ecp5|pll_refclki     FD1S3DX     D       plol_cnt_s[14]     9.946        4.261
    +rsl_inst.genblk1\.plol_cnt[11]     sgmii_ecp5|pll_refclki     FD1S3DX     D       plol_cnt_s[11]     9.946        4.322
    +rsl_inst.genblk1\.plol_cnt[12]     sgmii_ecp5|pll_refclki     FD1S3DX     D       plol_cnt_s[12]     9.946        4.322
    +rsl_inst.genblk1\.plol_cnt[9]      sgmii_ecp5|pll_refclki     FD1S3DX     D       plol_cnt_s[9]      9.946        4.383
    +=======================================================================================================================
    +
    +
    +
    +Worst Path Information
    +View Worst Path in Analyst
    +***********************
    +
    +
    +Path information for path number 1: 
    +      Requested Period:                      10.000
    +    - Setup time:                            0.054
    +    + Clock delay at ending point:           0.000 (ideal)
    +    = Required time:                         9.946
    +
    +    - Propagation time:                      5.867
    +    - Clock delay at starting point:         0.000 (ideal)
    +    = Slack (non-critical) :                 4.079
    +
    +    Number of logic level(s):                15
    +    Starting point:                          rsl_inst.genblk1\.plol_cnt[2] / Q
    +    Ending point:                            rsl_inst.genblk1\.plol_cnt[19] / D
    +    The start point is clocked by            sgmii_ecp5|pll_refclki [rising] on pin CK
    +    The end   point is clocked by            sgmii_ecp5|pll_refclki [rising] on pin CK
    +
    +Instance / Net                                        Pin      Pin               Arrival     No. of    
    +Name                                     Type         Name     Dir     Delay     Time        Fan Out(s)
    +-------------------------------------------------------------------------------------------------------
    +rsl_inst.genblk1\.plol_cnt[2]            FD1S3DX      Q        Out     0.907     0.907       -         
    +plol_cnt[2]                              Net          -        -       -         -           2         
    +rsl_inst.genblk1\.un1_plol_cnt_tc_10     ORCALUT4     A        In      0.000     0.907       -         
    +rsl_inst.genblk1\.un1_plol_cnt_tc_10     ORCALUT4     Z        Out     0.606     1.513       -         
    +un1_plol_cnt_tc_10                       Net          -        -       -         -           1         
    +rsl_inst.genblk1\.un1_plol_cnt_tc_14     ORCALUT4     D        In      0.000     1.513       -         
    +rsl_inst.genblk1\.un1_plol_cnt_tc_14     ORCALUT4     Z        Out     0.606     2.119       -         
    +un1_plol_cnt_tc_14                       Net          -        -       -         -           1         
    +rsl_inst.genblk1\.un1_plol_cnt_tc        ORCALUT4     D        In      0.000     2.119       -         
    +rsl_inst.genblk1\.un1_plol_cnt_tc        ORCALUT4     Z        Out     0.762     2.881       -         
    +un1_plol_cnt_tc                          Net          -        -       -         -           5         
    +rsl_inst.genblk1\.plol_cnt11_i           ORCALUT4     B        In      0.000     2.881       -         
    +rsl_inst.genblk1\.plol_cnt11_i           ORCALUT4     Z        Out     0.840     3.721       -         
    +plol_cnt                                 Net          -        -       -         -           21        
    +rsl_inst.genblk1\.plol_cnt_cry_0[0]      CCU2C        A1       In      0.000     3.721       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[0]      CCU2C        COUT     Out     0.900     4.621       -         
    +plol_cnt_cry[0]                          Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[1]      CCU2C        CIN      In      0.000     4.621       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[1]      CCU2C        COUT     Out     0.061     4.682       -         
    +plol_cnt_cry[2]                          Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[3]      CCU2C        CIN      In      0.000     4.682       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[3]      CCU2C        COUT     Out     0.061     4.743       -         
    +plol_cnt_cry[4]                          Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[5]      CCU2C        CIN      In      0.000     4.743       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[5]      CCU2C        COUT     Out     0.061     4.804       -         
    +plol_cnt_cry[6]                          Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[7]      CCU2C        CIN      In      0.000     4.804       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[7]      CCU2C        COUT     Out     0.061     4.865       -         
    +plol_cnt_cry[8]                          Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[9]      CCU2C        CIN      In      0.000     4.865       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[9]      CCU2C        COUT     Out     0.061     4.926       -         
    +plol_cnt_cry[10]                         Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[11]     CCU2C        CIN      In      0.000     4.926       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[11]     CCU2C        COUT     Out     0.061     4.987       -         
    +plol_cnt_cry[12]                         Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[13]     CCU2C        CIN      In      0.000     4.987       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[13]     CCU2C        COUT     Out     0.061     5.048       -         
    +plol_cnt_cry[14]                         Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[15]     CCU2C        CIN      In      0.000     5.048       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[15]     CCU2C        COUT     Out     0.061     5.109       -         
    +plol_cnt_cry[16]                         Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[17]     CCU2C        CIN      In      0.000     5.109       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[17]     CCU2C        COUT     Out     0.061     5.170       -         
    +plol_cnt_cry[18]                         Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_s_0[19]       CCU2C        CIN      In      0.000     5.170       -         
    +rsl_inst.genblk1\.plol_cnt_s_0[19]       CCU2C        S0       Out     0.698     5.867       -         
    +plol_cnt_s[19]                           Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt[19]           FD1S3DX      D        In      0.000     5.867       -         
    +=======================================================================================================
    +
    +
    +
    +
    +====================================
    +Detailed Report for Clock: sgmii_ecp5|rxrefclk
    +====================================
    +
    +
    +
    +Starting Points with Worst Slack
    +********************************
    +
    +                                    Starting                                                      Arrival          
    +Instance                            Reference               Type        Pin     Net               Time        Slack
    +                                    Clock                                                                          
    +-------------------------------------------------------------------------------------------------------------------
    +rsl_inst.genblk2\.rxs_rst           sgmii_ecp5|rxrefclk     FD1P3DX     Q       rxs_rst           1.015       4.043
    +rsl_inst.genblk2\.rlol1_cnt[7]      sgmii_ecp5|rxrefclk     FD1P3DX     Q       rlol1_cnt[7]      0.907       4.136
    +rsl_inst.genblk2\.rlol1_cnt[8]      sgmii_ecp5|rxrefclk     FD1P3DX     Q       rlol1_cnt[8]      0.907       4.136
    +rsl_inst.genblk2\.rlol1_cnt[9]      sgmii_ecp5|rxrefclk     FD1P3DX     Q       rlol1_cnt[9]      0.907       4.136
    +rsl_inst.genblk2\.rlol1_cnt[10]     sgmii_ecp5|rxrefclk     FD1P3DX     Q       rlol1_cnt[10]     0.907       4.136
    +rsl_inst.genblk2\.rlols0_cnt[1]     sgmii_ecp5|rxrefclk     FD1P3DX     Q       rlols0_cnt[1]     0.907       4.170
    +rsl_inst.genblk2\.rlols0_cnt[2]     sgmii_ecp5|rxrefclk     FD1P3DX     Q       rlols0_cnt[2]     0.907       4.170
    +rsl_inst.genblk2\.rlols0_cnt[3]     sgmii_ecp5|rxrefclk     FD1P3DX     Q       rlols0_cnt[3]     0.907       4.170
    +rsl_inst.genblk2\.rlols0_cnt[4]     sgmii_ecp5|rxrefclk     FD1P3DX     Q       rlols0_cnt[4]     0.907       4.170
    +rsl_inst.genblk2\.rlol1_cnt[0]      sgmii_ecp5|rxrefclk     FD1P3DX     Q       rlol1_cnt[0]      0.907       4.742
    +===================================================================================================================
    +
    +
    +Ending Points with Worst Slack
    +******************************
    +
    +                                              Starting                                                         Required          
    +Instance                                      Reference               Type        Pin     Net                  Time         Slack
    +                                              Clock                                                                              
    +---------------------------------------------------------------------------------------------------------------------------------
    +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[11]     sgmii_ecp5|rxrefclk     FD1P3DX     D       rxr_wt_cnt_s[11]     9.946        4.043
    +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[9]      sgmii_ecp5|rxrefclk     FD1P3DX     D       rxr_wt_cnt_s[9]      9.946        4.104
    +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[10]     sgmii_ecp5|rxrefclk     FD1P3DX     D       rxr_wt_cnt_s[10]     9.946        4.104
    +rsl_inst.genblk2\.rlol1_cnt[17]               sgmii_ecp5|rxrefclk     FD1P3DX     D       rlol1_cnt_s[17]      9.946        4.136
    +rsl_inst.genblk2\.rlol1_cnt[18]               sgmii_ecp5|rxrefclk     FD1P3DX     D       rlol1_cnt_s[18]      9.946        4.136
    +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[7]      sgmii_ecp5|rxrefclk     FD1P3DX     D       rxr_wt_cnt_s[7]      9.946        4.165
    +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[8]      sgmii_ecp5|rxrefclk     FD1P3DX     D       rxr_wt_cnt_s[8]      9.946        4.165
    +rsl_inst.genblk2\.rlols0_cnt[17]              sgmii_ecp5|rxrefclk     FD1P3DX     D       rlols0_cnt_s[17]     9.946        4.170
    +rsl_inst.genblk2\.rlol1_cnt[15]               sgmii_ecp5|rxrefclk     FD1P3DX     D       rlol1_cnt_s[15]      9.946        4.197
    +rsl_inst.genblk2\.rlol1_cnt[16]               sgmii_ecp5|rxrefclk     FD1P3DX     D       rlol1_cnt_s[16]      9.946        4.197
    +=================================================================================================================================
    +
    +
    +
    +Worst Path Information
    +View Worst Path in Analyst
    +***********************
    +
    +
    +Path information for path number 1: 
    +      Requested Period:                      10.000
    +    - Setup time:                            0.054
    +    + Clock delay at ending point:           0.000 (ideal)
    +    = Required time:                         9.946
    +
    +    - Propagation time:                      5.902
    +    - Clock delay at starting point:         0.000 (ideal)
    +    = Slack (critical) :                     4.043
    +
    +    Number of logic level(s):                11
    +    Starting point:                          rsl_inst.genblk2\.rxs_rst / Q
    +    Ending point:                            rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[11] / D
    +    The start point is clocked by            sgmii_ecp5|rxrefclk [rising] on pin CK
    +    The end   point is clocked by            sgmii_ecp5|rxrefclk [rising] on pin CK
    +
    +Instance / Net                                                  Pin      Pin               Arrival     No. of    
    +Name                                               Type         Name     Dir     Delay     Time        Fan Out(s)
    +-----------------------------------------------------------------------------------------------------------------
    +rsl_inst.genblk2\.rxs_rst                          FD1P3DX      Q        Out     1.015     1.015       -         
    +rxs_rst                                            Net          -        -       -         -           6         
    +rsl_inst.rdo_rx_serdes_rst_c_1[0]                  ORCALUT4     B        In      0.000     1.015       -         
    +rsl_inst.rdo_rx_serdes_rst_c_1[0]                  ORCALUT4     Z        Out     0.708     1.723       -         
    +rsl_rx_serdes_rst_c                                Net          -        -       -         -           3         
    +rsl_inst.dual_or_rserd_rst                         ORCALUT4     A        In      0.000     1.723       -         
    +rsl_inst.dual_or_rserd_rst                         ORCALUT4     Z        Out     0.798     2.521       -         
    +dual_or_rserd_rst                                  Net          -        -       -         -           9         
    +rsl_inst.rx_any_rst                                ORCALUT4     A        In      0.000     2.521       -         
    +rsl_inst.rx_any_rst                                ORCALUT4     Z        Out     0.660     3.181       -         
    +rx_any_rst                                         Net          -        -       -         -           2         
    +rsl_inst.rx_any_rst_RNIFD021                       ORCALUT4     A        In      0.000     3.181       -         
    +rsl_inst.rx_any_rst_RNIFD021                       ORCALUT4     Z        Out     0.819     4.000       -         
    +rxr_wt_cnt9                                        Net          -        -       -         -           14        
    +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[0]     CCU2C        A1       In      0.000     4.000       -         
    +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[0]     CCU2C        COUT     Out     0.900     4.900       -         
    +rxr_wt_cnt_cry[0]                                  Net          -        -       -         -           1         
    +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[1]     CCU2C        CIN      In      0.000     4.900       -         
    +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[1]     CCU2C        COUT     Out     0.061     4.961       -         
    +rxr_wt_cnt_cry[2]                                  Net          -        -       -         -           1         
    +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[3]     CCU2C        CIN      In      0.000     4.961       -         
    +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[3]     CCU2C        COUT     Out     0.061     5.022       -         
    +rxr_wt_cnt_cry[4]                                  Net          -        -       -         -           1         
    +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[5]     CCU2C        CIN      In      0.000     5.022       -         
    +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[5]     CCU2C        COUT     Out     0.061     5.083       -         
    +rxr_wt_cnt_cry[6]                                  Net          -        -       -         -           1         
    +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[7]     CCU2C        CIN      In      0.000     5.083       -         
    +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[7]     CCU2C        COUT     Out     0.061     5.144       -         
    +rxr_wt_cnt_cry[8]                                  Net          -        -       -         -           1         
    +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[9]     CCU2C        CIN      In      0.000     5.144       -         
    +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[9]     CCU2C        COUT     Out     0.061     5.205       -         
    +rxr_wt_cnt_cry[10]                                 Net          -        -       -         -           1         
    +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_s_0[11]      CCU2C        CIN      In      0.000     5.205       -         
    +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_s_0[11]      CCU2C        S0       Out     0.698     5.902       -         
    +rxr_wt_cnt_s[11]                                   Net          -        -       -         -           1         
    +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[11]          FD1P3DX      D        In      0.000     5.902       -         
    +=================================================================================================================
    +
    +
    +
    +
    +====================================
    +Detailed Report for Clock: sgmii_ecp5|tx_pclk_inferred_clock
    +====================================
    +
    +
    +
    +Starting Points with Worst Slack
    +********************************
    +
    +                            Starting                                                                   Arrival          
    +Instance                    Reference                             Type        Pin     Net              Time        Slack
    +                            Clock                                                                                       
    +------------------------------------------------------------------------------------------------------------------------
    +sll_inst.ppul_sync_p1       sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     Q       ppul_sync_p1     1.098       5.789
    +sll_inst.ppul_sync_p2       sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     Q       ppul_sync_p2     1.098       5.789
    +sll_inst.pcount_diff[0]     sgmii_ecp5|tx_pclk_inferred_clock     FD1P3BX     Q       un13_lock_0      0.985       6.147
    +sll_inst.pcount[0]          sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     Q       pcount[0]        0.955       6.178
    +sll_inst.pcount_diff[1]     sgmii_ecp5|tx_pclk_inferred_clock     FD1P3BX     Q       un13_lock_1      0.955       6.239
    +sll_inst.pcount_diff[2]     sgmii_ecp5|tx_pclk_inferred_clock     FD1P3BX     Q       un13_lock_2      0.955       6.239
    +sll_inst.pcount[1]          sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     Q       pcount[1]        0.907       6.287
    +sll_inst.pcount[2]          sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     Q       pcount[2]        0.907       6.287
    +sll_inst.pcount_diff[3]     sgmii_ecp5|tx_pclk_inferred_clock     FD1P3BX     Q       un13_lock_3      0.955       6.300
    +sll_inst.pcount_diff[4]     sgmii_ecp5|tx_pclk_inferred_clock     FD1P3BX     Q       un13_lock_4      0.955       6.300
    +========================================================================================================================
    +
    +
    +Ending Points with Worst Slack
    +******************************
    +
    +                             Starting                                                                                  Required          
    +Instance                     Reference                             Type        Pin     Net                             Time         Slack
    +                             Clock                                                                                                       
    +-----------------------------------------------------------------------------------------------------------------------------------------
    +sll_inst.pcount[21]          sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     D       pcount_s[21]                    9.946        5.789
    +sll_inst.pcount[19]          sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     D       pcount_s[19]                    9.946        5.850
    +sll_inst.pcount[20]          sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     D       pcount_s[20]                    9.946        5.850
    +sll_inst.pcount[17]          sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     D       pcount_s[17]                    9.946        5.911
    +sll_inst.pcount[18]          sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     D       pcount_s[18]                    9.946        5.911
    +sll_inst.pcount[15]          sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     D       pcount_s[15]                    9.946        5.972
    +sll_inst.pcount[16]          sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     D       pcount_s[16]                    9.946        5.972
    +sll_inst.pcount[13]          sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     D       pcount_s[13]                    9.946        6.033
    +sll_inst.pcount[14]          sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     D       pcount_s[14]                    9.946        6.033
    +sll_inst.pcount_diff[21]     sgmii_ecp5|tx_pclk_inferred_clock     FD1P3DX     D       un1_pcount_diff_1_s_21_0_S0     9.946        6.034
    +=========================================================================================================================================
    +
    +
    +
    +Worst Path Information
    +View Worst Path in Analyst
    +***********************
    +
    +
    +Path information for path number 1: 
    +      Requested Period:                      10.000
    +    - Setup time:                            0.054
    +    + Clock delay at ending point:           0.000 (ideal)
    +    = Required time:                         9.946
    +
    +    - Propagation time:                      4.157
    +    - Clock delay at starting point:         0.000 (ideal)
    +    = Slack (non-critical) :                 5.789
    +
    +    Number of logic level(s):                13
    +    Starting point:                          sll_inst.ppul_sync_p1 / Q
    +    Ending point:                            sll_inst.pcount[21] / D
    +    The start point is clocked by            sgmii_ecp5|tx_pclk_inferred_clock [rising] on pin CK
    +    The end   point is clocked by            sgmii_ecp5|tx_pclk_inferred_clock [rising] on pin CK
    +
    +Instance / Net                             Pin      Pin               Arrival     No. of    
    +Name                          Type         Name     Dir     Delay     Time        Fan Out(s)
    +--------------------------------------------------------------------------------------------
    +sll_inst.ppul_sync_p1         FD1S3DX      Q        Out     1.098     1.098       -         
    +ppul_sync_p1                  Net          -        -       -         -           25        
    +sll_inst.pcount10_0_o3        ORCALUT4     A        In      0.000     1.098       -         
    +sll_inst.pcount10_0_o3        ORCALUT4     Z        Out     0.851     1.950       -         
    +N_8                           Net          -        -       -         -           25        
    +sll_inst.pcount_cry_0[0]      CCU2C        A1       In      0.000     1.950       -         
    +sll_inst.pcount_cry_0[0]      CCU2C        COUT     Out     0.900     2.850       -         
    +pcount_cry[0]                 Net          -        -       -         -           1         
    +sll_inst.pcount_cry_0[1]      CCU2C        CIN      In      0.000     2.850       -         
    +sll_inst.pcount_cry_0[1]      CCU2C        COUT     Out     0.061     2.911       -         
    +pcount_cry[2]                 Net          -        -       -         -           1         
    +sll_inst.pcount_cry_0[3]      CCU2C        CIN      In      0.000     2.911       -         
    +sll_inst.pcount_cry_0[3]      CCU2C        COUT     Out     0.061     2.972       -         
    +pcount_cry[4]                 Net          -        -       -         -           1         
    +sll_inst.pcount_cry_0[5]      CCU2C        CIN      In      0.000     2.972       -         
    +sll_inst.pcount_cry_0[5]      CCU2C        COUT     Out     0.061     3.033       -         
    +pcount_cry[6]                 Net          -        -       -         -           1         
    +sll_inst.pcount_cry_0[7]      CCU2C        CIN      In      0.000     3.033       -         
    +sll_inst.pcount_cry_0[7]      CCU2C        COUT     Out     0.061     3.094       -         
    +pcount_cry[8]                 Net          -        -       -         -           1         
    +sll_inst.pcount_cry_0[9]      CCU2C        CIN      In      0.000     3.094       -         
    +sll_inst.pcount_cry_0[9]      CCU2C        COUT     Out     0.061     3.155       -         
    +pcount_cry[10]                Net          -        -       -         -           1         
    +sll_inst.pcount_cry_0[11]     CCU2C        CIN      In      0.000     3.155       -         
    +sll_inst.pcount_cry_0[11]     CCU2C        COUT     Out     0.061     3.216       -         
    +pcount_cry[12]                Net          -        -       -         -           1         
    +sll_inst.pcount_cry_0[13]     CCU2C        CIN      In      0.000     3.216       -         
    +sll_inst.pcount_cry_0[13]     CCU2C        COUT     Out     0.061     3.277       -         
    +pcount_cry[14]                Net          -        -       -         -           1         
    +sll_inst.pcount_cry_0[15]     CCU2C        CIN      In      0.000     3.277       -         
    +sll_inst.pcount_cry_0[15]     CCU2C        COUT     Out     0.061     3.338       -         
    +pcount_cry[16]                Net          -        -       -         -           1         
    +sll_inst.pcount_cry_0[17]     CCU2C        CIN      In      0.000     3.338       -         
    +sll_inst.pcount_cry_0[17]     CCU2C        COUT     Out     0.061     3.399       -         
    +pcount_cry[18]                Net          -        -       -         -           1         
    +sll_inst.pcount_cry_0[19]     CCU2C        CIN      In      0.000     3.399       -         
    +sll_inst.pcount_cry_0[19]     CCU2C        COUT     Out     0.061     3.460       -         
    +pcount_cry[20]                Net          -        -       -         -           1         
    +sll_inst.pcount_s_0[21]       CCU2C        CIN      In      0.000     3.460       -         
    +sll_inst.pcount_s_0[21]       CCU2C        S0       Out     0.698     4.157       -         
    +pcount_s[21]                  Net          -        -       -         -           1         
    +sll_inst.pcount[21]           FD1S3DX      D        In      0.000     4.157       -         
    +============================================================================================
    +
    +
    +
    +
    +====================================
    +Detailed Report for Clock: System
    +====================================
    +
    +
    +
    +Starting Points with Worst Slack
    +********************************
    +
    +              Starting                                                 Arrival          
    +Instance      Reference     Type     Pin              Net              Time        Slack
    +              Clock                                                                     
    +----------------------------------------------------------------------------------------
    +DCU0_inst     System        DCUA     CH0_FFS_RLOL     rx_cdr_lol_s     0.000       8.810
    +DCU0_inst     System        DCUA     CH0_FFS_RLOS     rx_los_low_s     0.000       8.810
    +========================================================================================
    +
    +
    +Ending Points with Worst Slack
    +******************************
    +
    +                                                       Starting                                                            Required          
    +Instance                                               Reference     Type        Pin     Net                               Time         Slack
    +                                                       Clock                                                                                 
    +---------------------------------------------------------------------------------------------------------------------------------------------
    +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0]     System        FD1P3DX     SP      un2_rdo_serdes_rst_dual_c_2_i     9.806        8.810
    +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0]     System        FD1P3DX     D       rxpr_appd_RNO[0]                  9.946        9.556
    +rsl_inst.genblk2\.rlol_p1                              System        FD1S3DX     D       rx_cdr_lol_s                      9.946        9.946
    +rsl_inst.genblk2\.rlos_p1                              System        FD1S3DX     D       rx_los_low_s                      9.946        9.946
    +=============================================================================================================================================
    +
    +
    +
    +Worst Path Information
    +View Worst Path in Analyst
    +***********************
    +
    +
    +Path information for path number 1: 
    +      Requested Period:                      10.000
    +    - Setup time:                            0.194
    +    + Clock delay at ending point:           0.000 (ideal)
    +    = Required time:                         9.806
    +
    +    - Propagation time:                      0.996
    +    - Clock delay at starting point:         0.000 (ideal)
    +    - Estimated clock delay at start point:  -0.000
    +    = Slack (non-critical) :                 8.810
    +
    +    Number of logic level(s):                2
    +    Starting point:                          DCU0_inst / CH0_FFS_RLOL
    +    Ending point:                            rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] / SP
    +    The start point is clocked by            System [rising]
    +    The end   point is clocked by            sgmii_ecp5|rxrefclk [rising] on pin CK
    +
    +Instance / Net                                                            Pin              Pin               Arrival     No. of    
    +Name                                                         Type         Name             Dir     Delay     Time        Fan Out(s)
    +-----------------------------------------------------------------------------------------------------------------------------------
    +DCU0_inst                                                    DCUA         CH0_FFS_RLOL     Out     0.000     0.000       -         
    +rx_cdr_lol_s                                                 Net          -                -       -         -           4         
    +rsl_inst.un2_rdo_serdes_rst_dual_c_1_1                       ORCALUT4     A                In      0.000     0.000       -         
    +rsl_inst.un2_rdo_serdes_rst_dual_c_1_1                       ORCALUT4     Z                Out     0.606     0.606       -         
    +un2_rdo_serdes_rst_dual_c_1_1                                Net          -                -       -         -           1         
    +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd_RNO_0[0]     ORCALUT4     B                In      0.000     0.606       -         
    +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd_RNO_0[0]     ORCALUT4     Z                Out     0.390     0.996       -         
    +un2_rdo_serdes_rst_dual_c_2_i                                Net          -                -       -         -           1         
    +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0]           FD1P3DX      SP               In      0.000     0.996       -         
    +===================================================================================================================================
    +
    +
    +
    +##### END OF TIMING REPORT #####]
    +
    +Timing exceptions that could not be applied
    +None
    +
    +Finished final timing analysis (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB)
    +
    +
    +Finished timing report (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB)
    +
    +---------------------------------------
    +Resource Usage Report
    +Part: lfe5um_25f-6
    +
    +Register bits: 221 of 24288 (1%)
    +PIC Latch:       0
    +I/O cells:       0
    +
    +
    +Details:
    +CCU2C:          113
    +DCUA:           1
    +FD1P3BX:        20
    +FD1P3DX:        92
    +FD1S3BX:        12
    +FD1S3DX:        97
    +GSR:            1
    +INV:            3
    +ORCALUT4:       154
    +PFUMX:          2
    +PUR:            1
    +VHI:            6
    +VLO:            6
    +Mapper successful!
    +
    +At Mapper Exit (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 35MB peak: 153MB)
    +
    +Process took 0h:00m:03s realtime, 0h:00m:03s cputime
    +# Mon May 13 09:09:11 2019
    +
    +###########################################################]
    +
    +
    diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/syntmp/sgmii_ecp5_toc.htm b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/syntmp/sgmii_ecp5_toc.htm new file mode 100644 index 0000000..d978345 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/syntmp/sgmii_ecp5_toc.htm @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/syntmp/statusReport.html b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/syntmp/statusReport.html new file mode 100644 index 0000000..4f4bf5c --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/syntmp/statusReport.html @@ -0,0 +1,115 @@ + + + Project Status Summary Page + + + + + + +
    + + + + + + + + + + +
    Project Settings
    Project Name sgmii_ecp5 Device Name syn_results: Lattice ECP5UM : LFE5UM_25F
    Implementation Name syn_results Top Module sgmii_ecp5
    Pipelining 0 Retiming 0
    Resource Sharing 1 Fanout Guide 50
    Disable I/O Insertion 1 Disable Sequential Optimizations 0
    Clock Conversion 1 FSM Compiler 1

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Run Status
    Job NameStatusCPU TimeReal TimeMemoryDate/Time
    (compiler)Complete15760-00m:02s-5/13/19
    9:09 AM
    (premap)Complete9300m:00s0m:00s144MB5/13/19
    9:09 AM
    (fpga_mapper)Complete22400m:03s0m:03s153MB5/13/19
    9:09 AM
    Multi-srs GeneratorComplete5/13/19
    9:09 AM
    +
    + + + + + + + + + + + + + + + + +
    Area Summary
    Register bits 221I/O cells 0
    Block RAMs +(v_ram) 0DSPs +(dsp_used) 0
    ORCA LUTs +(total_luts) 154

    + + + + + + + + + + + +
    Timing Summary
    Clock NameReq FreqEst FreqSlack
    sgmii_ecp5|pll_refclki100.0 MHz168.9 MHz4.079
    sgmii_ecp5|rxrefclk100.0 MHz167.9 MHz4.043
    sgmii_ecp5|tx_pclk_inferred_clock100.0 MHz237.5 MHz5.789
    System100.0 MHz840.7 MHz8.810
    +
    + + + + + + +
    Optimizations Summary
    Combined Clock Conversion 3 / 0

    +
    +
    + \ No newline at end of file diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/.cckTransfer b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/.cckTransfer new file mode 100644 index 0000000000000000000000000000000000000000..c8ef476e3afdcd10b3d97832b285a939d0788984 GIT binary patch literal 456 zcmV;(0XP01iwFP!0000015#C0RVXORFG)=yf5o@a)#_;GC@l6eLj-wxqbfz8gbMy>?(>W*ENrczeEr zu?%;@L;gkJY#akI%iW0 zqz5sBG8PwMq2Nu0)WqQg#64v#=~%~_42~mTGT-#Er)>{El*`&Xq@y(*Ub-8S^ISVF zDy5N--grx0q7AB)qSj)7!8Sv zv`geO208SqC8y?ERnUh_Rx*Rw>+MC~PEQ!e`{^FjdNWRKb*--dtqRI6ukOr#sHR5o y<t>Dk!q98E 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/layer0.tlg b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/layer0.tlg new file mode 100644 index 0000000..c29e6b8 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/layer0.tlg @@ -0,0 +1,2 @@ +@N: CD630 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.vhd":30:7:30:16|Synthesizing work.sgmii_ecp5.v1. +Post processing for work.sgmii_ecp5.v1 diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/layer0.tlg.db b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/layer0.tlg.db new file mode 100644 index 0000000000000000000000000000000000000000..e466bdc128a17948b85351cd89a8dc9d34b82897 GIT binary patch literal 8192 zcmeI#&r8EF6bJCM2%cmz5Kn`!lY%xIWfSJbIg6JK)a@==o3*iRT9Pn-;AJ=QKlWy) z8{5r`w|yT;Uh;T3*Jv6a%!KX8VCqL00Izz00bZa0SG_<0uX?}jtf|4|G3d`7MGS!Gm#5pcr461yMu?I zKMClhe?1K7x_TlbI_Ek}xIUwqRO#llYS|Q0skWNS>ZVlo^!IO`l3Kds{CGYDAOHaf zKmY;|fB*y_009U<;C}=b_3DSe7>$nH!A;k1HCa;Rg7HX8u2?KBvwGSwA+sVcGj0Vd zb@3!Z%WkLQE;PZ5)nXQADKl{{<)aA8&eqnOCsDKKw|W=LrQLlWzbcyuBj2Qo>2sk| OZ*$L^w>?!@q3YilyJZak literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/layer1.fdep b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/layer1.fdep new file mode 100644 index 0000000..fbef846 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/layer1.fdep @@ -0,0 +1,22 @@ +#OPTIONS:"|-mixedhdl|-modhint|/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/_verilog_hintfile|-top|work.sgmii_ecp5sll_core|-top|work.sgmii_ecp5rsl_core|-mpparams|/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/_mh_params|-layerid|1|-orig_srs|/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.srs|-prodtype|synplify_pro|-dspmac|-fixsmult|-infer_seqShift|-nram|-sdff_counter|-divnmod|-nostructver|-I|/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/|-I|/home/soft/lattice/diamond/3.10_x64/synpbase/lib|-v2001|-devicelib|/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v|-devicelib|/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v|-encrypt|-pro|-ui|-fid2|-ram|-sharing|on|-ll|2000|-autosm|-lib|work" +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/linux_a_64/c_ver":1542167761 +#CUR:"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/_verilog_hintfile":1557731344 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v":1542167595 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v":1542167597 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v":1542167630 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v":1542167630 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v":1542167630 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh":1542167630 +#CUR:"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1557731342 +#numinternalfiles:6 +#defaultlanguage:verilog +0 "/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v" verilog +#Dependency Lists(Uses List) +0 -1 +#Dependency Lists(Users Of) +0 -1 +#Design Unit to File Association +module work sgmii_ecp5rsl_core 0 +module work sync 0 +module work sgmii_ecp5sll_core 0 +#Unbound instances to file Association. diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/layer1.fdepxmr b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/layer1.fdepxmr new file mode 100644 index 0000000..37d628b --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/layer1.fdepxmr @@ -0,0 +1 @@ +#XMR Information diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/layer1.info b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/layer1.info new file mode 100644 index 0000000..ddcec68 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/layer1.info @@ -0,0 +1,2 @@ +|work.sgmii_ecp5rsl_core|parameter pnum_channels 1;,parameter pprotocol "GBE";,parameter pserdes_mode "RX AND TX";,parameter pport_tx_rdy "ENABLED";,parameter pwait_tx_rdy 3000;,parameter pport_rx_rdy "ENABLED";,parameter pwait_rx_rdy 3000;| +|work.sgmii_ecp5sll_core|parameter PPROTOCOL "GBE";,parameter PLOL_SETTING 0;,parameter PDYN_RATE_CTRL "DISABLED";,parameter PPCIE_MAX_RATE "2.5";,parameter PDIFF_VAL_LOCK 39;,parameter PDIFF_VAL_UNLOCK 78;,parameter PPCLK_TC 131072;,parameter PDIFF_DIV11_VAL_LOCK 0;,parameter PDIFF_DIV11_VAL_UNLOCK 0;,parameter PPCLK_DIV11_TC 0;| diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/layer1.srs b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/layer1.srs new file mode 100644 index 0000000000000000000000000000000000000000..c4195575b914f2c1f172add33b25ab251f3b4ec8 GIT binary patch literal 21473 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 P4@G|$duS$b_|X3WREeG! literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/layer1.tlg b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/layer1.tlg new file mode 100644 index 0000000..f6f3666 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/layer1.tlg @@ -0,0 +1,252 @@ +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +@N: CG364 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1968:7:1968:10|Synthesizing module sync in library work. + + PDATA_RST_VAL=32'b00000000000000000000000000000000 + Generated name = sync_0s +@N: CG364 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1051:7:1051:24|Synthesizing module sgmii_ecp5sll_core in library work. + + PPROTOCOL=24'b010001110100001001000101 + PLOL_SETTING=32'b00000000000000000000000000000000 + PDYN_RATE_CTRL=64'b0100010001001001010100110100000101000010010011000100010101000100 + PPCIE_MAX_RATE=24'b001100100010111000110101 + PDIFF_VAL_LOCK=32'b00000000000000000000000000100111 + PDIFF_VAL_UNLOCK=32'b00000000000000000000000001001110 + PPCLK_TC=32'b00000000000000100000000000000000 + PDIFF_DIV11_VAL_LOCK=32'b00000000000000000000000000000000 + PDIFF_DIV11_VAL_UNLOCK=32'b00000000000000000000000000000000 + PPCLK_DIV11_TC=32'b00000000000000000000000000000000 + LPLL_LOSS_ST=2'b00 + LPLL_PRELOSS_ST=2'b01 + LPLL_PRELOCK_ST=2'b10 + LPLL_LOCK_ST=2'b11 + LRCLK_TC=16'b1111111111111111 + LRCLK_TC_PUL_WIDTH=16'b0000000000110010 + LHB_WAIT_CNT=8'b11111111 + LPCLK_TC_0=32'b00000000000000001000000000000000 + LPCLK_TC_1=32'b00000000000000010000000000000000 + LPCLK_TC_2=32'b00000000000000100000000000000000 + LPCLK_TC_3=32'b00000000000000101000000000000000 + LPCLK_TC_4=32'b00000000000000010000000000000000 + LPDIFF_LOCK_00=32'b00000000000000000000000000001001 + LPDIFF_LOCK_10=32'b00000000000000000000000000010011 + LPDIFF_LOCK_20=32'b00000000000000000000000000100111 + LPDIFF_LOCK_30=32'b00000000000000000000000000110001 + LPDIFF_LOCK_40=32'b00000000000000000000000000010011 + LPDIFF_LOCK_01=32'b00000000000000000000000000001001 + LPDIFF_LOCK_11=32'b00000000000000000000000000010011 + LPDIFF_LOCK_21=32'b00000000000000000000000000100111 + LPDIFF_LOCK_31=32'b00000000000000000000000000110001 + LPDIFF_LOCK_41=32'b00000000000000000000000000010011 + LPDIFF_LOCK_02=32'b00000000000000000000000000110001 + LPDIFF_LOCK_12=32'b00000000000000000000000001100010 + LPDIFF_LOCK_22=32'b00000000000000000000000011000100 + LPDIFF_LOCK_32=32'b00000000000000000000000011110101 + LPDIFF_LOCK_42=32'b00000000000000000000000001100010 + LPDIFF_LOCK_03=32'b00000000000000000000000010000011 + LPDIFF_LOCK_13=32'b00000000000000000000000100000110 + LPDIFF_LOCK_23=32'b00000000000000000000001000001100 + LPDIFF_LOCK_33=32'b00000000000000000000001010001111 + LPDIFF_LOCK_43=32'b00000000000000000000000100000110 + LPDIFF_UNLOCK_00=32'b00000000000000000000000000010011 + LPDIFF_UNLOCK_10=32'b00000000000000000000000000100111 + LPDIFF_UNLOCK_20=32'b00000000000000000000000001001110 + LPDIFF_UNLOCK_30=32'b00000000000000000000000001100010 + LPDIFF_UNLOCK_40=32'b00000000000000000000000000100111 + LPDIFF_UNLOCK_01=32'b00000000000000000000000001000001 + LPDIFF_UNLOCK_11=32'b00000000000000000000000010000011 + LPDIFF_UNLOCK_21=32'b00000000000000000000000100000110 + LPDIFF_UNLOCK_31=32'b00000000000000000000000101000111 + LPDIFF_UNLOCK_41=32'b00000000000000000000000010000011 + LPDIFF_UNLOCK_02=32'b00000000000000000000000001001000 + LPDIFF_UNLOCK_12=32'b00000000000000000000000010010000 + LPDIFF_UNLOCK_22=32'b00000000000000000000000100100000 + LPDIFF_UNLOCK_32=32'b00000000000000000000000101101000 + LPDIFF_UNLOCK_42=32'b00000000000000000000000010010000 + LPDIFF_UNLOCK_03=32'b00000000000000000000000011000100 + LPDIFF_UNLOCK_13=32'b00000000000000000000000110001001 + LPDIFF_UNLOCK_23=32'b00000000000000000000001100010010 + LPDIFF_UNLOCK_33=32'b00000000000000000000001111010111 + LPDIFF_UNLOCK_43=32'b00000000000000000000000110001001 + Generated name = sgmii_ecp5sll_core_Z1_layer1 +@N: CG179 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1287:54:1287:59|Removing redundant assignment. +@N: CG179 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1293:52:1293:55|Removing redundant assignment. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1350:0:1350:5|Pruning unused register rcpri_mod_ch_st. Make sure that there are no unused intermediate registers. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 0 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 0 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 1 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 2 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 16 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 18 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 19 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 20 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 21 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +@N: CG364 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":92:7:92:24|Synthesizing module sgmii_ecp5rsl_core in library work. + + pnum_channels=32'b00000000000000000000000000000001 + pprotocol=24'b010001110100001001000101 + pserdes_mode=72'b010100100101100000100000010000010100111001000100001000000101010001011000 + pport_tx_rdy=56'b01000101010011100100000101000010010011000100010101000100 + pwait_tx_rdy=32'b00000000000000000000101110111000 + pport_rx_rdy=56'b01000101010011100100000101000010010011000100010101000100 + pwait_rx_rdy=32'b00000000000000000000101110111000 + wa_num_cycles=32'b00000000000000000000010000000000 + dac_num_cycles=32'b00000000000000000000000000000011 + lreset_pwidth=32'b00000000000000000000000000000011 + lwait_b4_trst=32'b00000000000010111110101111000010 + lwait_b4_trst_s=32'b00000000000000000000001100001101 + lplol_cnt_width=32'b00000000000000000000000000010100 + lwait_after_plol0=32'b00000000000000000000000000000100 + lwait_b4_rrst=32'b00000000000000101100000000000000 + lrrst_wait_width=32'b00000000000000000000000000010100 + lwait_after_rrst=32'b00000000000011000011010100000000 + lwait_b4_rrst_s=32'b00000000000000000000000111001100 + lrlol_cnt_width=32'b00000000000000000000000000010011 + lwait_after_lols=32'b00000000000000001100010000000000 + lwait_after_lols_s=32'b00000000000000000000000010010110 + llols_cnt_width=32'b00000000000000000000000000010010 + lrdb_max=32'b00000000000000000000000000001111 + ltxr_wait_width=32'b00000000000000000000000000001100 + lrxr_wait_width=32'b00000000000000000000000000001100 + Generated name = sgmii_ecp5rsl_core_Z2_layer1 +@W: CG133 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":326:33:326:40|Object rrst_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":327:33:327:43|Removing wire rrst_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":328:33:328:41|Object rrst_wait is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":341:33:341:39|Object rxp_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":342:33:342:39|Object rxp_rst is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":343:33:343:42|Removing wire rxp_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":346:33:346:42|Object rlolsz_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":347:33:347:45|Removing wire rlolsz_cnt_tc, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":350:33:350:43|Removing wire rxp_cnt2_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":351:33:351:47|Object data_loop_b_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":352:33:352:43|Object data_loop_b is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":353:33:353:46|Removing wire data_loop_b_tc, as there is no assignment to it. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":806:3:806:8|Pruning unused register genblk2.rxp_cnt2[2:0]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlol_p3. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlos_p3. Make sure that there are no unused intermediate registers. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":694:3:694:8|Optimizing register bit genblk2.rxs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":461:3:461:8|Optimizing register bit genblk1.txp_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":422:3:422:8|Optimizing register bit genblk1.txs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":422:3:422:8|Pruning register bit 2 of genblk1.txs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":461:3:461:8|Pruning register bit 2 of genblk1.txp_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":694:3:694:8|Pruning register bit 2 of genblk2.rxs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":200:33:200:48|Input port bits 3 to 1 of rui_tx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":204:33:204:51|Input port bits 3 to 1 of rui_rx_serdes_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":205:33:205:48|Input port bits 3 to 1 of rui_rx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":206:33:206:48|Input port bits 3 to 1 of rdi_rx_los_low_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":207:33:207:48|Input port bits 3 to 1 of rdi_rx_cdr_lol_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning register bits 6 to 4 of genblk5.rdiff_comp_unlock[6:3]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning register bits 5 to 3 of genblk5.rdiff_comp_lock[5:2]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rdiff_comp_unlock[3]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rcount_tc[17]. Make sure that there are no unused intermediate registers. +@N: CL201 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1801:0:1801:5|Trying to extract state machine for register sll_state. +Extracted state machine for register sll_state +State machine has 4 reachable states with original encodings of: + 00 + 01 + 10 + 11 diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/layer1.tlg.db b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/layer1.tlg.db new file mode 100644 index 0000000000000000000000000000000000000000..35d1d7518cba874aa5f99431a318a487aa4c8f8b GIT binary patch literal 28672 zcmeI5U2G#)6@YE$$NBee{{k(6+b!&FA?tX?Gmh=uZJTbxHZ$B@jy>mOw0lSOT#GVhO|&h$Rq9AeKNZfmj0n z=Mr#}>FJr7Wapx*Rt((2j-%GG(`{2%ZZ0mYETWZ#=a&~z_to=y6|Jj8TT{s_GIX=q z`)lu%-V06L>^s?pPwJ-o^bkmWF!Mf@eLC|&<{z2AW!@kA&gl0?ew==L_}!sj4*q7~ z_o+W7|C0Fo$4EUL=k&;QN9){uB6Ve1%oWeftywKRr&fusnsasCopVV=cCIr_SbD>d_aYk)%Xv0h4L630@T?`L;lw0We@SsPyg${3pLektq zhqpi>!`woLXT7UK4Eh$e-a?@i?g~6F=jaNYHuBC5(x&TS)Hd4=ESG!hXU!(M(z2?G zwx&347F|=D7&&c%k-G+aqwX4prz-rKR`FG{=>Cx1c ztHON9lwv7gmc_EbT6yOt^#>>@!PT}|RZX|g-N>4ji@_zB8Hlid#rd)mI+b6(AcZ?hav?;QVSrZ#V?j5;@2(J) zY@rQ{G`n&=2hMy4E0OfOR4CGZ(?-Z0-0v+@gPwv1Kl}n5hD10FJ_(0`({ykCG&uK} zFHik&^52tpCN{=*WB)()|D%q2gg3o9vH#Cmge&&{1CHy({y$$MJof(sja!r0|L1Cp zBKH4-9p173AF^j0`~R{3fAl`>$KL-xC{jWF|5J(g5}C=V$0yHCNaG7*FOPn8q?RVb z-yC{<@Qs1DQol(44o>*UK01vjS*TIraHGh-|EpPT(^Xt;RTMt-9)AOI3+s3L0)hPu zx3K=*-aueK%`L2dn;;0-yE6>7#o;x3=nXn2y*=mdr}$+)EIfB&<|p`N_8aHkjaVmU zew<%szl{!%`IG!I`%QI#%%9+w*>ACfW45OmbCW~6eOOTLq?fb(7`MoW-I8-+c|`E zH-~>d^y|St4E%Kf$`Vw85_~8s``-kNYvfFD@EqxrGgWZPEA~x3K=WKoBOX@mX$RgI`BAp5hiZ z_+?b%47ad>ucD~`|4`z4iOlj;WAY~xzZ(DZ`0&_^qgBZN|I_dX!;cNE4C(`~rhb(C z0h|=wV>kH%=s?*$O~VU9DHm$yhg1;C`7%8gcdmP>^IqP}US>T_%l8uUg{-@2E1K!9 zinnRPzKS%Q+b}spc6@+m|U0#8PH?#&@3@;9DocA z%TernFj-=i1#TgYz#!M2V~}jw7k0*9F;@Uh(&K$-(z~L?RS|Bw2}YmKJ`1Q?XB3PV zq^*T(yz+9soQEH1q(U#LZbOIUw5sZ=ieXu{Qi0owz!X815thZMJ2Z*0SAB%qGTrT& zo=)W%MsS@H2>E=d<~I*Xi;O@lOZlDa6^C11e+%wJjRZxp*uy^`>WAt$g_76G^KqF z!KFc*@Jzs+`6vNBTPH!|0}Ru~eXYO%Uy4M7Vv&tMXe41@gP=ZTLj_+UtoiDa%n+k7 z>Pe<>Obc~(#aE12_XD9kY^FP4*8a_6wvST0Mik-7S~V zc!imUNPI(oJ;uYT!R!}c+z%BC^8tB>cW*FQc5i#wj_@&IdpCmaRh!HQ!@PU;I%VFa zuGX>`b|D;J!OgCM_v`#XG|xdY9jX3J+8#T*aZWCaz`j%i{}JYM<}kAwK(uNqHmlSX z#cS%iZb9W$s2jRYs|3-opWTM9-vFPKI-;yRE4ZW1EOkit-mDR;#ZGoD8yR>V8$HK+ z_x#IDP^-KMsz3$hk2?1RwKqs$s(k>W>TF+Q*U`6_sH8%u#!k$!7zX) zs2`_jp=tgbUt$(wD4Jmpy8;wmD$ByXhP?+5TN+gyHvjfgl*(tpEHMYctb1Pe!0&D< zp(}rP`bB_Ob}uvKha6e%-x4}#7Daux{q$`Lu_*e7nl}%bHdWJ`Ing~Q&grYsNv40p z@F>ajZ5ci&$$T+F$%qitf}ot(xAD@y^6DQmR5E)Ti4RCJ$welaXf~PqBy;p8b7UK= F{{hbkTfP7Q literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/modulechange.db b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/modulechange.db new file mode 100644 index 0000000000000000000000000000000000000000..643f5657525be23029cd0d8c2cb0fcbcbecc874c GIT binary patch literal 28672 zcmeI3OKjXk7{~3kch{R_cM`;EL8y|`3Z+q#n5d5f2O!W;B`s+vMM4y5<=C^kCVt6w zwh6b~dPZv)9UJPo8=DjF)k<6(xb4nMajjMOBr@OjA*m0=>%g>NSHpdT)c?)gArYbqmVm z@0Y6dX{mZeVK1`>Yj4+{t!cD@1_B@e0w4eaAOHd&00JNY0wD1J1QtuB#^{*Z_ClAh zwmi3)Ma{r-gUDU+xyxf7x@q}|bF(w&XU(~Vle5p6+d<~p1+y>k@RM^V#}|t`9LY*J z(s%j-OMQ;pL34=#0Ol zl^dg@>iVNQOueubZ8(aa{vUQ?|KUw9-sXuJCthGDYvwXvn=pNE$?V#R)3K8Y)8W3q zz18*j#opHVa-rNfbVyx4AjfWbKBupQZJzGvYJH>c_&_ig8SEWCPIx!-0-k1e5cfjH zeYM;;a6nx@vNf1ULKuqo!k%Gdinkxb&N{t3Cd|E~iQ4?0fi;D_#U82sT)SL*zBW?5 zR$Z-54&4}fb!dL@@4+jBe6T+7J_VtH00@8p2!H?xfB*=9Kwbj#BSmGM=~gESxRpk& z%<}Cl^Biuuo*hJ?YaN}MeyF*6;+U1Lh4GS|a*O_6x4M4RwpN0q>DaLsOm#1O`})Gd zFnKj{dZi8zyk_jhJe^9r9qGsJ*e_aokvmzsF~9lR9pu_si+Ms-PS2~F)2riJD`D!j zL+(y>J1*t<@aZA)8p**;cx@ko4YRpHGOOk@OEY(R`oyu`yk-Z;s+ilVXLGhfHuvYW z3FEZcu}R|PcF%Cm$e&`k67a-xdRFsgvdVM%6M8>#?97Y8slblqVJwkX&ci6rE*^?A zb>lFeDw0_xA2d7hvQE!vUeA}Izv9q*teAe3E^o;n(Bx??Uxu4r+=-8`(6vHlXw4PK zEXRqu%Z$h$aa6LJ*@R`giD!pa+smvhSvsCNR>p&vu4>$hlSo_+tW!&T(Me}lvxK)C zf7wdgf#)^F^mcTc;%Z1&IdQVQaQ(j81%(EgzRQCM7{XlE|Lhfo{lR`=Kd^7um+S`n zgnh_9VAt4t>?(Vgy~8fEH`r?wga!g200JNY0w4eaAOHd&00JNY0w8eL2RZ^1V8`; zKmY_l00ck)1V8`;KmY_l;EoC0OY0))^#?9S$ucc$a=NrCgdX-cXoW+4v@Z8!G`BSS~##LCQ18ZME!5Dj}-PN`<4C3 zzGGjr&)KK60}TW~00ck)1V8`;KmY_l00ck)1VCV46VMG!HFUkKsTEx>QD4)Gqy@*ca?G+JOcFAOHd&00JNY0w4eaAOHd& z00JPezX?#auj+=>vQVugv{0n_U)6=sod82EXj}FF_3h{Xx7b(gCcD1B6U6L500ck) u1V8`;KmY_l00ck)1V8`;Bmq(8mu0Ol9{7uT-w;v~LN@{oaU+240sIR*U_jCU literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/modulechange_mixhdl/layer0/modulechange.db b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/modulechange_mixhdl/layer0/modulechange.db new file mode 100644 index 0000000000000000000000000000000000000000..9273fb08ef93a996f5e8b09280612c36db35bf59 GIT binary patch literal 20480 zcmeI&y>HV%7zS{=ahkR?IhX=NC07+{D?*Q`9|H>%NUMGzpcEF6s*8O|j`&OVB{Xc= zSYc*kV&Gpu3`|T+2qY#ZBqS!5vcTD`p;bXhUMf}3Nq&2_ljrV!PKQ%+`_{UU+-&%v z%cME0oz!$)yKI`8rs?X)t0QfO>cmId;`{$=x^{l&aZ$a>DBaP>Q*yTSLUqs}009U< z00Izz00bZa0SG|gcnEA5gXPIdol91Cxa->;hub{ho*f-H$zR>5EpFD#&BZJ0HS@r& zsp~7(OyS9jxwPAvev~Ve$H(>lrG25oYxuiwi+jdj;^OOR7H{&<3_{_uuxGY;uVOl) zZgyE{wOCj&E$%pf&bop>OwXp<1BLR$gx()Z#%>6QtG9Sf9_{Pq4vfC<#?;;l4i6uM zyeoyvBgxz#UTyr6X-6-V$Hw&jx!;4ui--f`zXOMcNtXEUF_>(n>!_HAM~nC7Cq`dt zC_X7Jjqa$+Xb^w^1Rwwb2tWV=5P$##jz(a0B(L>}L0i7dY2-H~ zb(oaG;?x$*^*x);&QvdKZ7+_LCC3ge$Z@_5~`VY7z>2jUl zw4&O!40*$H+B9mqLTtsE`?~Q=?|(d9O7{Qcl}3J$@8lc#LOzpE)A{BW@}2tWV=5P$##AOHafKmY;|fWV%> EFS|_QfdBvi literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/modulechange_mixhdl/layer1/modulechange.db b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/modulechange_mixhdl/layer1/modulechange.db new file mode 100644 index 0000000000000000000000000000000000000000..aa64eba41b014b1e7e91a8029a3d5bfb299a224d GIT binary patch literal 20480 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 Wa!}v`00030{{sMykP&)2zXAZ>5YS)% literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_m.srm b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_m.srm new file mode 100644 index 0000000000000000000000000000000000000000..c431948d3e731f98541a5231f3f6979cb6e4156a GIT binary patch literal 31486 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≻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
  • UOj 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 KACQLDr2zmkZb}IN literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_m_srm/1.srm b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_m_srm/1.srm new file mode 100644 index 0000000000000000000000000000000000000000..ae1d2553fe18e2ea3b3b69abc171d44c17b1a8bd GIT binary patch literal 68660 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

    iL1;EW84b2mcdC03lJSN~bWD&TIm@r;fYJ7Jxz z?Sy>}zSvnid7k!Q+|W-Se;hbs{M=@Bz{|81zY*Kyw=9;(x>3aKhw+<^2RXI-VWn4` zKkF3cxZ}|6&1aV-bG4;WryoVk&ga0Gy8~+He7wLpX3ewQod?cx|EqH$4Chq=_t`9) zS7q!G00mm@y)VxXrP=&Y^2ITCxT=}%j=2Mha(^*{D|+S*D979ZMQ{hy1F_AV6B1!9 zNn{uBZB?)SOU1axT`A7yyHcJ*T?z6X3%bO!^~{-UN00A$;RZW;8nBO4u#Y5jM7+{| z#iwH**$Df{4*OmZ_Js?dZLt5Y7W;x)>DX_W2uOpTEPt7leHh`&{JXu#eSZAHy19$%x!O_OZ3tS6lzN!@g&W zeN0O7c%fdcygWY+x*k{*bpPgWzN4JlC_FC+F@-EsP z_Wj>tAC;TzrES1IuY!H)URp`FjeXum*jHPty2HL_ihUG&dC23iFRaDB5V4OkpKKrd z!nN2J?y&D=VIQG&bIvxyzGEuWnbY|W_;g;wpTd85?X;#SvRRbPG}l;=)LHNH9WM$0 z2+p~x&Ue@}-=X()n0u3H(oaN!ZR=lik8PSCO!nA1+udWk!@%uhpoewTSS9Ht7-;Ua zwS8H$S7;>$mUh|_)u+|D9NdzD+PUYWjb`9q;WNQNh{cG{(z+Nh71!6wb(~~hE!MK6 zH3eoZi@qPx`gHZAz1`2Hre*a$TjwGBY}fYSZdca^sB42%*T&*{=)`BD!}sEaO~B94 z?|a2g8C?eze>uE%(!IDBaqCF$JiCPVGw9q3%F_LgHf!WHmhxKRyVuoa;*MJ<-*Id1 zfk<}TI@{WD`y6y__Kwn|xE&DeeKPP=?K~=d#>0B5 zXhu*wZ@lvevG0D~QTy0%m$$i(P2ba}&aYGNqIa=2?LXSauG}r{^~2|}=93$DI!J1> z;O;*3dHWAJJCbclA2{=Zpq?h_%nP+IP1R(9veflcU%&nQ#%I0d-P`^*|L0e6cNax5 zpTlDn_qnBeaB!yFo!;q|>_wU-dyyE!y1$;@`8d=4E+JD`dfji_L&+qIIPyQ}S+D^< zUr9j`XP4%ECVX*+@4lD(UD<=5lf6Q&b1g2%qp34&kNJE4rVs!3?)ZN1&HmlH{yTn` z)v5(u-v`RTpFwv&kaFC;rUPN@j7s*+b#dO^Dmq2|et!j>=q7YZcMajOq_-nE)^DU? z^Da+C!_PoNy-!i?IHt!7vIK7-?Kf%hliRzr#=6y0GMw2ppXW&*jpKsKyS$zbozeI` zZ@+ne1eEOa{r7$T=B~&0-}Lz1{=0Wa?|ARQ^`_r`ew{6Q{Oz~?-B0n=mp^_GKAOij zO@0a1I^y2IyJVkIhLu1UK)N8?1vu~J{S9hQoXj!p^r8JGl#-?CZDQTfXf7 zy!-a`hcABcAFt;(@rY|ZJURRba3Ln=?nunuUj5;{{Z5h3tT@?ONI@ngWnJ3~3BLc2 zz0-*pIn&X^J=grFkHz5P(zIt8{-8>4dmiX*&*ntUvX3paA>+aAVgU9djfkpawuzG2 zAy9NmlX#AeyhI<(OGo|v_xtV` zD!}f#(|tDB52pBu0a8X`sPLp$kL3~4g@uYPsqcW8HNaN}{F>0#x3lZyw8>_GEJdm- z_Few$c7W}~pg&~*DrLW`9OB+mg){J6EoXWW->G?Doy9qy`S4BJN9-juvd+QfRs0i0xjq7WD)xl3 zSF-)6EHd=oQ4>z9Ya{NM_raZMVk_8B(qsL1`ygHLGnKJ-Y24CN2&AG$$Q%3A>c${r zBiv~o*v2mE5+B_K!CirmK7KjOa9G<0$VVBC{M=rOdq`JH(KW(;$W%x54b0VhW4#&i z3>)kSeIBII=;Oqh2#~DN`CERq%xSdBp89+;aYy|6(gAHYo{so%-0p)O1LLV+i%MlT zMGOEKX@arbJT66|P{$a`I{n9wAFoTcXU1E@o6A^!x&Lx_{3Y{ylHJRwyYJ8z%6h=m zYz<=aOfTz+TM#~DfaaQCG#VN+ z3Z$X7C1ZTv)J`Xq5tEMatU)|E6YfXw?@$FGkFgo0s@F2<;qH%5uW4)xm48TZWJXX& z820Fy3kK&vd~_Esp9R$O%kn$vT%)fmKtaTDM_9y3=xRQ1gAO=qvb)~2-&gDiu-ulGVKUlVDBSPRAz+TA+tGV_TqO`KG55g?}260FET3k#~{}AK-D83#5LV^NTJ_FLaC8o+3h>7S}!~Fbf z(U|~Bh!H{iW$7U!qFq&^dm8QCqc+mK{~mCnKzG(9A^HFwm?`^|X&-=Ie>oh_Nx_B) zC}3%WzxBiOeiZzz^7$ak^*(Dtk9wcg;AM=bq79PjBSOIjHuRCw)kwS2J!?OI6|dG~ zK!3jnc)F2}F>+KDy1ahpA`O!q7z zhJrme5#zm>Th78qox`Mujryj}(fOdkIQ5-E_F!J>w-fm_Z8?HX#X%6^hGgj#?HO0Z z!%HiPg@e2(o!msPC@Rp4ARoobmbET#2c1Dn(A1_W=-#qTqh=gPlsSWs(1sH(E&2jp z?uTnzFX6YsJug!~_%VEx#WqZONn|Iq|00`6TBVn^P0@Dpjqk3}FRx4Zhk7`(rBPm1 z*u$CpO-^(Fi_0j%tEfo3I(xZJ2JwAqdmMF-;xq6ow!vpB^Mf>Kmct*-a;UHIwj-`C zmi4|>rZ;=1mgQEkS>wJ_gZsY0gNXaaIiKtDjY~7%Xz&&hS)I^v2h zRoyC}L!^D?+Su383K|{({g95}K$$Z5j_)7!3_b*d(+dKGbFUi#9~ShL@@I%=+hFE` z4_A>v=_PUJ_=cN$M)6%)Pf36hcxEOkd}Tzul=lkfQ7TZM(EyxMPVpdsR2k& z(6s|FKmZclZqcSxv;_$ZBw0n1E#V7dp*Hr%S13P1wT(~PM^QI~*5>f+8YX@iLZ{G#n(_b?uITyc&x z>fQ%fPe6PYHO2Bm_%G8*Y0g!}g)#OyJs0B%AhkRfSzbzX&JnlO%nu2et>bqY-zITC z#Y^$O21B%U)SOS-Z`9f5Ip>ozv57k zx3aq`)?0|{0v!n;s`7`*bnN@W<9)9{M_nU#^X2gJ%P_t_mS55wM>5x|HSZ|9N7oT% z`FGEgi2Z2yq;s>x!Uwv6<>Pfd%4HU71OH7-jT}}aqx^i+r`O+!F-3yDMVP#!hx!(% z6Z-G=dApbUS^@f{a77z5Zyi1Ld@s_$d(3B})#h|w7xk}E&#Gskk-MZGLtWE{YnJLf zdQI`gxS!M^n8%PGeQMX`*^4vXmic`bX!d}7C{y`RoXHHnjA5hbdA5Ng?!gEfOxwy${WeqMwF5RpWo4dh7zIE9|d(-tIk7xNpodujEW+P^^bBW}^!d+#e%9 z$^KF#Hg3e~XvLin{jj7SFs&!j^QzGYQgakS&-6dcnaAZ=!RO)}ZIa+z`p%ncIht(@ z{zlowS*?rCi@o7WR}^9+3^1lk0@e+fZ_-uc6~-L}^;C=&?NWt%ssCEWJrL%Jr#*f9Dx@KR+!Gwn%CvRLpv`*AK8&Z+)$Y7x|&CPwP0U25tJe zoJ&}$T!M}H2BgUbbuhI#J`BADUD6FaaQT4(XWcl9htWlVzMAcms^4VjM9h1R<2_Yx ze0P1C#GWh+KgAt&uWUxJ#wqfXzO$4*ae+P|Wi;uH^c8(f{iyAQv(xmYcg6~88 zP3t{W{%F5oa|Hy@CV;O6Db8&KBVP$}YQw!|a>@vy37_~CKJmOt?OpA4umNq)(^E_}+S1QO}PKSdaA@{ zH0r66d}Rpk>OO!W*4SdcMEi;Z@vm48?~f_gpHUneX?wMJEfc)1^Yw1Txtb5DYiH0e zGVKJ4&!KAXdZsT)wU1~fQTcdKJpQ@C7sdO-8scaP?-1nD zv&q)t8=KNs*=OM6c^wdCm$=?utIM zx+eIaXldFgSY}PF&Y`Qk6KnS9N1`9c~ue|}Q;`F<=FO%wYC z>|%7D65ROQ%qwV{`O?E2R4UWoPJVt>egu4f+M6ns-pOmd0wuF7!oCA9tK-gd=ZW0h zIAXFm<3QEMdIgV4*^qzFuW@mf#4EKNCHs&Pelzl<**Vm}PP0zNz)qrlhfrv8tQ(f$Jfgz_8j&i)MF%?yn#xm)zjPB0==y&y{&chwpP;HT0?JZ z1A1G30llMCC)wZ(S89}Ko>Rs=#F{vt$A1*#Q%Su=9-E_6<$LJ7o=oUq);aXDoS&K( z9m-NaNPWJozQ&~Ry-$ks@lu_HZ%5rO#rhIIl73!aV%FJXod;N$S^Z2!H%aD~Y|Jz+ zqVic$ZGCK>-&OKIKUcZ6BwwkI^^5g89_q$4wo+5SqjSEWD>W+1yhh~-yr*IVI$mJL zUVwxE=H0G`iAZn1tLvF*ko0g#oXOGD!xi~{nxj;8)EL*o9B+&{UaLOG8~09ik685> z=6J0n$4iqs?z*0sY$q9AEPaeuJm* za4WIiN{uCvzTZ?|5J*zQ#H>~)_~OQw!!KX%<#CFWK$DKDUC^;)q;DE8PVJ<8p9IDY zL=1kd>wa_xF7m90byzx9oY1(F#ykDOxkuWM#zN9*9#^0&G~&?-Mt07u80!(z`#`yd zhm{Hg9+^9PqvKk9zyIc4uaJ-QFdylud}O5Zk!G%0;UPdY=Dy2#NYM|Xi62zXW4CCa z{2!eskCHv)$qru@k#Zj0t~=f@=Gj9k@?3oSnVS9zb>El=R(P1+`vdW?5=RX%_z=OX z?grSWX~yU)d1FdwsPouWOr)|@A63bPU-+tqOy#tFqh3Sr&z>jPh&qI69in&If(|iu zFnc<#ulKhfmGk9heS^Nfiffhf<;!Be{82V~+Qak4%;74!+KR3=(lwUdLcf~kKX~1& zrq79LKiuq@z*>uhhDi<@b*-9V5Avus2m7I}^;G8oUJ^~msLOmFX7(l3dx-Tr@L8ne zU4{EJ>6m@ybMZ62!IStrPmyKBRMW-*H3HToz8%@!kNnK0G_bEy_fPpk-EUnkPGXOp zEcV!Gd{)>Qh^+pfxJk{{*=cO{@2mRb9NT)aQEOQ`mejoC?1jZ%IY(#Ig_gb(>uNE^ zr0tJ~=1j2Ou~7eFvmjty+h)pNj74Xd#XNOvQ}RW(oKO0J`J^9y%7@iDf2>`{IO0fj zEO&A~(DCPF?ohw-9R;0ixs~Hh@j|pijOXzI+5;a9U$8-f^m!_EahSK$vEFJdIkQ1J zIG@DK`PDs>>hF#%ou^@78M3rzybw<>Jzup}Z>ehaqR{t>@!}d>!MfG5eG&S&@&%sX z4sDE`<2w;fu6OSRMg9criIUi3SgrT<{iNQv!;?8EI{ph-sAGFp2RpBe8=pzwgO40YT7pj+pMRrt) zmHQYg_mfz8!}+SV1KwL_GP2HF?m*d{rftcv?v8m$PeEMB8)Whf*obpK%6a4^_!9v` zdp?RDLj$kN2&M;^4VJ&Afsx-AlB(D)Q~j5q32J=2f-IZ%8uAUsead`4Px`Wnu00^k z(|*c|cVEaUEX|z4Bc2D zj@lS+Nif*7M*@{0C+g3A->$VsY|K%|SwE7Q3#!Dqq-^x*3fHld_)A8^ppJ$;lZJko zMtzfpY6gB{H{$7vM~(MqSKr^~^8Fz1ruD;*_TMVCk6Y(qa7;GjVXwr)bQKSiwLBcH z;bFO+hrOrqF!q$b0Vdu?orlsb5!SgTc`XxPeIswU?m8_Isk*kDP8l8aOw?XsX0Mm< zsh-)}H+uEp9fi4{n9Q>@=eefyE=$Kh7ivf%&By7pJ&BLs6!J7kTY>>`pLGj0U1m?4 z*$cuJs!m1K6Kqm{-f$gpVXI!G;;tWqhP@&U{VI+6h20#p(#&piUO3LGFTKCdr5+c| znS%|;Y+c*&SS-dk&!5G^Qt>d|kcYhz57X5=Ojh!6w1$V}Iv)16z{6N0))>d|R2&1$ z&m@jv#;(9uRr)PLj3hNZQK^1&c`=UF5@8{ZX3&sD(k{;;$!Mr-a62l@u+e!Lq!EzV zHu7YuPsNNi!3826!>GpKmRSt$ub^StV^gM~FB@nm1=V%?mQl0W7>kr^Vv&B`@uU1W zt2_R=(laEN#h#%@=e^513yIhb@CA8(;{O(B7y*8&+8yjKs^Vu>Q&;IsD4{H!iEZsKG$ zHcm=1%`%xLkyn-JXeAwOBX;TOnO^$cd3C&A8lUSIcfwcnCtK9kB*ZOhh-GTjsT zGRSRBT_>UQP8vJ0N3$L~>+39xK2P1Fk?$yO;7!xVOzG7(=q0Q4Ix=!-qCqiOTe}GkV&Jp5@tK_zrbWtI4OwKIc-dO4~!U;>{Skn}MF&vhKDMY_yXcQfY3V`MnjNM$+6KH~WRP{X=yeSgy>?R&%d? z<6Kfa_o#TTy#f8mQ|b5E+_uKRhTOK~enW0MDCM?;mGoQ5e{6Mb8}KhG^JlrYJLwT$ z<~`z%ozGYk8}h)F$G#8nVrpZ^s#Zq#MUn*#oBJYPzb^Jg5)~H;R9~d3FH$|C7ewW; zvw!QJ(Yz?0EPu~kcY!na zbbV3NoEfYi(>e1CH?O-@b?=zCz@D+R7s1NsEl1r*dL+T~KK6l`Ia~7{yd@SqNKbmz z8oCW<%J|(NB0l^H_E(hKU*ym$%>a!kqfNDj9{g9GW98|Zwsd}6T%I4N?mLM?#pe7t z^H}-$3)fBZw)uT+(tF+m+sT~eO5x$VNCBU!_?({G!*2%*_*LVqCEri-^K;Nox(99D z458XS^RySU^qg5g-D1F(=6!7Xj3CQK->z-@U80IB_I;*&={T8>#-jzbu``bVgq7u% z2twv0iAU%;)fa=jo>|WTM}sr1uhliibDSwcsKgq)0Q1Q;a*B1NG13in0Euip7rUwh zYGf7lWnm_-&$`KEBs;*ki=MM!_S>RginD&Ag{t*ev@bui2i!dOioS%=-<-_*A;-#> zkOdv8dOAEACht0}cU5`RtRB=0W!+4Lw0C!D_U=B4mrJ#sD`sDExriEThs`-zP4g^4 zcPl$=dL}wJz{zs)nzOtfvv+zn#8GkpS6o<&?rfDzliGTpbQV;E+Or||ywSX7?1$z$7}mj z)cs+fyV=jQO~+{HcjSG;Qa7HUoO_%;C2eu^#Sw>b;0KR2#VHuYC~4$ zh`+wOYnrVPHt2H?L;I;d&-9A!HSyFO0I6$%&AgGC>6)H<)KJIcN#9HSbaQUQGN0S< zlwJv-otme}_mA!hwQF8LZSXT$QoEMVkum0uCbdgG&XB6qE@9ys_x(b>D$X`Cc0ZW2 zo0M&Uc6|VhoX$)r?;DBWma>^xh^JJ~^CUL9#-7>tsC!YcnT}DfkgLdMrY`dx0*|Dj zl1HH3`~5f7ni~R!huU>RY;)I*n%ODAi}%tPOj*}5%2?CPc72U-?5MpFbu%b2m#X(h zG|ZGxxq3aXt(5bgnK|#H74t1r|96ttHFw)C&1ZWI*5Mo|PMkQ9Kfh0ORh!JYti&tvy1+fIK8sL4ql%A z{F>cEET(&?!+hLJkv^;1Ies7upMhsRkn;Zc!1&%|7qvQ

    {L-gQCsdlrux0CVr$t1pMTYUEQY9_DvY{tLR+3TzS?u)M!|NY-z zU-xNSB)iby3*xVnn>}kj;G_1rGZ4Q|V`s>5f7|r;fy2QA8aeUUy5-I|9^K*&xY>wb z(b-on+nzj;YA3L9{q|CSrvKlszv7;#W&29)#!T)-wvi|GuHeDsceP8$6_*ooYw;Gz z=D~St7eVByIcItXA>xGRM@+>O2<1QfeS)?T{`C3+O(ThU4)~+8KSjs2_NK9*QuUlm z%_C~B+YIb7z&;u#z0la(oW=0c*u9PUG@^1HGPTdu&pU(PYOh7B@j&BRG`*Jk3ICqO zSEuIvroGp=kPc+oR&^=;ugjmOrVNuk)u-+=wb#cZm?w}I2ia$ECpJDuu*BuZ$)01l z&Vg}nf>`Prj0S|6^HERk%5u@md5ro_p8oII)oa@SD)8Sa|0>>vb0;_P zZk_Y?=yyj9h5$Jup36*ZIjGo`yqw%7ase_3nzjv0pX@-?*Kfo1PnHGQp{DG} zqI@0xZcPR_iywS@+~Y`2ILYI0o(#a)mHS277k0zsuAWMxMbYVN$F5cbWL{>CZcZ-)gQ!jcfVU zYti&t$3uE3wYf?N=V^%c1|%4CZsa#6Vktz3hauR#mf0B`ZC zd=B76SuSKjE^s#~&2>(qAKdZe_IqqiZunJO;kV*xtw+FS%=kCO^f~IE`PaPx=%8~k za(;IP)8RQ-9$ID`ZpF8wv67ee_*Q)n%3vF;Twq77EA;i-?W<)`c4#g;sN+oenjBic zj|O54ewW&5N(j&ARbi+eD~@Egi%Y#rAA2G&x8Q|A#eRY#8{1Dz*-sU_NyV=N#Nu9t z#bzz05Av&czn|J(N9oTy+ITH$Tq~-*7EP~}`~=)A=n8*No#RKgkGewD z1o!%B{ym`yrpF*DdpBR_d|O*=~#?W|OGXeK*KzGN<6 z7TmA+eK2yymcZTV93&;LDFY9&i0?DNZQd*AbLhF=KAH0zVT^3m{TKef4(q=3v; zd|ZvaBHok7_cq8v)o1Xq&O@sH9BKFrS$-5;Z~Wek{14+=w60D-U#rglDCr87-7Kgw(xg$@SHWjNd5I#jLS6{UO9bcdyu5IEp^OrotId4xDe}Ua@4U!wmCIUS71k zNalswM{Sgs$y#}_o8%=5X{h33+7@JANo)jY}kh&(30 zuK6_08)p7^nSVp9k)f<03+9ZL{CItww=6qmjy>;J&U)hX@uv7yK?Y_e8PGWq^VyOd z<1&(rWI4t()|<-%JzkI{^MHzlJiETmy|74 zROitilo!#x`e-u+M!YxuJ=#nW>Y!4t-Ad~0jlOw(yxwNg_c;rLh^o4iWEKJ~^zi#e zT}sl!Ut5<_m4#VB7Ie(lcs6xyd+B5Um8wV3F<(O-0+o|zL0Ha@=psf?g=+-!r{n8+k?PH|7<~I!k)gH)^^n zvtF{}4YevIS(ur!Q0K#Vy8aO)JFQVD`!E*H5m54A({f!`Zo7G^Ud7fmk~?4KdDp9~ z@?}Ebiyo7QFZnWIlP^QjPhb^aCN%0y(&HQXGKE}x-K?(&dzd$q85IKye2=N;Pvo{D zGjvbQ7Fn8fD(e}Yk0&f>)H5=TeHowG*=8@-HVY-d9|>vn6x$5*(oOzMDJO5GvzTc) zkG`qgM5G!6AhkLEwQ{5K@*d_HqiSBh@HwLDSeWWhPx6svpGM7>V@nW;pfL`hu48^? zr*B@az5xTtdrWS=96M_TjW(Lv0a&)tj%ikRulDL~>erO>^VwWOKePFgor4?10#bSN zZIBx5bVm8Di=X*ApD1xoTByFiY^UiQy&thgo#R(Ov(q^*ROc|h0GP&{7>LRfbPijg zb4q!7t#ep8x4x;)@dCf1bE4Y3{{}iI$<z}(F`N5F;b6>?L`*K4`4%Q^Nsxk-NZ(x2;NV@Vy! zEW?7jc(SyrIe2}HTI#-*CQZt5WIX@=fYKBDcoz$Max9F=li*RYu*sU-J5jybb@AcG z+`^?Si(GG1DFSJV?H)u@B4a<)4|o{Fp;2%!kkSG0HSfRk53{ zu1>`TOYmLKE=ciR`Qp+i)QtHW*H_PS08))L1!xZ$=j$GKi3>eX~~H$R>SPB|cZOL}tFa$F%pbPG(ddJ@N_Bajvq=&?J84dtO-ZC5p16a{3+% zce3-B%gzRQl2x)3EPUJ@r(!qTk)5DXc67Y9C_6#5cWN`)QL*BZ?D*wa@)2OW#<2H2nPnGcF|yMGnZ+nn4NG{upg41d_=vZ%w-_!Yci03j2Yiq>P*qi46 zwepbGz4#GYP^bgEB%kPf%|C~+>!s-bq+iuNADH*7^X~*i#mv8(a)9Skae#Y>ce%qS z<_?+49R`of9Zs5ahl`klHGzF0s>ZfdU$6LD?YA!1*QYx_gZRr~fv@gCksyDkxQ_L~ z+3`h)vwoyB;Vfs=!?A;WuCz*4@7v3< z-Q0n^svg+X6KS4gX5vVl&hhusT3?B?Cd2ez3pz*7MvWNr3N`cv-QyoGq9tRx|8b{# z{xaR;Z{l05(mfuNLEU_=N9!Ketb4LL-Ur5n8*~rBd#>o7$f#{3(T2LmPwG-q9BI@& zNqv@wv16kq*wj5NnYUtxO}Z!2eU3KW>7JLbd#Ln%70=m*?y*w=5A$4=%9d9qpec&fJ1>&l((dFi@G zGQ#R+cRgD7gw47qtLJ@ST)08^sJL%g_n324v+LE&r6|kAtRxp{U4129rsk%SJYH6n zpD>v}dX(Y??LpPi2mF^r$f3DXjG^q{4P3py2UFQ9QZpGhW zY_}o@dS)sKi?g~)=O0k`VC#6NKc1{VK=(gJf3P+BBf?rQDm`HEa^4WK084C`|mO`q)<$7EtNd6EU)(6+-Sn<=;w3fJdf)n3LzO)&9Q?^lG^ zJ}~Z4&!oFQP%-U;InB=1^}xQ|)inO~`SA_vfiYqk5L~lN)7cLhZ}}wh^h~Oa<_qb4 zz6Ouzn6KvjbRHw^Ms~7`_OzEBGxuGoJ#HKFzOnNyIY!J_mHwW(ekl0nQk*x!dkei} z-+R&nl0T2$b!E^c=^;$7qhq|31zxcaB)Nw26NuV{MRzf(my!PlYZRm-@Vk^GJy7Yp zRg7bL55UKZbp~1MkKpVkj>Jvi~Y5^{P;;9RX&evH=pi#&!M=sz1Pam=h12TPHZQZ%n9-fai;7VQ8s&PH;e9t^q!;M2vCP$jCL-&8O}$( z$8^8lhBF(~{%g&1g`HL<%rESI%P`+wJA+Q!@rEAC=Gp0EW{vLZ`E$A56s0pxeNPtl zzLk6qFX^eu>0fFms`VLL`NMo%&^P;TgszyHY9ad3ZV^Y)~VY;7+)anmv zC3CkT#&-KdU$}i0V$YQQ;C{n`eWhz|Yy6L_$I$RUvU=OqyWVPK1U_4m5wb~tp(!Kj z%(xlx!>CkCQn0ab=M?q@O3%)6=B5t5_C8b>#1K$;;Ly6!UfAgL??ex`Z|965Tgg&?T%g>unQVqUX?=x+L19 zXRwCk`!`OI0O&+8b5UB`lF6tk`YRC3;8IZfEFA*CmqLy2jxNx}@G`&*#A9 zy2RdWpIb$j;u%t!Y$Q$n0X8@xuz-aWq;hL^9UWX;SvBWv@+Ccm(mO~Xg0&%og+CSp- zis<^+^8GDwuc5Tdb8)S6(J|^(glHW|Rkv3@ANe`u!yPX_g_px*KH;Cy=jV4L+U-W5 zfT`Wxm)Br9oAYe-yS@iQ_=XCF<@9;O zwB`%KXShVu+;wZx1@qtL{gh`?!!C_OL930Cm@$f zH?5P)|Ht0dwI&Wk(P#53is{3amQZ0xV?@|BLHD5vI5K@GEQ4b-GLo#Awk-boy)$tp zlNc-AF7(B>K;k$b_sltWKJHCGfy{WBTSVEK&g(|pTI^jDi)NgKb6iwuwU5Q+J;KMd zh7T2=y4DtOz%pw;m-!G4%)=Ye8$G~cru$8uJ#T)8Xz#L@{zb7E(r$b%7K5oz+G8;Q zcPigoaE+Po&4jBsnI0hhua+tYbfWZBbNlLTK7N zU-7Kco)ssACcj8d=r!u8+IO+#&)ae;Z8`pjb0Io5^?T<+a!~cTxX=44;kQ<9+8`$)lvA}aD(&_E2jJS!66_Og_g5cB?q52FH6{q7I+%dQxg`_>Lx z825;z=3*gr6gL>_P}=rY9^He#qV$o*lIDuAoh!_ERwBl{Lz!5sA~5gkwW?C5mGyND zuBxvPzA`YZ^=CI%xJaU=%fU+Xa`O z#ASfHAjr^%af!MCS6cA@;gUFQ@vq_$O`GwrPT^9-zJhObK2hy&B>kG^YQv(j-gS

    fK-2*IUX1_H#OnrA*Px!L6 zu{cgo`z`F?x8yz;pq~(c3IV^R@FsS_Xv`KK#e60A^@xkW3F-vw>2U+Kn|N_S8D-vL z0_dh*5qpf$Vu2@x?NJsp56ZshSpW9Uc$WPs)>{W$=FgadCX;oJ>}$%RaS?1HF;=nt z6JK{C8sLDT_BJ5k6p{}(vA(mz8O_v5((;U^h!1J2dZu_K_e(fIZh$+%hCMz_aP_|J zdB8jivwOK74gbWkd#9f*cknx7c+cm%zOb_$P^Q%{>l{UNykSKI6P#|B=sP)gAJ17R z!B8N{iSQ%+73X`r9nG&`RF}W-^!4U#gu$tze71ZZ0-DRcEt30r0;A@_11Gn>IVK#h z{4K}(_2_E8#mnplzfND?@Ot)OJ+Fr^57xl4{sI61|Nr80P~ZXp009600|0v%*>qBt F0ssgfzw!V8 literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_m_srm/fileinfo.srm b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_m_srm/fileinfo.srm new file mode 100644 index 0000000000000000000000000000000000000000..0c85cba903e1e97281b99abf13ab5d6a12110613 GIT binary patch literal 425 zcmV;a0apGWiwFP!000001I*RSQtTiQ2H?FnQTJBqWcR8Ka0hJh1e4)`WQir##p#$Si!sA0mr@}ZY7aXz_pRC_nNQD zYAIf}YmNsWYKg$DsrkOs97&gHEOzX2tizTUvSF+=DAKHD)$Z+Cb;fF84H7G^s^Wb% z$OxXkO@mkQ5E6|ocRz>ufTEM>5}wXvyx#+q>fU!DeyqiDcNga*!yfwrr)*Douz=h-mp7QZ2 z&` z>$72k34kT;y9u-TioyMVV}2`&#Q0XJ-FS3Q!tH67%UjiZq*6X-|&mYhHGjr$OnS1BXojWt<+{+Vx`^NtYx$iq07lg#Uu*pg} z1~QJv2Fr4iBeQRwmeRXuBa}JJzylqlsVNhWqeIUMX6jtI$T?s$D_GPgg@TtXN~LQk zo1ZXpGfrI%#!j{N2W)!b+0)^`L(#s#FRm1@eKBQ@PIE_#>QHt|r;&T~tD(~7-r}r| zZ%;nTx7iRhzbN@Vxch05=ziPRl@+kBqSn5$h4)P_4rYmwi?ncJK3skqjEdZ*51zTH z+QZ)3R&0M9-TFFaDG&S#nya<&E@j~#*`r;F8^q*c>JlbJ?5)&n;`4+bQSxy@{N zLMRb`^E0)?+c}&3+ZOMRJSg8~(_L|d-^#M3iC6jIQpGE1UWQBJC(uuJ5Pgt@l+&=hkK)+HHYkMm$}bZ3gSJA%4LOQ!CY>%K{v3AVnvz$W}2piG-0UR~%d zmD&b5Dsd-63)wV@*isx4yGLNw6%%}Py>BTOBD!0K;xDom?-BP^;98825#vf`Db;$j z!}C!oH%!lCc+)vwPv8=+hbbp2aOv(u02ajiFp~TJv)8^O4uRAABw3%$1tbF|ys-RxhS!!L)umtLY$|B8= zzMwR{3bYBf@^@Gza@_f1yr=tc7#-9)3kIoZg&ZvH1iWO~;o9rxuOAfla2blQ8A?8Q@W%c z;+~(AeV}q>ygoc~#DfJ%+LG!k=$(@Hb$DKwxFueQ@S=;fipf~f>9OgnmCT_RbFV-; z5QO`>chOB{Zsw|1e(wUl%I5Lz-Rd){d(#A zP{8Pxk?6lZnTOX{HG!i8&WqFf=|qh4L^MANc)a3SsC3~E>BWRu^!JbQh<*C-sc`qL zfaLbjo2sod?kKF7Zei-mkS=cxNG(Q;5f$R?tgbBTo$0%+(nYL5YoAqfo|vk^)n8L_%jp46c9SsOH6p1CDzvLYA;fa2Tva;XNgodt(}0O zz9v_?Nnzsl>}<)oVVbnj7%#R@e-CL1dLsBiDIQpJHoLF0S#D-0M;O~9K&0bg)MxjS z^J(ui!kRAP)BVKMmG9GK)3R@XDKZKE)TJshX-aOE(e~MF%!eqyqS0o1D_)3;7af7t ztWg`ed>fo{A*)gW`~oDnH{$$ulyRtoDh;5zO^qjQP)$^9CJIMGDr|8zfwzW}P(>EiD40`Jz&mxiH^&kaS{Z1Hq17JiW_c zt;vXZiAoAsVI5djp4m5qXRIfc=7gV9 zRUPPNvnaY{OIThJCunaxxecGvUdRUbDDr@Bl?UJWxyi7w4ZcYT4iGp}Jcf$eG7g|4 z#vWRF>*KFF#UghM7}xr>_3~WaxT!U{nYwTcyOCqB?ioT?X2%aM3(T=S0n*;K0kQT#J0y_5R5*d0hX@hfZywrqEEoY9P}$S8F;~-;uyCE zHt9mg6(!bHRV+gPDB=RcOA70%oU~6kyYXGF#N;H^5GRvSzTtSa%w!4upI>)_vm?JI z3l2LnhXA8ZDI@w_87eRdTo${k3|Mcg+w0W+cl@5qR2FlwGBHD4Oh>l9&35)T4+M?D zQWYDeMJ`NNd+epFiHbJZ#(ix4-&5qZT}Jm!1j^#U*n^^7DoS#UvV6NB>=y&*tDCx3 zo{whMMoRkeBmb$ZDSFdGyFN|pFYaF7nHw{_6;6ZDS4r!NmG&Ncg27#yLGf!#P~T*? z7nS@v@ZSn80&yNcxocc=o%OqrOS8&J;~_6sDrXLsu$Lj>vt-Iz4^VfwB`*#B-C8Ty z5ki5Mr^aSToLS_hIm&+)m`HfGYbh96-k%`*5PXZGvHL5Ste9+-=7M5%FXqTAM&XWe zo+X5%81+Jb)Bl?n%NpwcJi>LMvoB<^RJtEZ`TPRQ;R1nwVdhV6)N{#0?N}o$0I!c2 z*80swLwu0RWtf5kQwSaqX%|cY+k58`7Nug{3v5<&7Q6+5%Z*wuho*1#rJM$Taw;22|U?W1+4LfgOsCK)8)N zY52cYbzzYGH6PFO$~k`b``J=lbMf>1iMV{(?)&tR#yQH*S5uWWQ*GoFAy-e_5`Zo9 zd;V%Cpq9&l*e`vn9{v;b4-+;{{FAVc50dQ{^LoT#mZ-%Z571)rxCFkgpx-Vc#6g|{ z@}r)DNR_zurSD5mlRvDi%z^EkY6>;-y@LXv8OvMXTBXLb1P` zf-A(bTaPZR%j@UL6v$Tw)(n{tvpc28L|?@qnBOw*)8`GeEGX=$A8dX9vh1}SGcMKR z!`re4KU&S6wpwf$gUhKbph!JySkkTbsj?&MbZo%@s>@xEel=2cS&MWJ6yBVH590w1 zag_SdE9Q0#KiymemKL{4e+B*sHWIYK9Xa1dQ?{&Gx5!wpKP3HViMN$mb}6=I+}Nd? zSG#kI1Qyrt_$ z5^04>I^|>W-ftP7=*F=2*0I+&lBjmW+nqu@pI6v$chT-D1wKGLZq$2JK)JVgpBdma z@zSDk<^L18R~Adk+r0WVbr1Dv1XrLz*J4lKNhP>9M=pPrh}mCmP!$5uH!5dg^NvJN z#jtT4=QZ(Q`ni^$(Yn4Bn>c%sG6B@()M2C6Pp ze~y&{OfRul@6hd#cqi7sxU9cnF)G=YHVO0+k5mv}6c%jF3V)nQ+kCM(p(wuAI2L$e zu~_u*Oj_g}&W;uMR_Nj_O*P=6=P^(0D*nr5A^&<5SS!E^&ay)p-I*FzegKjDe3eHS z_~TRJtuqKbfJkIq-8DS6*#Lhp-nvVze*O(8T(dWidQ1U7(=kpLsrr#s zB<}5=NUO)5UEht+_m?^?jd8&OTHJyt`gm+_?{Ts-1drFfwt80Ov=Mqs35dQ>hvk2p z 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�}CEW|2&dbg2Ed&YR!gg%(CWQ zR7lHdxjdZx%-sBW{-d9U;cXZU)BVFO7AzjQ54~_kEPw z918zY=sTFLj4G`ZZtS%Gk9XWp_vHUT%#LxYQ5vkqEW^mE!bnA{*7`?Vx{+a~QQxS^ zC8y0vYJ=UQT01La6REn|wAT8M=KU{?`*VNRCk0y-V0Pc6&NY6YYZR(=NjW$%GqZ|s zW@m0@f79Guf8-mIROyma8TfnF=;=;yd;LK9LDJ;((xWCCVB2`nZriW`Z@r1G=LmHt zKP#o2^;3IZ59%j{z5FR@-Zwg9pR?GWjWeOecVg5la$Y|dhO6alp_iB*c*6=Eqo5T7 z_IRaaUAFqJ@glqbK=lR&F?kAE34Em+>^PdCZw(Zv##Y}qS`-)s`SJfln$RC%-em32 zJ`Rk;A5%&#`vKe^4d;JD@rA2jzw!*6ph*9wAaKLkg5T%nm#C217p0>Aq&Qq3wjt$D z4Xh`Bl{~{YG43rzI9gPkkL5bTo+ARpBSHYgcNDE6znzM;Ej&p^qK6)ql8OdV@P}a;+W0yz{EF zjMlOwI{v4v|1BLSP+jdzP+;9NVHd7n7Hfv6)7aPI)zgR@SygLfN=k^O`t}g3GWgHw zApau%{p$I_&b6~HJDUNIJA_}ng)KpC;e!8QqI>i03DYjiow0a5>)P??5Tixt_uTbf zM6RvggXb~zqSKsl&tu%2>0afYtS9I=Iei>{Hm;0ZSwA4`fiI$4^vmF{!W=af3&Z{m zvgL#-@%4Y+yp-r2e-Y2V`J-5MBiuSaWvBKf6`$L-z#pQsdSH}C;x5vt$LK`GfW5yMEPs!LEg#|(505>sQoO!(7L#8^~kj?a8E{!1E7eVnKgYCYnxb@`IO9z*60cI$97KZk!8%8DLGCdSy zR^Sci!TE>QQID5?aJrDgRiuq!D;DXiy+_g}oDEDPlMKdxa_VlueL|2M(q1GFK)xWbzcggGvwZC7@yQ3W)E5IaD6wY8f-h2#u~Xtl zwP&9W)+Kf*=uOHw&DnfyTb2#QM?Rw{W0#7cn8%e)-(&4t#pcu71h-`|30vR?hbwv?ZiAm%+Qd1%JtZ#|m8JHh1&HkJ*$9z7a1Tr)nN0-f3idipOgV|y7s~R=Sp=mg9nj+ zniz2OB*#n9`Q0<%%-JgSv-LYsU55Ry%-4AtatBg)C8_x3+z-oj|uTvCV@+t?fIvlj4%2@8X0ZR*1hX$R_36`@%K9XYCJwD ze?m2F0i=En?is!NzuDi-)vikUD3Wc=(D^nBwx1iq zK|BKs=SO1I1IkE!D)s!W67Y@_1>T6HjRT%6mr*}v(A3{;A)$AD2>-! zw%P8Qlz%$ZxO~^{J#*r7RA(u32W-%z(iP98%gbqT_t^TChK~PfJ+zD`9WOHNe}6Q? zfK(rK>}D&y;HX}q*_^>j3LYc#wuJur_4jD`4a_iD(Ls3gm=&l2Jt}XSxe1;i5jNTG z?m`TXiyB7OI}GvK#hRRa>9gF-gbQ{=A$tE_Rs>&*^0-sFXuG}4k`z35+Ab5jNU!o zqr)ONXr2JJT??j1;t;MH2K3lXMwEE;I4MffUNWMjH?l1UrYv9B@w#!uY@v)=2A}M~ zw(^jnDSgs#d+Dfe1bh#>kbWZkhlUMuvQDy?Qkf%_@Uscx;xGOVNPYx+2jogtxw&)^ z56+MWX9Qal6;ywAW%*_(p`AO=MdWLqG>pK!@^Rk6RS5 zv%#_1{WMnX)`f34AS&!dv3}N;&Vl|AhJ6R2TCgA)*R&u{UTSdQAI&#N`qJ9;%t86< z&TqT>)W(-%CSRVwEQcq8P9A=2N}$OU{9RLoztcGI%=+u^4LBW9CWh%v<3F4f+0VCM zDI^vG+*Rv*Ov7*08qD9zWCfP&QegeU3GKIF01EBQmI%Ub1R=L4Ar95(U0UAG!TIl^ z{!2MmNkQl23)Y)iv;wwLj{B`&SC~ewjTaN2+GqCsrHiGZza=A9D8kQzad2-KOqdwT zwk+0F5TKwP_~5-3OSF$~1aC@qz3mv8R|_stW-G40Jx*e440%x6)0s6lmuc)B!CzbY zMC#|m;Ubw9R8r&XXCgDVV92dWw|bZot8*|Njo+B?FNrca6RrfM3J6)j?$z*74yP#$ z3y#x_a&J@!jnWKMg$a3vz6D~!It~j%3B+Ws1>F-L_cABU)r;Vgi91u+Dh&8jK5S2i z8ha6jm-VnNX`*N4*h718L;3^>=0Pz9l6Lt`*X_T zDVWaXMx#r!lUWqGpTEYtww(Q7n;JwoBgPXaTVgkByLK77-ZMIJ3(UI>w8yyD_=njN z)GG8{+bc3pqHV!;HaLLaSShQVA0qM6*e{&JBOvuStpH(Skyj@>MyZbAwj&G62%@5! zJaS<7>zSO-ZL=C;?>g^uVc%*pHER}eGo|@jZvMPAGgQh{CZBO=EM?W1GEu^WvODUgd~SoXcH2$mUzS`QyKD>omDlByP_ z0J!tyBk^`7WS#fQ?Mc58MXS|<&`e;Fpx#^7V;z;oU|qNql8#%jqpd zn&E!zU%)UXmAg2Ee&6803jaQ+WhQj6P^Mmb3NUcGR(<;8FLDC@ASC`&v6a3t#IvUF z@nq*ymVKYA#RVi_4w<>c5)@=5eiqZb>#pC1irY7d5;ISU2vcZ>>$ky$_t~zE9e+cZ z+HDFxLsFMmT#kf9&N_xpcMbR9?}#sD8y0etj?e?#LCwLxx;aZ-wTSt)8N2!cB`Zmr zmXsN|yhc+|Ep>&o57u=$5>Xcqqi@{M;myqR_mly^fWqEnd3%%NeLmY~Y`el+C%W6N zfPH@(&6X^-9Z>OI{y}-pKgccpwDZ9vx!2F=jtn@rgu72M(+pJEfqPw6+VX*aQSXnoq*RvjCnphai#EsF{?xH_nrJSkFaZBj0*@ap z?{X4Ov!PjLR1%}(!?nG#TgMJ!%FeM4?SoyEmcp5`8lJQ#X*~&-QdBcmBLu}oo2$Hr zVS#1xAG#8|p%wVWGU8Ifgrj&V_txl@g5cIw+(!4^_xA{O_@0Y06k?%h!Uzo{GzBky zDilW)jP<-g+^ran5S0=19lUc|s{kP99q4D;k3!*Xu>v2`&OJc3+-I%3R%99qI}<&# zS@6Z-ypwOm7Po6Um=uEmTlCC8YU41)KHON&b*92rQ2~eHpDo&vqHe1#h7UoK9rsZB zn17oDwhsWS_@=*$3eCJO2SsZT18+|4Ym({3K9r%a@9d)!eAj;2DmE>DPzw;3<`9_E zwRfs3$$eox+MqOIu}0XpILfrup-6HXCL1Xa67L%&=CJnrOMPrU5t=A^75o^cS)TJ; zHcdxazthqQ*s2Wh$y15vq@w1LPfR8;28ZXUL@iTwgV#4)POQKVBG#H%3!O8 zImBhcNR;Tc+cMr6b#Cp!v;>v@V+*SLprSuy!vV71 zl|QG)g9=pQI~mZ~dBO>1YVKl!pIqb}10@}WL1PigmSXgm{IcMyLcI_@s(t||$SSh7TL z6X)|?EKc1JpX(_GE$`N#+nI>fN)4$)ZV1Qah!6D?GnTWpKKt+W(o-;-g?TRjH|)Z4 zc2m-2Sd{;XndvPh5PnhxxacU1y%imgf@wxxOwr z#G(j`=$^B@d-fk2A2-otMD?<;hJKz`OMDmq785%NX(7@u66eEXz;FM?e62sYKO^7c z=_()QFeQ2Y89t;iJH~XC&-?l>!7lxhPZYNn>iq;GaOZ4TK6s<_EFu^g3yP-z7#_)Yqp+k?JIwBPl@JiDP5TxWfsD7nn0B_k(KsAjq$?Ii4F55{^WBM*AjY*>!S z7&6eEj?K&`3Ez|5^CvZB1CVFuep*n3NE{%#eOZ(D z1oyW<Sn3zDMTS z%jz(U8ymh?v_)t_*5uE5#nB)#ZZn*Z}|Hg)sT zd`II#s(QB)ncYF5vHf>r)tfT9v6W}aPO+I4SLUw(q-X_$Q1L@~<;D+4s=XHL4LG-5 zXUc*Ti?h6!_zN>Cw7kU{Exzjm%T>%B>lrffb2%ihiC>#cjx|(?DxM!Xw2pTBFEC2I zkW$#=Sw&Uk!mQY7+=2?p?J2V3D|_DE+AbSYK%@DI;26B7Z5&JfM&$Dk6m#Gvk3V=2 zdcS-0z~iL4t%cNI9m@ZfEu=pai=`9Y8Adl6?=p4lKJfj1>ia$H4OFN@cRrwEl8ENE zWM@lq42Y>Zb@O!YoV|%=vlG)iUS-Yoau&9~G?j(xw2yo5Rqt}Q4omW)R|UZZ>#AB# z7*D|bOS~hsIPYd55SRZ$A_l|r5_4zK9O&sd@MTu#gF@%fu-{$ zI9YC;*U2-5e(erE*m%I9$IGkX>#HJvHa|{HVN9^2vVjxEnMDt8ex+VF_Cv9|Ty^HaU_Y-$6F{O)7PVck6nr;8(1TLQUT3fB9Gu27f1 z;pX7km+(3quU0T+nfOUw|LShR*}f$T$NT^aUrLaN$q!=MJ3GkmjJjw#JbmA2P@0lG zxMU5P!$As(!F#=MNhpF9?M>*vYbVg?2J*0eCYq8$+KgrX>?;LT4*n2BW*LCU8i?r;Ib zSP`OeZ`Sx=w%U@*7+Il@P=W;1vB>{+DDrL6KQX=4rH{b~@4|${3N4(}Rw6ObJ^8~q z{Prr@fs7M)*V9M|o(&J*_jK!b>hIoq$zw5|<0rYLRFwT&=I+8Bl-tdo70wZ#cwFoS zE21fwGgxNhgX^D2lm->mS)TgYK+tlNmFHpKdiCEvIXW&C=lhUmM-Zbbm|kRPT5QNb zl<3O2FN0?Nx@Xa{M|IH}=k=uo}-i;jTrM!-+x(o*4WB&ppOlWs}2QC;c_6MXVX3nmw#0cIS9 zjb|Cs@nH`W1a8e&MW9Am?*arQQTs~!*@vkrlJp{#D<6+@1e|3pX1SSLWAaZM%dGBu zn9Xpvmnc7VrcY|c;GfE=22JJq_Y|*ewIZJEf98;??3*JE#J3z_Qcf+iJoKl)Zn{0z zQ}sSeC#n7?eGldL-AKbON+P30noA}L;5q6glYM6t^AVV7BgAT^{%k)s_0-TudXm^e zlx$K>hBof1TBKjjXA!=NJvb#=XlGnW<&!#kDPeS&n;Lr?p0>%E7`TO5s;g;eh~xCf zMy+&(r~<6oIAh@HT;J)L2b#7%JZlBE6DbSfZHSC_xeAIn_xNXJ1JLR5@!nMJgC7wn za(Fh(&k}#ZU9zr`509~d|E&BQxVISUdFdOiHT2TCe2BSAMlfz$+E_cj*Q-T~*Cxvx z<&)Oe4RU&YNFR@lawPsXBpexfqmRp8`AB>f-y5cQ+RazBNEqtCAM6k3B@bDh5(dBh zc7X78eAu#XM4pa74uj(f1c`V>tNiEwJS47Yr&9Ze`0I?zT=i$w&L%Eo51u?QAU;cl8IVCk%`uGcu2sts42SsTnlVPlcV zmi+2WI1>{i6eBe0b@9-$ z^`iZ4Ds;fwuRR%S?kaR9CV%D}IxnDW_354_QpV z#`-uJU7z~YXRiUxl(@5_nxswCtI+IM3GUhjCPU#SzE_ue#n0M{^y`s!xG z96tG*ygf;_5iq>#M&3{^-+4*ZJI@hN2M@T!fo>CX^n7rzFwxowrY67eh#ZShP8^Q}e)qvdIfP_R2jv{+yIOczw>uhR*5`hm$CuI?R zS)oqm0UqOwq55AUP=vugmNr82RFeFzko<2f*Vqax0=Yp zJ~52FSytV@bVb$T92&F4LB&rEhnm{Zv7G(zFPQhPwifaRgT`@3B_iUuC(J!9jDQQ| zj}_}y_7353;dcj%Rvv~&`U-cQ5dwB$HfXM7puaS=fTFx^$w#zQusmn8QY z^Q?>}YvaVN&zus4virt^oO9E!R$7p)-#HGXGp*-GWlJ9;$G3wmt_ta&wY`N3XHty3au0|pI z^AD{GjqKasv^AawlH&uf(RfhF|UleY!Il^)qXGndL`mxTtSuNt;Z9g+f5_)u>!)Iot- z@R6X9a21}SAawwcZ^qhYtm}%Z*LVW*p+S68Gb|mBptSaI>2(KQ@pnxBXCW}s`I*w= zBR0;I(~Att<>VuCc@`#61J9P92zIg@%Mdo^?}YN^DA{T=8{r^PxfBOqt>oLE8(5!iPbw`#9yD;E&8|P$jgV?#tE)d(kNuDflZ!;-O z_yfm14HwWalsh?_G>(v|p8etK#=&_FR`g;5Eu?(E;o^BR(UJOlO z?$e03o|ol>@lTUC+f+tN>&8m= zQ#29DxYrFwRS7pq-*g(@E1BZ}?fA7LIj}u^(9$SG81GxVzGJ-pspnZ{Dt}*WW%qErKftQcrplz?yNpVWtq`XMT>ORLMKA2_>;V<-~s5{KT@qcuO# zq(7%5OWdDepkUu;Pi%itdg;a9@rJ$QzdnbaVuOZh(-Cb~UA~L7)IHl*xjWx{ORjfr z1ToFdEMRTEVMWmt1^=+lw*isnIsas3mj0#u!$y3&tjY`*JIn&A@eqd9uZ!p6xMJ00!%@_#R8N_n@h*$|CPa zCd!kyDi)l$@2J1JyCtyvUuY*tCa3^XhIilclR_JOZP&ubH z$#6f>n&!#P<}UpGg{J#a!(HQ6%;TT>@&|Hyji`~rh#i7@>ViG#rFD+}^JxDBo7WaP zYF%y*+Y%YQU9}6J-bZ}UN&YMI_ygjFD~F1Kp=&&5`<=z?14Q(KK2oNtmG+ZJ$CDom z^E!X*5r?tS-iR+9%C5W`CL{FeTq!nDmaAq@Bf}PEtNuKr9)6(K1%3>>r*78CO=7d5&h^e_4h+E$Q{-vD%z}ers4M+K?NYTv5%;z zK2^;ij%JV8EH{yCW^GjRdWU5)X*l0mlNL2+8^Nvx_0Bv)B=6NH?+w{EQ3J7OiY1EU z#|l{>Fg)=&reDA#@i4xN^cqNAY7=&3Od;y(eh+@vk0I~niZ>GDoiqD>jxmZmmcsNW z*S`n77~Y!-6joE`BP4t`Bb0_&FF4XMH^WsVpBUypRy6EqdHAiG!oKuL{fTnUnt!4L_V`VAr+bniTu~%D&O4+X3+?Z0H7rl>EI@&0FDBU(4vuaCnAX z*HvtPT{TOv?j7*EN#xR_t#00xC_O1PdThkB@V;8}QuIxXg@J5iU!C%8900+gh55yw z*_MR~81tTO?5l#!Tbnj;45_xc|N562xRU)dK9o8zF@U_ee#Rks!0<0^pX%FMj(e}H z7`Jju#LV(69S6HBI-a<^Lh1P2TaXSGVwLNlHaLv=x@GG!f8i8U2)aKUtacfTejmg2 zWfU3Ls2yUy_6#mO*R-x6Yz+$B4;ltHxS%2_<-TOyC=lws+SSTyIwJ4p=C$8g(2x>{#Cly#ecZSARTu&AJgd4ZEX-*tT z^PG-(m~D`3FA!8|RHKgz#I{`>fsbgDgSr(T%X3)*o!s5w$_hH7*r|C91Rb%tY=ZAe z*g(;UKx+a+?7qT3(+ zld`sM6Es43ae{xb=jTYdnX;IK(^3-68jFJ^pI98lZ|2SUMZg93M#LNIId0?Qv8f;P zu4xsdBOhHIh!+s|S$KDVSXfQ#qyDpa!EK!QLm#LV-jvxG79n2YsyOu1@~;Dh>yIR} zI>!0kTXPCtuQwEm(`x<30t*_=1*+yHjh^StDcs3*@%t~n!bZryCSuE+i(>pGm%DzP zk}w8%nOA+rECi;A^I(|N<~;GJShuJ;V}1%AR?d8OwxlZL;0Ul$fp@Ty+OLmR5?wK z2fjmZr`V#b+1>=bv!*(EdJJQ~uzAyyIwu{c?C4)SK`2-0y?!_SsQ(>{94>1HOne#J z?-xz&%z)|Cq~PX6{7S#S|6SZ`Z#eKvV|z(R%>E$gTfh_6aGJd;*<2g?X3EM|0l63 zPSySLckIpLKTnhgXUgp}<@%ZO)tU13$@2Jb^2?uIJe$3auI=%s%V~ObySSwj`ttBR znT;3Z)88ci#rtzKd!2o{9@|%!>6G5yE*>T?bo@M<{Jr=@JoA_M_0QR8JiGps+Lu?i z(_8wom^{D$j6Y2lfBym&|0x=R^EB8^G~|6$!yi9Tq%Sz#c6+L=e!8ui_eI}>;dG0M}uQmrbj_OzlIP69o+a?_9 z{;eBun2W#T1{|hGeu?>>t=D@Q_om(6X!_#C@nswbF*}FDdyQUZv`f=2?Bse^+y{a- z*=#)hG@;$+QMv$$#G7k=s`*$hek%8b<4@Ds=qjCh+s@+p>N*_R&3_p^SiQgJTJ57Mf!E#wLLxmJ+vI&3%%{WKBtq1D^Tr&pUtvEQiY z6X5OSVLVoi0WSmCvtPYm$r^v8u&=N2j^S^fH}TR>rO&Kur_5*e$B3G9I{r*XsaN>k z28&V_X4BCa#vh$~z0udv&GcK`^$J_zHXXmrnVc829%Vi4GFdkZe_|)i&*GRYJ^+=| z>(N8+=;Ir8Z_>$h{L1dJ0-2@LF7rQnlUH_THt{agsOaNM_jNh~o}>?UcLCk)q$36! zc{YQFlOD_h1uezA9>30K*&N2U)Ab%;9?|*Y>ufw5bsxNkbTa8Jyvg_>?T)U%NJ5@_ zlZS^C^vQ2mH2wU|dzjN{ub2KtuO2>o(1n!J^taTz`us5cHt+pLQ~Ei*;{L_ScroX= zzRl+JdGSI&gALZ5dsnE8UOv;sqB|aWBP4Rvd${^G?Tx>B-+J>YrPl!<>U#6>x9N3{ z1~4(Y-5&ME`ufcqIjEeO1=C>mhW)Bn@_VtzmRv4o$2q0e3g-@Xk2>JDkH~$U9 z`8SI7r}W#E*ZVq7)8l)m_mz#^^TX`rD_zV-v)Pyw@|8Y7KYNo&XY9Roh8p_@Qk!}kVjm*AcC*lzv+L=|Hgdtr<|fQK7t{5m@= z8afHPYyGAeXC(D1{Op1K%yhgohOtN3IrY_zH=iwz-v=Jv(R(xQrX!GX%6QJdVZQ@< zO}o9cxAM>tjmn9RdHs2 zHBPVR^yN3Zc>fJ_(42mo9&xg@O_C*$Exr~$bm!gC{3=Vku!hV!4>&eoXY<(zr1W6| z(|H0tfayOPrB_`r0IwcKg)H>Mx!l9K%;tY8&wnNtgU|J|m}#&3f1u|jy@KbgqWtmq zRCuS~=CEyeS&Tm~Mq&4hSC`cU2w`9+w6DyCMe+jwl0PdSAni>6Nw& zhJ9+`@V{g`- z1D@0yfn^Hg2btIr|Mv)R_t9J=*Zy-my$^)LAO`4HB+zijA2uQUgrX~B+p&2fl)uAz5h(F<}jyKHZ8(~B{>~|>CnCE0Zm{k zqHX)^rPCH|QC_dc&vQCh);}%@x@FW7HUfamg2;HN73v#V6(dD}83R3?1DrI^$2}Sa*Lr zj^p2S5jN~iYIRFG;rqjHAowu8iyr+u4*S2Hzz^G?Baf~akKh$%&NuiMb{lzgh5bXt z1OL8tKnx2Wr3+YVkxUlh%3ngwqT9x&DuLW?= zwFPA=%KZf7Vp7-+4Sb&Txc!h$ysO^iybNA-a+nnvWPNNYgA9)>gA=5M*)kWOm2yAf z`x(v);Bh(EPsxI!t_Y))k^bLci~rKp-?Z!(>V}J7wTu4;00960N-Igt$+6~ga0LJW z0RR7#d~0v3O0wwZ_*Wp44@R?x4GJ>Ek)>rIm@FBH$=EAv?nEWPIdWa-WY5gr%ChOMSJ$hnpv@02{IQq~(!rp&(9*%~E)1QJU5M^};|5^G_x(`wZ#wt$ z@XGPo#32J!e=owN7mJSQS`%9dotWdf;gx9I-`Y2!Mle_4iud-d z5q7j2|LQ*UZ&@(6Ts!Q{`1NM(7`AK8?U@zc+;{wtT{$k>9|He&MLh3sG|ubF6EDG^ zZ{oYKOY;8fw)>~^=f?6~gZX>!Pgha?Wa6YBSbr)TKeme3p5@XGcqe=WwK$W{y+#kH=&l>gUB zx!kn&TkA4rvF9*r?G@`26=h>9uBce<1~IO*R8F~GSm?O!9y|~gr#t_m%PZGm`_0O? z#IRe+*XfqLHloNt5iK`0ay{8sb4R=b#qyQV|G(T`HaK^2%p4Tkk1g9Z3L7|c`_6;4 z>;7EN4c7{B4gZg1x(r261b1V(W5cukeF0Cp_H6gUwV0uWU2S6Z=YJ0pE1A*9adkgu6xr7XFq-n28+dP z!FkKKp5ewucSHtVi`W&y%tTCHk1a`>S*s|xr1=`DH z;g#apz&v;Fha0O~%oS_hccG2x#+Z(Ov4a>Z;0j*9_9v8BXg2)g#gP1tdN z41UZOv)%w@=xIta7zZxc%0m^x?}f7Dd}lMPu2!9$tR+JI1sRaS<3ZmN_t115P<~_ zQ>@_iCcWnNC!c3N^Bv3`ni96^!5D)JVjM6`E!{vt`#5Bu1f6*>K#puN7%PVF4_b}1tA7|shy3c8j5fy@a&hNB#%A3B=kVWh$d2Xx69}BzV zdkBD8>>Pv14&w;dAj=}fnPGz!D3%gJP`kc?;0ry>-J}=XGYti84mSb%io<=S$9=Ci zSdIs{Cfk8K{9|G`cEA?#@9qY~R{4tgE{JD8n2{gMG5MoUlBv33gQO$AKbS@ zXtPyyzGAcGY{_lb3qT3h9$Vu|LuHL>fwd>L<((iB+#@LOs~u>8Y5n$wcwem$hIwP;j&L zaNQxvF1j9c#IOFQ;L1EKSZXvDL}S5e7`S1hmN^aEu)d{%_CLwt<}?zbk!WHvuo*@L zDu#b{l&|=9SEQ_=6nV8j!2i+Td#9YfzGE@^BIWM87c`dX@^n04v8w7VQ3VO;n;&u3!*KPSIz_l{C<2mUp z=M3GO>Tbz(w;asuL5%weuLZGdI)87oza85!XI9|a7iSyxQcTS~z9-`r zVfd~%32m$Veq&p0`BcPx&Yg(9ePiV^_43@@!`z&R17=f>62ttnRTd_K!o-RkGWsIQ zAt!vjI4v5ujeu_lg?8vK2PQG>1)~Vgv4S>wlX}Qenx{99IztI!>qNiD&i)WaNd*rKQEJrSx5%RULF}pD? zTYa9L^nfz$v8DHzhNXfH-m9o+eE;%7(em#>@i52E?R_X}@=br&3HQ|AYNS(F@x<2~ znd)cn>R$9M3p`Zs+}HNl_{#koud@%ewFe{%W*+Pn7C7dI{*`!-WUV=t7NWn``k}nr z-*h}LTx+OVo9Yrx!P;E=&uPDcCjS?5!$RY=xrep65BC;s1&74PMX`PFG2 z9`tDXIEpebUp|f?!S;RS>BHn9>FAFTjbIv?tLz1~AJV%HC5~$TUcqpsdz~bCh;(?& zju~XxwgyMMACcsTB$&hOrMM?R<632$(@4!HfR7Ie9;Y5zMg=U4 z-70L<0xRev30}->c)Fj!W%z&(kc5#=Yfpw=pLFw)!UwJ!P-(+czn?x_cT9NFKB5nJ z1kh82O{%ck8CGk+YE4-A3@bNa8Mfbm?Kfd}XV_f> zcGraMondCb>;1(@#Nef)k0@rVW>$kw|THtmqaJ?3|UJKl; z1#Z>?w`_r1w!ozze}SuvrDxrLh0|K#XH3f)DA4I=Anqb0IFukZoTb+(zB|XDq6;?H2 zw1Vj~=F1vg4863>FY&CtWuJ60K(>hfgJkT11p&8Zg33VVS*Yl=MS8&J>Dr(C4 zk&R$G+8z%>^QEq@k5P8qZbvT%v&M4-D(dIs1Gk4`b8R1}ANbg2-m$LdkB{jV^Rm>? z+sAf_IUDnMmHq*w=v{y<=z`=uo^u6GNx~rl{e3Gm^;f}(zQ>6gy3?OQ)82(GCNJr+ zw)SUzs=aGX8918s_K41PkO;44C)xuKZ-TUicij_eIMMew(RVnyHhtD;JQC_Yq@%ZK z&syu6bjXmFDMf<(Sn*x$FXm4A%T~lkMLmi`s!`AN{zFjeG7}CfiZ^MfMrB?neXX(s z*#sg<9iHmivSu#i&P+JKN|2;SP#ZodRq)DwEKs17T>`0z6a9KT>ciEjy!TX*vzV*N zc$6N0jr7&9xQ|qgk7DjzW1V$X=srW0qaa&ZDt!!1p-vCK^k{fUdEf6dLrMMDYrXRT zQ`P(x>4$@;4a<8^SflcK>z6sjnMe+XR{^AUx!6>81nl*cdV!vD!h`C zSJLFwukz|wdF^Vvc4uC_IAOF!t6m<|Kq1>@CVX>D99$FjUr3m)~{4|YDDsls9S`B=R-#cfD)nAiFJr3a7uhKl)qRoGKa z!4#%yMtZ?M(dJ`XK1MJny-K1!fnt;Q)8hDyPrhEnfrOa=gw;r$M%i$BtmVD7Ir0-Ytc20(P_6}ad%zt9 zgDI`TOf_sHik@PHSp}vmxzOc7HCMRzfwySVNNP0tUuo>V(CD3Mysuz8)P*VyNf6Yi zz*(8owDMi6e3vWV7nScx<$J&KeOLM3t9+kTzAvl1yfl|{3g&94X=OgzKIxys=*XY_ zKE&KNpFZ_%MEj=JgQCydu0Eq7Jtro=(n`FQ2gyt$9-|1GqX;s1IYukot+b&B4_dv~ zgJ?@VpxgnC^h17mR6jF8mr?cJg3~!hk6D(%78}Pc^?TqY+PTJ-&^I9SUWR?5QS@*) z!F#Z!mk>{$mnB}$Kk}b9$E3hOR)^9o8MUC#Ut(Ppu6R+P`pPr6~EYG9qb*T^D+oVXlU!g5g z52P`AmaO^JUPj`5=I$$Pxuh*OXv;{u*QCARv=g}4ecO~szgZ6H?tJ#s$?s3|^25ss&<*&47NSi-vufkH#x%djZB-r9PZLJUF ze3u^V>b^}qCE*m$Yl~j@M2}*4*R(11lc}fGe2c?s2)nDpQcu|{<*dNU2s^98QeU}j zgIx@JT3Uyt-cs{=Uttr3mFuw7UoP5U`v{xVVX4RLx54fZwz0MzUt0@o4`CZ?oAI@^ zz|MxV=GvBgZL_biON4E#je5?-S6CVCHfyep`p$kEtcI{(>?Y&dT3}^_{bDy6<^AFh zGTLoci7S=*M{GB@!Tgh2C|LA)h*WWCZ?N+BMXWd;#FAI0s(jy2qv-JI zsl#O@f2!2}>Ypp&Q<7H7ke;!x=^1+wceQ!U$4Qa@Rq8QKb1OXy((rRtK7X(9HMb@_ zOM>)?efzQ!gDS@D$8_}ZA#6dyf(dhUO*hi$@gwgov9)=d~+&?V7xL zRbD;LYl=0#7!CO|)(0i85w|P&Oe5NFxvk4F4aa(oF*%~Wvp%-Kv1MZ{iD(~`Yh!&J z(;8#Di1xJlSTCZzD<8u?6KlHE13BTf*r$ngpf;4r->JWdwx6;*^mgP|Se|beSQGYY zxC!FU&bWQVU6#1J#i`~Z+#cfMW>UeOd9aYrxXa;!V*7+kd*6a`XnBp>NJTE%!xj`< z<@ExudzI@1uV?*E_6t)5A6;388BQ;%05R%EYIm92*GMbe=T{;uykwE>PS! zO#Zi=i*d4;OE8+lxSWeO+CB^n*jQ^(@nd;!Ad7Xd5&zdx%I~hFc=xUn7)p7aIQKz` zhwZB!B=-*TVB#Juf&;d<3@?P!vr{^A8!85j1GslC0RJ`IkYNXSF~`{1I2PiHv8C97 z%{Uz48S$MLOu}2Hf#vSO06(w-53ke4^?9DoRs?XHVhOc(1H-3t9HAE6!k$^+O?-p; z<=ZewEfmm)i6^2Aft}Ns?7;`maK!l>b(r&Mjs+S${&KPAy4YBb5vEAn#*ROjz=Z=F zBe23-U&G#5aRS%3CmvWFM)B8<4*{J9;4+_J=0AOYmV{*XowWkN-2X{9Bs0m2nC#XP zozON2W@6A`KjqeP#9KQsxI6}KT%M@R_&S2Lab3%oDypZjQzA+CRW$!W0 z-!TH$Q`Q#g3$5g=UB#pI5svN5(II@kHiVlSw&DjtK~MDW8D10pv~iu!TR~jT<==69 z?YQyS@Z^GD?5+*j8yB*8^R;7#;)KiT1 zd&4Q`jfpE7j(_ix4hhC_T(P=V(RCC$k6zV-nAnr5E^I3)`3Ja0*R~4!7!bY{xcS_r zGl>-uZCR{qaw!_VQqcAT1=YSU^x+%(U|!DQ24M%6=ebM6F6M&0V!H)RJHU8#LmKD) zs7%1c=%jcs42Us6M1|rLte-B$BKLa*7wOSqzFUe5C3dMaxC~HGen#G-MJcd0#`(3w zV%xvWuZf;$JGm?|QykPk$-*FZ0)7?VDjJMq!*W7Q5oj~T8XGa%o8uVD*s@~A^;LYQ zabFp4+}K9l=do42rg=KcINtae6+X8W)iXY9#y;ITv_d*#u>pU~tdo9!+7`^wPry=? z4a@D{9BaT8ImAX?@wi9L6**!IsFh&DbHn*Njx)vDU{1|rosBWQZ1^1M0Ci%yAnqyd zm9%k<^A5x!@^HgF&jWN{*gzaVM?C((Kz9t*T(`}!DqPY6m$bkwTHqEfaB>Tr+ybYyz-cXT zX$xH10!M2j9W>Y5)JxI=m$bkwTHqEfaB>Tr+ybYyz-cXTX$xH1fTLVe)EL$4lMi9d zck&mE3CvF=uEi8|#M~zpV3eMF_-ch4SkT~-YKyWdVC*NiW<$% z>kLO`7QcT_Jngh)4B;5VSd#-*Y8PmRI<8>={-~c2<|Yh$YMVnddDWEbFMB z2x8m!yar7h*EE060tk$<4r35tTm@xqIi~%!s9DoI7vQ`T@VtpN#+ueX2gj!!0CllW z8`sr&zcKIE=f#bGk>~jJ+<{;N8-H`*=X)l~v$q|aSF7S`CtPpi!rqNRL4~A^Yo6l}HbEA?<q(V1h?5dtOzU$2MrH*U8VC=fNO4{4cf_mcVG4OR7{8&xZK|B~%=;c*tD(KIQV9G# z*i@^eEn@^X!Pd2~aoV^p=5faiXs?e`6l5aW7fz7Nxkotf>@z46I+|Dd6|R}!MGM#J zD6V&^L2-og2sW;6UZdW-9;O6^=Qujs$nGtr$Y-ZHR-eo3QM7;A=M~?1%}Y0LPP%h} zIfdTH2H;vH4%w@iTT`D=d{6W5RI_>_*4*HcO${taJhU3t^FF_JVWLp|4d{Ts85e0pfd{Lq?>9)N5?)zczomMK+>=~xk>4_yRN>4?AHO_rS40Zc8!G7e9~bG zZ%^+p2PrfV|3=PXKVhU!XQM~}HLKFl!IY3rhT{>9chg+95z@&b^9AQjIAj9KopvW$ zZBB<3gu)6@O4&!|G|E0+^7E(y0#td?{b!`M&CCPGtE`!yONEtw;*-n3pB;Xhbe4v6 zk&-S!*)zlr`L!Sz(XGx0Sv28s1I(}585oD?$ zOwDNfMb0Sp|=G);do8~&yO1$bBqvrY_1$aBW zOJ8+h!cnDjZc~Wf@r%&SLYz*k^HV{9De|t-j7~I168u(=2eq*V0aoVd@cXEC)rLOQ zQTw>`h%>FUevJ;T<2nfKJWMl!LDdLOk!ZhE_ zL-d3-1`dzY%9?Qk4o{H@-9?y=#+q61GST-7Sx`^oH0_tXbol((g82^b2aJD}_$|8g zdCBkNQ-^nR`+hiZS>*0)@nvq5&uQJBS+yCaiLI%>z_j~J>#O;ksXv1$n6+4^HAo=* zBZKEm4TXs8Q^gU4e?Zf(F&2e)v>oLw`INVKoM2j@xGVGF$&R`t!Q)morNW=9wv;j* z=sC!v92K}#pFXaB>7yq9%K5=&Tt)AK1Yz`uK4C1YvGI=fE$CO)9zE;0{G(LMkGYK^ zNqvS4lSo?RVoKAc+>!pAfjZSp;aj>>6|<-yqh2$jtySc~ML(-%HWk!Gt`n^i;}zb? zU-9l&d24OFQ#1UOC_cWK*Z4fy{2SQ|{8rh`1$=g;dK^_{|HM6u%dWM{E}5ULdW-Z! zt4{UD{G4UePo#hACsGqWgRRQ#qBZi7n$a%%%;9me8e4>8hQdE;`k-8n80v3$QibSi zY-NwI71XaW^xaxij5##}on(12>-noZ`}2hQefh%c^o;uh9sNZQr}bQ0J+IT;JBoAr zbjFA0j<0(G*Cok{F+Xeg!ZF&aU*d=8smEp{@M?p0Ur zpMBKSznwcokMGlC773p^uiNnd>Y8;)I0|~$J?&e1iKj=80_me|ZhMrX?bgiR!tUrs z$mLV9aN0&0?XgB7Gu3{_DV2e^mwrB$xti+ENEN0lbE~46KD&?Snt^JzsSruoar^rz z*K1m(x1E|R{J>hbhC_S8G&=cau@@e7;BwL4S%Kwy&h(ItzOPwytR9{9F z+k^gF&ziBWAIxp^p_^~jT9@leH%IF4;~|XnTI>>!17@XAnAY~NoX7MtSqWLF^7_5% zSNhc4Za>v%MKwm+kZrov)x$`C*0&Pr_Dx%DOuBHI@48@VPx;9%`u_4%<)6Bj#Z$jK0iq zA9|s)DPMa4^v5^O^JDvQs#A<|4Y-rM9bmLl^;3OOk>yRo5`3zgr~F_vXiiQ2(Cm$( z?D3fWf}AKS;xe;yN_^9x@tURPdfgBkU*2SdV{%KT>*84ZT!p@VA9xv2{53pEPBmvR15+g=>q(Zo*FdWAGy- zIPGr(dEpP{b|_l>_n`LN7w1;!Teir*cPvg<=C3M{X9<3pA#E>Ak`mst!o*9$q?6>Z z%K~;;!1g)pT47cadVTt1r{7yAiHv^(S)-Q;{B0qE&3|Xh<#xh5CSHW)yS{AErgsHd z8vGM3Z68;p-MbdELuX&$b?k@y-5~Zb{}ek9^d1rZ4k&wgem4M($1Vgz`=b0EsEhRP z4Ogb;IG)ANNF!aBKdWhsmG{@^Ts6@OP()xZ-5YvM<-s+LCx7IB1+UY+BYut?<#cR_ zo!B1Qwhd0lF5kzqrW@t42>yooVjOnq{4ak#q|iOU5Gl>)CzE4kN2ca={=X~5=drlZ!#B;-)6F%LWi!VZcud#Uciaaiv$Db7hw!%Ub z(xzv~p5pG2CUYDm2pzjy+HkQPERwgaM>EF?=Bd;E>iEBO#KJ{Q<6W%0X+*Y;f><_%<%Nd*G>0o z=ggw#rNiRgWhdEd?+sW4uY+NF?fsD?#UE>xiG42i;#shPzwm!WpBY$rT%If6$W<%q$d{4u}CEChxnzm~F-3iIk zwAcE2Sbd+t;(DO{aeB8y3CC^W~?NCo&OI20RR8ua!}v`00030 O{{sNu28kWUYykijX#}PK literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_mult_srs/1.srs b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_mult_srs/1.srs new file mode 100644 index 0000000000000000000000000000000000000000..e8ec546c19fe806ebe6c8c033e90c58e05d96723 GIT binary patch literal 13852 zcmcJ#V~{Rg(jBEMS^C6L638(ReUP>^WRoH;8N!JpT&s=CHc12;`tIiHS>TD#?} zr6PP?zSr}pi}O6Uu(-6*jn2moUE1eEho*|O&cVtrdJQ|YZ%y2T!?GoV?zJu7Pn#!` zCyVYk4lO;iy}2oi-)r9Q=2@S&agCW18Z0?->%x&VR&A!Eel}^p*-deS?C@z**Gd4- zYY=yvITxd1BvSFQN=K#B@8s4Fr>^W<85l9HHioyTI#1fPn}^ShMro6H|fRqI+umAX3vUJgwgx_z41X|7_|hO>_4w)rY{dc5?$Zw^$nV)J!}N};0`#w0yC zYrnljDtVWwI`zdV*Y0yI+cjugp5NcxH7`|sG_lu)OX~Ru10Fy^h}m6h9-oR7wp?5rDoafYY*SyCmX=&}%^Swe-YgT($L>UBLey&)ksi#w z{8~Ti*>RX+u-ZA6Tf=e?7wRWd=owEPS!I&$r{rN?1se zCXXhjMkha*s+ZRe|29`-Iap5(^p&eFEmum{4BjSZ_-WGu7ilK7q`sCMuS6{jtcov} zXg}8esbA$ltJ%sDMx%||`lK90_hR`oIg4TYp1a}9iEg9VGWo>#&h`s^?Qv>~@EkE2 zD*~Hk4Q}VE$*i=($LW0Oee17tlg1`q(?DvMiDYx8@`AwMr@Jm|s(6_MW!`M-@js&3 z@f0RZ7&3*C+mJa9HoZ$sIR;zXv^HU}qmN6bF6)=wGm;L50@T$~*!cr+S5q6;JAU66 z?`msVYCFA^JKgTzUx(*>*yPW7b?2>e+r8y^-F{Z%+uUBSgJ*G8Y8J_iV6`wd1E9-ubT;4*x^{V9 zPY=@GKpMd4ESjX|Dkqp0g@KIryxRHaXh=0pv>yZF4J~cEJ)dHxpO4k-wYD_ihA!4| z{8pdRn4}zZz#Pyo{wpgq|D)1mLdz>@+`^+L8o_3Lj&$r43+cuf ziI!hutRs#LYz#tHS9@#B)>Gw|GeU#8^QG>nX~R+ralc3__L{IaZ$GDVVE}qhl~N zG*GoROwmd$D^v?9yX$y{OE8SADA#`;rJZ7|iX3V~G0)bLs}$T-)82<~+d97dkh&eJ z3<=DdC`JbKi%o1AWJ&a5OZMzFJJT*3a#B7oZq?@~feBq%-7hNJtdB47Cn6m_&_KUF zZ&BLrRsFZ)in0YcVjPE!kWwK95HSg;_?`Vx0EvwIIQW(QPXH)^gvi~Yl$DhbIjrGKTH)(7^-Pv_hluj?~R>4OFlUUHF-HTUah_CtXoM}Lt7 zQGzYNEXR)aZDTr<%~a5P;B_P(Zzpjd<4QmzRZhonkLn&+?1~V~cf^#fMsYvt9#9?& z=NjVQp}fT(&xZI%2V%l9g-j7V2LS%h^b%Ao{dXQw5TKYy{&&s^D*cxP*wq0IF@~r> zm?u;YMp&$KLjrvNFK&K@|1XY*cqA1P4~d5(ta@+CI%Fah_ONZ*4E8L9u1f8^ylr01 zJsUh@?QGMrsbj^Tm>7I~J1W(^x_Wy2bZye|{ZRNIM&`2#n}|xdb1e2|ROH2_%!^5$ zXn+&v5X~Qfc);jSPdvy^wZ0|zz9-g~s%k0;TIZ{Kzt6;G<<^GNw**iNeq#uLpIC;~M-Ker43G!=XjMNb#8bMz2Oat*Jvx96^QZ~uq6POT z2j?OW>mtvBdm%*gwpt(VZLN;)_8fLN&I>cv1BcJ+J;h_9t*WN>=1F?*NM(0d*p++0 z)C4iD;-I4vRi)CtnCUgnPD$#X`SQ+fin3%)r;;XnJUZ23i-+w>`Mg*`9mq{qcxa$V zs)bjTbrg`+i*sNsg~+t_i|KTdapSrA$qeI?5__pZ!AV7(b>&>Hl9xud3g$2rgA-^- z#ZCKBJB3FL8B3@|=Lu#f7U&lp=ZFaX)up9F`L*i`tzH_o;W-4tO5?uflXlws;CkX` z`O(pIcwlIzvvT=ZrB&lu)+YT5^$ubhHr}6D0B#+$q-n{l=3kLI-8&bo8h-uvmJ={p z8#b=JDqGT4=B-Df8s3^q8%q@}GwLR#%3Ch>A4y^ z3(_KplfSy9i`60?I1_rri|LV1tAyVqh(4JUd{a4f$AGgr2N+$#P0lbT76no(ifEL= zG)iNeq;btNIOnNcikDu*Cp>$5cZNLCglohqL<)(CP>G7sBWlByFIE{C4%n0{yvU$wGT&%rRv*?|>7(1CJvBwaxHgZh@_YvZB#B%tpY*^AQ z^K%x&02xgTfmPro1S1BwXnisx+3I=Ws^=@=(#m)_#xK?jVZuj@_AeLfbBvhu^rz$D zH)Z-(a!e*Fe_lbK<>lgVc^y;{CfhodArxhiNluj^VI`4CT9qMZMUhDYm7!tH$=|ZD*^2w6i}jQ&mXffUibkc2@suovlCbHD z`y~hVlpLCpaH)w#B?t199Ey@~$%*^L2Mm-Pl9F(Vz9P|!su(%;D&1_zCybVZV+*lT zyB5e((!(GE@!VwP=7uTjAjIEYo!=&i*i59#eF9R-=?gJ(*2r^+X|+l%nCA{QQ52z| z^8$-t#FYq5-@#Nv7kmX!zux7_1t-6d|4(W=N?kP>I(*B~wO9czpA;9LLX4AFIM&(Q z9_RF>o_+on(4lx==&$%_8N!dlJV3NoXKrV~H5|OF5 zOa`Mh{B?VQ49vx4GZ&yXVOw-B+18RIG`3XK@WR}Z1T5|cJp6#rf568-O#BqYSEPU( z{^KI3kP@lSrV=`=Ov*!ooDMs)%KRv=%k8YP1penDsIU^L0c62Gp2+i%M79ylIO6DP zB5`a3kr<8+pk0(W0=fzvuHMYJDYPPuQ){ELOBcmvRK}9aHg0y<83&onc@uX&2=^L~%y%RqULw2*$0sq9OXjCb`CL# zPpcdcpV4vEbZ160h4k?j@KX9$*iZu-x4SJgDggem@0V8Z*=DXp4c!~~vO_LCfh+^~ zvpEhGFn)`-IqieqpM>F|+~wwqoNH@u`4$~LJ3bShT}37vTDh>8;{viKk2DG{zn2pY zSsr2-_@j0EjoVzTb~2mF($IE3oHGt!80`Vd60@=?95x%|8X7kHU=+q+hUoz0veQ`aKq+}iU6>ANE zQl3D%HyM-Bk?1(OjpkWZ&Cm{u0 z^1ENkqPEM~KqAYB)7jueaJ^i*gNpSxeVQ)t&^K61yS(c;LFd3dSG81jJN9<@ZCu&H zRV^)jw!D5R%YU0TaJa&(OWk01(7gxLlTjLMM)4Yi-WK4v2MqKk-oE?r!>~Z(w6VUS z*(gqTD)jFGGjw_DSNH_UA1JCP$QTNXnsvl)79UuDF+~Gd_|*%sP7m{(5_;dx-nqu) zATJ7+1QgSX*6{|_x3mjbTy{W0ZwS5Y6_8$HVWTX{{1sRAcU*y|ZMJiiw?+3y8bjnw z_A-ApXvzlSbN^kvH*ei_Ah> z+HEcuy@S7MbvWObRcMe^fYs(}d+Aw%s4H}@D+FV@bK*dw_!Mqkt}(kLf!8Yq$359@ z{GxQ<*~a*6XT*;9-YzoagL%JydwVD-FdGD>5Nn;d{rkopb1!FTxN9s~-^kPAadXBlC=(tjt){VEr6mM^qXrnoWsgHbB%Iod)L`Kv~RsQ z7u{wc){pj<43Rc^U>d{CU7meY#3b5t_F~k`ZEEJqlc9)r<)W6pP+Gm9Mjv7yXaA~? ze{xb-qs5{iBY+?m1{D;5<0$$*@c?zqDv@5ihvYT#fczUn%O=BO2>uP~G9KRS%zl%@ ziq8z%Y+0ogkbQljvK>0BxEH!#%EMR{7?gR()^~ljCTxazzRQ4R^up_po<`~p_k$hv zU55QbKd3nidI9s>`dBtTexn6`Z;Id58UzYWI{54c=I+%n`*gqV1-lW1fnhZa2VnLH!L81fn@`oT49#3;TN@ zn5a2;rc=L=djY~(q&lf21P85ahI0=$hgbdqF%_0@8hOI9i`Ju*7PA?ZKoYLaiUqke zhc(Cf9(B85RoxGym2~rQ5cH)XD$2>Zw*`idZdHiW(sZxEB1=}eu1VfVR}a3r=G!GF zXCZYtgr{z)SS7$t6%_SIAlZTG+D>PO)wk;tHU9wsiK!0=rk?9=DXyNt2-eNEbjpm| zMl<{h0&g3EFo0WavWPHn-;)dp_lC^(JrC{v#Q*$(4z5<_a!;^*I3&hcstxKI!CpWc zW;JZomDI#c%>>=z>Y9yIJ@zTQ6GIbw;24z21e7&Gs~p&&vkP5ikvOn$-+H#G1rS`* z#*35z5WI;|9GYi+ocMUroB;$5&66h=GHkwxa4-QxNQaTIK>nT;YrX$36i0NgpW<`Y z^r%|WQP7yqncDeoGL1&fU?KoNrnefgQ{l(~YgpsG=>v9jcqRg7?a^3x%(2&TPb)B} zL2|=aS~ZVm$%05yRftq1QyDe}`39zIFw-H->2s4;pZAS-==m?Ct)dH)DO`h(--?{I z2L@tuJkSp_oXlG~r0ip0Xx|>LwMJ~oaaV{P&0*!ziqrkC<;!UDPZN`-jh(}HgPxt9 z&K}*ISUgCLVrfrr>5vJK87zK83a;wi+uIL2=ee02Uh8CzV0n@)HYQK-`ER|%Lk<+w z6a6HT4mc#A3qm+ah0W5^1B?lQU%!cBBQiC}EJvP2Bp<+I@pNii-`|yt{6}GAV@}$s z>puzxv=o0T@~BB&g*$=TU#H`-j<`E26$V!s$;8?dQWKrFssEF zXZrQNCfC1d*FQXF5K`bqn{lXcSq`xa=Wp}9Io5NXDCk8>tmu>3iZ4qb4i8@(fBZQ^ z*}lK1bokgm71w**vVDbmaA?CM%OGWYv%3iYK`j3u9KGnHb|xi#Qdq2YJ1HsJ-zA5$ zv%X$Egg@p?T2V>r*8B2BCmYAe2@5 z!b5re-e9|Mpm)-raI=blE)>uw>_6D^oKmm{|LFwOMcN#_Xuv1qPugik%zx8@K24nb zn^wO!`afwgN^XN#E(m;YC~kX+qVWl6@0x#Z40^GtKb64l6q8@{5J%vZbz|+qk-n)1 zUINC?yRsqn!{mFD|A}CHgMIyJ`+tg&+lfyU^!Z|bI^H>Y|C0Qy6D#-*Y2IEC)Pw_l zl6ncHc<4>17dxk6iBBt>{Z{l4(!92)_>tm2r5N9afBXf$lr_)I1^=oB^ltJnF@`NAuLAp&v~v`lm(L+Er7y?ZN!M|2$zk4rz1m?C(6H8KGYz zT(3%`PK{Wd0}m3;zVY=<9)j{N_i8;LNW`+jkoMQ>9AgE89DQC zb`{Qy1*9Jfd9XjJ%)I!;)pqHcdpeik^tTb zTay&KC!zpa({vA{8X@Qe?EhR8?pk!3<=n2yrg)h>`TCG7389Fb{ms49XHc<8M5;iN zDioJ|)Z_F0w&SzzdG*HR?ZM^q=EQp+-2aU=qV(;K3HRxD{AuyLVSr%g#{)CEa5%`e zWAkNue|~%8;k0Sj$j7|}SGM5h$8PuaK(1id>Ag`drEAMtITBMhGNrxm=C{gYyB*t` z^M1c@>&yl7c|~Fu*GoaSPnPte$7YvDH&~WaE!fC)&5O%w=dIE^XQG_4GQp0wlLyy2 z;X+)R8M{BZ3g8LS4l@eR$EaP}fhyw19oPDGH>A|fb2*Lw<->Nt8dhXLb?(x(Nf(#4aKwoh`e|^%r}G33*#p!1^;ClY)N50l=O%V9WCRwT;Y(9Z7uUHk zaDHFAvgzx^jXN^s`wZci8#?IT_P8=L`gxf)C874%b742=-sJa~_~hB~2Q9~rr+AyE z!d9_-G8x0!!{w6Y4=sZ_PH4tppHqDL9AG))8{9a|`}1enR@&6*lSzFW{POjw!W!-` zm-f?Gw(q-Rd{fTVUv^)2D^t&Wyw+d$bxcUEi&^--A73-yZ-ax;fm^D^8emW`-T{E9 z_3!e=9u@uNOwh2+oz9^exEswxb&TkQd8NWK_KPbVBw;$b>q{rLs5YrHNSvJf%Ec4S z8ZFFdRw5cR_Qkk`PL=bLiYA2>63NxlG_Ycp#OoQO)jWlnzQm+RuhOD{JGyTB?yJ4? zTD2q1TbHF`gB$K28-NZUWkju1%)MccttIME`c=t+>Tkt>@@6>ve5j3&qw;`T4UuqC zI^qWQV}SQKFf;uVN-pf6Sh3W%zj6wm(Kcs0^tBK6g5uyS?Xb|EYi2;p+tW zZ!SK)_gmMtqt8nU^6QJ5@+Rp?u%UgC>1D1lGj{LQF3cYD((AiCwl%rqjkK!AiQVw^ zVMQ<1R1H>mp#95*OJ^KAXe#Qo1R1N5GKcsnp3USbLP&Wq31Eu&mNEtL1#N%(90s1L-G5@phg$e>K&4mxl} zo|w&#Wt;YgL47{yd-g;GJj}M*N-}}Uk}9x9 zC87enFJrYOgaZf9?|Ybf@RgCTJU z+4LYTl)s}UCo@T-)_zp}cEzAm=qN~AsR*gwrk>BB5i&9i+Kb8=QD6Eknw(D*S;0gX zbb+xZa4*Q*DDDmUnmZ1tiHiBQ_1F<-J%mdO=bEeHGMROWWqi+-%AK!>N&;J>40;g{qD&O54_*R0-Okb1lV*$Dqg?f5eiLoqVN)hK5Lo@N7yAodU^ViFeO1x2} z9BNOGxHRzPf2eT3nDqZ2wTJT0!}nMLm{nayv9TV1FMg}7?-5z(Y6}8M0M9B?91RaY ziAFoiWS?`26H`$KLSpz6Iq}H&P6bD%J1hLgrJi4z*pyaymGy$WYC; z3H632x8)N;#BJOh-cbA7LPLpEVa4LeC^*RH_D&?a!k_&^6JYPA3Lt#&3_g62>gTeA z3m>e6{jp)f2aWIv;NacsmF7DbD&UDnn8b4yqY#PFi)GJ7!+$|3l0O;;zXDYZ`dDO7$;7dUdtN?04JXT-)qpER9en zK)k|Z%7VYWTW8s9^YPhqSqRFG9B6y!o(9J>B4{a$jnmSmJ}fDJ-+r8rh=dS^%JJM< zFow;jAhMF=VWNgsdq;|1TFkc=D#2TEKZZ3;Uut6lV0<8#`A)N>7Oq#q5Wn)-6&z5U z^P3SqsU3cysHOC9wV98r7m}4$UkR!t@k~`&Jzz3^ngW&pVu13H;xKCV zB+Ir)YZSqdmthh-)WaZsqMtO+R>gv;t|lA&D#xK>FWz-TK|Pa95-W`g&VrnAYF=59 z^hnFrWs*~F7EmcZMgk&3{^dNmAyFu;6xDH-;-TgsQ#DJP@Xg`A*)1VII|4)^>*uU5 z7C=hQP9U(zBCx{RoXP9GedHrmdf(LGtPCI#2m6F#y$$k9%1wuoRp$Ej7147jVA9q zFR!;&X|`rI;Re*L3^A!HGAW|mhrF?5pwU96#g@U8^GDB)vNowQNn%snvDc-jvxEC5 zbRpEFs_@^?Mh+S++-EYl2PHC0)dy3kamnk*Tr(oR9qv}Dq3u)b9;pV{Jt8HnscAndaeuIASe zha-+8@|#6zAK756dkQ)-t0SFULPwI1?g~hfC#)WLg<0&Z%a>NXTD+> z@-j~1zTAll9@S`5y1uFYZtAIpyt(E)wh?9rGG=js>=z(3Yj)*wK7C8hKxIdyX#z*a9{EwW80oov=;#9)_kudYe5QEGrtoldJ zY}A^PsTRTSiIVKrzaF^&4|?Z^T-{>I_+<_rSa4y_GsiImnF{>YnofrK*2f;xdnz^bWmYdIDjM+N!>XW|1VBEr?hMnjclJ%s;?8fpc~6qM z$igdKj7+yHQx|%AT0HRz@g5Bss%J0(AiPY4asX~!@Sk=)=7D`D%Oi+)h7j2tKxBeN z_s*Fe9+(}PGgp`A9T(MX&cRu*XinU1h<3I%->;4m7;ZDK?XUd8oNnOI zf5)Wi6GdrN_R3am@Obh4EK8{+-^dYZ0fwg7IQxk?%sxW>~ zpaC9a0ZmB0FoS^eNkWF#vPWLJN8V}3z1E1zWt78Hl+f<97(8NhQ8C>cN!wMmN`#c! zdqmZ8Q)dWmB)1Zh&ImkYJkbx)!}*CFg9#Ai$5oWlWcd4ztSvjlzQ>>X_KzetQG}T6 zUP6MqF$o@KL`67LEcrTlzr%IR5W9bT%C3O~=-p54Vz6ONUO%6boRz)?W_m6@o}gpt z1<={lCP}W`45K)7%(9}irKxEi04Y|hsEnO{-B~bbDS;`i8XWmM*_}#nmxTvFR zeg=SLH#1s%v6cAq1HqC%k2MDa{wE)y`Y?g{aU?}}XxkwEPLb(^5=A%w?s9>Y7X4lI z`i^KB0Ebqqf7q;tV6nSly##y}gwYT(EQ~}Cy4E5Eclugjy+F_dX9=-q{O7oV9iyS9 zRJL(yqsnoo7V|AAGAa7TJLftvlm~=)-gV1W?lOPZZ(OtS65-Q9sDXc7lW~nizZ2~o zwfCU@tiyCfW4Wo#{6EP!lYCKsj z!LHYZz^)FfGW1AgQXq|T1?JD>IdZdJcCp1eaGqt*d@b5~3Lg6;B@;JNnkI=Vfk z&8;pXehbu*U=T|3j8rZ4{7%%scM*Faft<%bwSg?K8B=pn4|%GJVbk)_;co8up~Lew3!D_Ra3L=XHzqwM;x2cj?uDBX3-e$ zq{67uf+}tSbjB|R8POw%6@}WQ;fcZNsC3RyvIDzU%ZL#x47~Kcw~sKzODzk?DvO4` zm2ytOQjGoTEF2N9ZqvFU>HQyaDz9VO06%uw* z8G0;Y{e!%CoNVR)o-Sv=Og5u~kn2JV@M?HM1 zCSv!O&d4sMq_j<_ZSE^$MH}d}$OCd+>+qY)Je3oK?+EYv>j~KN$hO zns!7L)o=(b2PIhvpFSU z><`?A+=}gTXwwLKRG@!Xi0E!yUcfVFAlqu@fbYIwo-RV>6>S{vx#hexffR%9?55kJ zXLmRHe&}(yU8fTqMv?_QeM}Aw_cg~5>)W>!f;!BR%(fVusAI+p(N<{rT$Ync{?#Z% zQ6NC3w$S>GrKm>OV&%V~(i9%=4s@95vKyMn4dxLERD01zkQjm+cMM-9^sVbd>*JPc zHOeOFm(0~aFKpnGO9Bh5M)a$Nofb?WF%dTz0SS~L0pu6k)oPAMGJwDOw2HxJfM%KAEy86JgfA@AG_j>)i2NfUJK`^*jA=AR5YKMp(-8R2;fbWAuCD6 zG>-X0&D4Xf(kE`(8lbs5G5cG@%vpZ#-%eqL;Asz4HZp}TB?SI;uyM2T_OZi zkU5x90|@VpmQj?BkaK^wcDO)bU;FIOm1Ry5#jOq?ip@T&&E4`%gaRjBIc2S5$=gL4 z>g_%Xyukgu+C4-)DzJ7x#nZ)_T5<3v$oA1OY3`96T&gVH0nnG6_iQ=T$@Vv^BNZ}O z5~4Mfj&s~(V0&ET5v5DF4F@BItrSN`#TC~KlCiCbzuLsyDPLcmDCD8pKCJudSwSA4 z=$(Ti3-Wu&wF0TWu_QvSU$-4s6>4MdH;7N?T>_%F$AiD`mn90vb;5AQ^T#>-aH8~i z-0htjZ?z8EU5&;QRKPw$hqa0s|{`GEx;h2TX$DcEgg;nk_Ui>KQ5hnM_Z2j>aID8`|Nvs-G% zd7bw!h_Q*r9CPv{vc6hcfJXPO+2a7H_iv3H_Cb1|q4SC^`@j=A?M-n(+kOoN0f;}i z)QeZbE>2B@{X{^;!nYB7+&(00QsQuC`U=n!g-_lXSQdn0F6h(9Kbwbp+j6&nV|VAx z63emA$XE*!X3~yNiN|yWfjTNEm>zprT!_J;&wPZw=;ntQnDJ1sB_h=40v~p@@%>5b zs8j*af@Q1qhZ=xD`jR}^mHoH3o7wwMB9Lj?9^>nz@u3OrRBUkQlNUhQwZ-e=E~5c) z9_p7-wK&z5vN4Y?M)v=FsGsvQ9-^47fR8^HZStM@;kp6_)S-DPS*{5}7Jnrz0!qawM=QZi^4$pxQHC;tsz;==hr2{wI)hGO z7-b3|k?!j=g%cES!H^eTO$m{Hnt*v>_I8;+Z}hD z8^El-9n2-+WOF1s@`{d9AMSyemt~|tnze6eQX=8)Lr1sg0yy1WJslmyMf1Kt>uUQQ z&(TY4#M^CyAO(}M5~jT!WGUu(I|-SQ7P4R>!aow{^dV(Q>1&NtST%(Z-a`O*^2k*t z#i*{3su?my{qZJ>A^_BM$`JY>de23PtN@aO8*FL{<7nmRLk)E?rFHH>t~rx|9zGrgLmb^q5HDYa`nv-am9+TPI8044YBDaSug~Bw zoFDx(>2CSeK=T}x21{o}$A>lQn`-)E z#EsWDIDncP(Yp)BX{nUuioi)7Ed+XDIGF&Mf$bV54pl32FMUerb;xF}ryYexM0T*) z9#(+>N#9H3heOUw8_|VeLPvwJkjXuh5IZOWa^_=AA#Q!m4FRy?I;j#i%4#fW^{mtx z^Si_CS2{B&f~(jSGec%|aJAi%%_24$-?^D6 z1YL`IxxVtr2Nis_AoDxtc9hBG_BYS7p<&4lsF!;I$nyS?+$IYnqTMo)k- zgPY9_6jR88fl+j2vSL$ zF6>!7wNVyFK6~VS=!xp^C(qla=RW+vxBij^#~2ASS&!_W5f4?jPFLp_OGX=T@z%CK z`yOiZi0;HvXc_sI^SbnYi z9qiKPmEfM^l(0C(9Wc`S+ldiM`hB>E+WXYfk~41o>e=wDQ0$Bo=aVA#3k+}ggcs^} zjJ%#&O+Il96CFf)D0^+UEl}(uV0JO-x$^4DdHpEY)_%^ZLv04JEh?nA_0dbBX>6`( ztSVE^Ost$<*F)Ey+Fp=2$OY=oLDfyqA1oO*w+Ggh*N-yrr${^M9qphmzW*+g(vF2z JP|O1W{4WgOQrQ3i literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_mult_srs/fileinfo.srs b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_mult_srs/fileinfo.srs new file mode 100644 index 0000000000000000000000000000000000000000..e7002878c001b2cb869a298f5dfabfabed6158de GIT binary patch literal 403 zcmV;E0c`#siwFP!000001I*RUZo?o90O0$c0%huPrRm=`^*rsmH$ViO#48YlN!7mn zi1yR6omO>gE+O&3d~sqknM{}uT?7?BSJ0wH12;7*c-vXv)YXw286zs-8l~-==8I`L z6Z`d&)4};l5^#eR-?f@k)YG&U8+JS7VY3@qGd4vMDQZ}`d4EbAv-*yq-LEm18bxAwtF+y4bRUK5^UL)H009600{|eHpz<{e002YdzNr8J literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_mult_srs/skeleton.srs b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_mult_srs/skeleton.srs new file mode 100644 index 0000000000000000000000000000000000000000..260380435dcc26bc70ba6ef88be3e618511fd504 GIT binary patch literal 6095 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 Z|Nr80P~ZXp009600|3u8K9*a{0|2K7d@uk2 literal 0 HcmV?d00001 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.cmd b/gbe/cores/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.cmd new file mode 100644 index 0000000..441173e --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.cmd @@ -0,0 +1,18 @@ +PROJECT: pll_200_125_100 + working_path: "/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results" + module: pll_200_125_100 + verilog_file_list: "/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.vhd" + vlog_std_v2001: true + constraint_file_name: "/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.fdc" + suffix_name: edn + output_file_name: pll_200_125_100 + write_prf: true + disable_io_insertion: true + force_gsr: false + frequency: 100 + fanout_limit: 50 + retiming: false + pipe: false + part: LFE5UM-85F + speed_grade: 8 + diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.cst b/gbe/cores/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.cst new file mode 100644 index 0000000..36253a2 --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.cst @@ -0,0 +1,3 @@ +Date=05/10/2019 +Time=14:33:07 + diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.fdc b/gbe/cores/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.fdc new file mode 100644 index 0000000..6fbcac9 --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.fdc @@ -0,0 +1,2 @@ +###==== Start Configuration + diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.lpc b/gbe/cores/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.lpc new file mode 100644 index 0000000..bedc69e --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.lpc @@ -0,0 +1,93 @@ +[Device] +Family=ecp5um +PartType=LFE5UM-85F +PartName=LFE5UM-85F-8BG756C +SpeedGrade=8 +Package=CABGA756 +OperatingCondition=COM +Status=P + +[IP] +VendorName=Lattice Semiconductor Corporation +CoreType=LPM +CoreStatus=Demo +CoreName=PLL +CoreRevision=5.8 +ModuleName=pll_200_125_100 +SourceFormat=VHDL +ParameterFileVersion=1.0 +Date=05/10/2019 +Time=14:33:07 + +[Parameters] +Verilog=0 +VHDL=1 +EDIF=1 +Destination=Synplicity +Expression=BusA(0 to 7) +Order=Big Endian [MSB:LSB] +IO=0 +CLKI_FREQ=200 +CLKI_DIV=2 +ENABLE_HBW=DISABLED +REFERENCE=0 +IOBUF=LVDS +CLKOP_FREQ=200 +CLKOP_TOL=0.0 +CLKOP_DIV=1 +CLKOP_ACTUAL_FREQ=200.000000 +CLKOP_MUXA=ENABLED +CLKOS_Enable=ENABLED +CLKOS_FREQ=100.00 +CLKOS_TOL=0.0 +CLKOS_DIV=5 +CLKOS_ACTUAL_FREQ=100.000000 +CLKOS_MUXB=DISABLED +CLKOS2_Enable=ENABLED +CLKOS2_FREQ=125.00 +CLKOS2_TOL=0.0 +CLKOS2_DIV=4 +CLKOS2_ACTUAL_FREQ=125.000000 +CLKOS2_MUXC=DISABLED +CLKOS3_Enable=DISABLED +CLKOS3_FREQ=125.00 +CLKOS3_TOL=0.0 +CLKOS3_DIV=1 +CLKOS3_ACTUAL_FREQ=0.000000 +CLKOS3_MUXD=DISABLED +FEEDBK_PATH=INT_OS +CLKFB_DIV=1 +FRACN_ENABLE=DISABLED +FRACN_DIV= +VCO_RATE=500.000 +PLL_BW=10.695 +CLKOP_DPHASE=0 +CLKOP_APHASE=0.00 +CLKOP_TRIM_POL=Rising +CLKOP_TRIM_DELAY=0 +CLKOS_DPHASE=0 +CLKOS_APHASE=0.00 +CLKOS_TRIM_POL=Rising +CLKOS_TRIM_DELAY=0 +CLKOS2_DPHASE=0 +CLKOS2_APHASE=0.00 +CLKOS2_TRIM_POL=Rising +CLKOS2_TRIM_DELAY=0 +CLKOS3_DPHASE=0 +CLKOS3_APHASE=0.00 +CLKOS3_TRIM_POL=Rising +CLKOS3_TRIM_DELAY=0 +CLKSEL_ENA=DISABLED +DPHASE_SOURCE=STATIC +ENABLE_CLKOP=DISABLED +ENABLE_CLKOS=DISABLED +ENABLE_CLKOS2=DISABLED +ENABLE_CLKOS3=DISABLED +STDBY_ENABLE=DISABLED +PLLRST_ENA=DISABLED +PLL_LOCK_MODE=ENABLED +PLL_LOCK_STK=DISABLED +PLL_USE_SMI=DISABLED + +[Command] +cmd_line= -w -n pll_200_125_100 -lang vhdl -synth synplify -bus_exp 7 -bb -arch sa5p00m -type pll -fin 200 -bypassp -fclkos 100.00 -fclkos_tol 0.0 -fclkos2 125.00 -fclkos2_tol 0.0 -phases2 0 -phase_cntl STATIC -lock -fb_mode 6 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.ngd b/gbe/cores/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.ngd new file mode 100644 index 0000000000000000000000000000000000000000..5e49660c567cb078e6115bae5d6febe4229db1d8 GIT binary patch literal 6054 zcma)AU2Ggz72ds$lQ@4~2=IXBVMX)nBLY8;~A@P0Z&g_hh z(`F>w=YHq+o_p@O_jRADx+f#lsbDXJ(WzJiYTKqhH-RiV!}-&lWtEc z?e-*-zzf?rDrTl;x;4u-tF?^n zfZ>R#?5I`DFT%@WPvb|-O4TZtAl)C9&QylXTBed42IH9p+V{)|BWLGi}h?I+m}?rnI1GfY=PdY>0FL<5;C2&F$X~R2fkM7~Y5Wjc`9M2WVFS;!SfFx)N*m1+&vZpXk<6|-t$WNa5T2wElA$GQY_ip8&H zMofBv+zuaei{;#in>ULYmdcJKBY~)f?Q))3-07q6$OsAf`WDm2;aMpkYYKLub4xa^vxJduW>T0t8Ot; z9RY4%w;hy@?vl?j+CUjnvh=soVv@%aN0d$vow@<^Oc-yXR26@ zR978}oml?fmuJNUyifeB0kXZ6b*)m>tiWdKRfkCNNX{--Q)wC#Cq<{gm9na}GEZJvo^)FyPV_ZMk^Jw#B}$I>QEI4NWIyFY$rERzeoaQ4k$1OPhD*s9Gy$hV}gT z?2iL9ypbc?Cbqc9Lt!o7mSKifWeVNz4hGh|?QaF9&>e11wFETZekM*wR9sC zlSH7nyKl|5LhxpX140L7>8hyz7h{Ri(zAKqZngln$9Ee3(6cb)yOnN-a7(^RY}mwy z3lLw8g#g1QgLPiub}0FJn59ns0A-_@YSwG4WlAXA=n_f!pi~wUsXma7khtdsT!#wL z9`5_1kX-x2S}v6icQ_c@4d zNsmZ@NE3Motb<7qTY(7C3q*u>0ukbXk8BcxmKk3JT1m(pq@8ZC4$w|FkcUYmfox(J z(nBbm0c#%-sUjklARu;w=p{>bUIc{f5fZYINl51)A-jx(Y>_q)(iT>Lkg}uYGz?1c z1rRdRL7zA@M+CyUzkrZUMRn;9?NA?v@L|rY1YseHK#D|qfRs7GJ`fI(yB`M3O6y#&O-yT=SQ+k0Z zjygbTYUcaXuQ|&2W)rx4Wb*!`jBmv~NECKq)s|wsiY>*umcbIs*xR-Y*0l__T?cwQ zcJt0e$5LlJ%a&q10GDDs1eanwIhSH+9y%-8_&aYRWlcW=3Zm$Xnwft6&Q@hSJric4 z|7zw}e%$wgGS0=rOf-7U{8!)gKPcmTJ`w%Bix`BUmNmd;Bnuoo=+O4$xU+HTuys=Gm#=MX^V^2)~rv%aVkjt2ouFE1-#)YPmql5WZ z#>E+Z4Pe4CT2OK#GQ-NaRM(eTrVpbAcBLfgd|err2lZu=X~YO2@RVV)l<{m_KZfuk zoWba-z7(<;l<{0dKe{+&jHYyZSH_tJe(Gov^k5FnD*LUZ)C6wWbFlK{Ecy>U*uS5_ zPfTCJRpNyPe(E|mm~si~{AiGWkxelv7|hCFU??{EXxztWUTC4Oo={a@A$VjidkSz!<+#?8XZj2{Z#U7r%l2S;D-hteu#{~WGlqP`#d z)SsU~a3I(MMF%Q&&ETY7fSz-)@x8es2A*+2W_<522Q_KoDyP_6*ERQE%9CC*(z z51~-7i4#}+RC%Fb`y^h8Q&2+rDEWY)e0Xo+Q7Em!gV$La%C#wJ586ZbFPg!Y^w*Fb zBynwuZV{iCKI~lx6JscR(0bc|q&}AME>w7={$*nQN{FphiINZ^)`s51Rg#)}=rwaG*;;#2|V9HRx&{J(v0^uB(hO;zw5UlVTZ!=PKS_^{D%j( zeEhG+xsRvB3k|X3dBR*3{=qRguEF1a=lhq%9((L!*5B{#y#y8xkBc)tYfNjMA1sl= z0djG{XSsvIOE*%lfxsbksV=|@Zcw3cNM0TkY9-HYp;qzC779)8*{ed~GWeVj*z!21 zBT;X8BGLCB`%x!2__z6)dH}2E|MBf>fY(WPZb_?q7Y_3TTQ8k5fY;u=ehTmg=~@AN N?ytklNhdqV{{YFeMgjl; literal 0 HcmV?d00001 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.ngo b/gbe/cores/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.ngo new file mode 100644 index 0000000000000000000000000000000000000000..8065b788388a86fe979abd423c89043691bb3f15 GIT binary patch literal 3406 zcmZ`+U1(Eh7|xfrIwymIqacXXi?N*1xzp5$&YS$5w1=K1$8*xoj^WAdtgX`-v?2)3 zFt)KV!471IObm{R6C8mtk$IEJ2HtE0)Vb{{*Si=2Z+f}sdCxgXnsf(Jp7(iwzV~~- z_xowR(QL&dd*kthH?HdurP((5Gw&wKx_%P!!763TOgkxO z9`Y1K$T=f1JM;R!L@uIY2Zl*y93xdUyrMZ{xW&|r4aL4P6%ouRRkOPY5?>s$q zX@H?Q+yLzu_n-L6HrO9lvHQ#|dg}D@F>m>UGb`SyMc+FT8R$zmw!nl393z*prZMKN zIz;6bv*~%y$fwd4MvnbaA~~1Ic$i}B>8MCn0r=MjaP)1UXS%RcCh!xoL&bTUX{VE- z$Yh|nLxpnZ^O;WYBQ@bTA}kglM3mzefp6P_jhvbH9K$upEwsqlQz;i^GFYXBsxX%I zR%+T{XmB@uE6eh%LT1{VDP%c~ZzY}`vRT7QamY)JAOJ>XTA=<4DUtl&;`mi`<)2mLnV zlrC0il{1WNdfKy7#VK%)SIJH0v$6~iZAj5cm+AkR6pib6W}f|`jWkK*9OK}ukgM%z99~15;j3ilv(L}&n?V4JP~3KDu@v^rVgQ}Eyy<;j0qPO z^Xpb1u({4xA#Bc?E_XDw=R_;ncGlx77zL~36&-WN3%AG>y+>geINoQa4xN+SKz`Ik zWO;?f-!!Gi}d{XJ6+QXf0wAr}l8=kLs zQSFoM^KQd-79S6H*|vi&RRdPKA5%CU5(PUL!JM?9zR47SVu;s#v&m{xW^mEf*YLQ@7mqS$!t)V44lD7iw67855 z+xmDN0z+fF`*mC!CKKNS&k-u4xc_$R@`2hRT3m%4Y8&IJ@d;>mHU-8LZEfuRRmR}y z`CAQ$-&XuK3BsSDfItYI%44_yHyc0+))5mOSp1u7|Uj%@fDrB9gM6YnadF} z02eDfK%tUuj{r!+5y;*lke(rsRwj`4<5e$PX%IkGn2|3a4N3ldJ(%gaRsha62w?2* z5&+o+beG*X1oz`rg^ClvUBFyYp)%>ZmKafQL`fX&Y4 zSM7Z|)MO0+OZzH9>!hVoXMf}E7+TKz?!4P+35)rfm<#imIqL<_4+RH7p z`Z?aYy>>@x{T!bSy>@(j^m06wd%4B>23&aqZnU4{)>T>zBl%wxHQ-U8wAY~Na6Ac> zHdbH9mB@`(ySbwka&PGCxCXgB>o~sil(s+FZO0R>dp)8Md95n60XNP=`|#fHm*Ejr zv7e#pUSg~|FJrv#T46{~@#YaovaRPe*_F>BJVe z531NB`+wX!jYIeFjqJaHFf7giaQ<`v(xX3qhk!#}!M1imCI*$14w rpeQFU2-|)PiQ^mOgar+8vV!n0(S*-!<|KuCffE$8g_D!-MNaHLndEu@ literal 0 HcmV?d00001 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.vhd b/gbe/cores/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.vhd new file mode 100644 index 0000000..0b816a7 --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.vhd @@ -0,0 +1,82 @@ +-- VHDL netlist generated by SCUBA Diamond (64-bit) 3.10.3.144 +-- Module Version: 5.7 +--/home/soft/lattice/diamond/3.10_x64/ispfpga/bin/lin64/scuba -w -n pll_200_125_100 -lang vhdl -synth synplify -bus_exp 7 -bb -arch sa5p00m -type pll -fin 200 -bypassp -fclkos 100.00 -fclkos_tol 0.0 -fclkos2 125.00 -fclkos2_tol 0.0 -phases2 0 -phase_cntl STATIC -lock -fb_mode 6 -fdc /home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.fdc + +-- Fri May 10 14:33:09 2019 + +library IEEE; +use IEEE.std_logic_1164.all; +library ecp5um; +use ecp5um.components.all; + +entity pll_200_125_100 is + port ( + CLKI: in std_logic; + CLKOP: out std_logic; + CLKOS: out std_logic; + CLKOS2: out std_logic; + LOCK: out std_logic); +end pll_200_125_100; + +architecture Structure of pll_200_125_100 is + + -- internal signal declarations + signal REFCLK: std_logic; + signal CLKOS2_t: std_logic; + signal CLKOS_t: std_logic; + signal CLKOP_t: std_logic; + signal CLKFB_t: std_logic; + signal scuba_vhi: std_logic; + signal scuba_vlo: std_logic; + + attribute FREQUENCY_PIN_CLKOS2 : string; + attribute FREQUENCY_PIN_CLKOS : string; + attribute FREQUENCY_PIN_CLKOP : string; + attribute FREQUENCY_PIN_CLKI : string; + attribute ICP_CURRENT : string; + attribute LPF_RESISTOR : string; + attribute FREQUENCY_PIN_CLKOS2 of PLLInst_0 : label is "125.000000"; + attribute FREQUENCY_PIN_CLKOS of PLLInst_0 : label is "100.000000"; + attribute FREQUENCY_PIN_CLKOP of PLLInst_0 : label is "200.000000"; + attribute FREQUENCY_PIN_CLKI of PLLInst_0 : label is "200.000000"; + attribute ICP_CURRENT of PLLInst_0 : label is "13"; + attribute LPF_RESISTOR of PLLInst_0 : label is "24"; + attribute syn_keep : boolean; + attribute NGD_DRC_MASK : integer; + attribute NGD_DRC_MASK of Structure : architecture is 1; + +begin + -- component instantiation statements + scuba_vhi_inst: VHI + port map (Z=>scuba_vhi); + + scuba_vlo_inst: VLO + port map (Z=>scuba_vlo); + + PLLInst_0: EHXPLLL + generic map (PLLRST_ENA=> "DISABLED", INTFB_WAKE=> "DISABLED", + STDBY_ENABLE=> "DISABLED", DPHASE_SOURCE=> "DISABLED", + CLKOS3_FPHASE=> 0, CLKOS3_CPHASE=> 0, CLKOS2_FPHASE=> 0, + CLKOS2_CPHASE=> 3, CLKOS_FPHASE=> 0, CLKOS_CPHASE=> 4, + CLKOP_FPHASE=> 0, CLKOP_CPHASE=> 0, PLL_LOCK_MODE=> 0, + CLKOS_TRIM_DELAY=> 0, CLKOS_TRIM_POL=> "FALLING", + CLKOP_TRIM_DELAY=> 0, CLKOP_TRIM_POL=> "FALLING", + OUTDIVIDER_MUXD=> "DIVD", CLKOS3_ENABLE=> "DISABLED", + OUTDIVIDER_MUXC=> "DIVC", CLKOS2_ENABLE=> "ENABLED", + OUTDIVIDER_MUXB=> "DIVB", CLKOS_ENABLE=> "ENABLED", + OUTDIVIDER_MUXA=> "REFCLK", CLKOP_ENABLE=> "ENABLED", CLKOS3_DIV=> 1, + CLKOS2_DIV=> 4, CLKOS_DIV=> 5, CLKOP_DIV=> 1, CLKFB_DIV=> 1, + CLKI_DIV=> 2, FEEDBK_PATH=> "INT_OS") + port map (CLKI=>CLKI, CLKFB=>CLKFB_t, PHASESEL1=>scuba_vlo, + PHASESEL0=>scuba_vlo, PHASEDIR=>scuba_vlo, + PHASESTEP=>scuba_vlo, PHASELOADREG=>scuba_vlo, + STDBY=>scuba_vlo, PLLWAKESYNC=>scuba_vlo, RST=>scuba_vlo, + ENCLKOP=>scuba_vlo, ENCLKOS=>scuba_vlo, ENCLKOS2=>scuba_vlo, + ENCLKOS3=>scuba_vlo, CLKOP=>CLKOP_t, CLKOS=>CLKOS_t, + CLKOS2=>CLKOS2_t, CLKOS3=>open, LOCK=>LOCK, INTLOCK=>open, + REFCLK=>REFCLK, CLKINTFB=>CLKFB_t); + + CLKOS2 <= CLKOS2_t; + CLKOS <= CLKOS_t; + CLKOP <= CLKOP_t; +end Structure; diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/pll_200_125_100_ngd.asd b/gbe/cores/pll_200_200_125_100/pll_200_125_100/pll_200_125_100_ngd.asd new file mode 100644 index 0000000..c265c78 --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/pll_200_125_100_ngd.asd @@ -0,0 +1 @@ +[ActiveSupport NGD] diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/pll_240_100.lpc b/gbe/cores/pll_200_200_125_100/pll_200_125_100/pll_240_100.lpc new file mode 100644 index 0000000..ffe81c0 --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/pll_240_100.lpc @@ -0,0 +1,93 @@ +[Device] +Family=ecp5um +PartType=LFE5UM-85F +PartName=LFE5UM-85F-8BG381C +SpeedGrade=8 +Package=CABGA381 +OperatingCondition=COM +Status=P + +[IP] +VendorName=Lattice Semiconductor Corporation +CoreType=LPM +CoreStatus=Demo +CoreName=PLL +CoreRevision=5.8 +ModuleName=pll_240_100 +SourceFormat=vhdl +ParameterFileVersion=1.0 +Date=07/11/2016 +Time=18:43:16 + +[Parameters] +Verilog=0 +VHDL=1 +EDIF=1 +Destination=Synplicity +Expression=BusA(0 to 7) +Order=Big Endian [MSB:LSB] +IO=0 +CLKI_FREQ=200 +CLKI_DIV=2 +ENABLE_HBW=DISABLED +REFERENCE=0 +IOBUF=LVDS +CLKOP_FREQ=200 +CLKOP_TOL=0.0 +CLKOP_DIV=1 +CLKOP_ACTUAL_FREQ=200.000000 +CLKOP_MUXA=ENABLED +CLKOS_Enable=ENABLED +CLKOS_FREQ=100.00 +CLKOS_TOL=0.0 +CLKOS_DIV=6 +CLKOS_ACTUAL_FREQ=100.000000 +CLKOS_MUXB=DISABLED +CLKOS2_Enable=ENABLED +CLKOS2_FREQ=200 +CLKOS2_TOL=0.0 +CLKOS2_DIV=3 +CLKOS2_ACTUAL_FREQ=200.000000 +CLKOS2_MUXC=DISABLED +CLKOS3_Enable=ENABLED +CLKOS3_FREQ=120.00 +CLKOS3_TOL=0.0 +CLKOS3_DIV=5 +CLKOS3_ACTUAL_FREQ=120.000000 +CLKOS3_MUXD=DISABLED +FEEDBK_PATH=INT_OS +CLKFB_DIV=1 +FRACN_ENABLE=DISABLED +FRACN_DIV= +VCO_RATE=600.000 +PLL_BW=8.185 +CLKOP_DPHASE=0 +CLKOP_APHASE=0.00 +CLKOP_TRIM_POL=Rising +CLKOP_TRIM_DELAY=0 +CLKOS_DPHASE=0 +CLKOS_APHASE=0.00 +CLKOS_TRIM_POL=Rising +CLKOS_TRIM_DELAY=0 +CLKOS2_DPHASE=0 +CLKOS2_APHASE=0.00 +CLKOS2_TRIM_POL=Rising +CLKOS2_TRIM_DELAY=0 +CLKOS3_DPHASE=0 +CLKOS3_APHASE=0.00 +CLKOS3_TRIM_POL=Rising +CLKOS3_TRIM_DELAY=0 +CLKSEL_ENA=DISABLED +DPHASE_SOURCE=STATIC +ENABLE_CLKOP=DISABLED +ENABLE_CLKOS=DISABLED +ENABLE_CLKOS2=DISABLED +ENABLE_CLKOS3=DISABLED +STDBY_ENABLE=DISABLED +PLLRST_ENA=DISABLED +PLL_LOCK_MODE=ENABLED +PLL_LOCK_STK=DISABLED +PLL_USE_SMI=DISABLED + +[Command] +cmd_line= -w -n pll_240_100 -lang vhdl -synth synplify -bus_exp 7 -bb -arch sa5p00m -type pll -fin 200 -bypassp -fclkos 100.00 -fclkos_tol 0.0 -fclkos2 200 -fclkos2_tol 0.0 -phases2 0 -fclkos3 120.00 -fclkos3_tol 0.0 -phases3 0 -phase_cntl STATIC -lock -fb_mode 6 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/.recordref b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/.recordref new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/_CMD_.CML b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/_CMD_.CML new file mode 100644 index 0000000..98806d1 --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/_CMD_.CML @@ -0,0 +1 @@ + -osyn /home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/pll_200_125_100_comp.srs -top pll_200_125_100 -hdllog /home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_compiler.srr -encrypt -mp 4 -verification_mode 0 -vhdl -prodtype synplify_pro -dspmac -fixsmult -infer_seqShift -nram -sdff_counter -divnmod -nostructver -encrypt -pro -dmgen /home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/dm -lite -ui -fid2 -ram -sharing on -ll 2000 -autosm -ignore_undefined_lib -lib work /home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.vhd -jobname "compiler" \ No newline at end of file diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/_cmd._cml b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/_cmd._cml new file mode 100644 index 0000000..60abe88 --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/_cmd._cml @@ -0,0 +1 @@ +-link -encrypt -top pll_200_125_100 -osyn /home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/pll_200_125_100_comp.srs /home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/layer0.srs \ No newline at end of file diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/dm/layer0.xdm b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/dm/layer0.xdm new file mode 100644 index 0000000..8d0ce64 --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/dm/layer0.xdm @@ -0,0 +1,163 @@ +%%% protect protected_file +@EG +- +]17p0Osk0CksRsPC#MHF=3"4j +"> +!S<-1-RFOksCHRVDRC#O0FMskHL0oHMRR0F0REC8HC#o-MR-S> +S +SS1SS1SS +SS1SS1SS1S +SF<1kCsOR"b=/lEFCF/#VD0/NH00O8C/HFNlMd8/3_4jG/nc#b$MLCN#/LDH/8PE/bE$CMsC0P#3ER8"N(=""=RD"8PEDO"RD0H#=4"-"DRbH=#0""-4/S> +SF<1kCsOR"b=/lEFC8/NsMHN/0oH/L0s6/#O0bClDCN0/Fbs[0CO/DbD_j.j_j.j_64._j4j/DbD_j.j_64._j4j/DbD_j.j_64._j4j38PE"=RN"RU"DP="E"8DRHOD#"0=-R4"b#DH0-="4>"/ +"/ +/S<1sFkO>C# +< +S!R--vkF8DsCRFRF0- +->SF<)FM0R=F"Isb 3D.D_j4j_.46_j#j30Osk0Cks" +/> +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMC="Okb6lp3em$3#MD_LN_O L"FGR"D=PDE8"S> +SR +SRS +SSqS +SRSqS +SRSqSSqSSqS +SRS +S +/S<7>CV +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMC="Okb6l]3 Xpupp$3#MD_LN_O L"FGR"D=PDE8"S> +SRR/ +SqSS +S"/ +S +SS +SS +SS +S"/ +SuSS +S"/ +"/ +"/ +S +SSuS +SR +SR +SR +SR +SR"/ +S +SSuS"/ +S +S"/ +SuSS +SSuS +SRS +SSuSS +SSuSS +S +SR +SR +SR +SRS +S"/ +SuSS +S"/ +S +SS +SS +S"/ +"/ +SqS + + + +/S<7>CV +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMI="F3s b_DD._jj4_.643jj#k0sOs0kCD"R=E"P8>D" +S +S"/ +S +S"/ +"/ + +SR +SRSqS + + + + +SC<)V=RM"bCO63kle3pm#_$MLODN F_LGH"R=O"#k_LNP_DFH0M#"S> +SWSR/ +S +Sj" +SSS +SqSSS +SqSS +SSRS +SqS +SqSS +SSRS +SSRS +SSRS +SSR +SqSS"/ +SSSS +SSRS +SqSS +SSR"/ +SSS"/ +SSS"/ +SSSS +SqS +SqS +SqSS +SSR"/ +SSSS +SqSS +SSRS +SSR +SqSSSS +SSR"/ +SSS"/ +SSS"/ +< +S/V7C>/ +<]17p0Osk0Cks> +@ diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.areasrr b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.areasrr new file mode 100644 index 0000000..9d560b3 --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.areasrr @@ -0,0 +1,15 @@ +---------------------------------------------------------------------- +Report for cell pll_200_125_100.structure + +Register bits: 0 of 24288 (0%) +PIC Latch: 0 +I/O cells: 0 + Cell usage: + cell count Res Usage(%) + EHXPLLL 1 100.0 + GSR 1 100.0 + PUR 1 100.0 + VHI 1 100.0 + VLO 1 100.0 + + TOTAL 5 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.fse b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.fse new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.htm b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.htm new file mode 100644 index 0000000..a052015 --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.htm @@ -0,0 +1,9 @@ + + + syntmp/pll_200_125_100_srr.htm log file + + + + + + diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.prj b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.prj new file mode 100644 index 0000000..63c7206 --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.prj @@ -0,0 +1,46 @@ +#-- Lattice Semiconductor Corporation Ltd. +#-- Synplify OEM project file /home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.prj +#-- Written on Fri May 10 14:33:10 2019 + + +#device options +set_option -technology ecp5um +set_option -part LFE5UM-85F +set_option -speed_grade 8 + +#use verilog 2001 standard option +set_option -vlog_std v2001 + +#map options +set_option -frequency 100 +set_option -fanout_limit 50 +set_option -disable_io_insertion true +set_option -retiming false +set_option -pipe false +set_option -pipe false +set_option -force_gsr false + +#simulation options +set_option -write_verilog true +set_option -write_vhdl true + +#timing analysis options + +#automatic place and route (vendor) options +set_option -write_apr_constraint 1 + +#-- add_file options +add_file -vhdl -lib work "/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.vhd" +add_file -constraint {"/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.fdc"} + +#-- top module name +set_option -top_module pll_200_125_100 + +#-- set result format/file last +project -result_file "pll_200_125_100.edn" + +#-- error message log file +project -log_file pll_200_125_100.srf + +#-- run Synplify with 'arrange VHDL file' +project -run diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.srd b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.srd new file mode 100644 index 0000000000000000000000000000000000000000..c0e0a024e460d4f9a39619b05aeb8edef0bcb16e GIT binary patch literal 5505 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 DI{7Xh literal 0 HcmV?d00001 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.srf b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.srf new file mode 100644 index 0000000..dac1f38 --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.srf @@ -0,0 +1,403 @@ +#Build: Synplify Pro (R) M-2017.03L-SP1-1, Build 086R, Aug 4 2017 +#install: /home/soft/lattice/diamond/3.10_x64/synpbase +#OS: Linux +#Hostname: lxhadeb07 + +# Fri May 10 14:33:10 2019 + +#Implementation: syn_results + +Synopsys HDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Synopsys VHDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.vhd":12:7:12:21|Top entity is set to pll_200_125_100. +VHDL syntax check successful! +@N: CD630 :"/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.vhd":12:7:12:21|Synthesizing work.pll_200_125_100.structure. +@N: CD630 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":2083:10:2083:16|Synthesizing ecp5um.ehxplll.syn_black_box. +Post processing for ecp5um.ehxplll.syn_black_box +@N: CD630 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":832:10:832:12|Synthesizing ecp5um.vlo.syn_black_box. +Post processing for ecp5um.vlo.syn_black_box +@N: CD630 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":825:10:825:12|Synthesizing ecp5um.vhi.syn_black_box. +Post processing for ecp5um.vhi.syn_black_box +Post processing for work.pll_200_125_100.structure +@W: CL168 :"/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.vhd":50:4:50:17|Removing instance scuba_vhi_inst because it does not drive other instances. To preserve this instance, use the syn_noprune synthesis directive. + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 14:33:11 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 67MB peak: 68MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 14:33:11 2019 + +###########################################################] +@END + +At c_hdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 3MB peak: 4MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 14:33:11 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 67MB peak: 68MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 14:33:12 2019 + +###########################################################] +Pre-mapping Report + +# Fri May 10 14:33:12 2019 + +Synopsys Lattice Technology Pre-mapping, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + +Reading constraint file: /home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.fdc +@L: /home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100_scck.rpt +Printing clock summary report in "/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100_scck.rpt" file +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 101MB peak: 103MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 101MB peak: 103MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 114MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 116MB) + +ICG Latch Removal Summary: +Number of ICG latches removed: 0 +Number of ICG latches not removed: 0 +syn_allowed_resources : blockrams=56 set on top level netlist pll_200_125_100 + +Finished netlist restructuring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + + +Clock Summary +****************** + + Start Requested Requested Clock Clock Clock +Level Clock Frequency Period Type Group Load +------------------------------------------------------------------------------------- +0 - System 100.0 MHz 10.000 system system_clkgroup 0 +===================================================================================== + +Finished Pre Mapping Phase. + +Starting constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished constraint checker preprocessing (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + +None +None + +Finished constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + +Pre-mapping successful! + +At Mapper Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 56MB peak: 143MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime +# Fri May 10 14:33:13 2019 + +###########################################################] +Map & Optimize Report + +# Fri May 10 14:33:13 2019 + +Synopsys Lattice Technology Mapper, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 113MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 115MB) + + + +Starting Optimization and Mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Available hyper_sources - for debug and ip models + None Found + + +Finished RTL optimizations (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Starting factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Finished factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Starting gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Finished gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Finished generic timing optimizations - Pass 1 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Starting Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished generic timing optimizations - Pass 2 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished preparing to map (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished technology mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + +Pass CPU time Worst Slack Luts / Registers +------------------------------------------------------------ + +Finished technology timing optimizations and critical path resynthesis (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + +@N: FX164 |The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute. + +Finished restoring hierarchy (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + + +@S |Clock Optimization Summary + + +#### START OF CLOCK OPTIMIZATION REPORT #####[ + +0 non-gated/non-generated clock tree(s) driving 0 clock pin(s) of sequential element(s) +0 gated/generated clock tree(s) driving 0 clock pin(s) of sequential element(s) +0 instances converted, 0 sequential instances remain driven by gated/generated clocks + + + +##### END OF CLOCK OPTIMIZATION REPORT ######] + + +Start Writing Netlists (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 106MB peak: 143MB) + +Writing Analyst data base /home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/pll_200_125_100_m.srm + +Finished Writing Netlist Databases (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + +Writing EDIF Netlist and constraint files +@N: FX1056 |Writing EDF file: /home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.edn +M-2017.03L-SP1-1 +@N: BW106 |Synplicity Constraint File capacitance units using default value of 1pF + +Finished Writing EDIF Netlist and constraint files (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 144MB peak: 146MB) + +Writing Verilog Simulation files + +Finished Writing Verilog Simulation files (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 144MB peak: 146MB) + +Writing VHDL Simulation files + +Finished Writing VHDL Simulation files (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 145MB peak: 146MB) + + +Start final timing analysis (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 145MB peak: 146MB) + +@W: MT246 :"/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.vhd":56:4:56:12|Blackbox EHXPLLL is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) + + +##### START OF TIMING REPORT #####[ +# Timing Report written on Fri May 10 14:33:15 2019 +# + + +Top view: pll_200_125_100 +Requested Frequency: 100.0 MHz +Wire load mode: top +Paths requested: 5 +Constraint File(s): /home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.fdc + +@N: MT320 |This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. + +@N: MT322 |Clock constraints include only register-to-register paths associated with each individual clock. + + + +Performance Summary +******************* + + +Worst slack in design: 10.000 + +@N: MT286 |System clock period 0.000 stretches to negative invalid value -- ignoring stretching. + Requested Estimated Requested Estimated Clock Clock +Starting Clock Frequency Frequency Period Period Slack Type Group +---------------------------------------------------------------------------------------------------------------- +System 100.0 MHz NA 10.000 0.000 10.000 system system_clkgroup +================================================================================================================ +Estimated period and frequency reported as NA means no slack depends directly on the clock waveform + + + + + +Clock Relationships +******************* + +Clocks | rise to rise | fall to fall | rise to fall | fall to rise +--------------------------------------------------------------------------------------------------------- +Starting Ending | constraint slack | constraint slack | constraint slack | constraint slack +--------------------------------------------------------------------------------------------------------- +System System | 10.000 10.000 | No paths - | No paths - | No paths - +========================================================================================================= + Note: 'No paths' indicates there are no paths in the design for that pair of clock edges. + 'Diff grp' indicates that paths exist but the starting clock and ending clock are in different clock groups. + + + +Interface Information +********************* + +No IO constraint found + + + +==================================== +Detailed Report for Clock: System +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +----------------------------------------------------------------------------------- +PLLInst_0 System EHXPLLL CLKINTFB CLKFB_t 0.000 10.000 +=================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------- +PLLInst_0 System EHXPLLL CLKFB CLKFB_t 10.000 10.000 +================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.000 + + Clock delay at ending point: 0.000 (ideal) + + Estimated clock delay at ending point: 0.000 + = Required time: 10.000 + + - Propagation time: 0.000 + - Clock delay at starting point: 0.000 (ideal) + - Estimated clock delay at start point: -0.000 + = Slack (critical) : 10.000 + + Number of logic level(s): 0 + Starting point: PLLInst_0 / CLKINTFB + Ending point: PLLInst_0 / CLKFB + The start point is clocked by System [rising] + The end point is clocked by System [rising] + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +------------------------------------------------------------------------------------ +PLLInst_0 EHXPLLL CLKINTFB Out 0.000 0.000 - +CLKFB_t Net - - - - 1 +PLLInst_0 EHXPLLL CLKFB In 0.000 0.000 - +==================================================================================== + + + +##### END OF TIMING REPORT #####] + +Timing exceptions that could not be applied +None + +Finished final timing analysis (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 146MB peak: 146MB) + + +Finished timing report (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 146MB peak: 146MB) + +--------------------------------------- +Resource Usage Report +Part: lfe5um_25f-6 + +Register bits: 0 of 24288 (0%) +PIC Latch: 0 +I/O cells: 0 + + +Details: +EHXPLLL: 1 +GSR: 1 +PUR: 1 +VHI: 1 +VLO: 1 +Mapper successful! + +At Mapper Exit (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 33MB peak: 146MB) + +Process took 0h:00m:02s realtime, 0h:00m:02s cputime +# Fri May 10 14:33:15 2019 + +###########################################################] diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.srm b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.srm new file mode 100644 index 0000000000000000000000000000000000000000..cbb05bb7b732d977f12e9578bc15a1d612001329 GIT binary patch literal 5633 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.srr b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.srr new file mode 100644 index 0000000..dac1f38 --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.srr @@ -0,0 +1,403 @@ +#Build: Synplify Pro (R) M-2017.03L-SP1-1, Build 086R, Aug 4 2017 +#install: /home/soft/lattice/diamond/3.10_x64/synpbase +#OS: Linux +#Hostname: lxhadeb07 + +# Fri May 10 14:33:10 2019 + +#Implementation: syn_results + +Synopsys HDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Synopsys VHDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.vhd":12:7:12:21|Top entity is set to pll_200_125_100. +VHDL syntax check successful! +@N: CD630 :"/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.vhd":12:7:12:21|Synthesizing work.pll_200_125_100.structure. +@N: CD630 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":2083:10:2083:16|Synthesizing ecp5um.ehxplll.syn_black_box. +Post processing for ecp5um.ehxplll.syn_black_box +@N: CD630 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":832:10:832:12|Synthesizing ecp5um.vlo.syn_black_box. +Post processing for ecp5um.vlo.syn_black_box +@N: CD630 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":825:10:825:12|Synthesizing ecp5um.vhi.syn_black_box. +Post processing for ecp5um.vhi.syn_black_box +Post processing for work.pll_200_125_100.structure +@W: CL168 :"/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.vhd":50:4:50:17|Removing instance scuba_vhi_inst because it does not drive other instances. To preserve this instance, use the syn_noprune synthesis directive. + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 14:33:11 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 67MB peak: 68MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 14:33:11 2019 + +###########################################################] +@END + +At c_hdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 3MB peak: 4MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 14:33:11 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 67MB peak: 68MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 14:33:12 2019 + +###########################################################] +Pre-mapping Report + +# Fri May 10 14:33:12 2019 + +Synopsys Lattice Technology Pre-mapping, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + +Reading constraint file: /home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.fdc +@L: /home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100_scck.rpt +Printing clock summary report in "/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100_scck.rpt" file +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 101MB peak: 103MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 101MB peak: 103MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 114MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 116MB) + +ICG Latch Removal Summary: +Number of ICG latches removed: 0 +Number of ICG latches not removed: 0 +syn_allowed_resources : blockrams=56 set on top level netlist pll_200_125_100 + +Finished netlist restructuring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + + +Clock Summary +****************** + + Start Requested Requested Clock Clock Clock +Level Clock Frequency Period Type Group Load +------------------------------------------------------------------------------------- +0 - System 100.0 MHz 10.000 system system_clkgroup 0 +===================================================================================== + +Finished Pre Mapping Phase. + +Starting constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished constraint checker preprocessing (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + +None +None + +Finished constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + +Pre-mapping successful! + +At Mapper Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 56MB peak: 143MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime +# Fri May 10 14:33:13 2019 + +###########################################################] +Map & Optimize Report + +# Fri May 10 14:33:13 2019 + +Synopsys Lattice Technology Mapper, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 113MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 115MB) + + + +Starting Optimization and Mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Available hyper_sources - for debug and ip models + None Found + + +Finished RTL optimizations (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Starting factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Finished factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Starting gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Finished gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Finished generic timing optimizations - Pass 1 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Starting Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished generic timing optimizations - Pass 2 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished preparing to map (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished technology mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + +Pass CPU time Worst Slack Luts / Registers +------------------------------------------------------------ + +Finished technology timing optimizations and critical path resynthesis (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + +@N: FX164 |The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute. + +Finished restoring hierarchy (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + + +@S |Clock Optimization Summary + + +#### START OF CLOCK OPTIMIZATION REPORT #####[ + +0 non-gated/non-generated clock tree(s) driving 0 clock pin(s) of sequential element(s) +0 gated/generated clock tree(s) driving 0 clock pin(s) of sequential element(s) +0 instances converted, 0 sequential instances remain driven by gated/generated clocks + + + +##### END OF CLOCK OPTIMIZATION REPORT ######] + + +Start Writing Netlists (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 106MB peak: 143MB) + +Writing Analyst data base /home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/pll_200_125_100_m.srm + +Finished Writing Netlist Databases (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + +Writing EDIF Netlist and constraint files +@N: FX1056 |Writing EDF file: /home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.edn +M-2017.03L-SP1-1 +@N: BW106 |Synplicity Constraint File capacitance units using default value of 1pF + +Finished Writing EDIF Netlist and constraint files (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 144MB peak: 146MB) + +Writing Verilog Simulation files + +Finished Writing Verilog Simulation files (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 144MB peak: 146MB) + +Writing VHDL Simulation files + +Finished Writing VHDL Simulation files (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 145MB peak: 146MB) + + +Start final timing analysis (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 145MB peak: 146MB) + +@W: MT246 :"/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.vhd":56:4:56:12|Blackbox EHXPLLL is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) + + +##### START OF TIMING REPORT #####[ +# Timing Report written on Fri May 10 14:33:15 2019 +# + + +Top view: pll_200_125_100 +Requested Frequency: 100.0 MHz +Wire load mode: top +Paths requested: 5 +Constraint File(s): /home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.fdc + +@N: MT320 |This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. + +@N: MT322 |Clock constraints include only register-to-register paths associated with each individual clock. + + + +Performance Summary +******************* + + +Worst slack in design: 10.000 + +@N: MT286 |System clock period 0.000 stretches to negative invalid value -- ignoring stretching. + Requested Estimated Requested Estimated Clock Clock +Starting Clock Frequency Frequency Period Period Slack Type Group +---------------------------------------------------------------------------------------------------------------- +System 100.0 MHz NA 10.000 0.000 10.000 system system_clkgroup +================================================================================================================ +Estimated period and frequency reported as NA means no slack depends directly on the clock waveform + + + + + +Clock Relationships +******************* + +Clocks | rise to rise | fall to fall | rise to fall | fall to rise +--------------------------------------------------------------------------------------------------------- +Starting Ending | constraint slack | constraint slack | constraint slack | constraint slack +--------------------------------------------------------------------------------------------------------- +System System | 10.000 10.000 | No paths - | No paths - | No paths - +========================================================================================================= + Note: 'No paths' indicates there are no paths in the design for that pair of clock edges. + 'Diff grp' indicates that paths exist but the starting clock and ending clock are in different clock groups. + + + +Interface Information +********************* + +No IO constraint found + + + +==================================== +Detailed Report for Clock: System +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +----------------------------------------------------------------------------------- +PLLInst_0 System EHXPLLL CLKINTFB CLKFB_t 0.000 10.000 +=================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------- +PLLInst_0 System EHXPLLL CLKFB CLKFB_t 10.000 10.000 +================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.000 + + Clock delay at ending point: 0.000 (ideal) + + Estimated clock delay at ending point: 0.000 + = Required time: 10.000 + + - Propagation time: 0.000 + - Clock delay at starting point: 0.000 (ideal) + - Estimated clock delay at start point: -0.000 + = Slack (critical) : 10.000 + + Number of logic level(s): 0 + Starting point: PLLInst_0 / CLKINTFB + Ending point: PLLInst_0 / CLKFB + The start point is clocked by System [rising] + The end point is clocked by System [rising] + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +------------------------------------------------------------------------------------ +PLLInst_0 EHXPLLL CLKINTFB Out 0.000 0.000 - +CLKFB_t Net - - - - 1 +PLLInst_0 EHXPLLL CLKFB In 0.000 0.000 - +==================================================================================== + + + +##### END OF TIMING REPORT #####] + +Timing exceptions that could not be applied +None + +Finished final timing analysis (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 146MB peak: 146MB) + + +Finished timing report (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 146MB peak: 146MB) + +--------------------------------------- +Resource Usage Report +Part: lfe5um_25f-6 + +Register bits: 0 of 24288 (0%) +PIC Latch: 0 +I/O cells: 0 + + +Details: +EHXPLLL: 1 +GSR: 1 +PUR: 1 +VHI: 1 +VLO: 1 +Mapper successful! + +At Mapper Exit (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 33MB peak: 146MB) + +Process took 0h:00m:02s realtime, 0h:00m:02s cputime +# Fri May 10 14:33:15 2019 + +###########################################################] diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.srr.db b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.srr.db new file mode 100644 index 0000000000000000000000000000000000000000..beb0f08ad7a3fb2cdbcf66c3ded4276f26011df7 GIT binary patch literal 8192 zcmeHK&2HO95SG<6isLAbTNp+W1Q@u7I%vc{S+uJFZDYqu3n*w}8%X*C2rF_WZcXme zyGz9ia*<9&pCB*MLvOwJ1q$>L`V_r&mXz!!aL}Sie}Hmfn&fgh^UXKk%u)vryG&CU z2$>KK&C0dP!b0U^fJ&uu0goyk^Ra*zW^O*r{U41BmBz2%)N$3q^0yWID@Vyd$w0|K z$w0|K$w0|K$w0|K$w0|K$w0}#|C|B6P+PlkV_|YzlYUGSsuUSgH9uE(_xJ7`?!n=m zo$emYXE#^~BO-%{$XgIIesp#>TXHsW#Q5(Pr}!r0`lk79zH;%W%JTH;&sRUHe_wz1 zN`2{>N(M>>{<91WS88kZ$<}K1{-L++ zAB>fz2?VhSjv%Fyi4YviaU4)uQXNE8ffm5&kZ3ldxFe28obRb|MxoIFHsnGwKAf+| zON$FlrIgoPF0jvhPTpEZr_*}j)H#e8!e@!WCuu6A2Am)qsKQw^31R?g zOah9NAxM$oR7fK0^*f{rM39^AVFBg#Wu`Ld0|*$mWl?dqkq z$#B}bZaClc*X>9o)Fz>1gxf==Z7usP71)>wG^DAWO7S%fw4KIr&vTsoaJ^Q~b)3_= zSKM2pC|qy1{Pw2#=XyIB-BDkhz}_d1A9TB2LqNimGL#S#iv*RWY0Qw`S)_>wX>37G zUP8tY5llQe(*PX|5FF-h{sKXo#wuqv1d$puPf;$IYuI>*DPnqTh~B3;gE!#`ksSR? z`9|h(6r3 z1BLu1D_3go)TfK9)y`wrY59*N(yB$nyOxy5U)1bz@CyM}IPLV}JUSP_WOuPp< zB!BY|MP%4AL<$r;R^VLvraE$wefrrB@~=!x(5IAxN@>6bm@Nw)#FU^G71dz8V=kE( z41j1YSs#^b!HkOWW#jfsEQ*fr`=^ySqEZ>>l$-BqG`O)VlEf6kI@;{bpfv{Uq=(f{ z!yZ2B4JoHGzsq}u0(X6mb*9>!UF&8M@y6oCwfb%2+1uRS&$!9ES?_N)`b>k7+N?^( zm;Nn~wT;@J1X-KDeGyBUP2ay>-R-*m_CHa|jwxlQ?QT8Wr->L91gfGIRFL&aZxpc} z!^VmV35aP=$ZROEa~suQm%;KC*s&xMU%aQVx>0ecS1R$LHf?hL?5x2VQE`#VjHAfL z94(j{51GX3N1N8HjE|pBmfozbO`4ytR(J3EO=m`m5(8~xJJT$ncF0H~cxX2**Xf=3 zn>HFu`zT*KW_>%(0?M^bgS3?;MF-pVT5Z>9=O^#k!OZbdF{f9ciN*P7R^C7~TjX_e<2l<+1E)Cq=dwei6Wl%G^D*73A|^&(#PoOW zN3Pf2Lgw0@`y$vULLOQ3U2e9cS@?yJ1v-;OXE=WT41f1e-n(beZh3z}UAQCKN{5B6 hTo0++Ml8)73`KdOq;Sik*nE|Uv(tX8Ob0uD{u`!^PvHOn literal 0 HcmV?d00001 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.srs b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.srs new file mode 100644 index 0000000000000000000000000000000000000000..a7fea3b55729989dade87da612da4148724c893f GIT binary patch literal 4742 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 U-~s>u0RR6301`9(tzaeq0C|sZvj6}9 literal 0 HcmV?d00001 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.vhm b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.vhm new file mode 100644 index 0000000..6274441 --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.vhm @@ -0,0 +1,108 @@ +-- +-- Written by Synplicity +-- Product Version "M-2017.03L-SP1-1" +-- Program "Synplify Pro", Mapper "maplat, Build 1796R" +-- Fri May 10 14:33:15 2019 +-- + +-- +-- Written by Synplify Pro version Build 1796R +-- Fri May 10 14:33:15 2019 +-- + +-- +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; +library synplify; +use synplify.components.all; +library pmi; +use pmi.pmi_components.all; +library ecp5um; +use ecp5um.components.all; + +entity pll_200_125_100 is +port( + CLKI : in std_logic; + CLKOP : out std_logic; + CLKOS : out std_logic; + CLKOS2 : out std_logic; + LOCK : out std_logic); +end pll_200_125_100; + +architecture beh of pll_200_125_100 is + signal CLKOS3 : std_logic ; + signal INTLOCK : std_logic ; + signal CLKFB_T : std_logic ; + signal REFCLK : std_logic ; + signal GND : std_logic ; + signal VCC : std_logic ; +begin +GND_0: VLO port map ( + Z => GND); +VCC_0: VHI port map ( + Z => VCC); +PUR_INST: PUR port map ( + PUR => VCC); +GSR_INST: GSR port map ( + GSR => VCC); +PLLINST_0: EHXPLLL + generic map( + CLKI_DIV => 2, + CLKFB_DIV => 1, + CLKOP_DIV => 1, + CLKOS_DIV => 5, + CLKOS2_DIV => 4, + CLKOS3_DIV => 1, + CLKOP_ENABLE => "ENABLED", + CLKOS_ENABLE => "ENABLED", + CLKOS2_ENABLE => "ENABLED", + CLKOS3_ENABLE => "DISABLED", + CLKOP_CPHASE => 0, + CLKOS_CPHASE => 4, + CLKOS2_CPHASE => 3, + CLKOS3_CPHASE => 0, + CLKOP_FPHASE => 0, + CLKOS_FPHASE => 0, + CLKOS2_FPHASE => 0, + CLKOS3_FPHASE => 0, + FEEDBK_PATH => "INT_OS", + CLKOP_TRIM_POL => "FALLING", + CLKOP_TRIM_DELAY => 0, + CLKOS_TRIM_POL => "FALLING", + CLKOS_TRIM_DELAY => 0, + OUTDIVIDER_MUXA => "REFCLK", + OUTDIVIDER_MUXB => "DIVB", + OUTDIVIDER_MUXC => "DIVC", + OUTDIVIDER_MUXD => "DIVD", + PLL_LOCK_MODE => 0, + STDBY_ENABLE => "DISABLED", + DPHASE_SOURCE => "DISABLED", + PLLRST_ENA => "DISABLED", + INTFB_WAKE => "DISABLED" + ) + port map ( + CLKI => CLKI, + CLKFB => CLKFB_T, + PHASESEL1 => GND, + PHASESEL0 => GND, + PHASEDIR => GND, + PHASESTEP => GND, + PHASELOADREG => GND, + STDBY => GND, + PLLWAKESYNC => GND, + RST => GND, + ENCLKOP => GND, + ENCLKOS => GND, + ENCLKOS2 => GND, + ENCLKOS3 => GND, + CLKOP => CLKOP, + CLKOS => CLKOS, + CLKOS2 => CLKOS2, + CLKOS3 => CLKOS3, + LOCK => LOCK, + INTLOCK => INTLOCK, + REFCLK => REFCLK, + CLKINTFB => CLKFB_T); +end beh; + diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.vm b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.vm new file mode 100644 index 0000000..bae9f65 --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.vm @@ -0,0 +1,117 @@ +// +// Written by Synplify Pro +// Product Version "M-2017.03L-SP1-1" +// Program "Synplify Pro", Mapper "maplat, Build 1796R" +// Fri May 10 14:33:14 2019 +// +// Source file index table: +// Object locations will have the form : +// file 0 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd " +// file 1 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/snps_haps_pkg.vhd " +// file 2 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std1164.vhd " +// file 3 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/numeric.vhd " +// file 4 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/umr_capim.vhd " +// file 5 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/arith.vhd " +// file 6 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/unsigned.vhd " +// file 7 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/hyperents.vhd " +// file 8 "\/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.vhd " +// file 9 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd " +// file 10 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/nlconst.dat " +// file 11 "\/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.fdc " + +`timescale 100 ps/100 ps +(* NGD_DRC_MASK=1 *)module pll_200_125_100 ( + CLKI, + CLKOP, + CLKOS, + CLKOS2, + LOCK +) +; +input CLKI ; +output CLKOP ; +output CLKOS ; +output CLKOS2 ; +output LOCK ; +wire CLKI ; +wire CLKOP ; +wire CLKOS ; +wire CLKOS2 ; +wire LOCK ; +wire CLKOS3 ; +wire INTLOCK ; +wire CLKFB_t ; +wire REFCLK ; +wire GND ; +wire VCC ; + VLO GND_0 ( + .Z(GND) +); + VHI VCC_0 ( + .Z(VCC) +); + PUR PUR_INST ( + .PUR(VCC) +); + GSR GSR_INST ( + .GSR(VCC) +); +// @8:56 +(* LPF_RESISTOR="24" , ICP_CURRENT="13" , FREQUENCY_PIN_CLKI="200.000000" , FREQUENCY_PIN_CLKOP="200.000000" , FREQUENCY_PIN_CLKOS="100.000000" , FREQUENCY_PIN_CLKOS2="125.000000" *) EHXPLLL PLLInst_0 ( + .CLKI(CLKI), + .CLKFB(CLKFB_t), + .PHASESEL1(GND), + .PHASESEL0(GND), + .PHASEDIR(GND), + .PHASESTEP(GND), + .PHASELOADREG(GND), + .STDBY(GND), + .PLLWAKESYNC(GND), + .RST(GND), + .ENCLKOP(GND), + .ENCLKOS(GND), + .ENCLKOS2(GND), + .ENCLKOS3(GND), + .CLKOP(CLKOP), + .CLKOS(CLKOS), + .CLKOS2(CLKOS2), + .CLKOS3(CLKOS3), + .LOCK(LOCK), + .INTLOCK(INTLOCK), + .REFCLK(REFCLK), + .CLKINTFB(CLKFB_t) +); +defparam PLLInst_0.CLKI_DIV = 2; +defparam PLLInst_0.CLKFB_DIV = 1; +defparam PLLInst_0.CLKOP_DIV = 1; +defparam PLLInst_0.CLKOS_DIV = 5; +defparam PLLInst_0.CLKOS2_DIV = 4; +defparam PLLInst_0.CLKOS3_DIV = 1; +defparam PLLInst_0.CLKOP_ENABLE = "ENABLED"; +defparam PLLInst_0.CLKOS_ENABLE = "ENABLED"; +defparam PLLInst_0.CLKOS2_ENABLE = "ENABLED"; +defparam PLLInst_0.CLKOS3_ENABLE = "DISABLED"; +defparam PLLInst_0.CLKOP_CPHASE = 0; +defparam PLLInst_0.CLKOS_CPHASE = 4; +defparam PLLInst_0.CLKOS2_CPHASE = 3; +defparam PLLInst_0.CLKOS3_CPHASE = 0; +defparam PLLInst_0.CLKOP_FPHASE = 0; +defparam PLLInst_0.CLKOS_FPHASE = 0; +defparam PLLInst_0.CLKOS2_FPHASE = 0; +defparam PLLInst_0.CLKOS3_FPHASE = 0; +defparam PLLInst_0.FEEDBK_PATH = "INT_OS"; +defparam PLLInst_0.CLKOP_TRIM_POL = "FALLING"; +defparam PLLInst_0.CLKOP_TRIM_DELAY = 0; +defparam PLLInst_0.CLKOS_TRIM_POL = "FALLING"; +defparam PLLInst_0.CLKOS_TRIM_DELAY = 0; +defparam PLLInst_0.OUTDIVIDER_MUXA = "REFCLK"; +defparam PLLInst_0.OUTDIVIDER_MUXB = "DIVB"; +defparam PLLInst_0.OUTDIVIDER_MUXC = "DIVC"; +defparam PLLInst_0.OUTDIVIDER_MUXD = "DIVD"; +defparam PLLInst_0.PLL_LOCK_MODE = 0; +defparam PLLInst_0.STDBY_ENABLE = "DISABLED"; +defparam PLLInst_0.DPHASE_SOURCE = "DISABLED"; +defparam PLLInst_0.PLLRST_ENA = "DISABLED"; +defparam PLLInst_0.INTFB_WAKE = "DISABLED"; +endmodule /* pll_200_125_100 */ + diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100_cck.rpt.db b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100_cck.rpt.db new file mode 100644 index 0000000000000000000000000000000000000000..029fa7a6cf9014af50ee9d4aa843536a1f7b5c42 GIT binary patch literal 8192 zcmeI#JqyA>3DEQgKL*xDXO@ z%d=&(imfwzIG4G0Jf%J073BwWN1`{~f``Krs^Nta{J wY>_tId!-qqw)j}S$WL3iQGJ`s(T{)t1Rwwb2tWV=5P$##AOHafK;VZ3UKAiP82|tP literal 0 HcmV?d00001 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100_scck.rpt.db b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100_scck.rpt.db new file mode 100644 index 0000000000000000000000000000000000000000..029fa7a6cf9014af50ee9d4aa843536a1f7b5c42 GIT binary patch literal 8192 zcmeI#JqyA>3DEQgKL*xDXO@ z%d=&(imfwzIG4G0Jf%J073BwWN1`{~f``Krs^Nta{J wY>_tId!-qqw)j}S$WL3iQGJ`s(T{)t1Rwwb2tWV=5P$##AOHafK;VZ3UKAiP82|tP literal 0 HcmV?d00001 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100_synplify.lpf b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100_synplify.lpf new file mode 100644 index 0000000..8e445e1 --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100_synplify.lpf @@ -0,0 +1,20 @@ +# +# Logical Preferences generated for Lattice by Synplify maplat, Build 1796R. +# + +# Period Constraints + + +# Output Constraints + +# Input Constraints + +# Point-to-point Delay Constraints + + + +# Block Path Constraints + +BLOCK ASYNCPATHS; + +# End of generated Logical Preferences. diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100_synplify_tmp2.lpf b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100_synplify_tmp2.lpf new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100_synplify_tmp4.lpf b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100_synplify_tmp4.lpf new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100_synplify_tmp8.lpf b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100_synplify_tmp8.lpf new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/run_options.txt b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/run_options.txt new file mode 100644 index 0000000..f45a913 --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/run_options.txt @@ -0,0 +1,75 @@ +#-- Synopsys, Inc. +#-- Version M-2017.03L-SP1-1 +#-- Project file /home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/run_options.txt +#-- Written on Fri May 10 14:33:10 2019 + + +#project files +add_file -vhdl -lib work "/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.vhd" +add_file -fpga_constraint "/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.fdc" + + + +#implementation: "syn_results" +impl -add syn_results -type fpga + +# +#implementation attributes + +set_option -vlog_std v2001 + +#device options +set_option -technology ecp5um +set_option -part LFE5UM_25F +set_option -package MG285C +set_option -speed_grade -6 +set_option -part_companion "" + +#compilation/mapping options +set_option -top_module "pll_200_125_100" + +# hdl_compiler_options +set_option -distributed_compile 0 + +# mapper_without_write_options +set_option -frequency 100 +set_option -srs_instrumentation 1 + +# mapper_options +set_option -write_verilog 1 +set_option -write_vhdl 1 + +# Lattice XP +set_option -maxfan 50 +set_option -disable_io_insertion 1 +set_option -retiming 0 +set_option -pipe 0 +set_option -forcegsr false +set_option -fix_gated_and_generated_clocks 1 +set_option -rw_check_on_ram 1 +set_option -update_models_cp 0 +set_option -syn_edif_array_rename 1 +set_option -Write_declared_clocks_only 1 + +# NFilter +set_option -no_sequential_opt 0 + +# sequential_optimization_options +set_option -symbolic_fsm_compiler 1 + +# Compiler Options +set_option -compiler_compatible 0 +set_option -resource_sharing 1 + +# Compiler Options +set_option -auto_infer_blackbox 0 + +#automatic place and route (vendor) options +set_option -write_apr_constraint 1 + +#set result format/file last +project -result_file "./pll_200_125_100.edn" + +#set log file +set_option log_file "/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.srf" +impl -active "syn_results" diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/scemi_cfg.txt b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/scemi_cfg.txt new file mode 100644 index 0000000..868d437 --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/scemi_cfg.txt @@ -0,0 +1,3 @@ +## UMR3 MESSAGE PORT CONFIGURATION FILE +## ************************************ +XTOR_DPI_MSG_PORT_UMR_ADDR_VERSION=0 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/scratchproject.prs b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/scratchproject.prs new file mode 100644 index 0000000..6e19e6b --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/scratchproject.prs @@ -0,0 +1,73 @@ +#-- Synopsys, Inc. +#-- Version M-2017.03L-SP1-1 +#-- Project file /home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/scratchproject.prs + +#project files +add_file -vhdl -lib work "/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.vhd" +add_file -fpga_constraint "/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.fdc" + + + +#implementation: "syn_results" +impl -add /home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results -type fpga + +# +#implementation attributes + +set_option -vlog_std v2001 + +#device options +set_option -technology ecp5um +set_option -part LFE5UM_25F +set_option -package MG285C +set_option -speed_grade -6 +set_option -part_companion "" + +#compilation/mapping options +set_option -top_module "pll_200_125_100" + +# hdl_compiler_options +set_option -distributed_compile 0 + +# mapper_without_write_options +set_option -frequency 100 +set_option -srs_instrumentation 1 + +# mapper_options +set_option -write_verilog 1 +set_option -write_vhdl 1 + +# Lattice XP +set_option -maxfan 50 +set_option -disable_io_insertion 1 +set_option -retiming 0 +set_option -pipe 0 +set_option -forcegsr false +set_option -fix_gated_and_generated_clocks 1 +set_option -rw_check_on_ram 1 +set_option -update_models_cp 0 +set_option -syn_edif_array_rename 1 +set_option -Write_declared_clocks_only 1 + +# NFilter +set_option -no_sequential_opt 0 + +# sequential_optimization_options +set_option -symbolic_fsm_compiler 1 + +# Compiler Options +set_option -compiler_compatible 0 +set_option -resource_sharing 1 + +# Compiler Options +set_option -auto_infer_blackbox 0 + +#automatic place and route (vendor) options +set_option -write_apr_constraint 1 + +#set result format/file last +project -result_file "/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.edn" + +#set log file +set_option log_file "/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.srf" +impl -active "syn_results" diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/layer0.tlg.rptmap b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/layer0.tlg.rptmap new file mode 100644 index 0000000..3910cac --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/layer0.tlg.rptmap @@ -0,0 +1 @@ +./synwork/layer0.tlg,layer0.tlg,An incremental, partial HDL compilation log file that may allow early access to errors or other messages. diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_compiler.srr b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_compiler.srr new file mode 100644 index 0000000..4501cf1 --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_compiler.srr @@ -0,0 +1,51 @@ +Synopsys HDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Synopsys VHDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.vhd":12:7:12:21|Top entity is set to pll_200_125_100. +VHDL syntax check successful! +@N: CD630 :"/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.vhd":12:7:12:21|Synthesizing work.pll_200_125_100.structure. +@N: CD630 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":2083:10:2083:16|Synthesizing ecp5um.ehxplll.syn_black_box. +Post processing for ecp5um.ehxplll.syn_black_box +@N: CD630 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":832:10:832:12|Synthesizing ecp5um.vlo.syn_black_box. +Post processing for ecp5um.vlo.syn_black_box +@N: CD630 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":825:10:825:12|Synthesizing ecp5um.vhi.syn_black_box. +Post processing for ecp5um.vhi.syn_black_box +Post processing for work.pll_200_125_100.structure +@W: CL168 :"/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.vhd":50:4:50:17|Removing instance scuba_vhi_inst because it does not drive other instances. To preserve this instance, use the syn_noprune synthesis directive. + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 14:33:11 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 67MB peak: 68MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 14:33:11 2019 + +###########################################################] +@END + +At c_hdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 3MB peak: 4MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 14:33:11 2019 + +###########################################################] diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_compiler.srr.db b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_compiler.srr.db new file mode 100644 index 0000000000000000000000000000000000000000..b43ab41e45c47969ad26458f91fdda0c85ae5af4 GIT binary patch literal 8192 zcmeH~%}x|S5XWa11QT757{kGkbnu`?oSqN%BkMsCi5D&c7f+j>nSyC|rhDw}S-@~v zPR1wjHGCGI#+x8Rmie(IpD{NIf^=lPG%4a}-7e{t|*hb3SMSOS)SC143y0+xU!UpvM^#&>LRUr~V%t{S}8x7k@v29&R2htNPx$J698+Fvg;j*T`S;T(OZ6mpE;9nMd zELGo~w#K9lTy0btn^M8#4?V+s|M2nKN^Lv%gX+RIqS_?my7B`=*Fi1eNDN?kVo4dE T1HpEXS!uWw#9(*maXI}2tvZET literal 0 HcmV?d00001 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_compiler.srr.rptmap b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_compiler.srr.rptmap new file mode 100644 index 0000000..4edadfd --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_compiler.srr.rptmap @@ -0,0 +1 @@ +./synlog/pll_200_125_100_compiler.srr,pll_200_125_100_compiler.srr,Compile Log diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_fpga_mapper.srr b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_fpga_mapper.srr new file mode 100644 index 0000000..fbbc4b8 --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_fpga_mapper.srr @@ -0,0 +1,265 @@ +# Fri May 10 14:33:13 2019 + +Synopsys Lattice Technology Mapper, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 113MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 115MB) + + + +Starting Optimization and Mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Available hyper_sources - for debug and ip models + None Found + + +Finished RTL optimizations (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Starting factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Finished factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Starting gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Finished gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Finished generic timing optimizations - Pass 1 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Starting Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished generic timing optimizations - Pass 2 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished preparing to map (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished technology mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + +Pass CPU time Worst Slack Luts / Registers +------------------------------------------------------------ + +Finished technology timing optimizations and critical path resynthesis (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + +@N: FX164 |The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute. + +Finished restoring hierarchy (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + + +@S |Clock Optimization Summary + + +#### START OF CLOCK OPTIMIZATION REPORT #####[ + +0 non-gated/non-generated clock tree(s) driving 0 clock pin(s) of sequential element(s) +0 gated/generated clock tree(s) driving 0 clock pin(s) of sequential element(s) +0 instances converted, 0 sequential instances remain driven by gated/generated clocks + + + +##### END OF CLOCK OPTIMIZATION REPORT ######] + + +Start Writing Netlists (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 106MB peak: 143MB) + +Writing Analyst data base /home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/pll_200_125_100_m.srm + +Finished Writing Netlist Databases (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + +Writing EDIF Netlist and constraint files +@N: FX1056 |Writing EDF file: /home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.edn +M-2017.03L-SP1-1 +@N: BW106 |Synplicity Constraint File capacitance units using default value of 1pF + +Finished Writing EDIF Netlist and constraint files (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 144MB peak: 146MB) + +Writing Verilog Simulation files + +Finished Writing Verilog Simulation files (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 144MB peak: 146MB) + +Writing VHDL Simulation files + +Finished Writing VHDL Simulation files (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 145MB peak: 146MB) + + +Start final timing analysis (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 145MB peak: 146MB) + +@W: MT246 :"/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.vhd":56:4:56:12|Blackbox EHXPLLL is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) + + +##### START OF TIMING REPORT #####[ +# Timing Report written on Fri May 10 14:33:15 2019 +# + + +Top view: pll_200_125_100 +Requested Frequency: 100.0 MHz +Wire load mode: top +Paths requested: 5 +Constraint File(s): /home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.fdc + +@N: MT320 |This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. + +@N: MT322 |Clock constraints include only register-to-register paths associated with each individual clock. + + + +Performance Summary +******************* + + +Worst slack in design: 10.000 + +@N: MT286 |System clock period 0.000 stretches to negative invalid value -- ignoring stretching. + Requested Estimated Requested Estimated Clock Clock +Starting Clock Frequency Frequency Period Period Slack Type Group +---------------------------------------------------------------------------------------------------------------- +System 100.0 MHz NA 10.000 0.000 10.000 system system_clkgroup +================================================================================================================ +Estimated period and frequency reported as NA means no slack depends directly on the clock waveform + + + + + +Clock Relationships +******************* + +Clocks | rise to rise | fall to fall | rise to fall | fall to rise +--------------------------------------------------------------------------------------------------------- +Starting Ending | constraint slack | constraint slack | constraint slack | constraint slack +--------------------------------------------------------------------------------------------------------- +System System | 10.000 10.000 | No paths - | No paths - | No paths - +========================================================================================================= + Note: 'No paths' indicates there are no paths in the design for that pair of clock edges. + 'Diff grp' indicates that paths exist but the starting clock and ending clock are in different clock groups. + + + +Interface Information +********************* + +No IO constraint found + + + +==================================== +Detailed Report for Clock: System +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +----------------------------------------------------------------------------------- +PLLInst_0 System EHXPLLL CLKINTFB CLKFB_t 0.000 10.000 +=================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------- +PLLInst_0 System EHXPLLL CLKFB CLKFB_t 10.000 10.000 +================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.000 + + Clock delay at ending point: 0.000 (ideal) + + Estimated clock delay at ending point: 0.000 + = Required time: 10.000 + + - Propagation time: 0.000 + - Clock delay at starting point: 0.000 (ideal) + - Estimated clock delay at start point: -0.000 + = Slack (critical) : 10.000 + + Number of logic level(s): 0 + Starting point: PLLInst_0 / CLKINTFB + Ending point: PLLInst_0 / CLKFB + The start point is clocked by System [rising] + The end point is clocked by System [rising] + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +------------------------------------------------------------------------------------ +PLLInst_0 EHXPLLL CLKINTFB Out 0.000 0.000 - +CLKFB_t Net - - - - 1 +PLLInst_0 EHXPLLL CLKFB In 0.000 0.000 - +==================================================================================== + + + +##### END OF TIMING REPORT #####] + +Timing exceptions that could not be applied +None + +Finished final timing analysis (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 146MB peak: 146MB) + + +Finished timing report (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 146MB peak: 146MB) + +--------------------------------------- +Resource Usage Report +Part: lfe5um_25f-6 + +Register bits: 0 of 24288 (0%) +PIC Latch: 0 +I/O cells: 0 + + +Details: +EHXPLLL: 1 +GSR: 1 +PUR: 1 +VHI: 1 +VLO: 1 +Mapper successful! + +At Mapper Exit (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 33MB peak: 146MB) + +Process took 0h:00m:02s realtime, 0h:00m:02s cputime +# Fri May 10 14:33:15 2019 + +###########################################################] diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_fpga_mapper.srr.db b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_fpga_mapper.srr.db new file mode 100644 index 0000000000000000000000000000000000000000..b870b13d4949eba0a1365bfb82d753f885ed911c GIT binary patch literal 8192 zcmeH~&u`l{6vt(+YZ|m}wgG`L3;`Z;N`TsyU0W;C%aY9A2Dn(77-+E`3|e}UxJaZx zQf|GQa~k&F?Xttp`xAEAZI7~?30*-(q;0QPZj({WJ2si?c zfFs}tI0FB30;aLkJ~(KspBuKwFh{Lff_i&xo?nhnXJeS1o=wNF9X;X^ESU;Zrk+5? z#r0jUo^m&E&Bb3P7qpTKb8NrOcORzS-Y==;>f^UU>+mAiIp-_cfUc zvob=EB3psNgi|D{V`OK04+S%+2Bx(PIWri+TW(T77N)c~;!7TtEZf9h`&@srLr!m6 z8>jv(%v4Th`Av9x9fG88T|xG zjbKuQ$;DTvutX8j%=c|qN|1l0zWdNhNl8=5dfsOpuAK%;gv~{z)-<-Ve`=j8M;>IRD{>v z&F}>N(=zCln5#{K@0X~Hk=Vpkeqi&xszM5eGZK-dWkE_3JMF-&^zH7bME1?MXT)FI zoM3?{Ko=PDn5xx&_CS9TC29A+dbZ7eAKw# bZauf22g7HVrLc9k^Mhe$!3|ic)w|?REE2@l literal 0 HcmV?d00001 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_fpga_mapper.szr b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_fpga_mapper.szr new file mode 100644 index 0000000000000000000000000000000000000000..1d25a896a07de1ae0a861794aa0e09931330c866 GIT binary patch literal 6127 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 BCL90& literal 0 HcmV?d00001 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_multi_srs_gen.srr b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_multi_srs_gen.srr new file mode 100644 index 0000000..667ebaf --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_multi_srs_gen.srr @@ -0,0 +1,11 @@ +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 67MB peak: 68MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 14:33:12 2019 + +###########################################################] diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_multi_srs_gen.srr.db b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_multi_srs_gen.srr.db new file mode 100644 index 0000000000000000000000000000000000000000..029fa7a6cf9014af50ee9d4aa843536a1f7b5c42 GIT binary patch literal 8192 zcmeI#JqyA>3DEQgKL*xDXO@ z%d=&(imfwzIG4G0Jf%J073BwWN1`{~f``Krs^Nta{J wY>_tId!-qqw)j}S$WL3iQGJ`s(T{)t1Rwwb2tWV=5P$##AOHafK;VZ3UKAiP82|tP literal 0 HcmV?d00001 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_premap.srr b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_premap.srr new file mode 100644 index 0000000..889cbd5 --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_premap.srr @@ -0,0 +1,63 @@ +# Fri May 10 14:33:12 2019 + +Synopsys Lattice Technology Pre-mapping, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + +Reading constraint file: /home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.fdc +@L: /home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100_scck.rpt +Printing clock summary report in "/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100_scck.rpt" file +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 101MB peak: 103MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 101MB peak: 103MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 114MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 116MB) + +ICG Latch Removal Summary: +Number of ICG latches removed: 0 +Number of ICG latches not removed: 0 +syn_allowed_resources : blockrams=56 set on top level netlist pll_200_125_100 + +Finished netlist restructuring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + + +Clock Summary +****************** + + Start Requested Requested Clock Clock Clock +Level Clock Frequency Period Type Group Load +------------------------------------------------------------------------------------- +0 - System 100.0 MHz 10.000 system system_clkgroup 0 +===================================================================================== + +Finished Pre Mapping Phase. + +Starting constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished constraint checker preprocessing (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + +None +None + +Finished constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + +Pre-mapping successful! + +At Mapper Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 56MB peak: 143MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime +# Fri May 10 14:33:13 2019 + +###########################################################] diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_premap.srr.db b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_premap.srr.db new file mode 100644 index 0000000000000000000000000000000000000000..d3d49fbbcb447f8a3dbecf9cf1e7bbb3fb033d75 GIT binary patch literal 8192 zcmeI#F;Buk6bJBYV`L(@7$%YzCP;)tC5;J-NN~bIWMgPb`zR;v9cfRaBb)I9`d!?- zLkMoh+5by>ukY@)O@7;ZxF1Wyw9rK!8M+iF!t=y6kr2Y)-8OB*v+L3B*(F#17QX0w zzEy3PS9=%sLO=il5P$##AOHafKmY;|fB*#kxq$I1^+v4>I-oAHSDyDgc}b5z93s5qlcs@0*|wH!89QvGON+c%{$Z8w|ywV9}W*aZOr2tWV= z5P$##AOHafKmY;|fWTh`Uj0hFx|yB&ceg3fc7^iwFP!0000016+-<4#F@DM0dWzOE-kmN?n+`urjenX=B=;w25qk1mfdK zk;;H{me1DHT~$?(IVlagZSwXSBJH~F{Ju;af;YQ)FA=bU?}lPpsrO>~)_H=tsftk9)3L#a8Rr6uF8 z1R1?8Ir#IWpmf}KQck-N#=p9o&gwFRyRo}I>vEHNU^3&($td)517&O!sFJmkmzJh? z0!poHG;2{-T^)|g&5HTlEWxtUNZs4xuA{LC-C%4dx#Jo*7VKXV;i&o9;0sYGpM>W* z7Kzu3N-Z{H!|;LV~j*L8qK_-Gr&!$niTWoq`^uLg{4} zrlFhFl)^excp8gFoeD2ePUSe%P3u_~PD9lc5n1e`ZBwpM-sV)4HW^J28FabiX;v}< z2}B8&mlXeVI!<}F#s}+^_tq^9%R82!X9N&x%Tf)5IG;Q(KiY>69i27$SRG5kgOa`j zc?z9~s;51DghdRY5DIkJ;)CG3-NdG?%_UWTq_=oUt>F+sLB0z`YuYwt5h&-PYA~&RG4MxiovDM1M`+C z(hE%DA#r*#QRz>4puNOYF(I%3cdB72Z}o>ksmhj1Zn-WUh^Vb9jaY}O?pDW}aX!zM zmH;c4eJLFWQ+jZ-s*k5%VlM4t*9xeLQ&hx#Z*7VV(mWBYCXpJ<$c!?v<;+3JqxF(v zR3=d8?v96Jc;0jIV{Wog=E)ErS7mY!tSrub zGGOCy4%Ltl7375H*``4Yd+vLBA-$gi5z zU&qB8JbX$z$CEIC*=F@U{xCn|Mr&>5Z-X{e_8LGd?&{r1qdDSc#i28Uajl(d>U|CXP4Ol6(Y}Aj{KG7pdGpkXrxgJhy1!oB=FYjeKTPC1*o_yq`k_0 z%TXWovKIJc?{c%>;}O*%{wwwaPFG0FJPGT|`DQj>XMUmbA?fCj z^8~YmjP&(3(aKQrozQY-I*WF}cF&_Gb0ROWZTPAu8&o1?_H9~trmDl*NJEz31l4*K0Q~3!M4-K z!^mILS+ToIK;j*UJCFUy5Zp%mzpXVpEM(QwjC}_h2XodNng|z>0Lc#l_oy&oywE_` z5DT7(2E#mtFlQk=yT-*EjTeMol+1bv0&f924{ZC45Fb@O>VP91fRqgKdA$ww5ump? z8Qbfl>}ht#k9S%-@@+8+N%TOJJhXctKef){8D3w!`6P$73S#Q%!bIaP^$F&N6Enir zA0f=`1lQEgj-F;bI~eaZQYbs-glip5JD_F~zBo^7tk-uurS@v%sm^XBX%NN1sK+h- zPxnXiNW>=%gf!Vcrfp~`aE@0bZauoDr9RRPNRU9e#8v*eYmIj_mo$;3oppVjRVelzX`l;7!a^LXbA7*}mcS}@kdk|-I4GG$Ey zy6KKrBj>GOQW{D;GDl?P+pnG^2fRlg*JsIwLq@-^CqJ4mD=r%}OAVjlYJDyAjS zeC-)7UQ1_5ph@mg@ifjw@&1X0EVrhUboYZKIn$mNmZ^nw2NUe6mZfj=?A!YfW*Oc+_JAk4-H*>+ z4=;dFCB_bwsTZst4b`r@tC_n7?qY)?^NN|jgZrPcu4y!bYk_G? zjM3hk>w&zrWz|8J(e){feuA!5hU;XFD^MmgR|-DRpRX00clU0}4|BbPma#sQ|H$xHzNK;aCgCw^{>A<0 zcDDJ`UdB8SS@}e%cRGtTOXCkiq`~{|&tGHj{5Y1~{7#tDXzLuq3hViNy{@Ng3|W1d z{r>+y|Ag!)9i{Ka9E|!uuP}sl2rt=+*hTmDjAhw>0RRC1|Kf5`-~s>u0RR630G1t~ IUlSSt02(+dTmS$7 literal 0 HcmV?d00001 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/metrics.db b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/metrics.db new file mode 100644 index 0000000000000000000000000000000000000000..96e5995222389d9f350f76d62fee6c792305865b GIT binary patch literal 20480 zcmeI3%Wm676oyG#wkQ*ns3*uDA9_Lit* zla-56^QrWV=)2n6bM++=N~3*mH14}WPmYE?<(qgkd>S=J11}0gsm8Rr+7Dg*d?%A^ zMo}PLwR-UNbaA0twGV4)j9w6V`wcHreW_zVQb)&y$+(X$pUNGan<_3WE!l@F=^f~v zBAPNkO;5&~&z?${Yj$y=T(%D@X_$MhfG~$$KagYHsmXB1R!$@2G&kp;TKrf3g6~oX z4Fo^{1V8`;KmY_l00ck)1V8`;J~{&H1&5XA8T+neBI5>)Hl^}$t+tyCgzAM&sYTQl zcfQ>gzUuajNDZpf4y$m+zRJDAsMSmSj=JUZ*QXp-CG(vUP55nJwi@s75P4OhwP`zS zmEwCca(%xLhYCslKg&O{`0xA|{*pKO1`W_a00ck)1V8`;KmY_l00ck)1VG^bOJH@@ zVN1(PWmfVim8bm$S1;G=8@2Uov82rst+?IoxQ)>5cBTG&#$n5;sg`b#*#NF{Y5A~GYRrHt=U zCVho2@MuCmT{`{(CunsFd9d>(FZuA{-vz58Rn0Dv_Kpks0VV56(4C3voDlSTXx^aA z{yb-k_e;LlX=rI&U(vIWRR>0o!QET8Mc^85PsV~C8bQT_s4rVzP`+O#@7uX|I(edV z?wI8NHh*K$4-EuB00ck)1V8`;KmY_l00ck)1VG?JBCwiN16Jl~C&Qyi$3{F1TyMX& MmhU@I<2xDt0w`XR1poj5 literal 0 HcmV?d00001 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_compiler_notes.txt b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_compiler_notes.txt new file mode 100644 index 0000000..38e4cd2 --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_compiler_notes.txt @@ -0,0 +1,10 @@ +@N|Running in 64-bit mode +@N|Running in 64-bit mode +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.vhd":12:7:12:21|Top entity is set to pll_200_125_100. +@N: CD630 :"/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.vhd":12:7:12:21|Synthesizing work.pll_200_125_100.structure. +@N: CD630 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":2083:10:2083:16|Synthesizing ecp5um.ehxplll.syn_black_box. +@N: CD630 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":832:10:832:12|Synthesizing ecp5um.vlo.syn_black_box. +@N: CD630 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":825:10:825:12|Synthesizing ecp5um.vhi.syn_black_box. +@N|Running in 64-bit mode + diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_compiler_runstatus.xml b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_compiler_runstatus.xml new file mode 100644 index 0000000..e391e16 --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_compiler_runstatus.xml @@ -0,0 +1,41 @@ + + + + + + /home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_compiler.srr + Synopsys HDL Compiler + + + Completed + + + + 9 + /home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_compiler_notes.txt + + + 1 + /home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_compiler_warnings.txt + + + 0 + /home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_compiler_errors.txt + + + - + + + 00h:00m:01s + + + - + + + 1557491591 + + + \ No newline at end of file diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_compiler_warnings.txt b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_compiler_warnings.txt new file mode 100644 index 0000000..25c435b --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_compiler_warnings.txt @@ -0,0 +1,2 @@ +@W: CL168 :"/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.vhd":50:4:50:17|Removing instance scuba_vhi_inst because it does not drive other instances. To preserve this instance, use the syn_noprune synthesis directive. + diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_fpga_mapper_area_report.xml b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_fpga_mapper_area_report.xml new file mode 100644 index 0000000..243c347 --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_fpga_mapper_area_report.xml @@ -0,0 +1,26 @@ + + + + +/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_fpga_mapper_resourceusage.rpt +Resource Usage + + +0 + + +0 + + +0 + + +0 + + +0 + + diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_fpga_mapper_errors.txt b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_fpga_mapper_errors.txt new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_fpga_mapper_notes.txt b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_fpga_mapper_notes.txt new file mode 100644 index 0000000..5e801a0 --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_fpga_mapper_notes.txt @@ -0,0 +1,8 @@ +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) +@N: FX164 |The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute. +@N: FX1056 |Writing EDF file: /home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.edn +@N: BW106 |Synplicity Constraint File capacitance units using default value of 1pF +@N: MT320 |This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. +@N: MT322 |Clock constraints include only register-to-register paths associated with each individual clock. +@N: MT286 |System clock period 0.000 stretches to negative invalid value -- ignoring stretching. diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_fpga_mapper_opt_report.xml b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_fpga_mapper_opt_report.xml new file mode 100644 index 0000000..7832235 --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_fpga_mapper_opt_report.xml @@ -0,0 +1,14 @@ + + + + +0 / 0 + +/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_fpga_mapper_combined_clk.rpt +START OF CLOCK OPTIMIZATION REPORT + + + diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_fpga_mapper_runstatus.xml b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_fpga_mapper_runstatus.xml new file mode 100644 index 0000000..b0bf07a --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_fpga_mapper_runstatus.xml @@ -0,0 +1,46 @@ + + + + +/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_fpga_mapper.srr +Synopsys Lattice Technology Mapper + + +Completed + + + +8 + +/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_fpga_mapper_notes.txt + + + +1 + +/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_fpga_mapper_warnings.txt + + + +0 + +/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_fpga_mapper_errors.txt + + + +0h:00m:02s + + +0h:00m:02s + + +146MB + + +1557491595 + + + diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_fpga_mapper_timing_report.xml b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_fpga_mapper_timing_report.xml new file mode 100644 index 0000000..60b8b51 --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_fpga_mapper_timing_report.xml @@ -0,0 +1,23 @@ + + + + +/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_fpga_mapper.srr +START OF TIMING REPORT + + +Clock Name +Req Freq +Est Freq +Slack + + +System +100.0 MHz +NA +10.000 + + diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_fpga_mapper_warnings.txt b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_fpga_mapper_warnings.txt new file mode 100644 index 0000000..ebff314 --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_fpga_mapper_warnings.txt @@ -0,0 +1 @@ +@W: MT246 :"/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.vhd":56:4:56:12|Blackbox EHXPLLL is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_premap_errors.txt b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_premap_errors.txt new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_premap_notes.txt b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_premap_notes.txt new file mode 100644 index 0000000..eed8756 --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_premap_notes.txt @@ -0,0 +1,2 @@ +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_premap_runstatus.xml b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_premap_runstatus.xml new file mode 100644 index 0000000..00fedf8 --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_premap_runstatus.xml @@ -0,0 +1,46 @@ + + + + +/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/pll_200_125_100_premap.srr +Synopsys Lattice Technology Pre-mapping + + +Completed + + + +2 + +/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_premap_notes.txt + + + +0 + +/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_premap_warnings.txt + + + +0 + +/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_premap_errors.txt + + + +0h:00m:00s + + +0h:00m:00s + + +143MB + + +1557491593 + + + diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_premap_warnings.txt b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/report/pll_200_125_100_premap_warnings.txt new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/syntax_constraint_check.rpt.rptmap b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/syntax_constraint_check.rpt.rptmap new file mode 100644 index 0000000..0213fed --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synlog/syntax_constraint_check.rpt.rptmap @@ -0,0 +1 @@ +./pll_200_125_100_scck.rpt,syntax_constraint_check.rpt,Syntax Constraint Check Report diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/syntmp/closed.png b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/syntmp/closed.png new file mode 100644 index 0000000000000000000000000000000000000000..0d78634f322a904e7bd0c9466498c0a42777589f GIT binary patch literal 3672 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

    +
    +#Build: Synplify Pro (R) M-2017.03L-SP1-1, Build 086R, Aug  4 2017
    +#install: /home/soft/lattice/diamond/3.10_x64/synpbase
    +#OS: Linux 
    +#Hostname: lxhadeb07
    +
    +# Fri May 10 14:33:10 2019
    +
    +#Implementation: syn_results
    +
    +Synopsys HDL Compiler, version comp2017q2p1, Build 190R, built Aug  4 2017
    +@N: :  | Running in 64-bit mode 
    +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited.
    +
    +Synopsys VHDL Compiler, version comp2017q2p1, Build 190R, built Aug  4 2017
    +@N: :  | Running in 64-bit mode 
    +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited.
    +
    +Running on host :lxhadeb07
    +@N:CD720 : std.vhd(123) | Setting time resolution to ps
    +@N: : pll_200_125_100.vhd(12) | Top entity is set to pll_200_125_100.
    +VHDL syntax check successful!
    +@N:CD630 : pll_200_125_100.vhd(12) | Synthesizing work.pll_200_125_100.structure.
    +@N:CD630 : ecp5um.vhd(2083) | Synthesizing ecp5um.ehxplll.syn_black_box.
    +Post processing for ecp5um.ehxplll.syn_black_box
    +@N:CD630 : ecp5um.vhd(832) | Synthesizing ecp5um.vlo.syn_black_box.
    +Post processing for ecp5um.vlo.syn_black_box
    +@N:CD630 : ecp5um.vhd(825) | Synthesizing ecp5um.vhi.syn_black_box.
    +Post processing for ecp5um.vhi.syn_black_box
    +Post processing for work.pll_200_125_100.structure
    +@W:CL168 : pll_200_125_100.vhd(50) | Removing instance scuba_vhi_inst because it does not drive other instances. To preserve this instance, use the syn_noprune synthesis directive.
    +
    +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB)
    +
    +Process took 0h:00m:01s realtime, 0h:00m:01s cputime
    +
    +Process completed successfully.
    +# Fri May 10 14:33:11 2019
    +
    +###########################################################]
    +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug  4 2017
    +@N: :  | Running in 64-bit mode 
    +
    +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 67MB peak: 68MB)
    +
    +Process took 0h:00m:01s realtime, 0h:00m:01s cputime
    +
    +Process completed successfully.
    +# Fri May 10 14:33:11 2019
    +
    +###########################################################]
    +@END
    +
    +At c_hdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 3MB peak: 4MB)
    +
    +Process took 0h:00m:01s realtime, 0h:00m:01s cputime
    +
    +Process completed successfully.
    +# Fri May 10 14:33:11 2019
    +
    +###########################################################]
    +
    +
    +
    +
    +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug  4 2017
    +@N: :  | Running in 64-bit mode 
    +
    +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 67MB peak: 68MB)
    +
    +Process took 0h:00m:01s realtime, 0h:00m:01s cputime
    +
    +Process completed successfully.
    +# Fri May 10 14:33:12 2019
    +
    +###########################################################]
    +
    +
    +
    +
    +Pre-mapping Report
    +
    +
    +
    +
    +
    +# Fri May 10 14:33:12 2019
    +
    +Synopsys Lattice Technology Pre-mapping, Version maplat, Build 1796R, Built Aug  4 2017 09:36:35
    +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited.
    +Product Version M-2017.03L-SP1-1
    +
    +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB)
    +
    +Reading constraint file: /home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.fdc
    +Linked File: pll_200_125_100_scck.rpt
    +Printing clock  summary report in "/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100_scck.rpt" file 
    +@N:MF248 :  | Running in 64-bit mode. 
    +@N:MF666 :  | Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) 
    +
    +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 101MB peak: 103MB)
    +
    +
    +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 101MB peak: 103MB)
    +
    +
    +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 114MB)
    +
    +
    +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 116MB)
    +
    +ICG Latch Removal Summary:
    +Number of ICG latches removed:	0
    +Number of ICG latches not removed:	0
    +syn_allowed_resources : blockrams=56  set on top level netlist pll_200_125_100
    +
    +Finished netlist restructuring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB)
    +
    +
    +
    +Clock Summary
    +******************
    +
    +          Start      Requested     Requested     Clock      Clock               Clock
    +Level     Clock      Frequency     Period        Type       Group               Load 
    +-------------------------------------------------------------------------------------
    +0 -       System     100.0 MHz     10.000        system     system_clkgroup     0    
    +=====================================================================================
    +
    +Finished Pre Mapping Phase.
    +
    +Starting constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB)
    +
    +
    +Finished constraint checker preprocessing (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB)
    +
    +None
    +None
    +
    +Finished constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB)
    +
    +Pre-mapping successful!
    +
    +At Mapper Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 56MB peak: 143MB)
    +
    +Process took 0h:00m:01s realtime, 0h:00m:01s cputime
    +# Fri May 10 14:33:13 2019
    +
    +###########################################################]
    +
    +
    +
    +
    +Map & Optimize Report
    +
    +
    +
    +
    +
    +# Fri May 10 14:33:13 2019
    +
    +Synopsys Lattice Technology Mapper, Version maplat, Build 1796R, Built Aug  4 2017 09:36:35
    +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited.
    +Product Version M-2017.03L-SP1-1
    +
    +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB)
    +
    +@N:MF248 :  | Running in 64-bit mode. 
    +@N:MF666 :  | Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) 
    +
    +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB)
    +
    +
    +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB)
    +
    +
    +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 113MB)
    +
    +
    +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 115MB)
    +
    +
    +
    +Starting Optimization and Mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB)
    +
    +
    +Available hyper_sources - for debug and ip models
    +	None Found
    +
    +
    +Finished RTL optimizations (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB)
    +
    +
    +Starting factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB)
    +
    +
    +Finished factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB)
    +
    +
    +Starting gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB)
    +
    +
    +Finished gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB)
    +
    +
    +Finished generic timing optimizations - Pass 1 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB)
    +
    +
    +Starting Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB)
    +
    +
    +Finished Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB)
    +
    +
    +Finished generic timing optimizations - Pass 2 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB)
    +
    +
    +Finished preparing to map (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB)
    +
    +
    +Finished technology mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB)
    +
    +Pass		 CPU time		Worst Slack		Luts / Registers
    +------------------------------------------------------------
    +
    +Finished technology timing optimizations and critical path resynthesis (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB)
    +
    +@N:FX164 :  | The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute.   
    +
    +Finished restoring hierarchy (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB)
    +
    +
    +
    +@S |Clock Optimization Summary
    +
    +
    +#### START OF CLOCK OPTIMIZATION REPORT #####[
    +
    +0 non-gated/non-generated clock tree(s) driving 0 clock pin(s) of sequential element(s)
    +0 gated/generated clock tree(s) driving 0 clock pin(s) of sequential element(s)
    +0 instances converted, 0 sequential instances remain driven by gated/generated clocks
    +
    +
    +
    +##### END OF CLOCK OPTIMIZATION REPORT ######]
    +
    +
    +Start Writing Netlists (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 106MB peak: 143MB)
    +
    +Writing Analyst data base /home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/pll_200_125_100_m.srm
    +
    +Finished Writing Netlist Databases (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB)
    +
    +Writing EDIF Netlist and constraint files
    +@N:FX1056 :  | Writing EDF file: /home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/pll_200_125_100.edn 
    +M-2017.03L-SP1-1
    +@N:BW106 :  | Synplicity Constraint File capacitance units using default value of 1pF  
    +
    +Finished Writing EDIF Netlist and constraint files (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 144MB peak: 146MB)
    +
    +Writing Verilog Simulation files
    +
    +Finished Writing Verilog Simulation files (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 144MB peak: 146MB)
    +
    +Writing VHDL Simulation files
    +
    +Finished Writing VHDL Simulation files (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 145MB peak: 146MB)
    +
    +
    +Start final timing analysis (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 145MB peak: 146MB)
    +
    +@W:MT246 : pll_200_125_100.vhd(56) | Blackbox EHXPLLL is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) 
    +
    +
    +##### START OF TIMING REPORT #####[
    +# Timing Report written on Fri May 10 14:33:15 2019
    +#
    +
    +
    +Top view:               pll_200_125_100
    +Requested Frequency:    100.0 MHz
    +Wire load mode:         top
    +Paths requested:        5
    +Constraint File(s):    /home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.fdc
    +                       
    +@N:MT320 :  | This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. 
    +
    +@N:MT322 :  | Clock constraints include only register-to-register paths associated with each individual clock. 
    +
    +
    +
    +Performance Summary
    +*******************
    +
    +
    +Worst slack in design: 10.000
    +
    +@N:MT286 :  | System clock period 0.000 stretches to negative invalid value -- ignoring stretching. 
    +                   Requested     Estimated     Requested     Estimated                Clock      Clock          
    +Starting Clock     Frequency     Frequency     Period        Period        Slack      Type       Group          
    +----------------------------------------------------------------------------------------------------------------
    +System             100.0 MHz     NA            10.000        0.000         10.000     system     system_clkgroup
    +================================================================================================================
    +Estimated period and frequency reported as NA means no slack depends directly on the clock waveform
    +
    +
    +
    +
    +
    +Clock Relationships
    +*******************
    +
    +Clocks            |    rise  to  rise    |    fall  to  fall   |    rise  to  fall   |    fall  to  rise 
    +---------------------------------------------------------------------------------------------------------
    +Starting  Ending  |  constraint  slack   |  constraint  slack  |  constraint  slack  |  constraint  slack
    +---------------------------------------------------------------------------------------------------------
    +System    System  |  10.000      10.000  |  No paths    -      |  No paths    -      |  No paths    -    
    +=========================================================================================================
    + Note: 'No paths' indicates there are no paths in the design for that pair of clock edges.
    +       'Diff grp' indicates that paths exist but the starting clock and ending clock are in different clock groups.
    +
    +
    +
    +Interface Information 
    +*********************
    +
    +No IO constraint found
    +
    +
    +
    +====================================
    +Detailed Report for Clock: System
    +====================================
    +
    +
    +
    +Starting Points with Worst Slack
    +********************************
    +
    +              Starting                                           Arrival           
    +Instance      Reference     Type        Pin          Net         Time        Slack 
    +              Clock                                                                
    +-----------------------------------------------------------------------------------
    +PLLInst_0     System        EHXPLLL     CLKINTFB     CLKFB_t     0.000       10.000
    +===================================================================================
    +
    +
    +Ending Points with Worst Slack
    +******************************
    +
    +              Starting                                        Required           
    +Instance      Reference     Type        Pin       Net         Time         Slack 
    +              Clock                                                              
    +---------------------------------------------------------------------------------
    +PLLInst_0     System        EHXPLLL     CLKFB     CLKFB_t     10.000       10.000
    +=================================================================================
    +
    +
    +
    +Worst Path Information
    +View Worst Path in Analyst
    +***********************
    +
    +
    +Path information for path number 1: 
    +      Requested Period:                      10.000
    +    - Setup time:                            0.000
    +    + Clock delay at ending point:           0.000 (ideal)
    +    + Estimated clock delay at ending point: 0.000
    +    = Required time:                         10.000
    +
    +    - Propagation time:                      0.000
    +    - Clock delay at starting point:         0.000 (ideal)
    +    - Estimated clock delay at start point:  -0.000
    +    = Slack (critical) :                     10.000
    +
    +    Number of logic level(s):                0
    +    Starting point:                          PLLInst_0 / CLKINTFB
    +    Ending point:                            PLLInst_0 / CLKFB
    +    The start point is clocked by            System [rising]
    +    The end   point is clocked by            System [rising]
    +
    +Instance / Net                 Pin          Pin               Arrival     No. of    
    +Name               Type        Name         Dir     Delay     Time        Fan Out(s)
    +------------------------------------------------------------------------------------
    +PLLInst_0          EHXPLLL     CLKINTFB     Out     0.000     0.000       -         
    +CLKFB_t            Net         -            -       -         -           1         
    +PLLInst_0          EHXPLLL     CLKFB        In      0.000     0.000       -         
    +====================================================================================
    +
    +
    +
    +##### END OF TIMING REPORT #####]
    +
    +Timing exceptions that could not be applied
    +None
    +
    +Finished final timing analysis (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 146MB peak: 146MB)
    +
    +
    +Finished timing report (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 146MB peak: 146MB)
    +
    +---------------------------------------
    +Resource Usage Report
    +Part: lfe5um_25f-6
    +
    +Register bits: 0 of 24288 (0%)
    +PIC Latch:       0
    +I/O cells:       0
    +
    +
    +Details:
    +EHXPLLL:        1
    +GSR:            1
    +PUR:            1
    +VHI:            1
    +VLO:            1
    +Mapper successful!
    +
    +At Mapper Exit (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 33MB peak: 146MB)
    +
    +Process took 0h:00m:02s realtime, 0h:00m:02s cputime
    +# Fri May 10 14:33:15 2019
    +
    +###########################################################]
    +
    +
    diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/syntmp/pll_200_125_100_toc.htm b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/syntmp/pll_200_125_100_toc.htm new file mode 100644 index 0000000..75d317d --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/syntmp/pll_200_125_100_toc.htm @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/syntmp/run_option.xml b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/syntmp/run_option.xml new file mode 100644 index 0000000..35a3688 --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/syntmp/run_option.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/syntmp/statusReport.html b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/syntmp/statusReport.html new file mode 100644 index 0000000..c4d093f --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/syntmp/statusReport.html @@ -0,0 +1,112 @@ + + + Project Status Summary Page + + + + + + +
    + + + + + + + + + + +
    Project Settings
    Project Name pll_200_125_100 Device Name syn_results: Lattice ECP5UM : LFE5UM_25F
    Implementation Name syn_results Top Module pll_200_125_100
    Pipelining 0 Retiming 0
    Resource Sharing 1 Fanout Guide 50
    Disable I/O Insertion 1 Disable Sequential Optimizations 0
    Clock Conversion 1 FSM Compiler 1

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Run Status
    Job NameStatusCPU TimeReal TimeMemoryDate/Time
    (compiler)Complete910-00m:01s-5/10/19
    2:33 PM
    (premap)Complete2000m:00s0m:00s143MB5/10/19
    2:33 PM
    (fpga_mapper)Complete8100m:02s0m:02s146MB5/10/19
    2:33 PM
    Multi-srs GeneratorComplete5/10/19
    2:33 PM
    +
    + + + + + + + + + + + + + + + + +
    Area Summary
    Register bits 0I/O cells 0
    Block RAMs +(v_ram) 0DSPs +(dsp_used) 0
    ORCA LUTs +(total_luts) 0

    + + + + + + + + +
    Timing Summary
    Clock NameReq FreqEst FreqSlack
    System100.0 MHzNA10.000
    +
    + + + + + + +
    Optimizations Summary
    Combined Clock Conversion 0 / 0

    +
    +
    + \ No newline at end of file diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/.cckTransfer b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/.cckTransfer new file mode 100644 index 0000000000000000000000000000000000000000..8d68b51ffc123b9e9915c50b3dcd0e75f3d66b87 GIT binary patch literal 456 zcmV;(0XP01iwFP!0000015#C0RVXORFG)=a{vaLcI6*^mGAZ z9&d$5|4m>w&WRYZ^EqN=LB_ZWh}q~zk2Uk~$$!>h^&qn$=dq*jHKwE;j_u+XZtHC~ zDNT4e?*X*S(*o6H9cA=h&$Pzfmm}Kaa{u{+cCnIZV+gS}JPc0_dT99AVHbpaleyTW z4!H}+L1lQ)Hzb*CX3|WO4L&m5Wz@{%6d@nk5$cD=2BdNn=ZsD)GPd9;qzR+vFc}e~ z2Qh;jbI7n%R4Y?LN*0BzTz?sj^@BY}(sz)5lWgP>C2WvXKbnlYvQysXt zlt$8U)tl>rHmTB(wH5=!6KU{Cw^SU!7Z277ipzuK2 z4HO-tYY2GTmY0HmXs%6>Hv#?gpA>+}_^lTNUo9bKj7XSeN{{sNLV`sjt0ssK%qu^!$ literal 0 HcmV?d00001 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/_mh_info b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/_mh_info new file mode 100644 index 0000000..37bc105 --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/_mh_info @@ -0,0 +1 @@ +|1| diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/layer0.fdep b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/layer0.fdep new file mode 100644 index 0000000..0d906a3 --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/layer0.fdep @@ -0,0 +1,28 @@ +#defaultlanguage:vhdl +#OPTIONS:"|-layerid|0|-orig_srs|/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/pll_200_125_100_comp.srs|-top|pll_200_125_100|-prodtype|synplify_pro|-dspmac|-fixsmult|-infer_seqShift|-nram|-sdff_counter|-divnmod|-nostructver|-encrypt|-pro|-lite|-ui|-fid2|-ram|-sharing|on|-ll|2000|-autosm|-ignore_undefined_lib|-lib|work" +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/linux_a_64/c_vhdl":1542167766 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/location.map":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/snps_haps_pkg.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std1164.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/numeric.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/umr_capim.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/arith.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/unsigned.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/hyperents.vhd":1542167610 +#CUR:"/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.vhd":1557491589 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":1542167599 +0 "/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.vhd" vhdl + +# Dependency Lists (Uses list) +0 -1 + +# Dependency Lists (Users Of) +0 -1 + +# Design Unit to File Association +arch work pll_200_125_100 structure 0 +module work pll_200_125_100 0 + + +# Configuration files used diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/layer0.fdeporig b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/layer0.fdeporig new file mode 100644 index 0000000..7b38ff3 --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/layer0.fdeporig @@ -0,0 +1,24 @@ +#defaultlanguage:vhdl +#OPTIONS:"|-layerid|0|-orig_srs|/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/pll_200_125_100_comp.srs|-top|pll_200_125_100|-prodtype|synplify_pro|-dspmac|-fixsmult|-infer_seqShift|-nram|-sdff_counter|-divnmod|-nostructver|-encrypt|-pro|-lite|-ui|-fid2|-ram|-sharing|on|-ll|2000|-autosm|-ignore_undefined_lib|-lib|work" +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/linux_a_64/c_vhdl":1542167766 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/location.map":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/snps_haps_pkg.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std1164.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/numeric.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/umr_capim.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/arith.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/unsigned.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/hyperents.vhd":1542167610 +#CUR:"/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.vhd":1557491589 +0 "/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.vhd" vhdl + +# Dependency Lists (Uses list) +0 -1 + +# Dependency Lists (Users Of) +0 -1 + +# Design Unit to File Association +arch work pll_200_125_100 structure 0 +module work pll_200_125_100 0 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/layer0.srs b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/layer0.srs new file mode 100644 index 0000000000000000000000000000000000000000..b9cb7b8176f7c01c4120f5032e22ba2349cb106b GIT binary patch literal 6188 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 Z4-*5G#WxHu<|N)Fs%oWCwwsqO{SVFa@|^$x literal 0 HcmV?d00001 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/layer0.tlg b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/layer0.tlg new file mode 100644 index 0000000..5b9fa01 --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/layer0.tlg @@ -0,0 +1,9 @@ +@N: CD630 :"/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.vhd":12:7:12:21|Synthesizing work.pll_200_125_100.structure. +@N: CD630 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":2083:10:2083:16|Synthesizing ecp5um.ehxplll.syn_black_box. +Post processing for ecp5um.ehxplll.syn_black_box +@N: CD630 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":832:10:832:12|Synthesizing ecp5um.vlo.syn_black_box. +Post processing for ecp5um.vlo.syn_black_box +@N: CD630 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":825:10:825:12|Synthesizing ecp5um.vhi.syn_black_box. +Post processing for ecp5um.vhi.syn_black_box +Post processing for work.pll_200_125_100.structure +@W: CL168 :"/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.vhd":50:4:50:17|Removing instance scuba_vhi_inst because it does not drive other instances. To preserve this instance, use the syn_noprune synthesis directive. diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/layer0.tlg.db b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/layer0.tlg.db new file mode 100644 index 0000000000000000000000000000000000000000..ad02b69cc6836287ccc6c9a1b7c7c9ce3fef3e16 GIT binary patch literal 8192 zcmeH~&u`N(6vxxDA4sqbgisG?lC=|v5+~`}Rpr7MyY;fI7fz9ryfvnY9c-uD&@SBx z!9T#2KZHMw8&21DOxna{JMo_4Jp1|C`T7(4;G=^+H$aZ1%9$Z8=ZRCRIqwK@9B0Lr zx-E07*~-$qVSUy9m#sK&et%uFS+$LCj(yOO01`j~NB{{S0VIF~kN^@u0!RP}{O1Hr zZMCtvS)05yEXp7Ut=SOt+}HOG_jd>TWU%|bzfb1Tmpmb3rs9;TCds%MUA1N@SAh{1 zed%dX(&X3N-^z&b;)i2VxTS<&E7LUS6p1O9qP^o!v_i9?fR88e>QIpA= z)jX|RH9PDs*#usPHl>2u5B&pOms}12 literal 0 HcmV?d00001 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/modulechange.db b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/modulechange.db new file mode 100644 index 0000000000000000000000000000000000000000..e1d5313a23de42a412a9f6520d12a1be3d7705d8 GIT binary patch literal 28672 zcmeI&%WvF790&06V_%`WQx4GzL4>2KN~45$w{0rK1qxjteN$SgQY)<{_U!Huzcijr z8*ULo;*7)%i8Dv|1K`4`CoXVmFFheu;)IHLNM-EA&2H0h@BymoYstU$*xv8Ve4HFc z>kmITFBEqMu?(4VPLRXIFvweuLkKbTUekNA)%Ag0H1wx2aeUCBNnZQov!=dUZGJ=O z=k#dn>(;fFr5o5F009U<00Izz00bZa0SG|g-vusLtL^y(V<;k@-yR6Rui}0v{4n;% z0rz>rBR{RZbES9sYR_4_c&2yV*}KWPbkUi*@z}d-XBID4CK7d2mZ-lobz^lZaqp)6 zi5GO@6}#GASTML^>j9t2nQByaL$98G`+V<-f$11WL~7a5Bg_sKKelS^`FUge&52ME z4dR`|?8tsfTz3B0ZWbSM=_FEwOl~xUlb)7T&Y z0SG_<0uX=z1Rwwb2>e$9XJ;y8o7(Ou4!N7g1LX!xDdBO~7c7h;-#xL??euS-I_aic zQL@fb?&?*YyE*dRag>T-#QhcBxbfi2H_kP5){7;xLfQ9NBElkUt**nG<-$_sce|%f z7E!&Lj;fT7Dq=2Gb<9g8W1=MOkC-mW#;^!ntCXK&G!D5GUJ-TH)=?!NV-R~xi8xvb zS&~0SOJ|jQjH9iDOCG7T7}$HJ4r`P{V^XM55p>QdH>zOl>G8PSOIF9lAD1hL4!f{B zD&|YUB6ld1tK|A>>bZ)CiT*d>ZX)B4xToAC2>Qo6oqX>eU+s50oyX@6XlLWT`BVI9 zzW%4*5&9?njs8l1q4()s`ZN8J-l0F})7T&Y0SG_<0uX=z1Rwwb2tWV=5cuB(>=}y~ zkL*TX>v^r^wVKyTUhTYEc{THD(83H^&cd=@8& zF+l(V5P$##AOHafKmY;|fB*y_P*%V)tw!B4ta^P$N0{_?LjTqU8w4N#0SG_<0uX=z z1Rwwb2tWV=&y#>{H4M|T>J6;_pQp!)xj+B{5P$##AOHafKmY;|fB*!h1Z=Cmv;O}F DfLJ=C literal 0 HcmV?d00001 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/pll_200_125_100_comp.fdep b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/pll_200_125_100_comp.fdep new file mode 100644 index 0000000..fcced78 --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/pll_200_125_100_comp.fdep @@ -0,0 +1,21 @@ +#OPTIONS:"|-layerid|0|-orig_srs|/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/pll_200_125_100_comp.srs|-top|pll_200_125_100|-prodtype|synplify_pro|-dspmac|-fixsmult|-infer_seqShift|-nram|-sdff_counter|-divnmod|-nostructver|-encrypt|-pro|-lite|-ui|-fid2|-ram|-sharing|on|-ll|2000|-autosm|-ignore_undefined_lib|-lib|work" +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/linux_a_64/c_vhdl":1542167766 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/location.map":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/snps_haps_pkg.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std1164.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/numeric.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/umr_capim.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/arith.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/unsigned.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/hyperents.vhd":1542167610 +#CUR:"/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.vhd":1557491589 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":1542167599 +0 "/home/adrian/git/trb5sc/template/project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.vhd" vhdl +#Dependency Lists(Uses List) +0 -1 +#Dependency Lists(Users Of) +0 -1 +#Design Unit to File Association +module work pll_200_125_100 0 +arch work pll_200_125_100 structure 0 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/pll_200_125_100_comp.srs b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/pll_200_125_100_comp.srs new file mode 100644 index 0000000000000000000000000000000000000000..4c5eb1b432b3465c3bfaeb0d43279208876f1ded GIT binary patch literal 5092 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 GD*ynvOgK#d literal 0 HcmV?d00001 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/pll_200_125_100_m.srm b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/pll_200_125_100_m.srm new file mode 100644 index 0000000000000000000000000000000000000000..cbb05bb7b732d977f12e9578bc15a1d612001329 GIT binary patch literal 5633 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/pll_200_125_100_m_srm/fileinfo.srm b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/pll_200_125_100_m_srm/fileinfo.srm new file mode 100644 index 0000000000000000000000000000000000000000..81ac1580f5febc851d415da58eb19fc16dcf5633 GIT binary patch literal 316 zcmV-C0mJ?uiwFP!000001I*OTZo?o90N{I{0%huPF|u@!&2F7_pNb^A86p_^k#;R%d2DYu>@_E05 zboSw>5`wcwcp42PGHs4c&u%V#7+N z3tCqTZSl#TJeEVduSGYW175nPf_L~co-)xY4<}1N@z^B|gj2{~guEXg@_vNioZN8! zdc>xag7eSX4|##VtKn_kqH|wB9lE8Qnfn@e-s#yVYK@}nmgfKPaf8uUfcOUR0ssL2 O{{sMaJ9nT$2LJ$uAeRLI literal 0 HcmV?d00001 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/pll_200_125_100_mult.srs b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/pll_200_125_100_mult.srs new file mode 100644 index 0000000000000000000000000000000000000000..a7fea3b55729989dade87da612da4148724c893f GIT binary patch literal 4742 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 U-~s>u0RR6301`9(tzaeq0C|sZvj6}9 literal 0 HcmV?d00001 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/pll_200_125_100_mult_srs/fileinfo.srs b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/pll_200_125_100_mult_srs/fileinfo.srs new file mode 100644 index 0000000000000000000000000000000000000000..473d9a89be31f46ad790e4574fb0dff3f17c22cf GIT binary patch literal 296 zcmV+@0oVQ?iwFP!000001I*OTY6Bq<2k?8ILbl}Cj3(K%B@ZJ;XS36~uIOxO-oB<^ zAf=bmf(MoPABG>o%zC{RG0lvYKVNiuAdjm-bTG~nLY@Z(ZX*YF z@+HKR$q1fK@H{%m>^9}?j^gIpN63{KgxFBlCG|ob-)lRPciK~C(cP-cDEslT>_>>+>#dY; uM{Rqpr2NW$s4M(^3xDeuTlxap*e~_WJp4896#xML{{sLOAli{+1^@t_D3N^t literal 0 HcmV?d00001 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/pll_200_125_100_mult_srs/skeleton.srs b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/pll_200_125_100_mult_srs/skeleton.srs new file mode 100644 index 0000000000000000000000000000000000000000..99ef1b9eb4af8dd87459bd73ae0e83f82f03d7be GIT binary patch literal 578 zcmV-I0=@koiwFP!0000015#C0RVXORFG)=ip(U z`L)|Fz2CXDDHeR-D~!XGc2GFTH;>z*a@Ay_S2>@Mei{j^qtQbfZOby2DPGFJ}uY6>`3 z(AxPkki@c)^F4{t)|}_1N1SJjCK}JhJUIb+|ADn0&ie3$wGPfd4@V8mwa4>e<1~Xq zdp_z-$<7Xrx;?O$1O#_9@Mz8JY};k08F%+WltGNo2HNKqTGndz7XSeN|Kf5`-~s>u Q0RR630J_h}wE_bG0PMFEbN~PV literal 0 HcmV?d00001 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/pll_200_125_100_prem.fse b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/pll_200_125_100_prem.fse new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/pll_200_125_100_prem.srd b/gbe/cores/pll_200_200_125_100/pll_200_125_100/syn_results/synwork/pll_200_125_100_prem.srd new file mode 100644 index 0000000000000000000000000000000000000000..9e1c93bce10fddb7167a072bb160f7c59ff0eac2 GIT binary patch literal 4854 zcmVK`0p-^u zKSnKc(!j57RyxHa+&C3n-#W^f zRc*wZq{3rPK@-uYsnB}k)yl~D(auuQHG3-$*?q*jxfqWLrf?K;kJxHWM`iih$Y@GQS$@a+0%|~=hnr~T5?&9#LIqibnq0~%QziwQ@Q8_S#;MJW^V6#Qd>V*QO3b_epb1(chC9@x)B|Z5tW^$E{ThCj$PvE(J5Ui(=aQXtq z)3DxpE@50=u$5g9vSdoFCn*GF>_2&r_Z_eQq>x9r_jJxXg>jwwWe8hWenG2-QY!QF z8m7Kql7J|qsk}Iq7mmFkESp*hw?JhlGa?c>Z$RyAPu`3OGKUsM)1Kk1=+6k&42a&G zf@auAT6)9i6-sTONSvnxRmi5@ePpKvol6lf z6#+{35y2`#IEE!j9dRBZNNFs1uoFj_u>=uA=KLp89WGxbIA*u1XrIP*MSf-$;`#kF zW;h6Mw(%>tiahcIw=Uhg0Q`~bmbHHeLCJnWedoKusJwG)IKQLZ!6>Nx^4j_p8UIGl zfJgC1bpYj&w^l~}T~Js{qPw}=t#oG`^iJNxs?{6C>aHNH#0VKpyi+4W4OBVHwoaVVaZfLn@EOI%8;T6|lk8rK>TGYH?VZzo zWAs?rp~C2Kgor_*T4FmkmR-E|DvDILi7|r#UOL@*9HoLMCOBF;8LW(^A{b${_;ffH zF;!!JH-#uBd;2G z>$k9NZy;nh8DYhHC3AkOkvkr|Pg+b27)O z*X8KwZ`TWlI#JTr2L1*%KIX@;ugd5&?}l~cGOg)oCpmY(J@4($L)&?slAc?iyE&lS zH)s29cHlD#-;*rj^2Cf1vKeJDe`I5r`_A`UHt%@%8`oR-t_AO+Kl#(ToLBWDudNEm zH?x3v-@-ZhF`Eke6&T-a*fcY9>zM_*;Bncw^crl4tBhVp8u8f-l;`6-xAOc?y8b6U zP;LmD`G_}ny-p@SQyxPy-vrZ9pwvO=yX8G`>%jH(dHZJkPB`=Cvu|Xo|2Upql2vaN z#brYn`1g6|hZhjm!@kw*Oy;xW_%J(;&t}I%-{EJ$e6xL2!W!1PF66i{{!x$I076eM zEh*q{CPh~11mZ2MKq`Uf8Ji#|dy}#WfafsFJKEDCWT>2X1r4L1*g}m2Wgv2~V(sg< zio{(5$F{T-GH6AAW=n)q$+1c`04&8;i2_J@4oS`6H$MKhu*T&gnhKl~L3LKuWBV22fbcHFg%!H12+@4%$;GYx&bGimkoP&qr>(5wg5Rs7P*0=ef#a;6K2_ zyKZV)qM7Wk&i;Pz9?tbfET(=9fkH)oE zlc^t;Vt#k_G_!}iOxp)vHO*YFOc8I^b@a9;W29fw-@Tuu%hH1n58AugintYP(oD?m zO^f``Qrl*znq1lM^G1cr70IH94%eO)mVRM!`PT(C?Fcyb$XlUG^;r-X9)# z#1rPAmN5VDt;zdim&bp^hj&xiUiPu!JmUL~uUg*xq_n~rT0-jdzpd0^8286sJtDkz zZG+HlK<@Fud*ji!bs`*Gn`X?~H~V+V4^_r-Z^N4D)}95gj@D+{&WkR zF_+caH_@HMOLOd(_KYjW9Bw(D&xH)-em>vEGX z$~~-!Ml&{i^Evrqez0@Vll-epH0LnaE3tLGhZ*_iT4OAlLbyi&km+a zsrW&#bw|8MKTNy)WD@mub)HSpPhfBJ-jLey<@$c0UA6iDJ^4#L`IY5N&H$scf13F{ z=Xb&UmFG2#HY4`c4;xqTgY?SsHRt#A?+jR>x$r=7*-cZ(UAPdsp3>=fJ@573&5xX# zVg}Z8_+{SbFh9)1dbhqF^Gtw&FZsuJ-s{Exr*OVm4jX3y=Q$$cq&MVXXWL)JprEnJ z_g&P1X2{>wFQ++)#YLN;z{1bPY}4{!=xf#A=)}J?$id8KuvwhcqA&Q&YxId;w(slC zU)kJYzVkO)Kw8AqiL!QO9{nYMVN&N;*4y3Jq`$M7efv8=v)<;zUgYIK=YxbK>3;wK z0RR6=D@o1CvF37c1poj5|Nnd!+iv2>@)>`H<>q0~(KxnjVG9&#;_i4mE4qy<13S^# zsDwjyjWNN$O?yZK<4Ea}EJXk!)$3ffY_=Fb77t5Mc@*tjfHXb=t~|Ar*{CsHwvWhLv04 zI8J?K6Es*nI&dD{zEbMh%<2()-Oy`z_Hjo*=Ua|!}ztf6R@iXJ9Ri?sVVs!*!dLRMy}*M46p!ot7Hbp4o_ztRS{^xbO-7 zC>E|qd96aLsH)1~y@1r*V?>!yR}>6F$1|Nni+s;LK@igAFJqZP(3X7ve`Ea&Wi-Ml zIpB*QZs08z1nZU%q_M|A>mqX)a)IQxno}7w5$@kD0gCrpQ`aV{5$;kkV%>8 z{|_J6ALC^lSJiS|WipN*j9vo4uok%76Ksogi@@WmhYNw*>pD|OC5!3UHMyT9&H=Jsp!oHpvN=DP0m|{!XbejPsPC8?m9JKYATs~Qjv5DYN6h%uV5@PJ$BB|S2 z4z=IDvV#(@p2FX~56c^tq9mU8m7aZ0m+VG`kMrNR%a~K>`%crPEG=d#-ZUMEDO7Lt z5{uTOD!IHsA_=E^5$m3N)e)dza?6<5^55wjUl57b>v$(TC9h~-ydjl@?3G_8j{yXp zkh*@54w+Q-DSG&7FLOcDc12sdqQjz$sHbUqTZ6+&l3I-s*`zV|uT=}jqI#`25d=)d zu*jICnMbeN;^vJnSxMQkER9-a6Q7gbRvE04OtQ{P+elJ2{04r?39Xg+^YC?Utb#z& z6B&8wmiBXp1p+;}O+}Ux@Y>!Fq1s7}JJtW9jkVkq>$rNAQv`u(=2$hy-sDHag|&xG z(&YQ8B^pRJ(_Lr5UL?C_%>)8gr!&p-3|zvT13 zSJUmFNvzFJc|o%q1rRFd=&9t$CEEiD-RbyA*TWV?*yT;58q%x&E#F$#)#iwnH{Fi} z*v&C9HB-WKq(2jQOxiv^-S=&<#W{2b}Rdhw(;%V=n&b@&zI$GWcgRC=935; z#4dI0jg0cvHaXWkwsl+TTwMC@8=cC>TH_KWPxEN}ZD*b9OZi~!{M%O^1G{z4xb6D# zyS&|omac(I-J7}6vs*REcJm#LW#5`!x;&2TL{XcV9m~~QtaLr<9k*54RU3@x*-O+t zA{_4Fa&|-I0MwptRqiPW8O!3Ds6mou+m;I8UWzOu1M~(w8|uA6Gd-PWltQ~iE?TM< zga;(X*^thJRC^2<({m~tm>I>OU|L2!z!YMd##@iab583PxA0s1!#n%oJ^SG;vy=@; ziwahoIS&K1v^=$AP%TkNnZ_4C;fpu?GNyD^3{W-OwUM=4tHbYFSqj;}O$lBv3#mHA z;0jz`t0iM(EQ@!#wWiD7=`!~nhbhT)3^NsnLRIv)baZ`=U9U@0F;f?-!Kr4GbjFM> zTD;R~UGtb5I1)DoJ~#9np$LMhi4@REuvuKTZ_;`+w_SNpNYz|kp4UYMoM$Q{;iT1(1YM^w? zXQboR%l#MJy2s^CoCzX$=ngW&G$)n0N;Mlv3T9fJ#5{>*6*;YhvBX}>Ume$ z@BSQp?EL$KeZD)+ejMFjz}DZvj*)F&bsIdu>fTx9B|7Rh=w+@t9AW;_!LD(dZ?d&%5Pmiqf2 c00030|Kf5`-~s>u0RR630F`*_)AK9<0R6Ack^lez literal 0 HcmV?d00001 diff --git a/gbe/cores/pll_200_200_125_100/pll_200_200_125_100.sbx b/gbe/cores/pll_200_200_125_100/pll_200_200_125_100.sbx new file mode 100644 index 0000000..e683721 --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_200_125_100.sbx @@ -0,0 +1,617 @@ + + + + LATTICE + LOCAL + pll_200_200_125_100 + 1.0 + + + Diamond_Synthesis + synthesis + + ./pll_200_200_125_100.vhd + vhdlSource + + + + Diamond_Simulation + simulation + + ./pll_200_200_125_100.vhd + vhdlSource + + + + + + + + + pll_200_125_100_CLKI + pll_200_125_100_CLKI + + in + + + + pll_200_125_100.CLKI + + + + + pll_200_125_100_CLKOP + pll_200_125_100_CLKOP + + out + + + + pll_200_125_100.CLKOP + + + + + pll_200_125_100_CLKOS + pll_200_125_100_CLKOS + + out + + + + pll_200_125_100.CLKOS + + + + + pll_200_125_100_CLKOS2 + pll_200_125_100_CLKOS2 + + out + + + + pll_200_125_100.CLKOS2 + + + + + pll_200_125_100_LOCK + pll_200_125_100_LOCK + + out + + + + pll_200_125_100.LOCK + + + + + + + LFE5UM-85F-8BG756C + synplify + 2019-05-10.02:28:17 PM + 2019-05-10.02:38:07 PM + 3.10.3.144 + VHDL + + false + false + false + false + false + false + false + false + false + false + false + + + + + + + + LATTICE + LOCAL + pll_200_200_125_100 + 1.0 + + + pll_200_125_100 + + Lattice Semiconductor Corporation + LEGACY + PLL + 5.8 + + + Diamond_Simulation + simulation + + ./pll_200_125_100/pll_200_125_100.vhd + vhdlSource + + + + Diamond_Synthesis + synthesis + + ./pll_200_125_100/pll_200_125_100.vhd + vhdlSource + + + + + + Configuration + none + ${sbp_path}/${instance}/generate_core.tcl + CONFIG + + + CreateNGD + none + ${sbp_path}/${instance}/generate_ngd.tcl + CONFIG + + + Generation + none + ${sbp_path}/${instance}/generate_core.tcl + GENERATE + + + + + + + CLKI + CLKI + + in + + + + CLKOP + CLKOP + + out + + + + CLKOS + CLKOS + + out + + + + CLKOS2 + CLKOS2 + + out + + + + LOCK + LOCK + + out + + + + + + synplify + 2019-05-10.02:38:07 PM + + false + false + false + false + false + false + false + false + false + false + LPM + PRIMARY + PRIMARY + false + false + + + + + + Family + ecp5um + + + OperatingCondition + COM + + + Package + CABGA756 + + + PartName + LFE5UM-85F-8BG756C + + + PartType + LFE5UM-85F + + + SpeedGrade + 8 + + + Status + P + + + + CoreName + PLL + + + CoreRevision + 5.8 + + + CoreStatus + Demo + + + CoreType + LPM + + + Date + 05/10/2019 + + + ModuleName + pll_200_125_100 + + + ParameterFileVersion + 1.0 + + + SourceFormat + VHDL + + + Time + 14:33:07 + + + VendorName + Lattice Semiconductor Corporation + + + + CLKFB_DIV + 1 + + + CLKI_DIV + 2 + + + CLKI_FREQ + 200 + + + CLKOP_ACTUAL_FREQ + 200.000000 + + + CLKOP_APHASE + 0.00 + + + CLKOP_DIV + 1 + + + CLKOP_DPHASE + 0 + + + CLKOP_FREQ + 200 + + + CLKOP_MUXA + ENABLED + + + CLKOP_TOL + 0.0 + + + CLKOP_TRIM_DELAY + 0 + + + CLKOP_TRIM_POL + Rising + + + CLKOS2_ACTUAL_FREQ + 125.000000 + + + CLKOS2_APHASE + 0.00 + + + CLKOS2_DIV + 4 + + + CLKOS2_DPHASE + 0 + + + CLKOS2_Enable + ENABLED + + + CLKOS2_FREQ + 125.00 + + + CLKOS2_MUXC + DISABLED + + + CLKOS2_TOL + 0.0 + + + CLKOS2_TRIM_DELAY + 0 + + + CLKOS2_TRIM_POL + Rising + + + CLKOS3_ACTUAL_FREQ + 0.000000 + + + CLKOS3_APHASE + 0.00 + + + CLKOS3_DIV + 1 + + + CLKOS3_DPHASE + 0 + + + CLKOS3_Enable + DISABLED + + + CLKOS3_FREQ + 125.00 + + + CLKOS3_MUXD + DISABLED + + + CLKOS3_TOL + 0.0 + + + CLKOS3_TRIM_DELAY + 0 + + + CLKOS3_TRIM_POL + Rising + + + CLKOS_ACTUAL_FREQ + 100.000000 + + + CLKOS_APHASE + 0.00 + + + CLKOS_DIV + 5 + + + CLKOS_DPHASE + 0 + + + CLKOS_Enable + ENABLED + + + CLKOS_FREQ + 100.00 + + + CLKOS_MUXB + DISABLED + + + CLKOS_TOL + 0.0 + + + CLKOS_TRIM_DELAY + 0 + + + CLKOS_TRIM_POL + Rising + + + CLKSEL_ENA + DISABLED + + + DPHASE_SOURCE + STATIC + + + Destination + Synplicity + + + EDIF + 1 + + + ENABLE_CLKOP + DISABLED + + + ENABLE_CLKOS + DISABLED + + + ENABLE_CLKOS2 + DISABLED + + + ENABLE_CLKOS3 + DISABLED + + + ENABLE_HBW + DISABLED + + + Expression + BusA(0 to 7) + + + FEEDBK_PATH + INT_OS + + + FRACN_DIV + + + + FRACN_ENABLE + DISABLED + + + IO + 0 + + + IOBUF + LVDS + + + Order + Big Endian [MSB:LSB] + + + PLLRST_ENA + DISABLED + + + PLL_BW + 10.695 + + + PLL_LOCK_MODE + ENABLED + + + PLL_LOCK_STK + DISABLED + + + PLL_USE_SMI + DISABLED + + + REFERENCE + 0 + + + STDBY_ENABLE + DISABLED + + + VCO_RATE + 500.000 + + + VHDL + 1 + + + Verilog + 0 + + + + cmd_line + -w -n pll_200_125_100 -lang vhdl -synth synplify -bus_exp 7 -bb -arch sa5p00m -type pll -fin 200 -bypassp -fclkos 100.00 -fclkos_tol 0.0 -fclkos2 125.00 -fclkos2_tol 0.0 -phases2 0 -phase_cntl STATIC -lock -fb_mode 6 + + + + + + + + + + pll_200_125_100_CLKI + pll_200_125_100_CLKI + + + + + pll_200_125_100_CLKOP + pll_200_125_100_CLKOP + + + + + pll_200_125_100_CLKOS + pll_200_125_100_CLKOS + + + + + pll_200_125_100_CLKOS2 + pll_200_125_100_CLKOS2 + + + + + pll_200_125_100_LOCK + pll_200_125_100_LOCK + + + + + + diff --git a/gbe/cores/pll_200_200_125_100/pll_200_200_125_100.vhd b/gbe/cores/pll_200_200_125_100/pll_200_200_125_100.vhd new file mode 100644 index 0000000..4d11d32 --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_200_125_100.vhd @@ -0,0 +1,39 @@ + + +-- +-- Verific VHDL Description of module pll_200_200_125_100 +-- + +library ieee ; +use ieee.std_logic_1164.all ; + +entity pll_200_200_125_100 is + port (pll_200_125_100_CLKI: in std_logic; + pll_200_125_100_CLKOP: out std_logic; + pll_200_125_100_CLKOS: out std_logic; + pll_200_125_100_CLKOS2: out std_logic; + pll_200_125_100_LOCK: out std_logic + ); + +end entity pll_200_200_125_100; -- sbp_module=true + +architecture pll_200_200_125_100 of pll_200_200_125_100 is + component pll_200_125_100 is + port (CLKI: in std_logic; + CLKOP: out std_logic; + CLKOS: out std_logic; + CLKOS2: out std_logic; + LOCK: out std_logic + ); + + end component pll_200_125_100; -- not_need_bbox=true + + + +begin + pll_200_125_100_inst: component pll_200_125_100 port map (CLKI=>pll_200_125_100_CLKI, + CLKOP=>pll_200_125_100_CLKOP,CLKOS=>pll_200_125_100_CLKOS,CLKOS2=>pll_200_125_100_CLKOS2, + LOCK=>pll_200_125_100_LOCK); + +end architecture pll_200_200_125_100; -- sbp_module=true + diff --git a/gbe/cores/pll_200_200_125_100/pll_200_200_125_100_tmpl.v b/gbe/cores/pll_200_200_125_100/pll_200_200_125_100_tmpl.v new file mode 100644 index 0000000..b457271 --- /dev/null +++ b/gbe/cores/pll_200_200_125_100/pll_200_200_125_100_tmpl.v @@ -0,0 +1,4 @@ +//Verilog instantiation template + +pll_200_200_125_100 _inst (.pll_200_125_100_CLKI(), .pll_200_125_100_CLKOP(), + .pll_200_125_100_CLKOS(), .pll_200_125_100_CLKOS2(), .pll_200_125_100_LOCK()); \ No newline at end of file diff --git a/gbe/cores/sgmii/PCSD/PCSD.cmd b/gbe/cores/sgmii/PCSD/PCSD.cmd new file mode 100644 index 0000000..3271b96 --- /dev/null +++ b/gbe/cores/sgmii/PCSD/PCSD.cmd @@ -0,0 +1,18 @@ +PROJECT: PCSD + working_path: "/home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results" + module: PCSD + verilog_file_list: "/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd" "/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v" + vlog_std_v2001: true + constraint_file_name: "/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.fdc" + suffix_name: edn + output_file_name: PCSD + write_prf: true + disable_io_insertion: true + force_gsr: false + frequency: 100 + fanout_limit: 50 + retiming: false + pipe: false + part: LFE5UM-85F + speed_grade: 8 + diff --git a/gbe/cores/sgmii/PCSD/PCSD.cst b/gbe/cores/sgmii/PCSD/PCSD.cst new file mode 100644 index 0000000..d8a88c1 --- /dev/null +++ b/gbe/cores/sgmii/PCSD/PCSD.cst @@ -0,0 +1,3 @@ +Date=04/29/2019 +Time=14:57:43 + diff --git a/gbe/cores/sgmii/PCSD/PCSD.fdc b/gbe/cores/sgmii/PCSD/PCSD.fdc new file mode 100644 index 0000000..c667056 --- /dev/null +++ b/gbe/cores/sgmii/PCSD/PCSD.fdc @@ -0,0 +1,3 @@ +###==== Start Generation + +define_attribute {i:Lane0} {loc} {DCU0_CH1} diff --git a/gbe/cores/sgmii/PCSD/PCSD.lpc b/gbe/cores/sgmii/PCSD/PCSD.lpc new file mode 100644 index 0000000..5b775f6 --- /dev/null +++ b/gbe/cores/sgmii/PCSD/PCSD.lpc @@ -0,0 +1,97 @@ +[Device] +Family=ecp5um +OperatingCondition=COM +Package=CABGA756 +PartName=LFE5UM-85F-8BG756C +PartType=LFE5UM-85F +SpeedGrade=8 +Status=P +[IP] +CoreName=PCS +CoreRevision=8.2 +CoreStatus=Demo +CoreType=LPM +Date=04/29/2019 +ModuleName=PCSD +ParameterFileVersion=1.0 +SourceFormat=vhdl +Time=14:57:43 +VendorName=Lattice Semiconductor Corporation +[Parameters] +;ACHARA=0 00H +;ACHARB=0 00H +;ACHARM=0 00H +;RXMCAENABLE=Disabled +CDRLOLACTION=Full Recalibration +CDRLOLRANGE=0 +CDR_MAX_RATE=1.25 +CDR_MULT=10X +CDR_REF_RATE=125.0000 +CH_MODE=Rx and Tx +Destination=Synplicity +EDIF=1 +Expression=BusA(0 to 7) +IO=0 +IO_TYPE=GbE +LEQ=0 +LOOPBACK=Disabled +LOSPORT=Enabled +NUM_CHS=1 +Order=Big Endian [MSB:LSB] +PPORT_RX_RDY=Disabled +PPORT_TX_RDY=Disabled +PROTOCOL=GbE +PWAIT_RX_RDY=3000 +PWAIT_TX_RDY=3000 +RCSRC=Disabled +REFCLK_RATE=125.0000 +RSTSEQSEL=Enabled +RX8B10B=Enabled +RXCOMMAA=1010000011 +RXCOMMAB=0101111100 +RXCOMMAM=1111111111 +RXCOUPLING=AC +RXCTC=Enabled +RXCTCBYTEN=0 00H +RXCTCBYTEN1=0 00H +RXCTCBYTEN2=1 BCH +RXCTCBYTEN3=0 50H +RXCTCMATCHPATTERN=M2-S2 +RXDIFFTERM=50 ohms +RXFIFO_ENABLE=Enabled +RXINVPOL=Non-invert +RXLDR=Off +RXLOSTHRESHOLD=2 +RXLSM=Enabled +RXSC=K28P5 +RXWA=Barrel Shift +RX_DATA_WIDTH=8/10-Bit +RX_FICLK_RATE=125.0000 +RX_LINE_RATE=1.2500 +RX_RATE_DIV=Full Rate +SCIPORT=Disabled +SOFTLOL=Disabled +TX8B10B=Enabled +TXAMPLITUDE=1100 +TXDEPOST=Disabled +TXDEPRE=Disabled +TXDIFFTERM=50 ohms +TXFIFO_ENABLE=Enabled +TXINVPOL=Non-invert +TXLDR=Off +TXPLLLOLTHRESHOLD=0 +TXPLLMULT=10X +TX_DATA_WIDTH=8/10-Bit +TX_FICLK_RATE=125.0000 +TX_LINE_RATE=1.2500 +TX_MAX_RATE=1.25 +TX_RATE_DIV=Full Rate +VHDL=1 +Verilog=0 +[FilesGenerated] +PCSD.pp=pp +PCSD.sym=sym +PCSD.tft=tft +PCSD.txt=pcs_module +[SYSTEMPNR] +LN0=DCU0_CH1 diff --git a/gbe/cores/sgmii/PCSD/PCSD.ngd b/gbe/cores/sgmii/PCSD/PCSD.ngd new file mode 100644 index 0000000000000000000000000000000000000000..29ceb7574a75f148c80d203a04965551f7a79a63 GIT binary patch literal 180770 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/PCSD/PCSD.ngo b/gbe/cores/sgmii/PCSD/PCSD.ngo new file mode 100644 index 0000000000000000000000000000000000000000..161655b33397c30b428b40e4078677bb7b350fdc GIT binary patch literal 99461 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"0b1",D_IB_PWDNB=>"0b1", + D_XGE_MODE=>"0b0",D_LOW_MARK=>"0d4",D_HIGH_MARK=>"0d12",D_BUS8BIT_SEL=>"0b0", + D_CDR_LOL_SET=>"0b00",D_TXPLL_PWDNB=>"0b1",D_BITCLK_LOCAL_EN=>"0b1", + D_BITCLK_ND_EN=>"0b0",D_BITCLK_FROM_ND_EN=>"0b0",D_SYNC_LOCAL_EN=>"0b1", + D_SYNC_ND_EN=>"0b0",CH1_UC_MODE=>"0b0",CH1_PCIE_MODE=>"0b0",CH1_RIO_MODE=>"0b0", + CH1_WA_MODE=>"0b0",CH1_INVERT_RX=>"0b0",CH1_INVERT_TX=>"0b0",CH1_PRBS_SELECTION=>"0b0", + CH1_GE_AN_ENABLE=>"0b0",CH1_PRBS_LOCK=>"0b0",CH1_PRBS_ENABLE=>"0b0", + CH1_ENABLE_CG_ALIGN=>"0b1",CH1_TX_GEAR_MODE=>"0b0",CH1_RX_GEAR_MODE=>"0b0", + CH1_PCS_DET_TIME_SEL=>"0b00",CH1_PCIE_EI_EN=>"0b0",CH1_TX_GEAR_BYPASS=>"0b0", + CH1_ENC_BYPASS=>"0b0",CH1_SB_BYPASS=>"0b0",CH1_RX_SB_BYPASS=>"0b0", + CH1_WA_BYPASS=>"0b0",CH1_DEC_BYPASS=>"0b0",CH1_CTC_BYPASS=>"0b0", + CH1_RX_GEAR_BYPASS=>"0b0",CH1_LSM_DISABLE=>"0b0",CH1_MATCH_2_ENABLE=>"0b1", + CH1_MATCH_4_ENABLE=>"0b0",CH1_MIN_IPG_CNT=>"0b11",CH1_CC_MATCH_1=>"0x000", + CH1_CC_MATCH_2=>"0x000",CH1_CC_MATCH_3=>"0x1BC",CH1_CC_MATCH_4=>"0x050", + CH1_UDF_COMMA_MASK=>"0x3ff",CH1_UDF_COMMA_A=>"0x283",CH1_UDF_COMMA_B=>"0x17C", + CH1_RX_DCO_CK_DIV=>"0b010",CH1_RCV_DCC_EN=>"0b0",CH1_TPWDNB=>"0b1", + CH1_RATE_MODE_TX=>"0b0",CH1_RTERM_TX=>"0d19",CH1_TX_CM_SEL=>"0b00", + CH1_TDRV_PRE_EN=>"0b0",CH1_TDRV_SLICE0_SEL=>"0b01",CH1_TDRV_SLICE1_SEL=>"0b00", + CH1_TDRV_SLICE2_SEL=>"0b01",CH1_TDRV_SLICE3_SEL=>"0b01",CH1_TDRV_SLICE4_SEL=>"0b01", + CH1_TDRV_SLICE5_SEL=>"0b01",CH1_TDRV_SLICE0_CUR=>"0b101",CH1_TDRV_SLICE1_CUR=>"0b000", + CH1_TDRV_SLICE2_CUR=>"0b11",CH1_TDRV_SLICE3_CUR=>"0b11",CH1_TDRV_SLICE4_CUR=>"0b11", + CH1_TDRV_SLICE5_CUR=>"0b00",CH1_TDRV_DAT_SEL=>"0b00",CH1_TX_DIV11_SEL=>"0b0", + CH1_RPWDNB=>"0b1",CH1_RATE_MODE_RX=>"0b0",CH1_RX_DIV11_SEL=>"0b0", + CH1_SEL_SD_RX_CLK=>"0b0",CH1_FF_RX_H_CLK_EN=>"0b0",CH1_FF_RX_F_CLK_DIS=>"0b0", + CH1_FF_TX_H_CLK_EN=>"0b0",CH1_FF_TX_F_CLK_DIS=>"0b0",CH1_TDRV_POST_EN=>"0b0", + CH1_TX_POST_SIGN=>"0b0",CH1_TX_PRE_SIGN=>"0b0",CH1_REQ_LVL_SET=>"0b00", + CH1_REQ_EN=>"0b1",CH1_RTERM_RX=>"0d22",CH1_RXTERM_CM=>"0b11",CH1_PDEN_SEL=>"0b1", + CH1_RXIN_CM=>"0b11",CH1_LEQ_OFFSET_SEL=>"0b0",CH1_LEQ_OFFSET_TRIM=>"0b000", + CH1_RLOS_SEL=>"0b1",CH1_RX_LOS_LVL=>"0b010",CH1_RX_LOS_CEQ=>"0b11", + CH1_RX_LOS_HYST_EN=>"0b0",CH1_RX_LOS_EN=>"0b1",CH1_LDR_RX2CORE_SEL=>"0b0", + CH1_LDR_CORE2TX_SEL=>"0b0",D_TX_MAX_RATE=>"1.25",CH1_CDR_MAX_RATE=>"1.25", + CH1_TXAMPLITUDE=>"0d1100",CH1_TXDEPRE=>"DISABLED",CH1_TXDEPOST=>"DISABLED", + CH1_PROTOCOL=>"GBE",D_ISETLOS=>"0d0",D_SETIRPOLY_AUX=>"0b00",D_SETICONST_AUX=>"0b00", + D_SETIRPOLY_CH=>"0b00",D_SETICONST_CH=>"0b00",D_REQ_ISET=>"0b000", + D_PD_ISET=>"0b00",D_DCO_CALIB_TIME_SEL=>"0b00",CH1_CDR_CNT4SEL=>"0b00", + CH1_CDR_CNT8SEL=>"0b00",CH1_DCOATDCFG=>"0b00",CH1_DCOATDDLY=>"0b00", + CH1_DCOBYPSATD=>"0b1",CH1_DCOCALDIV=>"0b001",CH1_DCOCTLGI=>"0b010", + CH1_DCODISBDAVOID=>"0b0",CH1_DCOFLTDAC=>"0b01",CH1_DCOFTNRG=>"0b110", + CH1_DCOIOSTUNE=>"0b000",CH1_DCOITUNE=>"0b00",CH1_DCOITUNE4LSB=>"0b111", + CH1_DCOIUPDNX2=>"0b1",CH1_DCONUOFLSB=>"0b101",CH1_DCOSCALEI=>"0b00", + CH1_DCOSTARTVAL=>"0b000",CH1_DCOSTEP=>"0b00",CH1_BAND_THRESHOLD=>"0d0", + CH1_AUTO_FACQ_EN=>"0b1",CH1_AUTO_CALIB_EN=>"0b1",CH1_CALIB_CK_MODE=>"0b0", + CH1_REG_BAND_OFFSET=>"0d0",CH1_REG_BAND_SEL=>"0d0",CH1_REG_IDAC_SEL=>"0d0", + CH1_REG_IDAC_EN=>"0b0",D_CMUSETISCL4VCO=>"0b000",D_CMUSETI4VCO=>"0b00", + D_CMUSETINITVCT=>"0b00",D_CMUSETZGM=>"0b000",D_CMUSETP2AGM=>"0b000", + D_CMUSETP1GM=>"0b000",D_CMUSETI4CPZ=>"0d3",D_CMUSETI4CPP=>"0d3",D_CMUSETICP4Z=>"0b101", + D_CMUSETICP4P=>"0b01",D_CMUSETBIASI=>"0b00",D_SETPLLRC=>"0d1",CH1_RX_RATE_SEL=>"0d8", + D_REFCK_MODE=>"0b001",D_TX_VCO_CK_DIV=>"0b010",D_PLL_LOL_SET=>"0b00", + D_RG_EN=>"0b0",D_RG_SET=>"0b00") + port map (CH0_HDINP=>n112,CH1_HDINP=>hdinp,CH0_HDINN=>n112,CH1_HDINN=>hdinn, + D_TXBIT_CLKP_FROM_ND=>n44,D_TXBIT_CLKN_FROM_ND=>n44,D_SYNC_ND=>n44,D_TXPLL_LOL_FROM_ND=>n44, + CH0_RX_REFCLK=>n112,CH1_RX_REFCLK=>rxrefclk,CH0_FF_RXI_CLK=>n111,CH1_FF_RXI_CLK=>tx_pclk_c, + CH0_FF_TXI_CLK=>n111,CH1_FF_TXI_CLK=>txi_clk,CH0_FF_EBRD_CLK=>n111,CH1_FF_EBRD_CLK=>tx_pclk_c, + CH0_FF_TX_D_0=>n112,CH1_FF_TX_D_0=>txdata(0),CH0_FF_TX_D_1=>n112,CH1_FF_TX_D_1=>txdata(1), + CH0_FF_TX_D_2=>n112,CH1_FF_TX_D_2=>txdata(2),CH0_FF_TX_D_3=>n112,CH1_FF_TX_D_3=>txdata(3), + CH0_FF_TX_D_4=>n112,CH1_FF_TX_D_4=>txdata(4),CH0_FF_TX_D_5=>n112,CH1_FF_TX_D_5=>txdata(5), + CH0_FF_TX_D_6=>n112,CH1_FF_TX_D_6=>txdata(6),CH0_FF_TX_D_7=>n112,CH1_FF_TX_D_7=>txdata(7), + CH0_FF_TX_D_8=>n112,CH1_FF_TX_D_8=>tx_k(0),CH0_FF_TX_D_9=>n112,CH1_FF_TX_D_9=>n44, + CH0_FF_TX_D_10=>n112,CH1_FF_TX_D_10=>xmit(0),CH0_FF_TX_D_11=>n112,CH1_FF_TX_D_11=>tx_disp_correct(0), + CH0_FF_TX_D_12=>n112,CH1_FF_TX_D_12=>n112,CH0_FF_TX_D_13=>n112,CH1_FF_TX_D_13=>n112, + CH0_FF_TX_D_14=>n112,CH1_FF_TX_D_14=>n112,CH0_FF_TX_D_15=>n112,CH1_FF_TX_D_15=>n112, + CH0_FF_TX_D_16=>n112,CH1_FF_TX_D_16=>n112,CH0_FF_TX_D_17=>n112,CH1_FF_TX_D_17=>n112, + CH0_FF_TX_D_18=>n112,CH1_FF_TX_D_18=>n112,CH0_FF_TX_D_19=>n112,CH1_FF_TX_D_19=>n112, + CH0_FF_TX_D_20=>n112,CH1_FF_TX_D_20=>n112,CH0_FF_TX_D_21=>n112,CH1_FF_TX_D_21=>n44, + CH0_FF_TX_D_22=>n112,CH1_FF_TX_D_22=>n112,CH0_FF_TX_D_23=>n112,CH1_FF_TX_D_23=>n112, + CH0_FFC_EI_EN=>n112,CH1_FFC_EI_EN=>n44,CH0_FFC_PCIE_DET_EN=>n112,CH1_FFC_PCIE_DET_EN=>n44, + CH0_FFC_PCIE_CT=>n112,CH1_FFC_PCIE_CT=>n44,CH0_FFC_SB_INV_RX=>n112,CH1_FFC_SB_INV_RX=>n112, + CH0_FFC_ENABLE_CGALIGN=>n112,CH1_FFC_ENABLE_CGALIGN=>n112,CH0_FFC_SIGNAL_DETECT=>n112, + CH1_FFC_SIGNAL_DETECT=>signal_detect_c,CH0_FFC_FB_LOOPBACK=>n112,CH1_FFC_FB_LOOPBACK=>n44, + CH0_FFC_SB_PFIFO_LP=>n112,CH1_FFC_SB_PFIFO_LP=>n44,CH0_FFC_PFIFO_CLR=>n112, + CH1_FFC_PFIFO_CLR=>n44,CH0_FFC_RATE_MODE_RX=>n112,CH1_FFC_RATE_MODE_RX=>n44, + CH0_FFC_RATE_MODE_TX=>n112,CH1_FFC_RATE_MODE_TX=>n44,CH0_FFC_DIV11_MODE_RX=>n112, + CH1_FFC_DIV11_MODE_RX=>n44,CH0_FFC_DIV11_MODE_TX=>n112,CH1_FFC_DIV11_MODE_TX=>n44, + CH0_FFC_RX_GEAR_MODE=>n112,CH1_FFC_RX_GEAR_MODE=>n44,CH0_FFC_TX_GEAR_MODE=>n112, + CH1_FFC_TX_GEAR_MODE=>n44,CH0_FFC_LDR_CORE2TX_EN=>n112,CH1_FFC_LDR_CORE2TX_EN=>n112, + CH0_FFC_LANE_TX_RST=>n112,CH1_FFC_LANE_TX_RST=>rsl_tx_pcs_rst_c,CH0_FFC_LANE_RX_RST=>n112, + CH1_FFC_LANE_RX_RST=>rsl_rx_pcs_rst_c,CH0_FFC_RRST=>n112,CH1_FFC_RRST=>rsl_rx_serdes_rst_c, + CH0_FFC_TXPWDNB=>n112,CH1_FFC_TXPWDNB=>tx_pwrup_c,CH0_FFC_RXPWDNB=>n112, + CH1_FFC_RXPWDNB=>rx_pwrup_c,CH0_LDR_CORE2TX=>n112,CH1_LDR_CORE2TX=>n112, + D_SCIWDATA0=>n112,D_SCIWDATA1=>n112,D_SCIWDATA2=>n112,D_SCIWDATA3=>n112, + D_SCIWDATA4=>n112,D_SCIWDATA5=>n112,D_SCIWDATA6=>n112,D_SCIWDATA7=>n112, + D_SCIADDR0=>n112,D_SCIADDR1=>n112,D_SCIADDR2=>n112,D_SCIADDR3=>n112, + D_SCIADDR4=>n112,D_SCIADDR5=>n112,D_SCIENAUX=>n112,D_SCISELAUX=>n112, + CH0_SCIEN=>n112,CH1_SCIEN=>n112,CH0_SCISEL=>n112,CH1_SCISEL=>n112,D_SCIRD=>n112, + D_SCIWSTN=>n112,D_CYAWSTN=>n112,D_FFC_SYNC_TOGGLE=>n112,D_FFC_DUAL_RST=>rsl_rst_dual_c, + D_FFC_MACRO_RST=>rsl_serdes_rst_dual_c,D_FFC_MACROPDB=>serdes_pdb,D_FFC_TRST=>rsl_tx_serdes_rst_c, + CH0_FFC_CDR_EN_BITSLIP=>n112,CH1_FFC_CDR_EN_BITSLIP=>n44,D_SCAN_ENABLE=>n44, + D_SCAN_IN_0=>n44,D_SCAN_IN_1=>n44,D_SCAN_IN_2=>n44,D_SCAN_IN_3=>n44, + D_SCAN_IN_4=>n44,D_SCAN_IN_5=>n44,D_SCAN_IN_6=>n44,D_SCAN_IN_7=>n44, + D_SCAN_MODE=>n44,D_SCAN_RESET=>n44,D_CIN0=>n44,D_CIN1=>n44,D_CIN2=>n44, + D_CIN3=>n44,D_CIN4=>n44,D_CIN5=>n44,D_CIN6=>n44,D_CIN7=>n44,D_CIN8=>n44, + D_CIN9=>n44,D_CIN10=>n44,D_CIN11=>n44,CH0_HDOUTP=>n47,CH1_HDOUTP=>hdoutp, + CH0_HDOUTN=>n48,CH1_HDOUTN=>hdoutn,D_TXBIT_CLKP_TO_ND=>n1,D_TXBIT_CLKN_TO_ND=>n2, + D_SYNC_PULSE2ND=>n3,D_TXPLL_LOL_TO_ND=>n4,CH0_FF_RX_F_CLK=>n49,CH1_FF_RX_F_CLK=>n5, + CH0_FF_RX_H_CLK=>n50,CH1_FF_RX_H_CLK=>n6,CH0_FF_TX_F_CLK=>n51,CH1_FF_TX_F_CLK=>n7, + CH0_FF_TX_H_CLK=>n52,CH1_FF_TX_H_CLK=>n8,CH0_FF_RX_PCLK=>n53,CH1_FF_RX_PCLK=>n9, + CH0_FF_TX_PCLK=>n54,CH1_FF_TX_PCLK=>tx_pclk_c,CH0_FF_RX_D_0=>n55,CH1_FF_RX_D_0=>rxdata(0), + CH0_FF_RX_D_1=>n56,CH1_FF_RX_D_1=>rxdata(1),CH0_FF_RX_D_2=>n57,CH1_FF_RX_D_2=>rxdata(2), + CH0_FF_RX_D_3=>n58,CH1_FF_RX_D_3=>rxdata(3),CH0_FF_RX_D_4=>n59,CH1_FF_RX_D_4=>rxdata(4), + CH0_FF_RX_D_5=>n60,CH1_FF_RX_D_5=>rxdata(5),CH0_FF_RX_D_6=>n61,CH1_FF_RX_D_6=>rxdata(6), + CH0_FF_RX_D_7=>n62,CH1_FF_RX_D_7=>rxdata(7),CH0_FF_RX_D_8=>n63,CH1_FF_RX_D_8=>rx_k(0), + CH0_FF_RX_D_9=>n64,CH1_FF_RX_D_9=>rx_disp_err(0),CH0_FF_RX_D_10=>n65, + CH1_FF_RX_D_10=>rx_cv_err(0),CH0_FF_RX_D_11=>n66,CH1_FF_RX_D_11=>n10, + CH0_FF_RX_D_12=>n67,CH1_FF_RX_D_12=>n68,CH0_FF_RX_D_13=>n69,CH1_FF_RX_D_13=>n70, + CH0_FF_RX_D_14=>n71,CH1_FF_RX_D_14=>n72,CH0_FF_RX_D_15=>n73,CH1_FF_RX_D_15=>n74, + CH0_FF_RX_D_16=>n75,CH1_FF_RX_D_16=>n76,CH0_FF_RX_D_17=>n77,CH1_FF_RX_D_17=>n78, + CH0_FF_RX_D_18=>n79,CH1_FF_RX_D_18=>n80,CH0_FF_RX_D_19=>n81,CH1_FF_RX_D_19=>n82, + CH0_FF_RX_D_20=>n83,CH1_FF_RX_D_20=>n84,CH0_FF_RX_D_21=>n85,CH1_FF_RX_D_21=>n86, + CH0_FF_RX_D_22=>n87,CH1_FF_RX_D_22=>n88,CH0_FF_RX_D_23=>n89,CH1_FF_RX_D_23=>n11, + CH0_FFS_PCIE_DONE=>n90,CH1_FFS_PCIE_DONE=>n12,CH0_FFS_PCIE_CON=>n91,CH1_FFS_PCIE_CON=>n13, + CH0_FFS_RLOS=>n92,CH1_FFS_RLOS=>rx_los_low_s_c,CH0_FFS_LS_SYNC_STATUS=>n93, + CH1_FFS_LS_SYNC_STATUS=>lsm_status_s,CH0_FFS_CC_UNDERRUN=>n94,CH1_FFS_CC_UNDERRUN=>ctc_urun_s, + CH0_FFS_CC_OVERRUN=>n95,CH1_FFS_CC_OVERRUN=>ctc_orun_s,CH0_FFS_RXFBFIFO_ERROR=>n96, + CH1_FFS_RXFBFIFO_ERROR=>n14,CH0_FFS_TXFBFIFO_ERROR=>n97,CH1_FFS_TXFBFIFO_ERROR=>n15, + CH0_FFS_RLOL=>n98,CH1_FFS_RLOL=>rx_cdr_lol_s_c,CH0_FFS_SKP_ADDED=>n99, + CH1_FFS_SKP_ADDED=>ctc_ins_s,CH0_FFS_SKP_DELETED=>n100,CH1_FFS_SKP_DELETED=>ctc_del_s, + CH0_LDR_RX2CORE=>n101,CH1_LDR_RX2CORE=>n102,D_SCIRDATA0=>n103,D_SCIRDATA1=>n104, + D_SCIRDATA2=>n105,D_SCIRDATA3=>n106,D_SCIRDATA4=>n107,D_SCIRDATA5=>n108, + D_SCIRDATA6=>n109,D_SCIRDATA7=>n110,D_SCIINT=>n121,D_SCAN_OUT_0=>n16, + D_SCAN_OUT_1=>n17,D_SCAN_OUT_2=>n18,D_SCAN_OUT_3=>n19,D_SCAN_OUT_4=>n20, + D_SCAN_OUT_5=>n21,D_SCAN_OUT_6=>n22,D_SCAN_OUT_7=>n23,D_COUT0=>n24,D_COUT1=>n25, + D_COUT2=>n26,D_COUT3=>n27,D_COUT4=>n28,D_COUT5=>n29,D_COUT6=>n30,D_COUT7=>n31, + D_COUT8=>n32,D_COUT9=>n33,D_COUT10=>n34,D_COUT11=>n35,D_COUT12=>n36, + D_COUT13=>n37,D_COUT14=>n38,D_COUT15=>n39,D_COUT16=>n40,D_COUT17=>n41, + D_COUT18=>n42,D_COUT19=>n43,D_REFCLKI=>pll_refclki,D_FFS_PLOL=>n46); + n45 <= '1' ; + n44 <= '0' ; + n1 <= 'Z' ; + n2 <= 'Z' ; + n3 <= 'Z' ; + n4 <= 'Z' ; + n5 <= 'Z' ; + n6 <= 'Z' ; + n7 <= 'Z' ; + n8 <= 'Z' ; + n9 <= 'Z' ; + n10 <= 'Z' ; + n11 <= 'Z' ; + n12 <= 'Z' ; + n13 <= 'Z' ; + n14 <= 'Z' ; + n15 <= 'Z' ; + n16 <= 'Z' ; + n17 <= 'Z' ; + n18 <= 'Z' ; + n19 <= 'Z' ; + n20 <= 'Z' ; + n21 <= 'Z' ; + n22 <= 'Z' ; + n23 <= 'Z' ; + n24 <= 'Z' ; + n25 <= 'Z' ; + n26 <= 'Z' ; + n27 <= 'Z' ; + n28 <= 'Z' ; + n29 <= 'Z' ; + n30 <= 'Z' ; + n31 <= 'Z' ; + n32 <= 'Z' ; + n33 <= 'Z' ; + n34 <= 'Z' ; + n35 <= 'Z' ; + n36 <= 'Z' ; + n37 <= 'Z' ; + n38 <= 'Z' ; + n39 <= 'Z' ; + n40 <= 'Z' ; + n41 <= 'Z' ; + n42 <= 'Z' ; + n43 <= 'Z' ; + n46 <= 'Z' ; + n112 <= '0' ; + n111 <= '1' ; + n47 <= 'Z' ; + n48 <= 'Z' ; + n49 <= 'Z' ; + n50 <= 'Z' ; + n51 <= 'Z' ; + n52 <= 'Z' ; + n53 <= 'Z' ; + n54 <= 'Z' ; + n55 <= 'Z' ; + n56 <= 'Z' ; + n57 <= 'Z' ; + n58 <= 'Z' ; + n59 <= 'Z' ; + n60 <= 'Z' ; + n61 <= 'Z' ; + n62 <= 'Z' ; + n63 <= 'Z' ; + n64 <= 'Z' ; + n65 <= 'Z' ; + n66 <= 'Z' ; + n67 <= 'Z' ; + n68 <= 'Z' ; + n69 <= 'Z' ; + n70 <= 'Z' ; + n71 <= 'Z' ; + n72 <= 'Z' ; + n73 <= 'Z' ; + n74 <= 'Z' ; + n75 <= 'Z' ; + n76 <= 'Z' ; + n77 <= 'Z' ; + n78 <= 'Z' ; + n79 <= 'Z' ; + n80 <= 'Z' ; + n81 <= 'Z' ; + n82 <= 'Z' ; + n83 <= 'Z' ; + n84 <= 'Z' ; + n85 <= 'Z' ; + n86 <= 'Z' ; + n87 <= 'Z' ; + n88 <= 'Z' ; + n89 <= 'Z' ; + n90 <= 'Z' ; + n91 <= 'Z' ; + n92 <= 'Z' ; + n93 <= 'Z' ; + n94 <= 'Z' ; + n95 <= 'Z' ; + n96 <= 'Z' ; + n97 <= 'Z' ; + n98 <= 'Z' ; + n99 <= 'Z' ; + n100 <= 'Z' ; + n101 <= 'Z' ; + n102 <= 'Z' ; + n103 <= 'Z' ; + n104 <= 'Z' ; + n105 <= 'Z' ; + n106 <= 'Z' ; + n107 <= 'Z' ; + n108 <= 'Z' ; + n109 <= 'Z' ; + n110 <= 'Z' ; + n121 <= 'Z' ; + rsl_inst: component PCSDrsl_core port map (rui_rst=>rsl_rst,rui_serdes_rst_dual_c=>serdes_rst_dual_c, + rui_rst_dual_c=>rst_dual_c,rui_rsl_disable=>rsl_disable,rui_tx_ref_clk=>pll_refclki, + rui_tx_serdes_rst_c=>tx_serdes_rst_c,rui_tx_pcs_rst_c(3)=>gnd, + rui_tx_pcs_rst_c(2)=>gnd,rui_tx_pcs_rst_c(1)=>gnd,rui_tx_pcs_rst_c(0)=>tx_pcs_rst_c, + rdi_pll_lol=>pll_lol,rui_rx_ref_clk=>rxrefclk,rui_rx_serdes_rst_c(3)=>gnd, + rui_rx_serdes_rst_c(2)=>gnd,rui_rx_serdes_rst_c(1)=>gnd,rui_rx_serdes_rst_c(0)=>rx_serdes_rst_c, + rui_rx_pcs_rst_c(3)=>gnd,rui_rx_pcs_rst_c(2)=>gnd,rui_rx_pcs_rst_c(1)=>gnd, + rui_rx_pcs_rst_c(0)=>rx_pcs_rst_c,rdi_rx_los_low_s(3)=>gnd,rdi_rx_los_low_s(2)=>gnd, + rdi_rx_los_low_s(1)=>gnd,rdi_rx_los_low_s(0)=>rx_los_low_s_c,rdi_rx_cdr_lol_s(3)=>gnd, + rdi_rx_cdr_lol_s(2)=>gnd,rdi_rx_cdr_lol_s(1)=>gnd,rdi_rx_cdr_lol_s(0)=>rx_cdr_lol_s_c, + rdo_serdes_rst_dual_c=>rsl_serdes_rst_dual_c,rdo_rst_dual_c=>rsl_rst_dual_c, + ruo_tx_rdy=>n122,rdo_tx_serdes_rst_c=>rsl_tx_serdes_rst_c,rdo_tx_pcs_rst_c(3)=>n123, + rdo_tx_pcs_rst_c(2)=>n124,rdo_tx_pcs_rst_c(1)=>n125,rdo_tx_pcs_rst_c(0)=>rsl_tx_pcs_rst_c, + ruo_rx_rdy=>n126,rdo_rx_serdes_rst_c(3)=>n127,rdo_rx_serdes_rst_c(2)=>n128, + rdo_rx_serdes_rst_c(1)=>n129,rdo_rx_serdes_rst_c(0)=>rsl_rx_serdes_rst_c, + rdo_rx_pcs_rst_c(3)=>n130,rdo_rx_pcs_rst_c(2)=>n131,rdo_rx_pcs_rst_c(1)=>\_Z\, + rdo_rx_pcs_rst_c(0)=>rsl_rx_pcs_rst_c); + n120 <= '1' ; + n119 <= '0' ; + gnd <= '0' ; + pwr <= '1' ; + n122 <= 'Z' ; + n123 <= 'Z' ; + n124 <= 'Z' ; + n125 <= 'Z' ; + n126 <= 'Z' ; + n127 <= 'Z' ; + n128 <= 'Z' ; + n129 <= 'Z' ; + n130 <= 'Z' ; + n131 <= 'Z' ; + \_Z\ <= 'Z' ; + +end architecture v1; + diff --git a/gbe/cores/sgmii/PCSD/PCSD_ngd.asd b/gbe/cores/sgmii/PCSD/PCSD_ngd.asd new file mode 100644 index 0000000..c265c78 --- /dev/null +++ b/gbe/cores/sgmii/PCSD/PCSD_ngd.asd @@ -0,0 +1 @@ +[ActiveSupport NGD] diff --git a/gbe/cores/sgmii/PCSD/PCSD_softlogic.v b/gbe/cores/sgmii/PCSD/PCSD_softlogic.v new file mode 100644 index 0000000..fa4373f --- /dev/null +++ b/gbe/cores/sgmii/PCSD/PCSD_softlogic.v @@ -0,0 +1,943 @@ + + +// =========================================================================== +// >>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< +// --------------------------------------------------------------------------- +// Copyright (c) 2016 by Lattice Semiconductor Corporation +// ALL RIGHTS RESERVED +// ------------------------------------------------------------------ +// +// Permission: +// +// Lattice SG Pte. Ltd. grants permission to use this code +// pursuant to the terms of the Lattice Reference Design License Agreement. +// +// +// Disclaimer: +// +// This VHDL or Verilog source code is intended as a design reference +// which illustrates how these types of functions can be implemented. +// It is the user's responsibility to verify their design for +// consistency and functionality through the use of formal +// verification methods. Lattice provides no warranty +// regarding the use or functionality of this code. +// +// --------------------------------------------------------------------------- +// +// Lattice SG Pte. Ltd. +// 101 Thomson Road, United Square #07-02 +// Singapore 307591 +// +// +// TEL: 1-800-Lattice (USA and Canada) +// +65-6631-2000 (Singapore) +// +1-503-268-8001 (other locations) +// +// web: http://www.latticesemi.com/ +// email: techsupport@latticesemi.com +// +// --------------------------------------------------------------------------- +// +// ============================================================================= +// FILE DETAILS +// Project : RSL- Reset Sequence Logic +// File : rsl_core.v +// Title : Top-level file for RSL +// Dependencies : 1. +// : 2. +// Description : +// ============================================================================= +// REVISION HISTORY +// Version : 1.0 +// Author(s) : BM +// Mod. Date : October 28, 2013 +// Changes Made : Initial Creation +// ----------------------------------------------------------------------------- +// Version : 1.1 +// Author(s) : BM +// Mod. Date : November 06, 2013 +// Changes Made : Tx/Rx separation, ready port code exclusion +// ----------------------------------------------------------------------------- +// Version : 1.2 +// Author(s) : BM +// Mod. Date : June 13, 2014 +// Changes Made : Updated Rx PCS reset method +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// Version : 1.3 +// Author(s) : UA +// Mod. Date : Dec 19, 2014 +// Changes Made : Added new parameter fro PCIE +// ----------------------------------------------------------------------------- +// Version : 1.31 +// Author(s) : BM/UM +// Mod. Date : Feb 23, 2016 +// Changes Made : Behavior of rx_rdy output modified. The output rx_rdy +// and the rx_rdy wait counter are reset to zero on +// LOL or LOS. Reverted back the counter value change for PCIE. +// ----------------------------------------------------------------------------- +// Version : 1.4 +// Author(s) : EB +// Mod. Date: : March 21, 2017 +// Changes Made : +// ----------------------------------------------------------------------------- +// Version : 1.5 +// Author(s) : ES +// Mod. Date: : May 8, 2017 +// Changes Made : Implemented common RSL behaviour as proposed by BM. +// ============================================================================= + +`timescale 1ns/10ps + +module PCSDrsl_core ( + // ------------ Inputs + // Common + rui_rst, // Active high reset for the RSL module + rui_serdes_rst_dual_c, // SERDES macro reset user command + rui_rst_dual_c, // PCS dual reset user command + rui_rsl_disable, // Active high signal that disables all reset outputs of RSL + // Tx + rui_tx_ref_clk, // Tx reference clock + rui_tx_serdes_rst_c, // Tx SERDES reset user command + rui_tx_pcs_rst_c, // Tx lane reset user command + rdi_pll_lol, // Tx PLL Loss of Lock status input from the SERDES + // Rx + rui_rx_ref_clk, // Rx reference clock + rui_rx_serdes_rst_c, // SERDES Receive channel reset user command + rui_rx_pcs_rst_c, // Rx lane reset user command + rdi_rx_los_low_s, // Receive loss of signal status input from SERDES + rdi_rx_cdr_lol_s, // Receive CDR loss of lock status input from SERDES + + // ------------ Outputs + // Common + rdo_serdes_rst_dual_c, // SERDES macro reset command output + rdo_rst_dual_c, // PCS dual reset command output + // Tx + ruo_tx_rdy, // Tx lane ready status output + rdo_tx_serdes_rst_c, // SERDES Tx reset command output + rdo_tx_pcs_rst_c, // PCS Tx lane reset command output + // Rx + ruo_rx_rdy, // Rx lane ready status output + rdo_rx_serdes_rst_c, // SERDES Rx channel reset command output + rdo_rx_pcs_rst_c // PCS Rx lane reset command output + ); + +// ------------ Module parameters +`ifdef NUM_CHANNELS + parameter pnum_channels = `NUM_CHANNELS; // 1,2,4 +`else + parameter pnum_channels = 1; +`endif + +`ifdef PCIE + parameter pprotocol = "PCIE"; +`else + parameter pprotocol = ""; +`endif + +`ifdef RX_ONLY + parameter pserdes_mode = "RX ONLY"; +`else + `ifdef TX_ONLY + parameter pserdes_mode = "TX ONLY"; + `else + parameter pserdes_mode = "RX AND TX"; + `endif +`endif + +`ifdef PORT_TX_RDY + parameter pport_tx_rdy = "ENABLED"; +`else + parameter pport_tx_rdy = "DISABLED"; +`endif + +`ifdef WAIT_TX_RDY + parameter pwait_tx_rdy = `WAIT_TX_RDY; +`else + parameter pwait_tx_rdy = 3000; +`endif + +`ifdef PORT_RX_RDY + parameter pport_rx_rdy = "ENABLED"; +`else + parameter pport_rx_rdy = "DISABLED"; +`endif + +`ifdef WAIT_RX_RDY + parameter pwait_rx_rdy = `WAIT_RX_RDY; +`else + parameter pwait_rx_rdy = 3000; +`endif + +// ------------ Local parameters + localparam wa_num_cycles = 1024; + localparam dac_num_cycles = 3; + localparam lreset_pwidth = 3; // reset pulse width-1, default=4-1=3 + localparam lwait_b4_trst = 781250; // 5ms wait with worst-case Fmax=156 MHz + localparam lwait_b4_trst_s = 781; // for simulation + localparam lplol_cnt_width = 20; // width for lwait_b4_trst + localparam lwait_after_plol0 = 4; + localparam lwait_b4_rrst = 180224; // total calibration time + localparam lrrst_wait_width = 20; + localparam lwait_after_rrst = 800000; // For CPRI- unused + localparam lwait_b4_rrst_s = 460; // wait cycles provided by design team + localparam lrlol_cnt_width = 19; // width for lwait_b4_rrst + localparam lwait_after_lols = (16384 * dac_num_cycles) + wa_num_cycles; // 16384 cycles * dac_num_cycles + 1024 cycles + localparam lwait_after_lols_s = 150; // wait cycles provided by design team + localparam llols_cnt_width = 18; // lols count width + localparam lrdb_max = 15; // maximum debounce count + localparam ltxr_wait_width = 12; // width of tx ready wait counter + localparam lrxr_wait_width = 12; // width of tx ready wait counter + +// ------------ input ports + input rui_rst; + input rui_serdes_rst_dual_c; + input rui_rst_dual_c; + input rui_rsl_disable; + + input rui_tx_ref_clk; + input rui_tx_serdes_rst_c; + input [3:0] rui_tx_pcs_rst_c; + input rdi_pll_lol; + + input rui_rx_ref_clk; + input [3:0] rui_rx_serdes_rst_c; + input [3:0] rui_rx_pcs_rst_c; + input [3:0] rdi_rx_los_low_s; + input [3:0] rdi_rx_cdr_lol_s; + +// ------------ output ports + output rdo_serdes_rst_dual_c; + output rdo_rst_dual_c; + + output ruo_tx_rdy; + output rdo_tx_serdes_rst_c; + output [3:0] rdo_tx_pcs_rst_c; + + output ruo_rx_rdy; + output [3:0] rdo_rx_serdes_rst_c; + output [3:0] rdo_rx_pcs_rst_c; + +// ------------ Internal registers and wires + // inputs + wire rui_rst; + wire rui_serdes_rst_dual_c; + wire rui_rst_dual_c; + wire rui_rsl_disable; + wire rui_tx_ref_clk; + wire rui_tx_serdes_rst_c; + wire [3:0] rui_tx_pcs_rst_c; + wire rdi_pll_lol; + wire rui_rx_ref_clk; + wire [3:0] rui_rx_serdes_rst_c; + wire [3:0] rui_rx_pcs_rst_c; + wire [3:0] rdi_rx_los_low_s; + wire [3:0] rdi_rx_cdr_lol_s; + + // outputs + wire rdo_serdes_rst_dual_c; + wire rdo_rst_dual_c; + wire ruo_tx_rdy; + wire rdo_tx_serdes_rst_c; + wire [3:0] rdo_tx_pcs_rst_c; + wire ruo_rx_rdy; + wire [3:0] rdo_rx_serdes_rst_c; + wire [3:0] rdo_rx_pcs_rst_c; + + // internal signals + // common + wire rsl_enable; + wire [lplol_cnt_width-1:0] wait_b4_trst; + wire [lrlol_cnt_width-1:0] wait_b4_rrst; + wire [llols_cnt_width-1:0] wait_after_lols; + reg pll_lol_p1; + reg pll_lol_p2; + reg pll_lol_p3; + // ------------ Tx + // rdo_tx_serdes_rst_c + reg [lplol_cnt_width-1:0] plol_cnt; + wire plol_cnt_tc; + + reg [2:0] txs_cnt; + reg txs_rst; + wire txs_cnt_tc; + // rdo_tx_pcs_rst_c + wire plol_fedge; + wire plol_redge; + reg waita_plol0; + reg [2:0] plol0_cnt; + wire plol0_cnt_tc; + reg [2:0] txp_cnt; + reg txp_rst; + wire txp_cnt_tc; + // ruo_tx_rdy + wire dual_or_serd_rst; + wire tx_any_pcs_rst; + wire tx_any_rst; + reg txsr_appd /* synthesis syn_keep=1 */; + reg txdpr_appd; + reg [pnum_channels-1:0] txpr_appd; + reg txr_wt_en; + reg [ltxr_wait_width-1:0] txr_wt_cnt; + wire txr_wt_tc; + reg ruo_tx_rdyr; + + // ------------ Rx + wire comb_rlos; + wire comb_rlol; + //wire rlols; + wire rx_all_well; + + //reg rlols_p1; + //reg rlols_p2; + //reg rlols_p3; + + reg rlol_p1; + reg rlol_p2; + reg rlol_p3; + reg rlos_p1; + reg rlos_p2; + reg rlos_p3; + + //reg [3:0] rdb_cnt; + //wire rdb_cnt_max; + //wire rdb_cnt_zero; + //reg rlols_db; + //reg rlols_db_p1; + + reg [3:0] rlol_db_cnt; + wire rlol_db_cnt_max; + wire rlol_db_cnt_zero; + reg rlol_db; + reg rlol_db_p1; + + reg [3:0] rlos_db_cnt; + wire rlos_db_cnt_max; + wire rlos_db_cnt_zero; + reg rlos_db; + reg rlos_db_p1; + + // rdo_rx_serdes_rst_c + reg [lrlol_cnt_width-1:0] rlol1_cnt; + wire rlol1_cnt_tc; + reg [2:0] rxs_cnt; + reg rxs_rst; + wire rxs_cnt_tc; + reg [lrrst_wait_width-1:0] rrst_cnt; + wire rrst_cnt_tc; + reg rrst_wait; + // rdo_rx_pcs_rst_c + //wire rlols_fedge; + //wire rlols_redge; + wire rlol_fedge; + wire rlol_redge; + wire rlos_fedge; + wire rlos_redge; + + reg wait_calib; + reg waita_rlols0; + reg [llols_cnt_width-1:0] rlols0_cnt; + wire rlols0_cnt_tc; + reg [2:0] rxp_cnt; + reg rxp_rst; + wire rxp_cnt_tc; + + wire rx_any_serd_rst; + reg [llols_cnt_width-1:0] rlolsz_cnt; + wire rlolsz_cnt_tc; + reg [2:0] rxp_cnt2; + reg rxp_rst2; + wire rxp_cnt2_tc; + reg [15:0] data_loop_b_cnt; + reg data_loop_b; + wire data_loop_b_tc; + + // ruo_rx_rdy + reg [pnum_channels-1:0] rxsr_appd; + reg [pnum_channels-1:0] rxpr_appd; + reg rxsdr_appd /* synthesis syn_keep=1 */; + reg rxdpr_appd; + wire rxsdr_or_sr_appd; + wire dual_or_rserd_rst; + wire rx_any_pcs_rst; + wire rx_any_rst; + reg rxr_wt_en; + reg [lrxr_wait_width-1:0] rxr_wt_cnt; + wire rxr_wt_tc; + reg ruo_rx_rdyr; + +// ================================================================== +// Start of code +// ================================================================== + assign rsl_enable = ~rui_rsl_disable; + +// ------------ rdo_serdes_rst_dual_c + assign rdo_serdes_rst_dual_c = (rui_rst&rsl_enable) | rui_serdes_rst_dual_c; + +// ------------ rdo_rst_dual_c + assign rdo_rst_dual_c = rui_rst_dual_c; + +// ------------ Setting counter values for RSL_SIM_MODE + `ifdef RSL_SIM_MODE + assign wait_b4_trst = lwait_b4_trst_s; + assign wait_b4_rrst = lwait_b4_rrst_s; + assign wait_after_lols = lwait_after_lols_s; + `else + assign wait_b4_trst = lwait_b4_trst; + assign wait_b4_rrst = lwait_b4_rrst; + assign wait_after_lols = lwait_after_lols; + `endif + +// ================================================================== +// Tx +// ================================================================== + generate + if((pserdes_mode=="RX AND TX")||(pserdes_mode=="TX ONLY")) begin + +// ------------ Synchronizing pll_lol to the tx clock + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) begin + pll_lol_p1 <= 1'd0; + pll_lol_p2 <= 1'd0; + pll_lol_p3 <= 1'd0; + end + else begin + pll_lol_p1 <= rdi_pll_lol; + pll_lol_p2 <= pll_lol_p1; + pll_lol_p3 <= pll_lol_p2; + end + end + +// ------------ rdo_tx_serdes_rst_c + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) + plol_cnt <= 'd0; + else if((pll_lol_p2==0)||(plol_cnt_tc==1)||(rdo_tx_serdes_rst_c==1)) + plol_cnt <= 'd0; + else + plol_cnt <= plol_cnt+1; + end + assign plol_cnt_tc = (plol_cnt==wait_b4_trst)?1'b1:1'b0; + + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) begin + txs_cnt <= 'd0; // tx serdes reset pulse count + txs_rst <= 1'b0; // tx serdes reset + end + else if(plol_cnt_tc==1) + txs_rst <= 1'b1; + else if(txs_cnt_tc==1) begin + txs_cnt <= 'd0; + txs_rst <= 1'b0; + end + else if(txs_rst==1) + txs_cnt <= txs_cnt+1; + end + assign txs_cnt_tc = (txs_cnt==lreset_pwidth)?1'b1:1'b0; + + assign rdo_tx_serdes_rst_c = (rsl_enable&txs_rst)| rui_tx_serdes_rst_c; + +// ------------ rdo_tx_pcs_rst_c + assign plol_fedge = ~pll_lol_p2 & pll_lol_p3; + assign plol_redge = pll_lol_p2 & ~pll_lol_p3; + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) + waita_plol0 <= 1'd0; + else if(plol_fedge==1'b1) + waita_plol0 <= 1'b1; + else if((plol0_cnt_tc==1)||(plol_redge==1)) + waita_plol0 <= 1'd0; + end + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) + plol0_cnt <= 'd0; + else if((pll_lol_p2==1)||(plol0_cnt_tc==1)) + plol0_cnt <= 'd0; + else if(waita_plol0==1'b1) + plol0_cnt <= plol0_cnt+1; + end + assign plol0_cnt_tc = (plol0_cnt==lwait_after_plol0)?1'b1:1'b0; + + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) begin + txp_cnt <= 'd0; // tx serdes reset pulse count + txp_rst <= 1'b0; // tx serdes reset + end + else if(plol0_cnt_tc==1) + txp_rst <= 1'b1; + else if(txp_cnt_tc==1) begin + txp_cnt <= 'd0; + txp_rst <= 1'b0; + end + else if(txp_rst==1) + txp_cnt <= txp_cnt+1; + end + assign txp_cnt_tc = (txp_cnt==lreset_pwidth)?1'b1:1'b0; + + genvar i; + for(i=0;i + + syntmp/PCSD_srr.htm log file + + + + + + diff --git a/gbe/cores/sgmii/PCSD/syn_results/PCSD.prj b/gbe/cores/sgmii/PCSD/syn_results/PCSD.prj new file mode 100644 index 0000000..a95f061 --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/PCSD.prj @@ -0,0 +1,47 @@ +#-- Lattice Semiconductor Corporation Ltd. +#-- Synplify OEM project file /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/PCSD.prj +#-- Written on Tue Apr 30 12:09:44 2019 + + +#device options +set_option -technology ecp5um +set_option -part LFE5UM-85F +set_option -speed_grade 8 + +#use verilog 2001 standard option +set_option -vlog_std v2001 + +#map options +set_option -frequency 100 +set_option -fanout_limit 50 +set_option -disable_io_insertion true +set_option -retiming false +set_option -pipe false +set_option -pipe false +set_option -force_gsr false + +#simulation options +set_option -write_verilog true +set_option -write_vhdl true + +#timing analysis options + +#automatic place and route (vendor) options +set_option -write_apr_constraint 1 + +#-- add_file options +add_file -vhdl -lib work "/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd" +add_file -verilog -lib work "/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v" +add_file -constraint {"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.fdc"} + +#-- top module name +set_option -top_module PCSD + +#-- set result format/file last +project -result_file "PCSD.edn" + +#-- error message log file +project -log_file PCSD.srf + +#-- run Synplify with 'arrange VHDL file' +project -run diff --git a/gbe/cores/sgmii/PCSD/syn_results/PCSD.srd b/gbe/cores/sgmii/PCSD/syn_results/PCSD.srd new file mode 100644 index 0000000000000000000000000000000000000000..dc4f84c592f696354e402972201947c1f8949424 GIT binary patch literal 41535 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/PCSD/syn_results/PCSD.srf b/gbe/cores/sgmii/PCSD/syn_results/PCSD.srf new file mode 100644 index 0000000..6d9a5e2 --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/PCSD.srf @@ -0,0 +1,829 @@ +#Build: Synplify Pro (R) M-2017.03L-SP1-1, Build 086R, Aug 4 2017 +#install: /home/soft/lattice/diamond/3.10_x64/synpbase +#OS: Linux +#Hostname: lxhadeb07 + +# Tue Apr 30 12:09:44 2019 + +#Implementation: syn_results + +Synopsys HDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Synopsys VHDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd":24:7:24:10|Top entity is set to PCSD. +VHDL syntax check successful! +File /home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd changed - recompiling + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 70MB peak: 72MB) + + +Process completed successfully. +# Tue Apr 30 12:09:44 2019 + +###########################################################] +Synopsys Verilog Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps) +@I::"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v" (library work) +Verilog syntax check successful! + +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB) + + +Process completed successfully. +# Tue Apr 30 12:09:45 2019 + +###########################################################] +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd":24:7:24:10|Top entity is set to PCSD. +File /home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd changed - recompiling +File /home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd changed - recompiling +VHDL syntax check successful! +File /home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd changed - recompiling +@N: CD630 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd":24:7:24:10|Synthesizing work.pcsd.v1. +Post processing for work.pcsd.v1 + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 74MB peak: 76MB) + + +Process completed successfully. +# Tue Apr 30 12:09:45 2019 + +###########################################################] +Running on host :lxhadeb07 +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps) +@I::"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v" (library work) +Verilog syntax check successful! +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +@N: CG364 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":92:7:92:18|Synthesizing module PCSDrsl_core in library work. + + pnum_channels=32'b00000000000000000000000000000001 + pprotocol=24'b010001110100001001000101 + pserdes_mode=72'b010100100101100000100000010000010100111001000100001000000101010001011000 + pport_tx_rdy=64'b0100010001001001010100110100000101000010010011000100010101000100 + pwait_tx_rdy=32'b00000000000000000000101110111000 + pport_rx_rdy=64'b0100010001001001010100110100000101000010010011000100010101000100 + pwait_rx_rdy=32'b00000000000000000000101110111000 + wa_num_cycles=32'b00000000000000000000010000000000 + dac_num_cycles=32'b00000000000000000000000000000011 + lreset_pwidth=32'b00000000000000000000000000000011 + lwait_b4_trst=32'b00000000000010111110101111000010 + lwait_b4_trst_s=32'b00000000000000000000001100001101 + lplol_cnt_width=32'b00000000000000000000000000010100 + lwait_after_plol0=32'b00000000000000000000000000000100 + lwait_b4_rrst=32'b00000000000000101100000000000000 + lrrst_wait_width=32'b00000000000000000000000000010100 + lwait_after_rrst=32'b00000000000011000011010100000000 + lwait_b4_rrst_s=32'b00000000000000000000000111001100 + lrlol_cnt_width=32'b00000000000000000000000000010011 + lwait_after_lols=32'b00000000000000001100010000000000 + lwait_after_lols_s=32'b00000000000000000000000010010110 + llols_cnt_width=32'b00000000000000000000000000010010 + lrdb_max=32'b00000000000000000000000000001111 + ltxr_wait_width=32'b00000000000000000000000000001100 + lrxr_wait_width=32'b00000000000000000000000000001100 + Generated name = PCSDrsl_core_Z1_layer1 +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":274:33:274:48|Removing wire dual_or_serd_rst, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":275:33:275:46|Removing wire tx_any_pcs_rst, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":276:33:276:42|Removing wire tx_any_rst, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":277:33:277:41|Object txsr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":278:33:278:42|Object txdpr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":279:33:279:41|Object txpr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":280:33:280:41|Object txr_wt_en is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":281:33:281:42|Object txr_wt_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":282:33:282:41|Removing wire txr_wt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":283:33:283:43|Object ruo_tx_rdyr is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":326:33:326:40|Object rrst_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":327:33:327:43|Removing wire rrst_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":328:33:328:41|Object rrst_wait is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":341:33:341:39|Object rxp_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":342:33:342:39|Object rxp_rst is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":343:33:343:42|Removing wire rxp_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":346:33:346:42|Object rlolsz_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":347:33:347:45|Removing wire rlolsz_cnt_tc, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":350:33:350:43|Removing wire rxp_cnt2_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":351:33:351:47|Object data_loop_b_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":352:33:352:43|Object data_loop_b is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":353:33:353:46|Removing wire data_loop_b_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":356:33:356:41|Object rxsr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":357:33:357:41|Object rxpr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":358:33:358:42|Object rxsdr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":359:33:359:42|Object rxdpr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":360:33:360:48|Removing wire rxsdr_or_sr_appd, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":361:33:361:49|Removing wire dual_or_rserd_rst, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":362:33:362:46|Removing wire rx_any_pcs_rst, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":363:33:363:42|Removing wire rx_any_rst, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":364:33:364:41|Object rxr_wt_en is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":365:33:365:42|Object rxr_wt_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":366:33:366:41|Removing wire rxr_wt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":367:33:367:43|Object ruo_rx_rdyr is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":507:10:507:10|Object m is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":880:10:880:10|Object l is declared but not assigned. Either assign a value or remove the declaration. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":806:3:806:8|Pruning unused register genblk2.rxp_cnt2[2:0]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlol_p3. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlos_p3. Make sure that there are no unused intermediate registers. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":694:3:694:8|Optimizing register bit genblk2.rxs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":461:3:461:8|Optimizing register bit genblk1.txp_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":422:3:422:8|Optimizing register bit genblk1.txs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":422:3:422:8|Pruning register bit 2 of genblk1.txs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":461:3:461:8|Pruning register bit 2 of genblk1.txp_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":694:3:694:8|Pruning register bit 2 of genblk2.rxs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":200:33:200:48|Input port bits 3 to 1 of rui_tx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":204:33:204:51|Input port bits 3 to 1 of rui_rx_serdes_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":205:33:205:48|Input port bits 3 to 1 of rui_rx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":206:33:206:48|Input port bits 3 to 1 of rdi_rx_los_low_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":207:33:207:48|Input port bits 3 to 1 of rdi_rx_cdr_lol_s[3:0] are unused. Assign logic for all port bits or change the input port size. + +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 73MB peak: 75MB) + + +Process completed successfully. +# Tue Apr 30 12:09:45 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +File /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synwork/layer0.srs changed - recompiling +File /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synwork/layer1.srs changed - recompiling + +======================================================================================= +For a summary of linker messages for components that did not bind, please see log file: +@L: /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synwork/PCSD_comp.linkerlog +======================================================================================= + + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Tue Apr 30 12:09:46 2019 + +###########################################################] +@END + +At c_hdl Exit (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 3MB peak: 4MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Tue Apr 30 12:09:46 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +File /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synwork/PCSD_comp.srs changed - recompiling + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Tue Apr 30 12:09:47 2019 + +###########################################################] +# Tue Apr 30 12:09:47 2019 + +Synopsys Lattice Technology Pre-mapping, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 100MB) + +Reading constraint file: /home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.fdc +@L: /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/PCSD_scck.rpt +Printing clock summary report in "/home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/PCSD_scck.rpt" file +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 101MB peak: 103MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 101MB peak: 103MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 114MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 116MB) + +ICG Latch Removal Summary: +Number of ICG latches removed: 0 +Number of ICG latches not removed: 0 +syn_allowed_resources : blockrams=56 set on top level netlist PCSD + +Finished netlist restructuring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + + +Clock Summary +****************** + + Start Requested Requested Clock Clock Clock +Level Clock Frequency Period Type Group Load +----------------------------------------------------------------------------------------------------- +0 - System 100.0 MHz 10.000 system system_clkgroup 0 + +0 - PCSD|rxrefclk 100.0 MHz 10.000 inferred Inferred_clkgroup_1 59 + +0 - PCSD|pll_refclki 100.0 MHz 10.000 inferred Inferred_clkgroup_0 33 +===================================================================================================== + +@W: MT529 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":412:3:412:8|Found inferred clock PCSD|pll_refclki which controls 33 sequential elements including rsl_inst.genblk1\.plol_cnt[19:0]. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":567:3:567:8|Found inferred clock PCSD|rxrefclk which controls 59 sequential elements including rsl_inst.genblk2\.rlos_db_p1. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. + +Finished Pre Mapping Phase. + +Starting constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished constraint checker preprocessing (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + +None +None + +Finished constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + +Pre-mapping successful! + +At Mapper Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 57MB peak: 143MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime +# Tue Apr 30 12:09:48 2019 + +###########################################################] +# Tue Apr 30 12:09:48 2019 + +Synopsys Lattice Technology Mapper, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 100MB) + +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 113MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 115MB) + + + +Starting Optimization and Mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Available hyper_sources - for debug and ip models + None Found + + +Finished RTL optimizations (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":412:3:412:8|Found counter in view:work.PCSDrsl_core_Z1_layer1(verilog) instance genblk1\.plol_cnt[19:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":778:3:778:8|Found counter in view:work.PCSDrsl_core_Z1_layer1(verilog) instance genblk2\.rlols0_cnt[17:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":680:3:680:8|Found counter in view:work.PCSDrsl_core_Z1_layer1(verilog) instance genblk2\.rlol1_cnt[18:0] + +Starting factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 143MB) + + +Starting gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 143MB) + + +Finished gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 143MB) + + +Finished generic timing optimizations - Pass 1 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 143MB) + + +Starting Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 143MB) + + +Finished Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 143MB) + + +Finished generic timing optimizations - Pass 2 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 143MB) + + +Finished preparing to map (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 143MB) + + +Finished technology mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + +Pass CPU time Worst Slack Luts / Registers +------------------------------------------------------------ + 1 0h:00m:00s 5.36ns 63 / 92 + +Finished technology timing optimizations and critical path resynthesis (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + +@N: FX164 |The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute. + +Finished restoring hierarchy (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 143MB peak: 144MB) + + + +@S |Clock Optimization Summary + + +#### START OF CLOCK OPTIMIZATION REPORT #####[ + +2 non-gated/non-generated clock tree(s) driving 92 clock pin(s) of sequential element(s) +0 gated/generated clock tree(s) driving 0 clock pin(s) of sequential element(s) +0 instances converted, 0 sequential instances remain driven by gated/generated clocks + +=================================== Non-Gated/Non-Generated Clocks ==================================== +Clock Tree ID Driving Element Drive Element Type Fanout Sample Instance +------------------------------------------------------------------------------------------------------- +@K:CKID0001 rxrefclk port 59 rsl_inst.genblk2\.rlol1_cnt[18] +@K:CKID0002 pll_refclki port 33 rsl_inst.genblk1\.pll_lol_p1 +======================================================================================================= + + +##### END OF CLOCK OPTIMIZATION REPORT ######] + + +Start Writing Netlists (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 107MB peak: 144MB) + +Writing Analyst data base /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synwork/PCSD_m.srm + +Finished Writing Netlist Databases (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 142MB peak: 144MB) + +Writing EDIF Netlist and constraint files +@N: FX1056 |Writing EDF file: /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/PCSD.edn +M-2017.03L-SP1-1 +@N: BW106 |Synplicity Constraint File capacitance units using default value of 1pF + +Finished Writing EDIF Netlist and constraint files (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:02s; Memory used current: 146MB peak: 148MB) + +Writing Verilog Simulation files + +Finished Writing Verilog Simulation files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 146MB peak: 148MB) + +Writing VHDL Simulation files + +Finished Writing VHDL Simulation files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 147MB peak: 148MB) + + +Start final timing analysis (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 147MB peak: 148MB) + +@W: MT246 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd":118:4:118:12|Blackbox DCUA is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) +@W: MT420 |Found inferred clock PCSD|rxrefclk with period 10.00ns. Please declare a user-defined clock on object "p:rxrefclk" +@W: MT420 |Found inferred clock PCSD|pll_refclki with period 10.00ns. Please declare a user-defined clock on object "p:pll_refclki" + + +##### START OF TIMING REPORT #####[ +# Timing Report written on Tue Apr 30 12:09:50 2019 +# + + +Top view: PCSD +Requested Frequency: 100.0 MHz +Wire load mode: top +Paths requested: 5 +Constraint File(s): /home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.fdc + +@N: MT320 |This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. + +@N: MT322 |Clock constraints include only register-to-register paths associated with each individual clock. + + + +Performance Summary +******************* + + +Worst slack in design: 4.079 + +@N: MT286 |System clock period 0.000 stretches to negative invalid value -- ignoring stretching. + Requested Estimated Requested Estimated Clock Clock +Starting Clock Frequency Frequency Period Period Slack Type Group +------------------------------------------------------------------------------------------------------------------------- +PCSD|pll_refclki 100.0 MHz 168.9 MHz 10.000 5.921 4.079 inferred Inferred_clkgroup_0 +PCSD|rxrefclk 100.0 MHz 170.5 MHz 10.000 5.864 4.136 inferred Inferred_clkgroup_1 +System 100.0 MHz 18518.5 MHz 10.000 0.054 9.946 system system_clkgroup +========================================================================================================================= + + + + + +Clock Relationships +******************* + +Clocks | rise to rise | fall to fall | rise to fall | fall to rise +--------------------------------------------------------------------------------------------------------------------------- +Starting Ending | constraint slack | constraint slack | constraint slack | constraint slack +--------------------------------------------------------------------------------------------------------------------------- +System System | 10.000 10.000 | No paths - | No paths - | No paths - +System PCSD|rxrefclk | 10.000 9.946 | No paths - | No paths - | No paths - +PCSD|pll_refclki System | 10.000 8.385 | No paths - | No paths - | No paths - +PCSD|pll_refclki PCSD|pll_refclki | 10.000 4.079 | No paths - | No paths - | No paths - +PCSD|rxrefclk System | 10.000 8.283 | No paths - | No paths - | No paths - +PCSD|rxrefclk PCSD|rxrefclk | 10.000 4.136 | No paths - | No paths - | No paths - +=========================================================================================================================== + Note: 'No paths' indicates there are no paths in the design for that pair of clock edges. + 'Diff grp' indicates that paths exist but the starting clock and ending clock are in different clock groups. + + + +Interface Information +********************* + +No IO constraint found + + + +==================================== +Detailed Report for Clock: PCSD|pll_refclki +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +-------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[1] PCSD|pll_refclki FD1S3DX Q plol_cnt[1] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[6] PCSD|pll_refclki FD1S3DX Q plol_cnt[6] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[7] PCSD|pll_refclki FD1S3DX Q plol_cnt[7] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[12] PCSD|pll_refclki FD1S3DX Q plol_cnt[12] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[2] PCSD|pll_refclki FD1S3DX Q plol_cnt[2] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[3] PCSD|pll_refclki FD1S3DX Q plol_cnt[3] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[4] PCSD|pll_refclki FD1S3DX Q plol_cnt[4] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[5] PCSD|pll_refclki FD1S3DX Q plol_cnt[5] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[8] PCSD|pll_refclki FD1S3DX Q plol_cnt[8] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[9] PCSD|pll_refclki FD1S3DX Q plol_cnt[9] 0.907 4.684 +============================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +----------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[19] PCSD|pll_refclki FD1S3DX D plol_cnt_s[19] 9.946 4.079 +rsl_inst.genblk1\.plol_cnt[17] PCSD|pll_refclki FD1S3DX D plol_cnt_s[17] 9.946 4.139 +rsl_inst.genblk1\.plol_cnt[18] PCSD|pll_refclki FD1S3DX D plol_cnt_s[18] 9.946 4.139 +rsl_inst.genblk1\.plol_cnt[15] PCSD|pll_refclki FD1S3DX D plol_cnt_s[15] 9.946 4.200 +rsl_inst.genblk1\.plol_cnt[16] PCSD|pll_refclki FD1S3DX D plol_cnt_s[16] 9.946 4.200 +rsl_inst.genblk1\.plol_cnt[13] PCSD|pll_refclki FD1S3DX D plol_cnt_s[13] 9.946 4.261 +rsl_inst.genblk1\.plol_cnt[14] PCSD|pll_refclki FD1S3DX D plol_cnt_s[14] 9.946 4.261 +rsl_inst.genblk1\.plol_cnt[11] PCSD|pll_refclki FD1S3DX D plol_cnt_s[11] 9.946 4.322 +rsl_inst.genblk1\.plol_cnt[12] PCSD|pll_refclki FD1S3DX D plol_cnt_s[12] 9.946 4.322 +rsl_inst.genblk1\.plol_cnt[9] PCSD|pll_refclki FD1S3DX D plol_cnt_s[9] 9.946 4.383 +================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 5.867 + - Clock delay at starting point: 0.000 (ideal) + = Slack (critical) : 4.079 + + Number of logic level(s): 15 + Starting point: rsl_inst.genblk1\.plol_cnt[1] / Q + Ending point: rsl_inst.genblk1\.plol_cnt[19] / D + The start point is clocked by PCSD|pll_refclki [rising] on pin CK + The end point is clocked by PCSD|pll_refclki [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[1] FD1S3DX Q Out 0.907 0.907 - +plol_cnt[1] Net - - - - 2 +rsl_inst.genblk1\.un1_plol_cnt_tc_10 ORCALUT4 A In 0.000 0.907 - +rsl_inst.genblk1\.un1_plol_cnt_tc_10 ORCALUT4 Z Out 0.606 1.513 - +un1_plol_cnt_tc_10 Net - - - - 1 +rsl_inst.genblk1\.un1_plol_cnt_tc_14 ORCALUT4 D In 0.000 1.513 - +rsl_inst.genblk1\.un1_plol_cnt_tc_14 ORCALUT4 Z Out 0.606 2.119 - +un1_plol_cnt_tc_14 Net - - - - 1 +rsl_inst.genblk1\.un1_plol_cnt_tc ORCALUT4 D In 0.000 2.119 - +rsl_inst.genblk1\.un1_plol_cnt_tc ORCALUT4 Z Out 0.762 2.881 - +un1_plol_cnt_tc Net - - - - 5 +rsl_inst.genblk1\.plol_cnt11_i ORCALUT4 B In 0.000 2.881 - +rsl_inst.genblk1\.plol_cnt11_i ORCALUT4 Z Out 0.840 3.721 - +plol_cnt Net - - - - 21 +rsl_inst.genblk1\.plol_cnt_cry_0[0] CCU2C A1 In 0.000 3.721 - +rsl_inst.genblk1\.plol_cnt_cry_0[0] CCU2C COUT Out 0.900 4.621 - +plol_cnt_cry[0] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[1] CCU2C CIN In 0.000 4.621 - +rsl_inst.genblk1\.plol_cnt_cry_0[1] CCU2C COUT Out 0.061 4.682 - +plol_cnt_cry[2] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[3] CCU2C CIN In 0.000 4.682 - +rsl_inst.genblk1\.plol_cnt_cry_0[3] CCU2C COUT Out 0.061 4.743 - +plol_cnt_cry[4] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[5] CCU2C CIN In 0.000 4.743 - +rsl_inst.genblk1\.plol_cnt_cry_0[5] CCU2C COUT Out 0.061 4.804 - +plol_cnt_cry[6] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[7] CCU2C CIN In 0.000 4.804 - +rsl_inst.genblk1\.plol_cnt_cry_0[7] CCU2C COUT Out 0.061 4.865 - +plol_cnt_cry[8] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[9] CCU2C CIN In 0.000 4.865 - +rsl_inst.genblk1\.plol_cnt_cry_0[9] CCU2C COUT Out 0.061 4.926 - +plol_cnt_cry[10] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[11] CCU2C CIN In 0.000 4.926 - +rsl_inst.genblk1\.plol_cnt_cry_0[11] CCU2C COUT Out 0.061 4.987 - +plol_cnt_cry[12] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[13] CCU2C CIN In 0.000 4.987 - +rsl_inst.genblk1\.plol_cnt_cry_0[13] CCU2C COUT Out 0.061 5.048 - +plol_cnt_cry[14] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[15] CCU2C CIN In 0.000 5.048 - +rsl_inst.genblk1\.plol_cnt_cry_0[15] CCU2C COUT Out 0.061 5.109 - +plol_cnt_cry[16] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[17] CCU2C CIN In 0.000 5.109 - +rsl_inst.genblk1\.plol_cnt_cry_0[17] CCU2C COUT Out 0.061 5.170 - +plol_cnt_cry[18] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_s_0[19] CCU2C CIN In 0.000 5.170 - +rsl_inst.genblk1\.plol_cnt_s_0[19] CCU2C S0 Out 0.698 5.867 - +plol_cnt_s[19] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt[19] FD1S3DX D In 0.000 5.867 - +======================================================================================================= + + + + +==================================== +Detailed Report for Clock: PCSD|rxrefclk +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rlol1_cnt[14] PCSD|rxrefclk FD1P3DX Q rlol1_cnt[14] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[15] PCSD|rxrefclk FD1P3DX Q rlol1_cnt[15] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[16] PCSD|rxrefclk FD1P3DX Q rlol1_cnt[16] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[17] PCSD|rxrefclk FD1P3DX Q rlol1_cnt[17] 0.907 4.136 +rsl_inst.genblk2\.rlols0_cnt[10] PCSD|rxrefclk FD1P3DX Q rlols0_cnt[10] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[14] PCSD|rxrefclk FD1P3DX Q rlols0_cnt[14] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[16] PCSD|rxrefclk FD1P3DX Q rlols0_cnt[16] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[17] PCSD|rxrefclk FD1P3DX Q rlols0_cnt[17] 0.907 4.170 +rsl_inst.genblk2\.rlol1_cnt[0] PCSD|rxrefclk FD1P3DX Q rlol1_cnt[0] 0.907 4.742 +rsl_inst.genblk2\.rlol1_cnt[1] PCSD|rxrefclk FD1P3DX Q rlol1_cnt[1] 0.907 4.742 +=============================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------------------------------------ +rsl_inst.genblk2\.rlol1_cnt[17] PCSD|rxrefclk FD1P3DX D rlol1_cnt_s[17] 9.946 4.136 +rsl_inst.genblk2\.rlol1_cnt[18] PCSD|rxrefclk FD1P3DX D rlol1_cnt_s[18] 9.946 4.136 +rsl_inst.genblk2\.rlols0_cnt[17] PCSD|rxrefclk FD1P3DX D rlols0_cnt_s[17] 9.946 4.170 +rsl_inst.genblk2\.rlol1_cnt[15] PCSD|rxrefclk FD1P3DX D rlol1_cnt_s[15] 9.946 4.197 +rsl_inst.genblk2\.rlol1_cnt[16] PCSD|rxrefclk FD1P3DX D rlol1_cnt_s[16] 9.946 4.197 +rsl_inst.genblk2\.rlols0_cnt[15] PCSD|rxrefclk FD1P3DX D rlols0_cnt_s[15] 9.946 4.231 +rsl_inst.genblk2\.rlols0_cnt[16] PCSD|rxrefclk FD1P3DX D rlols0_cnt_s[16] 9.946 4.231 +rsl_inst.genblk2\.rlol1_cnt[13] PCSD|rxrefclk FD1P3DX D rlol1_cnt_s[13] 9.946 4.258 +rsl_inst.genblk2\.rlol1_cnt[14] PCSD|rxrefclk FD1P3DX D rlol1_cnt_s[14] 9.946 4.258 +rsl_inst.genblk2\.rlols0_cnt[13] PCSD|rxrefclk FD1P3DX D rlols0_cnt_s[13] 9.946 4.292 +================================================================================================================== + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 5.809 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : 4.136 + + Number of logic level(s): 14 + Starting point: rsl_inst.genblk2\.rlol1_cnt[14] / Q + Ending point: rsl_inst.genblk2\.rlol1_cnt[18] / D + The start point is clocked by PCSD|rxrefclk [rising] on pin CK + The end point is clocked by PCSD|rxrefclk [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +-------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rlol1_cnt[14] FD1P3DX Q Out 0.907 0.907 - +rlol1_cnt[14] Net - - - - 2 +rsl_inst.rlol1_cnt_tc_1_10 ORCALUT4 A In 0.000 0.907 - +rsl_inst.rlol1_cnt_tc_1_10 ORCALUT4 Z Out 0.606 1.513 - +rlol1_cnt_tc_1_10 Net - - - - 1 +rsl_inst.rlol1_cnt_tc_1_14 ORCALUT4 D In 0.000 1.513 - +rsl_inst.rlol1_cnt_tc_1_14 ORCALUT4 Z Out 0.606 2.119 - +rlol1_cnt_tc_1_14 Net - - - - 1 +rsl_inst.rlol1_cnt_tc_1 ORCALUT4 D In 0.000 2.119 - +rsl_inst.rlol1_cnt_tc_1 ORCALUT4 Z Out 0.768 2.887 - +rlol1_cnt_tc_1 Net - - - - 6 +rsl_inst.genblk2\.rxs_rst_RNIS0OP ORCALUT4 A In 0.000 2.887 - +rsl_inst.genblk2\.rxs_rst_RNIS0OP ORCALUT4 Z Out 0.837 3.724 - +rlol1_cnt Net - - - - 20 +rsl_inst.genblk2\.rlol1_cnt_cry_0[0] CCU2C A1 In 0.000 3.724 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[0] CCU2C COUT Out 0.900 4.624 - +rlol1_cnt_cry[0] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[1] CCU2C CIN In 0.000 4.624 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[1] CCU2C COUT Out 0.061 4.685 - +rlol1_cnt_cry[2] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[3] CCU2C CIN In 0.000 4.685 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[3] CCU2C COUT Out 0.061 4.746 - +rlol1_cnt_cry[4] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[5] CCU2C CIN In 0.000 4.746 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[5] CCU2C COUT Out 0.061 4.807 - +rlol1_cnt_cry[6] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[7] CCU2C CIN In 0.000 4.807 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[7] CCU2C COUT Out 0.061 4.868 - +rlol1_cnt_cry[8] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[9] CCU2C CIN In 0.000 4.868 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[9] CCU2C COUT Out 0.061 4.929 - +rlol1_cnt_cry[10] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[11] CCU2C CIN In 0.000 4.929 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[11] CCU2C COUT Out 0.061 4.990 - +rlol1_cnt_cry[12] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[13] CCU2C CIN In 0.000 4.990 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[13] CCU2C COUT Out 0.061 5.051 - +rlol1_cnt_cry[14] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[15] CCU2C CIN In 0.000 5.051 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[15] CCU2C COUT Out 0.061 5.112 - +rlol1_cnt_cry[16] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[17] CCU2C CIN In 0.000 5.112 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[17] CCU2C S1 Out 0.698 5.809 - +rlol1_cnt_s[18] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt[18] FD1P3DX D In 0.000 5.809 - +======================================================================================================== + + + + +==================================== +Detailed Report for Clock: System +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------------- +DCU0_inst System DCUA CH0_FFS_RLOL rx_cdr_lol_s 0.000 9.946 +DCU0_inst System DCUA CH0_FFS_RLOS rx_los_low_s 0.000 9.946 +DCU0_inst System DCUA CH0_FF_TX_PCLK tx_pclk 0.000 10.000 +=========================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +---------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rlol_p1 System FD1S3DX D rx_cdr_lol_s 9.946 9.946 +rsl_inst.genblk2\.rlos_p1 System FD1S3DX D rx_los_low_s 9.946 9.946 +DCU0_inst System DCUA CH0_FF_EBRD_CLK tx_pclk 10.000 10.000 +DCU0_inst System DCUA CH0_FF_RXI_CLK tx_pclk 10.000 10.000 +================================================================================================================ + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 0.000 + - Clock delay at starting point: 0.000 (ideal) + - Estimated clock delay at start point: -0.000 + = Slack (non-critical) : 9.946 + + Number of logic level(s): 0 + Starting point: DCU0_inst / CH0_FFS_RLOL + Ending point: rsl_inst.genblk2\.rlol_p1 / D + The start point is clocked by System [rising] + The end point is clocked by PCSD|rxrefclk [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +--------------------------------------------------------------------------------------------------- +DCU0_inst DCUA CH0_FFS_RLOL Out 0.000 0.000 - +rx_cdr_lol_s Net - - - - 2 +rsl_inst.genblk2\.rlol_p1 FD1S3DX D In 0.000 0.000 - +=================================================================================================== + + + +##### END OF TIMING REPORT #####] + +Timing exceptions that could not be applied +None + +Finished final timing analysis (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 147MB peak: 148MB) + + +Finished timing report (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 147MB peak: 148MB) + +--------------------------------------- +Resource Usage Report +Part: lfe5um_25f-6 + +Register bits: 92 of 24288 (0%) +PIC Latch: 0 +I/O cells: 0 + + +Details: +CCU2C: 37 +DCUA: 1 +FD1P3BX: 4 +FD1P3DX: 42 +FD1S3BX: 10 +FD1S3DX: 36 +GSR: 1 +ORCALUT4: 63 +PFUMX: 2 +PUR: 1 +VHI: 2 +VLO: 2 +Mapper successful! + +At Mapper Exit (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 32MB peak: 148MB) + +Process took 0h:00m:02s realtime, 0h:00m:02s cputime +# Tue Apr 30 12:09:51 2019 + +###########################################################] diff --git a/gbe/cores/sgmii/PCSD/syn_results/PCSD.srm b/gbe/cores/sgmii/PCSD/syn_results/PCSD.srm new file mode 100644 index 0000000000000000000000000000000000000000..ad3a4ed9d936a32ea5e4176f9fc9e80060ff5db1 GIT binary patch literal 27644 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/PCSD/syn_results/PCSD.srr b/gbe/cores/sgmii/PCSD/syn_results/PCSD.srr new file mode 100644 index 0000000..6d9a5e2 --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/PCSD.srr @@ -0,0 +1,829 @@ +#Build: Synplify Pro (R) M-2017.03L-SP1-1, Build 086R, Aug 4 2017 +#install: /home/soft/lattice/diamond/3.10_x64/synpbase +#OS: Linux +#Hostname: lxhadeb07 + +# Tue Apr 30 12:09:44 2019 + +#Implementation: syn_results + +Synopsys HDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Synopsys VHDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd":24:7:24:10|Top entity is set to PCSD. +VHDL syntax check successful! +File /home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd changed - recompiling + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 70MB peak: 72MB) + + +Process completed successfully. +# Tue Apr 30 12:09:44 2019 + +###########################################################] +Synopsys Verilog Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps) +@I::"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v" (library work) +Verilog syntax check successful! + +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB) + + +Process completed successfully. +# Tue Apr 30 12:09:45 2019 + +###########################################################] +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd":24:7:24:10|Top entity is set to PCSD. +File /home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd changed - recompiling +File /home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd changed - recompiling +VHDL syntax check successful! +File /home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd changed - recompiling +@N: CD630 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd":24:7:24:10|Synthesizing work.pcsd.v1. +Post processing for work.pcsd.v1 + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 74MB peak: 76MB) + + +Process completed successfully. +# Tue Apr 30 12:09:45 2019 + +###########################################################] +Running on host :lxhadeb07 +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps) +@I::"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v" (library work) +Verilog syntax check successful! +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +@N: CG364 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":92:7:92:18|Synthesizing module PCSDrsl_core in library work. + + pnum_channels=32'b00000000000000000000000000000001 + pprotocol=24'b010001110100001001000101 + pserdes_mode=72'b010100100101100000100000010000010100111001000100001000000101010001011000 + pport_tx_rdy=64'b0100010001001001010100110100000101000010010011000100010101000100 + pwait_tx_rdy=32'b00000000000000000000101110111000 + pport_rx_rdy=64'b0100010001001001010100110100000101000010010011000100010101000100 + pwait_rx_rdy=32'b00000000000000000000101110111000 + wa_num_cycles=32'b00000000000000000000010000000000 + dac_num_cycles=32'b00000000000000000000000000000011 + lreset_pwidth=32'b00000000000000000000000000000011 + lwait_b4_trst=32'b00000000000010111110101111000010 + lwait_b4_trst_s=32'b00000000000000000000001100001101 + lplol_cnt_width=32'b00000000000000000000000000010100 + lwait_after_plol0=32'b00000000000000000000000000000100 + lwait_b4_rrst=32'b00000000000000101100000000000000 + lrrst_wait_width=32'b00000000000000000000000000010100 + lwait_after_rrst=32'b00000000000011000011010100000000 + lwait_b4_rrst_s=32'b00000000000000000000000111001100 + lrlol_cnt_width=32'b00000000000000000000000000010011 + lwait_after_lols=32'b00000000000000001100010000000000 + lwait_after_lols_s=32'b00000000000000000000000010010110 + llols_cnt_width=32'b00000000000000000000000000010010 + lrdb_max=32'b00000000000000000000000000001111 + ltxr_wait_width=32'b00000000000000000000000000001100 + lrxr_wait_width=32'b00000000000000000000000000001100 + Generated name = PCSDrsl_core_Z1_layer1 +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":274:33:274:48|Removing wire dual_or_serd_rst, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":275:33:275:46|Removing wire tx_any_pcs_rst, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":276:33:276:42|Removing wire tx_any_rst, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":277:33:277:41|Object txsr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":278:33:278:42|Object txdpr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":279:33:279:41|Object txpr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":280:33:280:41|Object txr_wt_en is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":281:33:281:42|Object txr_wt_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":282:33:282:41|Removing wire txr_wt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":283:33:283:43|Object ruo_tx_rdyr is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":326:33:326:40|Object rrst_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":327:33:327:43|Removing wire rrst_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":328:33:328:41|Object rrst_wait is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":341:33:341:39|Object rxp_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":342:33:342:39|Object rxp_rst is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":343:33:343:42|Removing wire rxp_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":346:33:346:42|Object rlolsz_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":347:33:347:45|Removing wire rlolsz_cnt_tc, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":350:33:350:43|Removing wire rxp_cnt2_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":351:33:351:47|Object data_loop_b_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":352:33:352:43|Object data_loop_b is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":353:33:353:46|Removing wire data_loop_b_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":356:33:356:41|Object rxsr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":357:33:357:41|Object rxpr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":358:33:358:42|Object rxsdr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":359:33:359:42|Object rxdpr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":360:33:360:48|Removing wire rxsdr_or_sr_appd, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":361:33:361:49|Removing wire dual_or_rserd_rst, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":362:33:362:46|Removing wire rx_any_pcs_rst, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":363:33:363:42|Removing wire rx_any_rst, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":364:33:364:41|Object rxr_wt_en is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":365:33:365:42|Object rxr_wt_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":366:33:366:41|Removing wire rxr_wt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":367:33:367:43|Object ruo_rx_rdyr is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":507:10:507:10|Object m is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":880:10:880:10|Object l is declared but not assigned. Either assign a value or remove the declaration. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":806:3:806:8|Pruning unused register genblk2.rxp_cnt2[2:0]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlol_p3. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlos_p3. Make sure that there are no unused intermediate registers. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":694:3:694:8|Optimizing register bit genblk2.rxs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":461:3:461:8|Optimizing register bit genblk1.txp_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":422:3:422:8|Optimizing register bit genblk1.txs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":422:3:422:8|Pruning register bit 2 of genblk1.txs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":461:3:461:8|Pruning register bit 2 of genblk1.txp_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":694:3:694:8|Pruning register bit 2 of genblk2.rxs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":200:33:200:48|Input port bits 3 to 1 of rui_tx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":204:33:204:51|Input port bits 3 to 1 of rui_rx_serdes_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":205:33:205:48|Input port bits 3 to 1 of rui_rx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":206:33:206:48|Input port bits 3 to 1 of rdi_rx_los_low_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":207:33:207:48|Input port bits 3 to 1 of rdi_rx_cdr_lol_s[3:0] are unused. Assign logic for all port bits or change the input port size. + +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 73MB peak: 75MB) + + +Process completed successfully. +# Tue Apr 30 12:09:45 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +File /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synwork/layer0.srs changed - recompiling +File /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synwork/layer1.srs changed - recompiling + +======================================================================================= +For a summary of linker messages for components that did not bind, please see log file: +@L: /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synwork/PCSD_comp.linkerlog +======================================================================================= + + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Tue Apr 30 12:09:46 2019 + +###########################################################] +@END + +At c_hdl Exit (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 3MB peak: 4MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Tue Apr 30 12:09:46 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +File /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synwork/PCSD_comp.srs changed - recompiling + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Tue Apr 30 12:09:47 2019 + +###########################################################] +# Tue Apr 30 12:09:47 2019 + +Synopsys Lattice Technology Pre-mapping, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 100MB) + +Reading constraint file: /home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.fdc +@L: /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/PCSD_scck.rpt +Printing clock summary report in "/home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/PCSD_scck.rpt" file +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 101MB peak: 103MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 101MB peak: 103MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 114MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 116MB) + +ICG Latch Removal Summary: +Number of ICG latches removed: 0 +Number of ICG latches not removed: 0 +syn_allowed_resources : blockrams=56 set on top level netlist PCSD + +Finished netlist restructuring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + + +Clock Summary +****************** + + Start Requested Requested Clock Clock Clock +Level Clock Frequency Period Type Group Load +----------------------------------------------------------------------------------------------------- +0 - System 100.0 MHz 10.000 system system_clkgroup 0 + +0 - PCSD|rxrefclk 100.0 MHz 10.000 inferred Inferred_clkgroup_1 59 + +0 - PCSD|pll_refclki 100.0 MHz 10.000 inferred Inferred_clkgroup_0 33 +===================================================================================================== + +@W: MT529 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":412:3:412:8|Found inferred clock PCSD|pll_refclki which controls 33 sequential elements including rsl_inst.genblk1\.plol_cnt[19:0]. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":567:3:567:8|Found inferred clock PCSD|rxrefclk which controls 59 sequential elements including rsl_inst.genblk2\.rlos_db_p1. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. + +Finished Pre Mapping Phase. + +Starting constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished constraint checker preprocessing (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + +None +None + +Finished constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + +Pre-mapping successful! + +At Mapper Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 57MB peak: 143MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime +# Tue Apr 30 12:09:48 2019 + +###########################################################] +# Tue Apr 30 12:09:48 2019 + +Synopsys Lattice Technology Mapper, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 100MB) + +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 113MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 115MB) + + + +Starting Optimization and Mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Available hyper_sources - for debug and ip models + None Found + + +Finished RTL optimizations (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":412:3:412:8|Found counter in view:work.PCSDrsl_core_Z1_layer1(verilog) instance genblk1\.plol_cnt[19:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":778:3:778:8|Found counter in view:work.PCSDrsl_core_Z1_layer1(verilog) instance genblk2\.rlols0_cnt[17:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":680:3:680:8|Found counter in view:work.PCSDrsl_core_Z1_layer1(verilog) instance genblk2\.rlol1_cnt[18:0] + +Starting factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 143MB) + + +Starting gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 143MB) + + +Finished gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 143MB) + + +Finished generic timing optimizations - Pass 1 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 143MB) + + +Starting Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 143MB) + + +Finished Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 143MB) + + +Finished generic timing optimizations - Pass 2 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 143MB) + + +Finished preparing to map (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 143MB) + + +Finished technology mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + +Pass CPU time Worst Slack Luts / Registers +------------------------------------------------------------ + 1 0h:00m:00s 5.36ns 63 / 92 + +Finished technology timing optimizations and critical path resynthesis (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + +@N: FX164 |The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute. + +Finished restoring hierarchy (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 143MB peak: 144MB) + + + +@S |Clock Optimization Summary + + +#### START OF CLOCK OPTIMIZATION REPORT #####[ + +2 non-gated/non-generated clock tree(s) driving 92 clock pin(s) of sequential element(s) +0 gated/generated clock tree(s) driving 0 clock pin(s) of sequential element(s) +0 instances converted, 0 sequential instances remain driven by gated/generated clocks + +=================================== Non-Gated/Non-Generated Clocks ==================================== +Clock Tree ID Driving Element Drive Element Type Fanout Sample Instance +------------------------------------------------------------------------------------------------------- +@K:CKID0001 rxrefclk port 59 rsl_inst.genblk2\.rlol1_cnt[18] +@K:CKID0002 pll_refclki port 33 rsl_inst.genblk1\.pll_lol_p1 +======================================================================================================= + + +##### END OF CLOCK OPTIMIZATION REPORT ######] + + +Start Writing Netlists (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 107MB peak: 144MB) + +Writing Analyst data base /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synwork/PCSD_m.srm + +Finished Writing Netlist Databases (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 142MB peak: 144MB) + +Writing EDIF Netlist and constraint files +@N: FX1056 |Writing EDF file: /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/PCSD.edn +M-2017.03L-SP1-1 +@N: BW106 |Synplicity Constraint File capacitance units using default value of 1pF + +Finished Writing EDIF Netlist and constraint files (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:02s; Memory used current: 146MB peak: 148MB) + +Writing Verilog Simulation files + +Finished Writing Verilog Simulation files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 146MB peak: 148MB) + +Writing VHDL Simulation files + +Finished Writing VHDL Simulation files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 147MB peak: 148MB) + + +Start final timing analysis (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 147MB peak: 148MB) + +@W: MT246 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd":118:4:118:12|Blackbox DCUA is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) +@W: MT420 |Found inferred clock PCSD|rxrefclk with period 10.00ns. Please declare a user-defined clock on object "p:rxrefclk" +@W: MT420 |Found inferred clock PCSD|pll_refclki with period 10.00ns. Please declare a user-defined clock on object "p:pll_refclki" + + +##### START OF TIMING REPORT #####[ +# Timing Report written on Tue Apr 30 12:09:50 2019 +# + + +Top view: PCSD +Requested Frequency: 100.0 MHz +Wire load mode: top +Paths requested: 5 +Constraint File(s): /home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.fdc + +@N: MT320 |This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. + +@N: MT322 |Clock constraints include only register-to-register paths associated with each individual clock. + + + +Performance Summary +******************* + + +Worst slack in design: 4.079 + +@N: MT286 |System clock period 0.000 stretches to negative invalid value -- ignoring stretching. + Requested Estimated Requested Estimated Clock Clock +Starting Clock Frequency Frequency Period Period Slack Type Group +------------------------------------------------------------------------------------------------------------------------- +PCSD|pll_refclki 100.0 MHz 168.9 MHz 10.000 5.921 4.079 inferred Inferred_clkgroup_0 +PCSD|rxrefclk 100.0 MHz 170.5 MHz 10.000 5.864 4.136 inferred Inferred_clkgroup_1 +System 100.0 MHz 18518.5 MHz 10.000 0.054 9.946 system system_clkgroup +========================================================================================================================= + + + + + +Clock Relationships +******************* + +Clocks | rise to rise | fall to fall | rise to fall | fall to rise +--------------------------------------------------------------------------------------------------------------------------- +Starting Ending | constraint slack | constraint slack | constraint slack | constraint slack +--------------------------------------------------------------------------------------------------------------------------- +System System | 10.000 10.000 | No paths - | No paths - | No paths - +System PCSD|rxrefclk | 10.000 9.946 | No paths - | No paths - | No paths - +PCSD|pll_refclki System | 10.000 8.385 | No paths - | No paths - | No paths - +PCSD|pll_refclki PCSD|pll_refclki | 10.000 4.079 | No paths - | No paths - | No paths - +PCSD|rxrefclk System | 10.000 8.283 | No paths - | No paths - | No paths - +PCSD|rxrefclk PCSD|rxrefclk | 10.000 4.136 | No paths - | No paths - | No paths - +=========================================================================================================================== + Note: 'No paths' indicates there are no paths in the design for that pair of clock edges. + 'Diff grp' indicates that paths exist but the starting clock and ending clock are in different clock groups. + + + +Interface Information +********************* + +No IO constraint found + + + +==================================== +Detailed Report for Clock: PCSD|pll_refclki +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +-------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[1] PCSD|pll_refclki FD1S3DX Q plol_cnt[1] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[6] PCSD|pll_refclki FD1S3DX Q plol_cnt[6] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[7] PCSD|pll_refclki FD1S3DX Q plol_cnt[7] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[12] PCSD|pll_refclki FD1S3DX Q plol_cnt[12] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[2] PCSD|pll_refclki FD1S3DX Q plol_cnt[2] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[3] PCSD|pll_refclki FD1S3DX Q plol_cnt[3] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[4] PCSD|pll_refclki FD1S3DX Q plol_cnt[4] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[5] PCSD|pll_refclki FD1S3DX Q plol_cnt[5] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[8] PCSD|pll_refclki FD1S3DX Q plol_cnt[8] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[9] PCSD|pll_refclki FD1S3DX Q plol_cnt[9] 0.907 4.684 +============================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +----------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[19] PCSD|pll_refclki FD1S3DX D plol_cnt_s[19] 9.946 4.079 +rsl_inst.genblk1\.plol_cnt[17] PCSD|pll_refclki FD1S3DX D plol_cnt_s[17] 9.946 4.139 +rsl_inst.genblk1\.plol_cnt[18] PCSD|pll_refclki FD1S3DX D plol_cnt_s[18] 9.946 4.139 +rsl_inst.genblk1\.plol_cnt[15] PCSD|pll_refclki FD1S3DX D plol_cnt_s[15] 9.946 4.200 +rsl_inst.genblk1\.plol_cnt[16] PCSD|pll_refclki FD1S3DX D plol_cnt_s[16] 9.946 4.200 +rsl_inst.genblk1\.plol_cnt[13] PCSD|pll_refclki FD1S3DX D plol_cnt_s[13] 9.946 4.261 +rsl_inst.genblk1\.plol_cnt[14] PCSD|pll_refclki FD1S3DX D plol_cnt_s[14] 9.946 4.261 +rsl_inst.genblk1\.plol_cnt[11] PCSD|pll_refclki FD1S3DX D plol_cnt_s[11] 9.946 4.322 +rsl_inst.genblk1\.plol_cnt[12] PCSD|pll_refclki FD1S3DX D plol_cnt_s[12] 9.946 4.322 +rsl_inst.genblk1\.plol_cnt[9] PCSD|pll_refclki FD1S3DX D plol_cnt_s[9] 9.946 4.383 +================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 5.867 + - Clock delay at starting point: 0.000 (ideal) + = Slack (critical) : 4.079 + + Number of logic level(s): 15 + Starting point: rsl_inst.genblk1\.plol_cnt[1] / Q + Ending point: rsl_inst.genblk1\.plol_cnt[19] / D + The start point is clocked by PCSD|pll_refclki [rising] on pin CK + The end point is clocked by PCSD|pll_refclki [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[1] FD1S3DX Q Out 0.907 0.907 - +plol_cnt[1] Net - - - - 2 +rsl_inst.genblk1\.un1_plol_cnt_tc_10 ORCALUT4 A In 0.000 0.907 - +rsl_inst.genblk1\.un1_plol_cnt_tc_10 ORCALUT4 Z Out 0.606 1.513 - +un1_plol_cnt_tc_10 Net - - - - 1 +rsl_inst.genblk1\.un1_plol_cnt_tc_14 ORCALUT4 D In 0.000 1.513 - +rsl_inst.genblk1\.un1_plol_cnt_tc_14 ORCALUT4 Z Out 0.606 2.119 - +un1_plol_cnt_tc_14 Net - - - - 1 +rsl_inst.genblk1\.un1_plol_cnt_tc ORCALUT4 D In 0.000 2.119 - +rsl_inst.genblk1\.un1_plol_cnt_tc ORCALUT4 Z Out 0.762 2.881 - +un1_plol_cnt_tc Net - - - - 5 +rsl_inst.genblk1\.plol_cnt11_i ORCALUT4 B In 0.000 2.881 - +rsl_inst.genblk1\.plol_cnt11_i ORCALUT4 Z Out 0.840 3.721 - +plol_cnt Net - - - - 21 +rsl_inst.genblk1\.plol_cnt_cry_0[0] CCU2C A1 In 0.000 3.721 - +rsl_inst.genblk1\.plol_cnt_cry_0[0] CCU2C COUT Out 0.900 4.621 - +plol_cnt_cry[0] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[1] CCU2C CIN In 0.000 4.621 - +rsl_inst.genblk1\.plol_cnt_cry_0[1] CCU2C COUT Out 0.061 4.682 - +plol_cnt_cry[2] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[3] CCU2C CIN In 0.000 4.682 - +rsl_inst.genblk1\.plol_cnt_cry_0[3] CCU2C COUT Out 0.061 4.743 - +plol_cnt_cry[4] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[5] CCU2C CIN In 0.000 4.743 - +rsl_inst.genblk1\.plol_cnt_cry_0[5] CCU2C COUT Out 0.061 4.804 - +plol_cnt_cry[6] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[7] CCU2C CIN In 0.000 4.804 - +rsl_inst.genblk1\.plol_cnt_cry_0[7] CCU2C COUT Out 0.061 4.865 - +plol_cnt_cry[8] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[9] CCU2C CIN In 0.000 4.865 - +rsl_inst.genblk1\.plol_cnt_cry_0[9] CCU2C COUT Out 0.061 4.926 - +plol_cnt_cry[10] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[11] CCU2C CIN In 0.000 4.926 - +rsl_inst.genblk1\.plol_cnt_cry_0[11] CCU2C COUT Out 0.061 4.987 - +plol_cnt_cry[12] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[13] CCU2C CIN In 0.000 4.987 - +rsl_inst.genblk1\.plol_cnt_cry_0[13] CCU2C COUT Out 0.061 5.048 - +plol_cnt_cry[14] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[15] CCU2C CIN In 0.000 5.048 - +rsl_inst.genblk1\.plol_cnt_cry_0[15] CCU2C COUT Out 0.061 5.109 - +plol_cnt_cry[16] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[17] CCU2C CIN In 0.000 5.109 - +rsl_inst.genblk1\.plol_cnt_cry_0[17] CCU2C COUT Out 0.061 5.170 - +plol_cnt_cry[18] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_s_0[19] CCU2C CIN In 0.000 5.170 - +rsl_inst.genblk1\.plol_cnt_s_0[19] CCU2C S0 Out 0.698 5.867 - +plol_cnt_s[19] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt[19] FD1S3DX D In 0.000 5.867 - +======================================================================================================= + + + + +==================================== +Detailed Report for Clock: PCSD|rxrefclk +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rlol1_cnt[14] PCSD|rxrefclk FD1P3DX Q rlol1_cnt[14] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[15] PCSD|rxrefclk FD1P3DX Q rlol1_cnt[15] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[16] PCSD|rxrefclk FD1P3DX Q rlol1_cnt[16] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[17] PCSD|rxrefclk FD1P3DX Q rlol1_cnt[17] 0.907 4.136 +rsl_inst.genblk2\.rlols0_cnt[10] PCSD|rxrefclk FD1P3DX Q rlols0_cnt[10] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[14] PCSD|rxrefclk FD1P3DX Q rlols0_cnt[14] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[16] PCSD|rxrefclk FD1P3DX Q rlols0_cnt[16] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[17] PCSD|rxrefclk FD1P3DX Q rlols0_cnt[17] 0.907 4.170 +rsl_inst.genblk2\.rlol1_cnt[0] PCSD|rxrefclk FD1P3DX Q rlol1_cnt[0] 0.907 4.742 +rsl_inst.genblk2\.rlol1_cnt[1] PCSD|rxrefclk FD1P3DX Q rlol1_cnt[1] 0.907 4.742 +=============================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------------------------------------ +rsl_inst.genblk2\.rlol1_cnt[17] PCSD|rxrefclk FD1P3DX D rlol1_cnt_s[17] 9.946 4.136 +rsl_inst.genblk2\.rlol1_cnt[18] PCSD|rxrefclk FD1P3DX D rlol1_cnt_s[18] 9.946 4.136 +rsl_inst.genblk2\.rlols0_cnt[17] PCSD|rxrefclk FD1P3DX D rlols0_cnt_s[17] 9.946 4.170 +rsl_inst.genblk2\.rlol1_cnt[15] PCSD|rxrefclk FD1P3DX D rlol1_cnt_s[15] 9.946 4.197 +rsl_inst.genblk2\.rlol1_cnt[16] PCSD|rxrefclk FD1P3DX D rlol1_cnt_s[16] 9.946 4.197 +rsl_inst.genblk2\.rlols0_cnt[15] PCSD|rxrefclk FD1P3DX D rlols0_cnt_s[15] 9.946 4.231 +rsl_inst.genblk2\.rlols0_cnt[16] PCSD|rxrefclk FD1P3DX D rlols0_cnt_s[16] 9.946 4.231 +rsl_inst.genblk2\.rlol1_cnt[13] PCSD|rxrefclk FD1P3DX D rlol1_cnt_s[13] 9.946 4.258 +rsl_inst.genblk2\.rlol1_cnt[14] PCSD|rxrefclk FD1P3DX D rlol1_cnt_s[14] 9.946 4.258 +rsl_inst.genblk2\.rlols0_cnt[13] PCSD|rxrefclk FD1P3DX D rlols0_cnt_s[13] 9.946 4.292 +================================================================================================================== + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 5.809 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : 4.136 + + Number of logic level(s): 14 + Starting point: rsl_inst.genblk2\.rlol1_cnt[14] / Q + Ending point: rsl_inst.genblk2\.rlol1_cnt[18] / D + The start point is clocked by PCSD|rxrefclk [rising] on pin CK + The end point is clocked by PCSD|rxrefclk [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +-------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rlol1_cnt[14] FD1P3DX Q Out 0.907 0.907 - +rlol1_cnt[14] Net - - - - 2 +rsl_inst.rlol1_cnt_tc_1_10 ORCALUT4 A In 0.000 0.907 - +rsl_inst.rlol1_cnt_tc_1_10 ORCALUT4 Z Out 0.606 1.513 - +rlol1_cnt_tc_1_10 Net - - - - 1 +rsl_inst.rlol1_cnt_tc_1_14 ORCALUT4 D In 0.000 1.513 - +rsl_inst.rlol1_cnt_tc_1_14 ORCALUT4 Z Out 0.606 2.119 - +rlol1_cnt_tc_1_14 Net - - - - 1 +rsl_inst.rlol1_cnt_tc_1 ORCALUT4 D In 0.000 2.119 - +rsl_inst.rlol1_cnt_tc_1 ORCALUT4 Z Out 0.768 2.887 - +rlol1_cnt_tc_1 Net - - - - 6 +rsl_inst.genblk2\.rxs_rst_RNIS0OP ORCALUT4 A In 0.000 2.887 - +rsl_inst.genblk2\.rxs_rst_RNIS0OP ORCALUT4 Z Out 0.837 3.724 - +rlol1_cnt Net - - - - 20 +rsl_inst.genblk2\.rlol1_cnt_cry_0[0] CCU2C A1 In 0.000 3.724 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[0] CCU2C COUT Out 0.900 4.624 - +rlol1_cnt_cry[0] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[1] CCU2C CIN In 0.000 4.624 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[1] CCU2C COUT Out 0.061 4.685 - +rlol1_cnt_cry[2] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[3] CCU2C CIN In 0.000 4.685 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[3] CCU2C COUT Out 0.061 4.746 - +rlol1_cnt_cry[4] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[5] CCU2C CIN In 0.000 4.746 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[5] CCU2C COUT Out 0.061 4.807 - +rlol1_cnt_cry[6] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[7] CCU2C CIN In 0.000 4.807 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[7] CCU2C COUT Out 0.061 4.868 - +rlol1_cnt_cry[8] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[9] CCU2C CIN In 0.000 4.868 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[9] CCU2C COUT Out 0.061 4.929 - +rlol1_cnt_cry[10] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[11] CCU2C CIN In 0.000 4.929 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[11] CCU2C COUT Out 0.061 4.990 - +rlol1_cnt_cry[12] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[13] CCU2C CIN In 0.000 4.990 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[13] CCU2C COUT Out 0.061 5.051 - +rlol1_cnt_cry[14] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[15] CCU2C CIN In 0.000 5.051 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[15] CCU2C COUT Out 0.061 5.112 - +rlol1_cnt_cry[16] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[17] CCU2C CIN In 0.000 5.112 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[17] CCU2C S1 Out 0.698 5.809 - +rlol1_cnt_s[18] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt[18] FD1P3DX D In 0.000 5.809 - +======================================================================================================== + + + + +==================================== +Detailed Report for Clock: System +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------------- +DCU0_inst System DCUA CH0_FFS_RLOL rx_cdr_lol_s 0.000 9.946 +DCU0_inst System DCUA CH0_FFS_RLOS rx_los_low_s 0.000 9.946 +DCU0_inst System DCUA CH0_FF_TX_PCLK tx_pclk 0.000 10.000 +=========================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +---------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rlol_p1 System FD1S3DX D rx_cdr_lol_s 9.946 9.946 +rsl_inst.genblk2\.rlos_p1 System FD1S3DX D rx_los_low_s 9.946 9.946 +DCU0_inst System DCUA CH0_FF_EBRD_CLK tx_pclk 10.000 10.000 +DCU0_inst System DCUA CH0_FF_RXI_CLK tx_pclk 10.000 10.000 +================================================================================================================ + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 0.000 + - Clock delay at starting point: 0.000 (ideal) + - Estimated clock delay at start point: -0.000 + = Slack (non-critical) : 9.946 + + Number of logic level(s): 0 + Starting point: DCU0_inst / CH0_FFS_RLOL + Ending point: rsl_inst.genblk2\.rlol_p1 / D + The start point is clocked by System [rising] + The end point is clocked by PCSD|rxrefclk [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +--------------------------------------------------------------------------------------------------- +DCU0_inst DCUA CH0_FFS_RLOL Out 0.000 0.000 - +rx_cdr_lol_s Net - - - - 2 +rsl_inst.genblk2\.rlol_p1 FD1S3DX D In 0.000 0.000 - +=================================================================================================== + + + +##### END OF TIMING REPORT #####] + +Timing exceptions that could not be applied +None + +Finished final timing analysis (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 147MB peak: 148MB) + + +Finished timing report (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 147MB peak: 148MB) + +--------------------------------------- +Resource Usage Report +Part: lfe5um_25f-6 + +Register bits: 92 of 24288 (0%) +PIC Latch: 0 +I/O cells: 0 + + +Details: +CCU2C: 37 +DCUA: 1 +FD1P3BX: 4 +FD1P3DX: 42 +FD1S3BX: 10 +FD1S3DX: 36 +GSR: 1 +ORCALUT4: 63 +PFUMX: 2 +PUR: 1 +VHI: 2 +VLO: 2 +Mapper successful! + +At Mapper Exit (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 32MB peak: 148MB) + +Process took 0h:00m:02s realtime, 0h:00m:02s cputime +# Tue Apr 30 12:09:51 2019 + +###########################################################] diff --git a/gbe/cores/sgmii/PCSD/syn_results/PCSD.srr.db b/gbe/cores/sgmii/PCSD/syn_results/PCSD.srr.db new file mode 100644 index 0000000000000000000000000000000000000000..147c921bedeb062df4c5f1fba1a344132df57a44 GIT binary patch literal 24576 zcmeHP-)|gO6<$035hvcb4Ru2)fg6{!b{p^R%OGb?t1X- z%yedUZAV6EtxBMZzks)tMdeS z&roXipFd3Fs)30QQ}{_fi3So4BpOIGkZ2&$K%#*}1BnI_4I~;!G>~ZE|6Bw9!05U2 z=Lb5MeQnL;P40PGgL~a}uzF{4{_Y~XJHN29$hv2z4V|?$x3;dimzZf-8@<26OL`|Z z46E;A2j4U-e`Xk3KQZwM>3(G5-xL3s_+8_z!*@od~eRr+k)v`Ws zI;Q6HtmE3>X(jx0&H*HZ|A6cNZ>nZcGYMZ<45z zqC_TYF%Y#_$;&&p)(Bjmj3k!MYo_LMovpQe$moYcay`Qq4H7;)!8DAw+2YK0nM;^C zK?}dG`G#%vp}F{+Kr;}v;-Pg?yh3OmQTŚVQUB_ZdvsI@K!a-x~r(>ernJwG;; zzj-zuC{h3g%|0lY;juxv{;YsBQIg&Lg^7NVRBhmAZmI`SSVkdQ|S6> zfhJ-jB$sn!gsABmp%4wXVw*tMPsIYJG$+8I=?CMus^&P@1IDzuxG@&XJS&OiK}OR* z&-A#_Tt6Al(1`UxE@6GxTkQNTFXo}SI4ZzIyzi4sVhy3@z`hTrSF^ThXLXd__RNTo zb1Y(uS}Fw3L!pu{9kjgu&+ZNmo&v-yCSJT#8CTHZQxt^)kZ1S`$c&lr!=5Di1 z+ug{(rQr(~+9x2^g?Wf|wWu855zMsL^{I-Shd4M$x&7jZ{xHINrY!~i4($x0-&d|t zza_cbFL{$$_?x~_<5}I%nzp59m5h{Aw~G0!w{1CVn#Z$%kwt%5&&Lg^UrAP=0@29Q z&MLU2qDe?ak|Nk=uUK0QRQ$sF^|9@E6F7f{#8-Yyx|HA^miU0rD33Maz{}1I3691oe zK%b3VNc{i9IVy7eDbAGm|NoV3OZqk|GCtkQWN*ie31TS zdTjj4Y5UZ}vEPqfJlP)o-RRWF+rvK?`s2{q6E_EcIPeQx_yzoQR$fJPPU);7I=3Pf z=OPMt6^bz56*`u8Zo4hY5nwH=<$ws%eu$nWxpYm9x*Sg6b0EqO^+`N<%^Y21;agp6&+dHc%(&b?^&{z@TO4bbFE-EDIp97?~84bsc!1f-}lN(;e?f#zUF zY3P$3Z7Pxfe>U||YC<|wO}{`$kA67vli^Motg4q0k#p(G)U%u~-)ULG z#mDu<{OlUCk&)TLMG8rEa@VS0yrmCbcyaLN-GUrLh+)ZY0h?jfxl4rrLVl4{vx6Nl zuh+~Cwz+Q9)=4+MivkB$m}4G)zlA~uLo*qtni9+RaEqGR(kWO$={Sbv`I#_E@h*ia zJXK#)9Vx@^t|K=v=w=-y5{OTD4zC$?1HB`ig>HbZJm1w2un7BZYTHmGZ&UF^-x%3- zCdPou68455xVOh>$mn~TPD9GgZDuqb4J8mdGKd-$bGR$sPGQw}hIMN(9`3g0gu-8m zR^fRGCJ<|=Tq%FL!X4981C<+(>ReHdrgQ1tj6)lr{u#AFyL4+^E=0%MW6V*!e?iHq)X5X!F0wrBmBdFdndL1F9j`sxu^+G%_ zgG^3D0-ppXnGDn3j1y))9+*KQXb!QF$Bt%8jArQMsT)~-DmF)QPPo&Lc|3s>8OgB^=wxy-T!^Yp8?}mZ|RAO>ryVc9@C9-|U&F-GN*jI>=L?2M(3=1Uis1 zey}qR$%?0-gKR81ki}L7$HV6V>ENl(gU&`q=-^p;7NogulJ(Ka-ThU*`92-o!j8Wg zq@3@29D*mIPXq7KLahaxR}CB09QL|4+u+;@9|+Iau-Qb!&2g|B?c3xc>s!V47B;fY zU&m4(cn-9MrZ4nneP?4f7PNh{{&2LS)b_sod7!-%2ikr+_jt6RSG%+Ob3nWD8lip4 zWU?0(nN0rw_{l$~Ca#=mr+=QVjDI|CpMG%aucy8<_VL&~{73RhG>~W@(LkbsL<5Ni z5)FKzHPCpIqL(E^^zX{$;_5bX^qOIe8)0U{*5M4~ayf>mHuq~NVI^0=;s{=oM{HPq zPB5FDWe88(E(OBF>+x&I2e{X$qnp%`BFlTEMHnsb2I29Z9t$2u*Ik+Q?b+_{%+dUH z1jjwku2CYOj#n4K3+Eal{CJU*(Ke_6IFLQ;vvYO{o$jWCPIDrT90uxLF5;AM`{A{7 z4`(U25MctmQK`m72;Q|@I7ReWhAqLpuNxNbzxREwW%}^@k=-bqq@~-}<{85LI<9>5 z9zkbaq0)<_iSJREJ}>86A#YHf?2KL|dEP%%o*t_bi7?&U^-1DZ;Yhr+nDI#v8NbfwU&@m*wYTz3wgBh~74Zc|sb@Tm2{OUWBYHHium8L=58Q?Nz zaB&a{>4qN#qi9M2y;UX_B+y-_`b`01Ia&}UdOb*mj?shgasi4`ABy?c1&YOJQ5@hP NqZo<b6 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 P|NjF3G>^&G&`1FQi6nb- literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/PCSD/syn_results/PCSD.vhm b/gbe/cores/sgmii/PCSD/syn_results/PCSD.vhm new file mode 100644 index 0000000..6ce80ea --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/PCSD.vhm @@ -0,0 +1,2765 @@ +-- +-- Written by Synplicity +-- Product Version "M-2017.03L-SP1-1" +-- Program "Synplify Pro", Mapper "maplat, Build 1796R" +-- Tue Apr 30 12:09:50 2019 +-- + +-- +-- Written by Synplify Pro version Build 1796R +-- Tue Apr 30 12:09:50 2019 +-- + +-- +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; +library synplify; +use synplify.components.all; +library pmi; +use pmi.pmi_components.all; +library ecp5um; +use ecp5um.components.all; + +entity PCSDrsl_core_Z1_layer1 is +port( + serdes_rst_dual_c : in std_logic; + rx_serdes_rst_c : in std_logic; + tx_serdes_rst_c : in std_logic; + rsl_rx_pcs_rst_c : out std_logic; + rx_pcs_rst_c : in std_logic; + rsl_tx_pcs_rst_c : out std_logic; + tx_pcs_rst_c : in std_logic; + rsl_disable : in std_logic; + rsl_tx_serdes_rst_c : out std_logic; + pll_lol : in std_logic; + pll_refclki : in std_logic; + rx_cdr_lol_s : in std_logic; + rx_los_low_s : in std_logic; + rsl_rst : in std_logic; + rxrefclk : in std_logic; + rsl_rx_serdes_rst_c : out std_logic; + rsl_serdes_rst_dual_c : out std_logic); +end PCSDrsl_core_Z1_layer1; + +architecture beh of PCSDrsl_core_Z1_layer1 is + signal PLOL0_CNT : std_logic_vector(2 downto 0); + signal PLOL0_CNT_3 : std_logic_vector(2 downto 0); + signal RXS_CNT_3 : std_logic_vector(1 downto 0); + signal RXS_CNT : std_logic_vector(1 downto 0); + signal RXS_CNT_QN : std_logic_vector(1 downto 0); + signal RLOS_DB_CNT : std_logic_vector(3 downto 0); + signal RLOS_DB_CNT_QN : std_logic_vector(3 downto 0); + signal RLOLS0_CNT_S : std_logic_vector(17 downto 0); + signal RLOLS0_CNT : std_logic_vector(17 downto 0); + signal RLOLS0_CNT_QN : std_logic_vector(17 downto 0); + signal RLOL_DB_CNT : std_logic_vector(3 downto 0); + signal RLOL_DB_CNT_QN : std_logic_vector(3 downto 0); + signal RLOL1_CNT_S : std_logic_vector(18 downto 0); + signal RLOL1_CNT : std_logic_vector(18 downto 0); + signal RLOL1_CNT_QN : std_logic_vector(18 downto 0); + signal TXS_CNT : std_logic_vector(1 downto 0); + signal TXS_CNT_QN : std_logic_vector(1 downto 0); + signal TXS_CNT_RNO : std_logic_vector(1 to 1); + signal TXP_CNT : std_logic_vector(1 downto 0); + signal TXP_CNT_QN : std_logic_vector(1 downto 0); + signal TXP_CNT_RNO : std_logic_vector(1 to 1); + signal PLOL_CNT_S : std_logic_vector(19 downto 0); + signal PLOL_CNT : std_logic_vector(19 downto 0); + signal PLOL_CNT_QN : std_logic_vector(19 downto 0); + signal PLOL0_CNT_QN : std_logic_vector(2 downto 0); + signal UN1_RLOL_DB_CNT_ZERO : std_logic_vector(0 to 0); + signal UN1_RLOS_DB_CNT_ZERO : std_logic_vector(0 to 0); + signal UN1_RLOL_DB_CNT_ZERO_BM : std_logic_vector(0 to 0); + signal UN1_RLOL_DB_CNT_ZERO_AM : std_logic_vector(0 to 0); + signal UN1_RLOS_DB_CNT_ZERO_BM : std_logic_vector(0 to 0); + signal UN1_RLOS_DB_CNT_ZERO_AM : std_logic_vector(0 to 0); + signal RLOL1_CNT_CRY : std_logic_vector(16 downto 0); + signal RLOL1_CNT_CRY_0_S0 : std_logic_vector(0 to 0); + signal RLOL1_CNT_CRY_0_COUT : std_logic_vector(17 to 17); + signal RLOLS0_CNT_CRY : std_logic_vector(16 downto 0); + signal RLOLS0_CNT_CRY_0_S0 : std_logic_vector(0 to 0); + signal RLOLS0_CNT_S_0_COUT : std_logic_vector(17 to 17); + signal RLOLS0_CNT_S_0_S1 : std_logic_vector(17 to 17); + signal PLOL_CNT_CRY : std_logic_vector(18 downto 0); + signal PLOL_CNT_CRY_0_S0 : std_logic_vector(0 to 0); + signal PLOL_CNT_S_0_COUT : std_logic_vector(19 to 19); + signal PLOL_CNT_S_0_S1 : std_logic_vector(19 to 19); + signal RSL_SERDES_RST_DUAL_C_6 : std_logic ; + signal RSL_RX_SERDES_RST_C_5 : std_logic ; + signal RLOS_DB_P1 : std_logic ; + signal RLOS_DB : std_logic ; + signal RXP_RST25 : std_logic ; + signal PLOL0_CNT9 : std_logic ; + signal WAITA_PLOL0 : std_logic ; + signal RLOL1_CNT_TC_1 : std_logic ; + signal RXS_RST : std_logic ; + signal \RLOL1_CNT_\ : std_logic ; + signal WAITA_RLOLS06 : std_logic ; + signal UN1_RLOLS0_CNT_TC : std_logic ; + signal WAITA_RLOLS0 : std_logic ; + signal WAITA_RLOLS0_QN : std_logic ; + signal VCC : std_logic ; + signal WAIT_CALIB_RNO : std_logic ; + signal UN1_RLOS_FEDGE_1 : std_logic ; + signal WAIT_CALIB : std_logic ; + signal WAIT_CALIB_QN : std_logic ; + signal RXS_RST6 : std_logic ; + signal UN1_RXS_CNT_TC : std_logic ; + signal RXS_RST_QN : std_logic ; + signal UN2_RLOS_REDGE_1_I : std_logic ; + signal RXP_RST2 : std_logic ; + signal RXP_RST2_QN : std_logic ; + signal RLOS_P1 : std_logic ; + signal RLOS_P2 : std_logic ; + signal RLOS_P2_QN : std_logic ; + signal RLOS_P1_QN : std_logic ; + signal RLOS_DB_P1_QN : std_logic ; + signal RLOS_DB_CNT_AXB_0 : std_logic ; + signal RLOS_DB_CNT_CRY_1_0_S0 : std_logic ; + signal RLOS_DB_CNT_CRY_1_0_S1 : std_logic ; + signal RLOS_DB_CNT_S_3_0_S0 : std_logic ; + signal UN1_RLOS_DB_CNT_MAX : std_logic ; + signal RLOS_DB_QN : std_logic ; + signal RLOLS0_CNTE : std_logic ; + signal RLOL_P1 : std_logic ; + signal RLOL_P2 : std_logic ; + signal RLOL_P2_QN : std_logic ; + signal RLOL_P1_QN : std_logic ; + signal RLOL_DB : std_logic ; + signal RLOL_DB_P1 : std_logic ; + signal RLOL_DB_P1_QN : std_logic ; + signal RLOL_DB_CNT_AXB_0 : std_logic ; + signal RLOL_DB_CNT_CRY_1_0_S0 : std_logic ; + signal RLOL_DB_CNT_CRY_1_0_S1 : std_logic ; + signal RLOL_DB_CNT_S_3_0_S0 : std_logic ; + signal UN1_RLOL_DB_CNT_MAX : std_logic ; + signal RLOL_DB_QN : std_logic ; + signal RLOL1_CNTE : std_logic ; + signal PLOL_FEDGE : std_logic ; + signal UN1_PLOL0_CNT_TC_1_I : std_logic ; + signal WAITA_PLOL0_QN : std_logic ; + signal UN1_PLOL_CNT_TC : std_logic ; + signal UN2_PLOL_CNT_TC : std_logic ; + signal TXS_RST : std_logic ; + signal TXS_RST_QN : std_logic ; + signal N_12_I : std_logic ; + signal UN9_PLOL0_CNT_TC : std_logic ; + signal UN1_PLOL0_CNT_TC_1 : std_logic ; + signal TXP_RST : std_logic ; + signal TXP_RST_QN : std_logic ; + signal N_13_I : std_logic ; + signal PLL_LOL_P2 : std_logic ; + signal PLL_LOL_P3 : std_logic ; + signal PLL_LOL_P3_QN : std_logic ; + signal PLL_LOL_P1 : std_logic ; + signal PLL_LOL_P2_QN : std_logic ; + signal PLL_LOL_P1_QN : std_logic ; + signal RLOLS0_CNT_TC_1 : std_logic ; + signal RLOS_REDGE : std_logic ; + signal RLOLS0_CNT11_0 : std_logic ; + signal RSL_TX_SERDES_RST_C_4 : std_logic ; + signal \PLOL_CNT_\ : std_logic ; + signal \RLOLS0_CNT_\ : std_logic ; + signal UN8_RXS_CNT_TC : std_logic ; + signal UN1_PLOL_CNT_TC_11 : std_logic ; + signal UN1_PLOL_CNT_TC_12 : std_logic ; + signal UN1_PLOL_CNT_TC_13 : std_logic ; + signal UN1_PLOL_CNT_TC_14 : std_logic ; + signal RLOLS0_CNT_TC_1_10 : std_logic ; + signal RLOLS0_CNT_TC_1_11 : std_logic ; + signal RLOLS0_CNT_TC_1_12 : std_logic ; + signal RLOLS0_CNT_TC_1_13 : std_logic ; + signal RLOL1_CNT_TC_1_11 : std_logic ; + signal RLOL1_CNT_TC_1_12 : std_logic ; + signal RLOL1_CNT_TC_1_13 : std_logic ; + signal RLOL1_CNT_TC_1_14 : std_logic ; + signal CO0_2 : std_logic ; + signal RLOLS0_CNT_TC_1_9 : std_logic ; + signal UN1_PLOL_CNT_TC_10 : std_logic ; + signal RLOL1_CNT_TC_1_10 : std_logic ; + signal RLOS_DB_CNT_CRY_0 : std_logic ; + signal RLOS_DB_CNT_CRY_0_0_S0 : std_logic ; + signal RLOS_DB_CNT_CRY_0_0_S1 : std_logic ; + signal RLOS_DB_CNT_CRY_2 : std_logic ; + signal RLOS_DB_CNT_S_3_0_COUT : std_logic ; + signal RLOS_DB_CNT_S_3_0_S1 : std_logic ; + signal RLOL_DB_CNT_CRY_0 : std_logic ; + signal RLOL_DB_CNT_CRY_0_0_S0 : std_logic ; + signal RLOL_DB_CNT_CRY_0_0_S1 : std_logic ; + signal RLOL_DB_CNT_CRY_2 : std_logic ; + signal RLOL_DB_CNT_S_3_0_COUT : std_logic ; + signal RLOL_DB_CNT_S_3_0_S1 : std_logic ; + signal GND : std_logic ; + signal N_1 : std_logic ; + signal N_2 : std_logic ; + signal N_3 : std_logic ; + signal N_4 : std_logic ; + signal N_5 : std_logic ; +begin +\GENBLK2.RXP_RST2_RNO\: LUT4 +generic map( + init => X"EFEE" +) +port map ( + A => RSL_SERDES_RST_DUAL_C_6, + B => RSL_RX_SERDES_RST_C_5, + C => RLOS_DB_P1, + D => RLOS_DB, + Z => RXP_RST25); +\GENBLK1.PLOL0_CNT_RNO[1]\: LUT4 +generic map( + init => X"1222" +) +port map ( + A => PLOL0_CNT(1), + B => PLOL0_CNT9, + C => WAITA_PLOL0, + D => PLOL0_CNT(0), + Z => PLOL0_CNT_3(1)); +\GENBLK2.RXS_RST_RNIS0OP\: LUT4 +generic map( + init => X"1011" +) +port map ( + A => RLOL1_CNT_TC_1, + B => RXS_RST, + C => RLOS_DB_P1, + D => RLOS_DB, + Z => \RLOL1_CNT_\); +\GENBLK2.WAITA_RLOLS0_REG_Z428\: FD1P3DX port map ( + D => WAITA_RLOLS06, + SP => UN1_RLOLS0_CNT_TC, + CK => rxrefclk, + CD => rsl_rst, + Q => WAITA_RLOLS0); +\GENBLK2.WAIT_CALIB_REG_Z430\: FD1P3BX port map ( + D => WAIT_CALIB_RNO, + SP => UN1_RLOS_FEDGE_1, + CK => rxrefclk, + PD => rsl_rst, + Q => WAIT_CALIB); +\GENBLK2.RXS_RST_REG_Z432\: FD1P3DX port map ( + D => RXS_RST6, + SP => UN1_RXS_CNT_TC, + CK => rxrefclk, + CD => rsl_rst, + Q => RXS_RST); +\GENBLK2.RXS_CNT[0]_REG_Z434\: FD1S3DX port map ( + D => RXS_CNT_3(0), + CK => rxrefclk, + CD => rsl_rst, + Q => RXS_CNT(0)); +\GENBLK2.RXS_CNT[1]_REG_Z436\: FD1S3DX port map ( + D => RXS_CNT_3(1), + CK => rxrefclk, + CD => rsl_rst, + Q => RXS_CNT(1)); +\GENBLK2.RXP_RST2_REG_Z438\: FD1P3BX port map ( + D => RXP_RST25, + SP => UN2_RLOS_REDGE_1_I, + CK => rxrefclk, + PD => rsl_rst, + Q => RXP_RST2); +\GENBLK2.RLOS_P2_REG_Z440\: FD1S3DX port map ( + D => RLOS_P1, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOS_P2); +\GENBLK2.RLOS_P1_REG_Z442\: FD1S3DX port map ( + D => rx_los_low_s, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOS_P1); +\GENBLK2.RLOS_DB_P1_REG_Z444\: FD1S3BX port map ( + D => RLOS_DB, + CK => rxrefclk, + PD => rsl_rst, + Q => RLOS_DB_P1); +\GENBLK2.RLOS_DB_CNT[0]_REG_Z446\: FD1S3BX port map ( + D => RLOS_DB_CNT_AXB_0, + CK => rxrefclk, + PD => rsl_rst, + Q => RLOS_DB_CNT(0)); +\GENBLK2.RLOS_DB_CNT[1]_REG_Z448\: FD1S3BX port map ( + D => RLOS_DB_CNT_CRY_1_0_S0, + CK => rxrefclk, + PD => rsl_rst, + Q => RLOS_DB_CNT(1)); +\GENBLK2.RLOS_DB_CNT[2]_REG_Z450\: FD1S3BX port map ( + D => RLOS_DB_CNT_CRY_1_0_S1, + CK => rxrefclk, + PD => rsl_rst, + Q => RLOS_DB_CNT(2)); +\GENBLK2.RLOS_DB_CNT[3]_REG_Z452\: FD1S3BX port map ( + D => RLOS_DB_CNT_S_3_0_S0, + CK => rxrefclk, + PD => rsl_rst, + Q => RLOS_DB_CNT(3)); +\GENBLK2.RLOS_DB_REG_Z454\: FD1P3BX port map ( + D => RLOS_DB_CNT(3), + SP => UN1_RLOS_DB_CNT_MAX, + CK => rxrefclk, + PD => rsl_rst, + Q => RLOS_DB); +\GENBLK2.RLOLS0_CNT[0]_REG_Z456\: FD1P3DX port map ( + D => RLOLS0_CNT_S(0), + SP => RLOLS0_CNTE, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOLS0_CNT(0)); +\GENBLK2.RLOLS0_CNT[1]_REG_Z458\: FD1P3DX port map ( + D => RLOLS0_CNT_S(1), + SP => RLOLS0_CNTE, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOLS0_CNT(1)); +\GENBLK2.RLOLS0_CNT[2]_REG_Z460\: FD1P3DX port map ( + D => RLOLS0_CNT_S(2), + SP => RLOLS0_CNTE, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOLS0_CNT(2)); +\GENBLK2.RLOLS0_CNT[3]_REG_Z462\: FD1P3DX port map ( + D => RLOLS0_CNT_S(3), + SP => RLOLS0_CNTE, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOLS0_CNT(3)); +\GENBLK2.RLOLS0_CNT[4]_REG_Z464\: FD1P3DX port map ( + D => RLOLS0_CNT_S(4), + SP => RLOLS0_CNTE, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOLS0_CNT(4)); +\GENBLK2.RLOLS0_CNT[5]_REG_Z466\: FD1P3DX port map ( + D => RLOLS0_CNT_S(5), + SP => RLOLS0_CNTE, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOLS0_CNT(5)); +\GENBLK2.RLOLS0_CNT[6]_REG_Z468\: FD1P3DX port map ( + D => RLOLS0_CNT_S(6), + SP => RLOLS0_CNTE, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOLS0_CNT(6)); +\GENBLK2.RLOLS0_CNT[7]_REG_Z470\: FD1P3DX port map ( + D => RLOLS0_CNT_S(7), + SP => RLOLS0_CNTE, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOLS0_CNT(7)); +\GENBLK2.RLOLS0_CNT[8]_REG_Z472\: FD1P3DX port map ( + D => RLOLS0_CNT_S(8), + SP => RLOLS0_CNTE, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOLS0_CNT(8)); +\GENBLK2.RLOLS0_CNT[9]_REG_Z474\: FD1P3DX port map ( + D => RLOLS0_CNT_S(9), + SP => RLOLS0_CNTE, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOLS0_CNT(9)); +\GENBLK2.RLOLS0_CNT[10]_REG_Z476\: FD1P3DX port map ( + D => RLOLS0_CNT_S(10), + SP => RLOLS0_CNTE, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOLS0_CNT(10)); +\GENBLK2.RLOLS0_CNT[11]_REG_Z478\: FD1P3DX port map ( + D => RLOLS0_CNT_S(11), + SP => RLOLS0_CNTE, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOLS0_CNT(11)); +\GENBLK2.RLOLS0_CNT[12]_REG_Z480\: FD1P3DX port map ( + D => RLOLS0_CNT_S(12), + SP => RLOLS0_CNTE, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOLS0_CNT(12)); +\GENBLK2.RLOLS0_CNT[13]_REG_Z482\: FD1P3DX port map ( + D => RLOLS0_CNT_S(13), + SP => RLOLS0_CNTE, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOLS0_CNT(13)); +\GENBLK2.RLOLS0_CNT[14]_REG_Z484\: FD1P3DX port map ( + D => RLOLS0_CNT_S(14), + SP => RLOLS0_CNTE, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOLS0_CNT(14)); +\GENBLK2.RLOLS0_CNT[15]_REG_Z486\: FD1P3DX port map ( + D => RLOLS0_CNT_S(15), + SP => RLOLS0_CNTE, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOLS0_CNT(15)); +\GENBLK2.RLOLS0_CNT[16]_REG_Z488\: FD1P3DX port map ( + D => RLOLS0_CNT_S(16), + SP => RLOLS0_CNTE, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOLS0_CNT(16)); +\GENBLK2.RLOLS0_CNT[17]_REG_Z490\: FD1P3DX port map ( + D => RLOLS0_CNT_S(17), + SP => RLOLS0_CNTE, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOLS0_CNT(17)); +\GENBLK2.RLOL_P2_REG_Z492\: FD1S3DX port map ( + D => RLOL_P1, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOL_P2); +\GENBLK2.RLOL_P1_REG_Z494\: FD1S3DX port map ( + D => rx_cdr_lol_s, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOL_P1); +\GENBLK2.RLOL_DB_P1_REG_Z496\: FD1S3BX port map ( + D => RLOL_DB, + CK => rxrefclk, + PD => rsl_rst, + Q => RLOL_DB_P1); +\GENBLK2.RLOL_DB_CNT[0]_REG_Z498\: FD1S3BX port map ( + D => RLOL_DB_CNT_AXB_0, + CK => rxrefclk, + PD => rsl_rst, + Q => RLOL_DB_CNT(0)); +\GENBLK2.RLOL_DB_CNT[1]_REG_Z500\: FD1S3BX port map ( + D => RLOL_DB_CNT_CRY_1_0_S0, + CK => rxrefclk, + PD => rsl_rst, + Q => RLOL_DB_CNT(1)); +\GENBLK2.RLOL_DB_CNT[2]_REG_Z502\: FD1S3BX port map ( + D => RLOL_DB_CNT_CRY_1_0_S1, + CK => rxrefclk, + PD => rsl_rst, + Q => RLOL_DB_CNT(2)); +\GENBLK2.RLOL_DB_CNT[3]_REG_Z504\: FD1S3BX port map ( + D => RLOL_DB_CNT_S_3_0_S0, + CK => rxrefclk, + PD => rsl_rst, + Q => RLOL_DB_CNT(3)); +\GENBLK2.RLOL_DB_REG_Z506\: FD1P3BX port map ( + D => RLOL_DB_CNT(3), + SP => UN1_RLOL_DB_CNT_MAX, + CK => rxrefclk, + PD => rsl_rst, + Q => RLOL_DB); +\GENBLK2.RLOL1_CNT[0]_REG_Z508\: FD1P3DX port map ( + D => RLOL1_CNT_S(0), + SP => RLOL1_CNTE, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOL1_CNT(0)); +\GENBLK2.RLOL1_CNT[1]_REG_Z510\: FD1P3DX port map ( + D => RLOL1_CNT_S(1), + SP => RLOL1_CNTE, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOL1_CNT(1)); +\GENBLK2.RLOL1_CNT[2]_REG_Z512\: FD1P3DX port map ( + D => RLOL1_CNT_S(2), + SP => RLOL1_CNTE, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOL1_CNT(2)); +\GENBLK2.RLOL1_CNT[3]_REG_Z514\: FD1P3DX port map ( + D => RLOL1_CNT_S(3), + SP => RLOL1_CNTE, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOL1_CNT(3)); +\GENBLK2.RLOL1_CNT[4]_REG_Z516\: FD1P3DX port map ( + D => RLOL1_CNT_S(4), + SP => RLOL1_CNTE, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOL1_CNT(4)); +\GENBLK2.RLOL1_CNT[5]_REG_Z518\: FD1P3DX port map ( + D => RLOL1_CNT_S(5), + SP => RLOL1_CNTE, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOL1_CNT(5)); +\GENBLK2.RLOL1_CNT[6]_REG_Z520\: FD1P3DX port map ( + D => RLOL1_CNT_S(6), + SP => RLOL1_CNTE, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOL1_CNT(6)); +\GENBLK2.RLOL1_CNT[7]_REG_Z522\: FD1P3DX port map ( + D => RLOL1_CNT_S(7), + SP => RLOL1_CNTE, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOL1_CNT(7)); +\GENBLK2.RLOL1_CNT[8]_REG_Z524\: FD1P3DX port map ( + D => RLOL1_CNT_S(8), + SP => RLOL1_CNTE, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOL1_CNT(8)); +\GENBLK2.RLOL1_CNT[9]_REG_Z526\: FD1P3DX port map ( + D => RLOL1_CNT_S(9), + SP => RLOL1_CNTE, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOL1_CNT(9)); +\GENBLK2.RLOL1_CNT[10]_REG_Z528\: FD1P3DX port map ( + D => RLOL1_CNT_S(10), + SP => RLOL1_CNTE, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOL1_CNT(10)); +\GENBLK2.RLOL1_CNT[11]_REG_Z530\: FD1P3DX port map ( + D => RLOL1_CNT_S(11), + SP => RLOL1_CNTE, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOL1_CNT(11)); +\GENBLK2.RLOL1_CNT[12]_REG_Z532\: FD1P3DX port map ( + D => RLOL1_CNT_S(12), + SP => RLOL1_CNTE, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOL1_CNT(12)); +\GENBLK2.RLOL1_CNT[13]_REG_Z534\: FD1P3DX port map ( + D => RLOL1_CNT_S(13), + SP => RLOL1_CNTE, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOL1_CNT(13)); +\GENBLK2.RLOL1_CNT[14]_REG_Z536\: FD1P3DX port map ( + D => RLOL1_CNT_S(14), + SP => RLOL1_CNTE, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOL1_CNT(14)); +\GENBLK2.RLOL1_CNT[15]_REG_Z538\: FD1P3DX port map ( + D => RLOL1_CNT_S(15), + SP => RLOL1_CNTE, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOL1_CNT(15)); +\GENBLK2.RLOL1_CNT[16]_REG_Z540\: FD1P3DX port map ( + D => RLOL1_CNT_S(16), + SP => RLOL1_CNTE, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOL1_CNT(16)); +\GENBLK2.RLOL1_CNT[17]_REG_Z542\: FD1P3DX port map ( + D => RLOL1_CNT_S(17), + SP => RLOL1_CNTE, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOL1_CNT(17)); +\GENBLK2.RLOL1_CNT[18]_REG_Z544\: FD1P3DX port map ( + D => RLOL1_CNT_S(18), + SP => RLOL1_CNTE, + CK => rxrefclk, + CD => rsl_rst, + Q => RLOL1_CNT(18)); +\GENBLK1.WAITA_PLOL0_REG_Z546\: FD1P3DX port map ( + D => PLOL_FEDGE, + SP => UN1_PLOL0_CNT_TC_1_I, + CK => pll_refclki, + CD => rsl_rst, + Q => WAITA_PLOL0); +\GENBLK1.TXS_RST_REG_Z548\: FD1P3DX port map ( + D => UN1_PLOL_CNT_TC, + SP => UN2_PLOL_CNT_TC, + CK => pll_refclki, + CD => rsl_rst, + Q => TXS_RST); +\GENBLK1.TXS_CNT[0]_REG_Z550\: FD1S3DX port map ( + D => N_12_I, + CK => pll_refclki, + CD => rsl_rst, + Q => TXS_CNT(0)); +\GENBLK1.TXS_CNT[1]_REG_Z552\: FD1S3DX port map ( + D => TXS_CNT_RNO(1), + CK => pll_refclki, + CD => rsl_rst, + Q => TXS_CNT(1)); +\GENBLK1.TXP_RST_REG_Z554\: FD1P3DX port map ( + D => UN9_PLOL0_CNT_TC, + SP => UN1_PLOL0_CNT_TC_1, + CK => pll_refclki, + CD => rsl_rst, + Q => TXP_RST); +\GENBLK1.TXP_CNT[0]_REG_Z556\: FD1S3DX port map ( + D => N_13_I, + CK => pll_refclki, + CD => rsl_rst, + Q => TXP_CNT(0)); +\GENBLK1.TXP_CNT[1]_REG_Z558\: FD1S3DX port map ( + D => TXP_CNT_RNO(1), + CK => pll_refclki, + CD => rsl_rst, + Q => TXP_CNT(1)); +\GENBLK1.PLOL_CNT[0]_REG_Z560\: FD1S3DX port map ( + D => PLOL_CNT_S(0), + CK => pll_refclki, + CD => rsl_rst, + Q => PLOL_CNT(0)); +\GENBLK1.PLOL_CNT[1]_REG_Z562\: FD1S3DX port map ( + D => PLOL_CNT_S(1), + CK => pll_refclki, + CD => rsl_rst, + Q => PLOL_CNT(1)); +\GENBLK1.PLOL_CNT[2]_REG_Z564\: FD1S3DX port map ( + D => PLOL_CNT_S(2), + CK => pll_refclki, + CD => rsl_rst, + Q => PLOL_CNT(2)); +\GENBLK1.PLOL_CNT[3]_REG_Z566\: FD1S3DX port map ( + D => PLOL_CNT_S(3), + CK => pll_refclki, + CD => rsl_rst, + Q => PLOL_CNT(3)); +\GENBLK1.PLOL_CNT[4]_REG_Z568\: FD1S3DX port map ( + D => PLOL_CNT_S(4), + CK => pll_refclki, + CD => rsl_rst, + Q => PLOL_CNT(4)); +\GENBLK1.PLOL_CNT[5]_REG_Z570\: FD1S3DX port map ( + D => PLOL_CNT_S(5), + CK => pll_refclki, + CD => rsl_rst, + Q => PLOL_CNT(5)); +\GENBLK1.PLOL_CNT[6]_REG_Z572\: FD1S3DX port map ( + D => PLOL_CNT_S(6), + CK => pll_refclki, + CD => rsl_rst, + Q => PLOL_CNT(6)); +\GENBLK1.PLOL_CNT[7]_REG_Z574\: FD1S3DX port map ( + D => PLOL_CNT_S(7), + CK => pll_refclki, + CD => rsl_rst, + Q => PLOL_CNT(7)); +\GENBLK1.PLOL_CNT[8]_REG_Z576\: FD1S3DX port map ( + D => PLOL_CNT_S(8), + CK => pll_refclki, + CD => rsl_rst, + Q => PLOL_CNT(8)); +\GENBLK1.PLOL_CNT[9]_REG_Z578\: FD1S3DX port map ( + D => PLOL_CNT_S(9), + CK => pll_refclki, + CD => rsl_rst, + Q => PLOL_CNT(9)); +\GENBLK1.PLOL_CNT[10]_REG_Z580\: FD1S3DX port map ( + D => PLOL_CNT_S(10), + CK => pll_refclki, + CD => rsl_rst, + Q => PLOL_CNT(10)); +\GENBLK1.PLOL_CNT[11]_REG_Z582\: FD1S3DX port map ( + D => PLOL_CNT_S(11), + CK => pll_refclki, + CD => rsl_rst, + Q => PLOL_CNT(11)); +\GENBLK1.PLOL_CNT[12]_REG_Z584\: FD1S3DX port map ( + D => PLOL_CNT_S(12), + CK => pll_refclki, + CD => rsl_rst, + Q => PLOL_CNT(12)); +\GENBLK1.PLOL_CNT[13]_REG_Z586\: FD1S3DX port map ( + D => PLOL_CNT_S(13), + CK => pll_refclki, + CD => rsl_rst, + Q => PLOL_CNT(13)); +\GENBLK1.PLOL_CNT[14]_REG_Z588\: FD1S3DX port map ( + D => PLOL_CNT_S(14), + CK => pll_refclki, + CD => rsl_rst, + Q => PLOL_CNT(14)); +\GENBLK1.PLOL_CNT[15]_REG_Z590\: FD1S3DX port map ( + D => PLOL_CNT_S(15), + CK => pll_refclki, + CD => rsl_rst, + Q => PLOL_CNT(15)); +\GENBLK1.PLOL_CNT[16]_REG_Z592\: FD1S3DX port map ( + D => PLOL_CNT_S(16), + CK => pll_refclki, + CD => rsl_rst, + Q => PLOL_CNT(16)); +\GENBLK1.PLOL_CNT[17]_REG_Z594\: FD1S3DX port map ( + D => PLOL_CNT_S(17), + CK => pll_refclki, + CD => rsl_rst, + Q => PLOL_CNT(17)); +\GENBLK1.PLOL_CNT[18]_REG_Z596\: FD1S3DX port map ( + D => PLOL_CNT_S(18), + CK => pll_refclki, + CD => rsl_rst, + Q => PLOL_CNT(18)); +\GENBLK1.PLOL_CNT[19]_REG_Z598\: FD1S3DX port map ( + D => PLOL_CNT_S(19), + CK => pll_refclki, + CD => rsl_rst, + Q => PLOL_CNT(19)); +\GENBLK1.PLOL0_CNT[0]_REG_Z600\: FD1S3DX port map ( + D => PLOL0_CNT_3(0), + CK => pll_refclki, + CD => rsl_rst, + Q => PLOL0_CNT(0)); +\GENBLK1.PLOL0_CNT[1]_REG_Z602\: FD1S3DX port map ( + D => PLOL0_CNT_3(1), + CK => pll_refclki, + CD => rsl_rst, + Q => PLOL0_CNT(1)); +\GENBLK1.PLOL0_CNT[2]_REG_Z604\: FD1S3DX port map ( + D => PLOL0_CNT_3(2), + CK => pll_refclki, + CD => rsl_rst, + Q => PLOL0_CNT(2)); +\GENBLK1.PLL_LOL_P3_REG_Z606\: FD1S3DX port map ( + D => PLL_LOL_P2, + CK => pll_refclki, + CD => rsl_rst, + Q => PLL_LOL_P3); +\GENBLK1.PLL_LOL_P2_REG_Z608\: FD1S3DX port map ( + D => PLL_LOL_P1, + CK => pll_refclki, + CD => rsl_rst, + Q => PLL_LOL_P2); +\GENBLK1.PLL_LOL_P1_REG_Z610\: FD1S3DX port map ( + D => pll_lol, + CK => pll_refclki, + CD => rsl_rst, + Q => PLL_LOL_P1); +\GENBLK1.TXS_CNT_RNO[0]\: LUT4 +generic map( + init => X"A6A6" +) +port map ( + A => TXS_CNT(0), + B => TXS_RST, + C => UN1_PLOL_CNT_TC, + D => VCC, + Z => N_12_I); +\GENBLK1.TXS_CNT_RNO[1]\: LUT4 +generic map( + init => X"CC6C" +) +port map ( + A => TXS_CNT(0), + B => TXS_CNT(1), + C => TXS_RST, + D => UN1_PLOL_CNT_TC, + Z => TXS_CNT_RNO(1)); +\GENBLK2.RXP_RST2_RNO_0\: LUT4 +generic map( + init => X"FFFE" +) +port map ( + A => RLOLS0_CNT_TC_1, + B => RLOS_REDGE, + C => RSL_RX_SERDES_RST_C_5, + D => RSL_SERDES_RST_DUAL_C_6, + Z => UN2_RLOS_REDGE_1_I); +\GENBLK2.WAITA_RLOLS0_RNI266C\: LUT4 +generic map( + init => X"FEFE" +) +port map ( + A => RLOLS0_CNT11_0, + B => WAITA_RLOLS0, + C => RLOLS0_CNT_TC_1, + D => VCC, + Z => RLOLS0_CNTE); +\GENBLK2.WAIT_CALIB_RNIKRP81\: LUT4 +generic map( + init => X"FFFE" +) +port map ( + A => RXS_RST, + B => WAIT_CALIB, + C => RLOL1_CNT_TC_1, + D => RLOS_REDGE, + Z => RLOL1_CNTE); +\GENBLK2.RXS_RST6\: LUT4 +generic map( + init => X"2020" +) +port map ( + A => RLOL_DB, + B => RLOS_DB, + C => RLOL1_CNT_TC_1, + D => VCC, + Z => RXS_RST6); +\GENBLK1.PLOL_CNT11_I\: LUT4 +generic map( + init => X"0202" +) +port map ( + A => PLL_LOL_P2, + B => UN1_PLOL_CNT_TC, + C => RSL_TX_SERDES_RST_C_4, + D => VCC, + Z => \PLOL_CNT_\); +\GENBLK2.RLOLS0_CNT11_I\: LUT4 +generic map( + init => X"1111" +) +port map ( + A => RLOLS0_CNT11_0, + B => RLOLS0_CNT_TC_1, + C => VCC, + D => VCC, + Z => \RLOLS0_CNT_\); +\GENBLK2.UN1_RXS_CNT_TC\: LUT4 +generic map( + init => X"FEFC" +) +port map ( + A => RLOL_DB, + B => RLOS_DB, + C => UN8_RXS_CNT_TC, + D => RLOL1_CNT_TC_1, + Z => UN1_RXS_CNT_TC); +\GENBLK2.WAIT_CALIB_RNO\: LUT4 +generic map( + init => X"A3A3" +) +port map ( + A => RLOL_DB, + B => RLOS_DB, + C => RLOL1_CNT_TC_1, + D => VCC, + Z => WAIT_CALIB_RNO); +\GENBLK1.UN2_PLOL_CNT_TC\: LUT4 +generic map( + init => X"F8F8" +) +port map ( + A => TXS_CNT(0), + B => TXS_CNT(1), + C => UN1_PLOL_CNT_TC, + D => VCC, + Z => UN2_PLOL_CNT_TC); +\GENBLK2.UN1_RLOLS0_CNT_TC\: LUT4 +generic map( + init => X"FEFE" +) +port map ( + A => RLOLS0_CNT11_0, + B => WAITA_RLOLS06, + C => RLOLS0_CNT_TC_1, + D => VCC, + Z => UN1_RLOLS0_CNT_TC); +\GENBLK2.UN1_RLOS_FEDGE_1\: LUT4 +generic map( + init => X"F6F6" +) +port map ( + A => RLOS_DB, + B => RLOS_DB_P1, + C => RLOL1_CNT_TC_1, + D => VCC, + Z => UN1_RLOS_FEDGE_1); +\GENBLK1.TXP_CNT_RNO[0]\: LUT4 +generic map( + init => X"A6A6" +) +port map ( + A => TXP_CNT(0), + B => TXP_RST, + C => UN9_PLOL0_CNT_TC, + D => VCC, + Z => N_13_I); +\GENBLK1.TXP_CNT_RNO[1]\: LUT4 +generic map( + init => X"CC6C" +) +port map ( + A => TXP_CNT(0), + B => TXP_CNT(1), + C => TXP_RST, + D => UN9_PLOL0_CNT_TC, + Z => TXP_CNT_RNO(1)); +\GENBLK1.UN1_PLOL_CNT_TC\: LUT4 +generic map( + init => X"8000" +) +port map ( + A => UN1_PLOL_CNT_TC_11, + B => UN1_PLOL_CNT_TC_12, + C => UN1_PLOL_CNT_TC_13, + D => UN1_PLOL_CNT_TC_14, + Z => UN1_PLOL_CNT_TC); +RLOLS0_CNT_TC_1_Z627: LUT4 +generic map( + init => X"8000" +) +port map ( + A => RLOLS0_CNT_TC_1_10, + B => RLOLS0_CNT_TC_1_11, + C => RLOLS0_CNT_TC_1_12, + D => RLOLS0_CNT_TC_1_13, + Z => RLOLS0_CNT_TC_1); +RLOL1_CNT_TC_1_Z628: LUT4 +generic map( + init => X"8000" +) +port map ( + A => RLOL1_CNT_TC_1_11, + B => RLOL1_CNT_TC_1_12, + C => RLOL1_CNT_TC_1_13, + D => RLOL1_CNT_TC_1_14, + Z => RLOL1_CNT_TC_1); +\UN1_GENBLK2.RLOL_DB_CNT_AXB_0\: LUT4 +generic map( + init => X"9999" +) +port map ( + A => RLOL_DB_CNT(0), + B => UN1_RLOL_DB_CNT_ZERO(0), + C => VCC, + D => VCC, + Z => RLOL_DB_CNT_AXB_0); +\UN1_GENBLK2.RLOS_DB_CNT_AXB_0\: LUT4 +generic map( + init => X"9999" +) +port map ( + A => RLOS_DB_CNT(0), + B => UN1_RLOS_DB_CNT_ZERO(0), + C => VCC, + D => VCC, + Z => RLOS_DB_CNT_AXB_0); +\GENBLK1.WAITA_PLOL0_RNO\: LUT4 +generic map( + init => X"F6F6" +) +port map ( + A => PLL_LOL_P2, + B => PLL_LOL_P3, + C => UN9_PLOL0_CNT_TC, + D => VCC, + Z => UN1_PLOL0_CNT_TC_1_I); +\GENBLK1.PLOL0_CNT_3[2]\: LUT4 +generic map( + init => X"1320" +) +port map ( + A => CO0_2, + B => PLOL0_CNT9, + C => PLOL0_CNT(1), + D => PLOL0_CNT(2), + Z => PLOL0_CNT_3(2)); +\GENBLK1.PLOL0_CNT_3[0]\: LUT4 +generic map( + init => X"1414" +) +port map ( + A => PLOL0_CNT9, + B => PLOL0_CNT(0), + C => WAITA_PLOL0, + D => VCC, + Z => PLOL0_CNT_3(0)); +\UN1_RLOL_DB_CNT_ZERO_BM[0]_Z634\: LUT4 +generic map( + init => X"8000" +) +port map ( + A => RLOL_DB_CNT(0), + B => RLOL_DB_CNT(1), + C => RLOL_DB_CNT(2), + D => RLOL_DB_CNT(3), + Z => UN1_RLOL_DB_CNT_ZERO_BM(0)); +\UN1_RLOL_DB_CNT_ZERO[0]_Z635\: PFUMX port map ( + ALUT => UN1_RLOL_DB_CNT_ZERO_BM(0), + BLUT => UN1_RLOL_DB_CNT_ZERO_AM(0), + C0 => RLOL_P2, + Z => UN1_RLOL_DB_CNT_ZERO(0)); +\UN1_RLOS_DB_CNT_ZERO_BM[0]_Z636\: LUT4 +generic map( + init => X"8000" +) +port map ( + A => RLOS_DB_CNT(0), + B => RLOS_DB_CNT(1), + C => RLOS_DB_CNT(2), + D => RLOS_DB_CNT(3), + Z => UN1_RLOS_DB_CNT_ZERO_BM(0)); +\UN1_RLOS_DB_CNT_ZERO[0]_Z637\: PFUMX port map ( + ALUT => UN1_RLOS_DB_CNT_ZERO_BM(0), + BLUT => UN1_RLOS_DB_CNT_ZERO_AM(0), + C0 => RLOS_P2, + Z => UN1_RLOS_DB_CNT_ZERO(0)); +\GENBLK1.UN1_PLOL0_CNT_TC_1\: LUT4 +generic map( + init => X"F8F8" +) +port map ( + A => TXP_CNT(0), + B => TXP_CNT(1), + C => UN9_PLOL0_CNT_TC, + D => VCC, + Z => UN1_PLOL0_CNT_TC_1); +\RXS_CNT_3[1]_Z639\: LUT4 +generic map( + init => X"6464" +) +port map ( + A => RXS_CNT(0), + B => RXS_CNT(1), + C => RXS_RST, + D => VCC, + Z => RXS_CNT_3(1)); +\GENBLK2.WAITA_RLOLS06\: LUT4 +generic map( + init => X"0504" +) +port map ( + A => RLOL_DB, + B => RLOL_DB_P1, + C => RLOS_DB, + D => RLOS_DB_P1, + Z => WAITA_RLOLS06); +\GENBLK2.UN1_RLOL_DB_CNT_MAX\: LUT4 +generic map( + init => X"8001" +) +port map ( + A => RLOL_DB_CNT(0), + B => RLOL_DB_CNT(1), + C => RLOL_DB_CNT(2), + D => RLOL_DB_CNT(3), + Z => UN1_RLOL_DB_CNT_MAX); +\GENBLK2.UN1_RLOS_DB_CNT_MAX\: LUT4 +generic map( + init => X"8001" +) +port map ( + A => RLOS_DB_CNT(0), + B => RLOS_DB_CNT(1), + C => RLOS_DB_CNT(2), + D => RLOS_DB_CNT(3), + Z => UN1_RLOS_DB_CNT_MAX); +RLOLS0_CNT_TC_1_13_Z643: LUT4 +generic map( + init => X"1010" +) +port map ( + A => RLOLS0_CNT(12), + B => RLOLS0_CNT(13), + C => RLOLS0_CNT_TC_1_9, + D => VCC, + Z => RLOLS0_CNT_TC_1_13); +\GENBLK1.UN1_PLOL_CNT_TC_14\: LUT4 +generic map( + init => X"0100" +) +port map ( + A => PLOL_CNT(5), + B => PLOL_CNT(10), + C => PLOL_CNT(18), + D => UN1_PLOL_CNT_TC_10, + Z => UN1_PLOL_CNT_TC_14); +RLOL1_CNT_TC_1_14_Z645: LUT4 +generic map( + init => X"0100" +) +port map ( + A => RLOL1_CNT(12), + B => RLOL1_CNT(13), + C => RLOL1_CNT(18), + D => RLOL1_CNT_TC_1_10, + Z => RLOL1_CNT_TC_1_14); +\RDO_TX_PCS_RST_C_1[0]\: LUT4 +generic map( + init => X"F4F4" +) +port map ( + A => rsl_disable, + B => TXP_RST, + C => tx_pcs_rst_c, + D => VCC, + Z => rsl_tx_pcs_rst_c); +\RDO_RX_PCS_RST_C_1[0]\: LUT4 +generic map( + init => X"F4F4" +) +port map ( + A => rsl_disable, + B => RXP_RST2, + C => rx_pcs_rst_c, + D => VCC, + Z => rsl_rx_pcs_rst_c); +RDO_TX_SERDES_RST_C: LUT4 +generic map( + init => X"F4F4" +) +port map ( + A => rsl_disable, + B => TXS_RST, + C => tx_serdes_rst_c, + D => VCC, + Z => RSL_TX_SERDES_RST_C_4); +\RXS_CNT_3[0]_Z649\: LUT4 +generic map( + init => X"5252" +) +port map ( + A => RXS_CNT(0), + B => RXS_CNT(1), + C => RXS_RST, + D => VCC, + Z => RXS_CNT_3(0)); +\RDO_RX_SERDES_RST_C_1[0]\: LUT4 +generic map( + init => X"F4F4" +) +port map ( + A => rsl_disable, + B => RXS_RST, + C => rx_serdes_rst_c, + D => VCC, + Z => RSL_RX_SERDES_RST_C_5); +RDO_SERDES_RST_DUAL_C: LUT4 +generic map( + init => X"F4F4" +) +port map ( + A => rsl_disable, + B => rsl_rst, + C => serdes_rst_dual_c, + D => VCC, + Z => RSL_SERDES_RST_DUAL_C_6); +\GENBLK1.UN9_PLOL0_CNT_TC\: LUT4 +generic map( + init => X"1010" +) +port map ( + A => PLOL0_CNT(0), + B => PLOL0_CNT(1), + C => PLOL0_CNT(2), + D => VCC, + Z => UN9_PLOL0_CNT_TC); +RLOLS0_CNT_TC_1_9_Z653: LUT4 +generic map( + init => X"0008" +) +port map ( + A => RLOLS0_CNT(10), + B => RLOLS0_CNT(14), + C => RLOLS0_CNT(16), + D => RLOLS0_CNT(17), + Z => RLOLS0_CNT_TC_1_9); +RLOLS0_CNT_TC_1_10_Z654: LUT4 +generic map( + init => X"0100" +) +port map ( + A => RLOLS0_CNT(0), + B => RLOLS0_CNT(1), + C => RLOLS0_CNT(2), + D => RLOLS0_CNT(15), + Z => RLOLS0_CNT_TC_1_10); +RLOLS0_CNT_TC_1_11_Z655: LUT4 +generic map( + init => X"0001" +) +port map ( + A => RLOLS0_CNT(3), + B => RLOLS0_CNT(4), + C => RLOLS0_CNT(5), + D => RLOLS0_CNT(6), + Z => RLOLS0_CNT_TC_1_11); +RLOLS0_CNT_TC_1_12_Z656: LUT4 +generic map( + init => X"0001" +) +port map ( + A => RLOLS0_CNT(7), + B => RLOLS0_CNT(8), + C => RLOLS0_CNT(9), + D => RLOLS0_CNT(11), + Z => RLOLS0_CNT_TC_1_12); +\GENBLK1.UN1_PLOL_CNT_TC_10\: LUT4 +generic map( + init => X"0080" +) +port map ( + A => PLOL_CNT(1), + B => PLOL_CNT(6), + C => PLOL_CNT(7), + D => PLOL_CNT(12), + Z => UN1_PLOL_CNT_TC_10); +\GENBLK1.UN1_PLOL_CNT_TC_11\: LUT4 +generic map( + init => X"8000" +) +port map ( + A => PLOL_CNT(8), + B => PLOL_CNT(9), + C => PLOL_CNT(11), + D => PLOL_CNT(13), + Z => UN1_PLOL_CNT_TC_11); +\GENBLK1.UN1_PLOL_CNT_TC_12\: LUT4 +generic map( + init => X"8000" +) +port map ( + A => PLOL_CNT(14), + B => PLOL_CNT(15), + C => PLOL_CNT(16), + D => PLOL_CNT(17), + Z => UN1_PLOL_CNT_TC_12); +\GENBLK1.UN1_PLOL_CNT_TC_13\: LUT4 +generic map( + init => X"0100" +) +port map ( + A => PLOL_CNT(2), + B => PLOL_CNT(3), + C => PLOL_CNT(4), + D => PLOL_CNT(19), + Z => UN1_PLOL_CNT_TC_13); +RLOL1_CNT_TC_1_10_Z661: LUT4 +generic map( + init => X"0800" +) +port map ( + A => RLOL1_CNT(14), + B => RLOL1_CNT(15), + C => RLOL1_CNT(16), + D => RLOL1_CNT(17), + Z => RLOL1_CNT_TC_1_10); +RLOL1_CNT_TC_1_11_Z662: LUT4 +generic map( + init => X"0001" +) +port map ( + A => RLOL1_CNT(0), + B => RLOL1_CNT(1), + C => RLOL1_CNT(2), + D => RLOL1_CNT(3), + Z => RLOL1_CNT_TC_1_11); +RLOL1_CNT_TC_1_12_Z663: LUT4 +generic map( + init => X"0001" +) +port map ( + A => RLOL1_CNT(4), + B => RLOL1_CNT(5), + C => RLOL1_CNT(6), + D => RLOL1_CNT(7), + Z => RLOL1_CNT_TC_1_12); +RLOL1_CNT_TC_1_13_Z664: LUT4 +generic map( + init => X"0001" +) +port map ( + A => RLOL1_CNT(8), + B => RLOL1_CNT(9), + C => RLOL1_CNT(10), + D => RLOL1_CNT(11), + Z => RLOL1_CNT_TC_1_13); +\GENBLK1.PLOL0_CNT_3_RNO[2]\: LUT4 +generic map( + init => X"8888" +) +port map ( + A => PLOL0_CNT(0), + B => WAITA_PLOL0, + C => VCC, + D => VCC, + Z => CO0_2); +PLOL_FEDGE_Z666: LUT4 +generic map( + init => X"4444" +) +port map ( + A => PLL_LOL_P2, + B => PLL_LOL_P3, + C => VCC, + D => VCC, + Z => PLOL_FEDGE); +RLOS_REDGE_Z667: LUT4 +generic map( + init => X"2222" +) +port map ( + A => RLOS_DB, + B => RLOS_DB_P1, + C => VCC, + D => VCC, + Z => RLOS_REDGE); +\GENBLK2.UN8_RXS_CNT_TC\: LUT4 +generic map( + init => X"8888" +) +port map ( + A => RXS_CNT(0), + B => RXS_CNT(1), + C => VCC, + D => VCC, + Z => UN8_RXS_CNT_TC); +\UN1_RLOS_DB_CNT_ZERO_AM[0]_Z669\: LUT4 +generic map( + init => X"0001" +) +port map ( + A => RLOS_DB_CNT(0), + B => RLOS_DB_CNT(1), + C => RLOS_DB_CNT(2), + D => RLOS_DB_CNT(3), + Z => UN1_RLOS_DB_CNT_ZERO_AM(0)); +\UN1_RLOL_DB_CNT_ZERO_AM[0]_Z670\: LUT4 +generic map( + init => X"0001" +) +port map ( + A => RLOL_DB_CNT(0), + B => RLOL_DB_CNT(1), + C => RLOL_DB_CNT(2), + D => RLOL_DB_CNT(3), + Z => UN1_RLOL_DB_CNT_ZERO_AM(0)); +\GENBLK1.PLOL0_CNT9\: LUT4 +generic map( + init => X"AAAE" +) +port map ( + A => PLL_LOL_P2, + B => PLOL0_CNT(2), + C => PLOL0_CNT(1), + D => PLOL0_CNT(0), + Z => PLOL0_CNT9); +\GENBLK2.RLOLS0_CNT11_0\: LUT4 +generic map( + init => X"4F44" +) +port map ( + A => RLOL_DB_P1, + B => RLOL_DB, + C => RLOS_DB_P1, + D => RLOS_DB, + Z => RLOLS0_CNT11_0); +\GENBLK2.RLOL1_CNT_CRY_0[0]\: CCU2C +generic map( + INIT0 => X"500c", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( + A0 => VCC, + B0 => \RLOL1_CNT_\, + C0 => VCC, + D0 => VCC, + A1 => \RLOL1_CNT_\, + B1 => RLOL1_CNT(0), + C1 => VCC, + D1 => VCC, + CIN => N_5, + COUT => RLOL1_CNT_CRY(0), + S0 => RLOL1_CNT_CRY_0_S0(0), + S1 => RLOL1_CNT_S(0)); +\GENBLK2.RLOL1_CNT_CRY_0[1]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( + A0 => \RLOL1_CNT_\, + B0 => RLOL1_CNT(1), + C0 => VCC, + D0 => VCC, + A1 => \RLOL1_CNT_\, + B1 => RLOL1_CNT(2), + C1 => VCC, + D1 => VCC, + CIN => RLOL1_CNT_CRY(0), + COUT => RLOL1_CNT_CRY(2), + S0 => RLOL1_CNT_S(1), + S1 => RLOL1_CNT_S(2)); +\GENBLK2.RLOL1_CNT_CRY_0[3]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( + A0 => \RLOL1_CNT_\, + B0 => RLOL1_CNT(3), + C0 => VCC, + D0 => VCC, + A1 => \RLOL1_CNT_\, + B1 => RLOL1_CNT(4), + C1 => VCC, + D1 => VCC, + CIN => RLOL1_CNT_CRY(2), + COUT => RLOL1_CNT_CRY(4), + S0 => RLOL1_CNT_S(3), + S1 => RLOL1_CNT_S(4)); +\GENBLK2.RLOL1_CNT_CRY_0[5]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( + A0 => \RLOL1_CNT_\, + B0 => RLOL1_CNT(5), + C0 => VCC, + D0 => VCC, + A1 => \RLOL1_CNT_\, + B1 => RLOL1_CNT(6), + C1 => VCC, + D1 => VCC, + CIN => RLOL1_CNT_CRY(4), + COUT => RLOL1_CNT_CRY(6), + S0 => RLOL1_CNT_S(5), + S1 => RLOL1_CNT_S(6)); +\GENBLK2.RLOL1_CNT_CRY_0[7]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( + A0 => \RLOL1_CNT_\, + B0 => RLOL1_CNT(7), + C0 => VCC, + D0 => VCC, + A1 => \RLOL1_CNT_\, + B1 => RLOL1_CNT(8), + C1 => VCC, + D1 => VCC, + CIN => RLOL1_CNT_CRY(6), + COUT => RLOL1_CNT_CRY(8), + S0 => RLOL1_CNT_S(7), + S1 => RLOL1_CNT_S(8)); +\GENBLK2.RLOL1_CNT_CRY_0[9]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( + A0 => \RLOL1_CNT_\, + B0 => RLOL1_CNT(9), + C0 => VCC, + D0 => VCC, + A1 => \RLOL1_CNT_\, + B1 => RLOL1_CNT(10), + C1 => VCC, + D1 => VCC, + CIN => RLOL1_CNT_CRY(8), + COUT => RLOL1_CNT_CRY(10), + S0 => RLOL1_CNT_S(9), + S1 => RLOL1_CNT_S(10)); +\GENBLK2.RLOL1_CNT_CRY_0[11]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( + A0 => \RLOL1_CNT_\, + B0 => RLOL1_CNT(11), + C0 => VCC, + D0 => VCC, + A1 => \RLOL1_CNT_\, + B1 => RLOL1_CNT(12), + C1 => VCC, + D1 => VCC, + CIN => RLOL1_CNT_CRY(10), + COUT => RLOL1_CNT_CRY(12), + S0 => RLOL1_CNT_S(11), + S1 => RLOL1_CNT_S(12)); +\GENBLK2.RLOL1_CNT_CRY_0[13]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( + A0 => \RLOL1_CNT_\, + B0 => RLOL1_CNT(13), + C0 => VCC, + D0 => VCC, + A1 => \RLOL1_CNT_\, + B1 => RLOL1_CNT(14), + C1 => VCC, + D1 => VCC, + CIN => RLOL1_CNT_CRY(12), + COUT => RLOL1_CNT_CRY(14), + S0 => RLOL1_CNT_S(13), + S1 => RLOL1_CNT_S(14)); +\GENBLK2.RLOL1_CNT_CRY_0[15]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( + A0 => \RLOL1_CNT_\, + B0 => RLOL1_CNT(15), + C0 => VCC, + D0 => VCC, + A1 => \RLOL1_CNT_\, + B1 => RLOL1_CNT(16), + C1 => VCC, + D1 => VCC, + CIN => RLOL1_CNT_CRY(14), + COUT => RLOL1_CNT_CRY(16), + S0 => RLOL1_CNT_S(15), + S1 => RLOL1_CNT_S(16)); +\GENBLK2.RLOL1_CNT_CRY_0[17]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"800a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( + A0 => \RLOL1_CNT_\, + B0 => RLOL1_CNT(17), + C0 => VCC, + D0 => VCC, + A1 => \RLOL1_CNT_\, + B1 => RLOL1_CNT(18), + C1 => VCC, + D1 => VCC, + CIN => RLOL1_CNT_CRY(16), + COUT => RLOL1_CNT_CRY_0_COUT(17), + S0 => RLOL1_CNT_S(17), + S1 => RLOL1_CNT_S(18)); +\GENBLK2.RLOLS0_CNT_CRY_0[0]\: CCU2C +generic map( + INIT0 => X"500c", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( + A0 => VCC, + B0 => \RLOLS0_CNT_\, + C0 => VCC, + D0 => VCC, + A1 => \RLOLS0_CNT_\, + B1 => RLOLS0_CNT(0), + C1 => VCC, + D1 => VCC, + CIN => N_4, + COUT => RLOLS0_CNT_CRY(0), + S0 => RLOLS0_CNT_CRY_0_S0(0), + S1 => RLOLS0_CNT_S(0)); +\GENBLK2.RLOLS0_CNT_CRY_0[1]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( + A0 => \RLOLS0_CNT_\, + B0 => RLOLS0_CNT(1), + C0 => VCC, + D0 => VCC, + A1 => \RLOLS0_CNT_\, + B1 => RLOLS0_CNT(2), + C1 => VCC, + D1 => VCC, + CIN => RLOLS0_CNT_CRY(0), + COUT => RLOLS0_CNT_CRY(2), + S0 => RLOLS0_CNT_S(1), + S1 => RLOLS0_CNT_S(2)); +\GENBLK2.RLOLS0_CNT_CRY_0[3]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( + A0 => \RLOLS0_CNT_\, + B0 => RLOLS0_CNT(3), + C0 => VCC, + D0 => VCC, + A1 => \RLOLS0_CNT_\, + B1 => RLOLS0_CNT(4), + C1 => VCC, + D1 => VCC, + CIN => RLOLS0_CNT_CRY(2), + COUT => RLOLS0_CNT_CRY(4), + S0 => RLOLS0_CNT_S(3), + S1 => RLOLS0_CNT_S(4)); +\GENBLK2.RLOLS0_CNT_CRY_0[5]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( + A0 => \RLOLS0_CNT_\, + B0 => RLOLS0_CNT(5), + C0 => VCC, + D0 => VCC, + A1 => \RLOLS0_CNT_\, + B1 => RLOLS0_CNT(6), + C1 => VCC, + D1 => VCC, + CIN => RLOLS0_CNT_CRY(4), + COUT => RLOLS0_CNT_CRY(6), + S0 => RLOLS0_CNT_S(5), + S1 => RLOLS0_CNT_S(6)); +\GENBLK2.RLOLS0_CNT_CRY_0[7]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( + A0 => \RLOLS0_CNT_\, + B0 => RLOLS0_CNT(7), + C0 => VCC, + D0 => VCC, + A1 => \RLOLS0_CNT_\, + B1 => RLOLS0_CNT(8), + C1 => VCC, + D1 => VCC, + CIN => RLOLS0_CNT_CRY(6), + COUT => RLOLS0_CNT_CRY(8), + S0 => RLOLS0_CNT_S(7), + S1 => RLOLS0_CNT_S(8)); +\GENBLK2.RLOLS0_CNT_CRY_0[9]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( + A0 => \RLOLS0_CNT_\, + B0 => RLOLS0_CNT(9), + C0 => VCC, + D0 => VCC, + A1 => \RLOLS0_CNT_\, + B1 => RLOLS0_CNT(10), + C1 => VCC, + D1 => VCC, + CIN => RLOLS0_CNT_CRY(8), + COUT => RLOLS0_CNT_CRY(10), + S0 => RLOLS0_CNT_S(9), + S1 => RLOLS0_CNT_S(10)); +\GENBLK2.RLOLS0_CNT_CRY_0[11]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( + A0 => \RLOLS0_CNT_\, + B0 => RLOLS0_CNT(11), + C0 => VCC, + D0 => VCC, + A1 => \RLOLS0_CNT_\, + B1 => RLOLS0_CNT(12), + C1 => VCC, + D1 => VCC, + CIN => RLOLS0_CNT_CRY(10), + COUT => RLOLS0_CNT_CRY(12), + S0 => RLOLS0_CNT_S(11), + S1 => RLOLS0_CNT_S(12)); +\GENBLK2.RLOLS0_CNT_CRY_0[13]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( + A0 => \RLOLS0_CNT_\, + B0 => RLOLS0_CNT(13), + C0 => VCC, + D0 => VCC, + A1 => \RLOLS0_CNT_\, + B1 => RLOLS0_CNT(14), + C1 => VCC, + D1 => VCC, + CIN => RLOLS0_CNT_CRY(12), + COUT => RLOLS0_CNT_CRY(14), + S0 => RLOLS0_CNT_S(13), + S1 => RLOLS0_CNT_S(14)); +\GENBLK2.RLOLS0_CNT_CRY_0[15]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( + A0 => \RLOLS0_CNT_\, + B0 => RLOLS0_CNT(15), + C0 => VCC, + D0 => VCC, + A1 => \RLOLS0_CNT_\, + B1 => RLOLS0_CNT(16), + C1 => VCC, + D1 => VCC, + CIN => RLOLS0_CNT_CRY(14), + COUT => RLOLS0_CNT_CRY(16), + S0 => RLOLS0_CNT_S(15), + S1 => RLOLS0_CNT_S(16)); +\GENBLK2.RLOLS0_CNT_S_0[17]\: CCU2C +generic map( + INIT0 => X"800a", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( + A0 => \RLOLS0_CNT_\, + B0 => RLOLS0_CNT(17), + C0 => VCC, + D0 => VCC, + A1 => VCC, + B1 => VCC, + C1 => VCC, + D1 => VCC, + CIN => RLOLS0_CNT_CRY(16), + COUT => RLOLS0_CNT_S_0_COUT(17), + S0 => RLOLS0_CNT_S(17), + S1 => RLOLS0_CNT_S_0_S1(17)); +\GENBLK1.PLOL_CNT_CRY_0[0]\: CCU2C +generic map( + INIT0 => X"500c", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( + A0 => VCC, + B0 => \PLOL_CNT_\, + C0 => VCC, + D0 => VCC, + A1 => \PLOL_CNT_\, + B1 => PLOL_CNT(0), + C1 => VCC, + D1 => VCC, + CIN => N_3, + COUT => PLOL_CNT_CRY(0), + S0 => PLOL_CNT_CRY_0_S0(0), + S1 => PLOL_CNT_S(0)); +\GENBLK1.PLOL_CNT_CRY_0[1]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( + A0 => \PLOL_CNT_\, + B0 => PLOL_CNT(1), + C0 => VCC, + D0 => VCC, + A1 => \PLOL_CNT_\, + B1 => PLOL_CNT(2), + C1 => VCC, + D1 => VCC, + CIN => PLOL_CNT_CRY(0), + COUT => PLOL_CNT_CRY(2), + S0 => PLOL_CNT_S(1), + S1 => PLOL_CNT_S(2)); +\GENBLK1.PLOL_CNT_CRY_0[3]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( + A0 => \PLOL_CNT_\, + B0 => PLOL_CNT(3), + C0 => VCC, + D0 => VCC, + A1 => \PLOL_CNT_\, + B1 => PLOL_CNT(4), + C1 => VCC, + D1 => VCC, + CIN => PLOL_CNT_CRY(2), + COUT => PLOL_CNT_CRY(4), + S0 => PLOL_CNT_S(3), + S1 => PLOL_CNT_S(4)); +\GENBLK1.PLOL_CNT_CRY_0[5]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( + A0 => \PLOL_CNT_\, + B0 => PLOL_CNT(5), + C0 => VCC, + D0 => VCC, + A1 => \PLOL_CNT_\, + B1 => PLOL_CNT(6), + C1 => VCC, + D1 => VCC, + CIN => PLOL_CNT_CRY(4), + COUT => PLOL_CNT_CRY(6), + S0 => PLOL_CNT_S(5), + S1 => PLOL_CNT_S(6)); +\GENBLK1.PLOL_CNT_CRY_0[7]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( + A0 => \PLOL_CNT_\, + B0 => PLOL_CNT(7), + C0 => VCC, + D0 => VCC, + A1 => \PLOL_CNT_\, + B1 => PLOL_CNT(8), + C1 => VCC, + D1 => VCC, + CIN => PLOL_CNT_CRY(6), + COUT => PLOL_CNT_CRY(8), + S0 => PLOL_CNT_S(7), + S1 => PLOL_CNT_S(8)); +\GENBLK1.PLOL_CNT_CRY_0[9]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( + A0 => \PLOL_CNT_\, + B0 => PLOL_CNT(9), + C0 => VCC, + D0 => VCC, + A1 => \PLOL_CNT_\, + B1 => PLOL_CNT(10), + C1 => VCC, + D1 => VCC, + CIN => PLOL_CNT_CRY(8), + COUT => PLOL_CNT_CRY(10), + S0 => PLOL_CNT_S(9), + S1 => PLOL_CNT_S(10)); +\GENBLK1.PLOL_CNT_CRY_0[11]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( + A0 => \PLOL_CNT_\, + B0 => PLOL_CNT(11), + C0 => VCC, + D0 => VCC, + A1 => \PLOL_CNT_\, + B1 => PLOL_CNT(12), + C1 => VCC, + D1 => VCC, + CIN => PLOL_CNT_CRY(10), + COUT => PLOL_CNT_CRY(12), + S0 => PLOL_CNT_S(11), + S1 => PLOL_CNT_S(12)); +\GENBLK1.PLOL_CNT_CRY_0[13]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( + A0 => \PLOL_CNT_\, + B0 => PLOL_CNT(13), + C0 => VCC, + D0 => VCC, + A1 => \PLOL_CNT_\, + B1 => PLOL_CNT(14), + C1 => VCC, + D1 => VCC, + CIN => PLOL_CNT_CRY(12), + COUT => PLOL_CNT_CRY(14), + S0 => PLOL_CNT_S(13), + S1 => PLOL_CNT_S(14)); +\GENBLK1.PLOL_CNT_CRY_0[15]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( + A0 => \PLOL_CNT_\, + B0 => PLOL_CNT(15), + C0 => VCC, + D0 => VCC, + A1 => \PLOL_CNT_\, + B1 => PLOL_CNT(16), + C1 => VCC, + D1 => VCC, + CIN => PLOL_CNT_CRY(14), + COUT => PLOL_CNT_CRY(16), + S0 => PLOL_CNT_S(15), + S1 => PLOL_CNT_S(16)); +\GENBLK1.PLOL_CNT_CRY_0[17]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( + A0 => \PLOL_CNT_\, + B0 => PLOL_CNT(17), + C0 => VCC, + D0 => VCC, + A1 => \PLOL_CNT_\, + B1 => PLOL_CNT(18), + C1 => VCC, + D1 => VCC, + CIN => PLOL_CNT_CRY(16), + COUT => PLOL_CNT_CRY(18), + S0 => PLOL_CNT_S(17), + S1 => PLOL_CNT_S(18)); +\GENBLK1.PLOL_CNT_S_0[19]\: CCU2C +generic map( + INIT0 => X"800a", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( + A0 => \PLOL_CNT_\, + B0 => PLOL_CNT(19), + C0 => VCC, + D0 => VCC, + A1 => VCC, + B1 => VCC, + C1 => VCC, + D1 => VCC, + CIN => PLOL_CNT_CRY(18), + COUT => PLOL_CNT_S_0_COUT(19), + S0 => PLOL_CNT_S(19), + S1 => PLOL_CNT_S_0_S1(19)); +\UN1_GENBLK2.RLOS_DB_CNT_CRY_0_0\: CCU2C +generic map( + INIT0 => X"5003", + INIT1 => X"900a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( + A0 => VCC, + B0 => VCC, + C0 => VCC, + D0 => VCC, + A1 => RLOS_DB_CNT(0), + B1 => UN1_RLOS_DB_CNT_ZERO(0), + C1 => VCC, + D1 => VCC, + CIN => N_2, + COUT => RLOS_DB_CNT_CRY_0, + S0 => RLOS_DB_CNT_CRY_0_0_S0, + S1 => RLOS_DB_CNT_CRY_0_0_S1); +\UN1_GENBLK2.RLOS_DB_CNT_CRY_1_0\: CCU2C +generic map( + INIT0 => X"e101", + INIT1 => X"e101", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( + A0 => UN1_RLOS_DB_CNT_ZERO(0), + B0 => RLOS_P2, + C0 => RLOS_DB_CNT(1), + D0 => VCC, + A1 => UN1_RLOS_DB_CNT_ZERO(0), + B1 => RLOS_P2, + C1 => RLOS_DB_CNT(2), + D1 => VCC, + CIN => RLOS_DB_CNT_CRY_0, + COUT => RLOS_DB_CNT_CRY_2, + S0 => RLOS_DB_CNT_CRY_1_0_S0, + S1 => RLOS_DB_CNT_CRY_1_0_S1); +\UN1_GENBLK2.RLOS_DB_CNT_S_3_0\: CCU2C +generic map( + INIT0 => X"a90a", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( + A0 => RLOS_DB_CNT(3), + B0 => RLOS_P2, + C0 => UN1_RLOS_DB_CNT_ZERO(0), + D0 => VCC, + A1 => VCC, + B1 => VCC, + C1 => VCC, + D1 => VCC, + CIN => RLOS_DB_CNT_CRY_2, + COUT => RLOS_DB_CNT_S_3_0_COUT, + S0 => RLOS_DB_CNT_S_3_0_S0, + S1 => RLOS_DB_CNT_S_3_0_S1); +\UN1_GENBLK2.RLOL_DB_CNT_CRY_0_0\: CCU2C +generic map( + INIT0 => X"5003", + INIT1 => X"900a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( + A0 => VCC, + B0 => VCC, + C0 => VCC, + D0 => VCC, + A1 => RLOL_DB_CNT(0), + B1 => UN1_RLOL_DB_CNT_ZERO(0), + C1 => VCC, + D1 => VCC, + CIN => N_1, + COUT => RLOL_DB_CNT_CRY_0, + S0 => RLOL_DB_CNT_CRY_0_0_S0, + S1 => RLOL_DB_CNT_CRY_0_0_S1); +\UN1_GENBLK2.RLOL_DB_CNT_CRY_1_0\: CCU2C +generic map( + INIT0 => X"e101", + INIT1 => X"e101", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( + A0 => UN1_RLOL_DB_CNT_ZERO(0), + B0 => RLOL_P2, + C0 => RLOL_DB_CNT(1), + D0 => VCC, + A1 => UN1_RLOL_DB_CNT_ZERO(0), + B1 => RLOL_P2, + C1 => RLOL_DB_CNT(2), + D1 => VCC, + CIN => RLOL_DB_CNT_CRY_0, + COUT => RLOL_DB_CNT_CRY_2, + S0 => RLOL_DB_CNT_CRY_1_0_S0, + S1 => RLOL_DB_CNT_CRY_1_0_S1); +\UN1_GENBLK2.RLOL_DB_CNT_S_3_0\: CCU2C +generic map( + INIT0 => X"a90a", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( + A0 => RLOL_DB_CNT(3), + B0 => RLOL_P2, + C0 => UN1_RLOL_DB_CNT_ZERO(0), + D0 => VCC, + A1 => VCC, + B1 => VCC, + C1 => VCC, + D1 => VCC, + CIN => RLOL_DB_CNT_CRY_2, + COUT => RLOL_DB_CNT_S_3_0_COUT, + S0 => RLOL_DB_CNT_S_3_0_S0, + S1 => RLOL_DB_CNT_S_3_0_S1); +VCC_0: VHI port map ( + Z => VCC); +II_GND: VLO port map ( + Z => GND); +rsl_tx_serdes_rst_c <= RSL_TX_SERDES_RST_C_4; +rsl_rx_serdes_rst_c <= RSL_RX_SERDES_RST_C_5; +rsl_serdes_rst_dual_c <= RSL_SERDES_RST_DUAL_C_6; +end beh; + +-- +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; +library synplify; +use synplify.components.all; +library pmi; +use pmi.pmi_components.all; +library ecp5um; +use ecp5um.components.all; + +entity PCSD is +port( +hdoutp : out std_logic; +hdoutn : out std_logic; +hdinp : in std_logic; +hdinn : in std_logic; +rxrefclk : in std_logic; +tx_pclk : out std_logic; +txi_clk : in std_logic; +txdata : in std_logic_vector(7 downto 0); +tx_k : in std_logic_vector(0 downto 0); +xmit : in std_logic_vector(0 downto 0); +tx_disp_correct : in std_logic_vector(0 downto 0); +rxdata : out std_logic_vector(7 downto 0); +rx_k : out std_logic_vector(0 downto 0); +rx_disp_err : out std_logic_vector(0 downto 0); +rx_cv_err : out std_logic_vector(0 downto 0); +signal_detect_c : in std_logic; +rx_los_low_s : out std_logic; +lsm_status_s : out std_logic; +ctc_urun_s : out std_logic; +ctc_orun_s : out std_logic; +rx_cdr_lol_s : out std_logic; +ctc_ins_s : out std_logic; +ctc_del_s : out std_logic; +tx_pwrup_c : in std_logic; +rx_pwrup_c : in std_logic; +serdes_pdb : in std_logic; +pll_refclki : in std_logic; +rsl_disable : in std_logic; +rsl_rst : in std_logic; +serdes_rst_dual_c : in std_logic; +rst_dual_c : in std_logic; +tx_serdes_rst_c : in std_logic; +tx_pcs_rst_c : in std_logic; +pll_lol : in std_logic; +rx_serdes_rst_c : in std_logic; +rx_pcs_rst_c : in std_logic); +end PCSD; + +architecture beh of PCSD is +signal TX_PCLK_7 : std_logic ; +signal RX_LOS_LOW_S_8 : std_logic ; +signal RX_CDR_LOL_S_9 : std_logic ; +signal RSL_TX_PCS_RST_C : std_logic ; +signal RSL_RX_PCS_RST_C : std_logic ; +signal RSL_RX_SERDES_RST_C : std_logic ; +signal RSL_SERDES_RST_DUAL_C : std_logic ; +signal RSL_TX_SERDES_RST_C : std_logic ; +signal N47_1 : std_logic ; +signal N48_1 : std_logic ; +signal N1_1 : std_logic ; +signal N2_1 : std_logic ; +signal N3_1 : std_logic ; +signal N4_1 : std_logic ; +signal N5_1 : std_logic ; +signal N49_1 : std_logic ; +signal N6_1 : std_logic ; +signal N50_1 : std_logic ; +signal N7_1 : std_logic ; +signal N51_1 : std_logic ; +signal N8_1 : std_logic ; +signal N52_1 : std_logic ; +signal N9_1 : std_logic ; +signal N53_1 : std_logic ; +signal N54_1 : std_logic ; +signal N55_1 : std_logic ; +signal N56_1 : std_logic ; +signal N57_1 : std_logic ; +signal N58_1 : std_logic ; +signal N59_1 : std_logic ; +signal N60_1 : std_logic ; +signal N61_1 : std_logic ; +signal N62_1 : std_logic ; +signal N63_1 : std_logic ; +signal N64_1 : std_logic ; +signal N65_1 : std_logic ; +signal N10_1 : std_logic ; +signal N66_1 : std_logic ; +signal N67_1 : std_logic ; +signal N68_1 : std_logic ; +signal N69_1 : std_logic ; +signal N70_1 : std_logic ; +signal N71_1 : std_logic ; +signal N72_1 : std_logic ; +signal N73_1 : std_logic ; +signal N74_1 : std_logic ; +signal N75_1 : std_logic ; +signal N76_1 : std_logic ; +signal N77_1 : std_logic ; +signal N78_1 : std_logic ; +signal N79_1 : std_logic ; +signal N80_1 : std_logic ; +signal N81_1 : std_logic ; +signal N82_1 : std_logic ; +signal N83_1 : std_logic ; +signal N84_1 : std_logic ; +signal N85_1 : std_logic ; +signal N86_1 : std_logic ; +signal N87_1 : std_logic ; +signal N88_1 : std_logic ; +signal N11_1 : std_logic ; +signal N89_1 : std_logic ; +signal N12_1 : std_logic ; +signal N90_1 : std_logic ; +signal N13_1 : std_logic ; +signal N91_1 : std_logic ; +signal N92_1 : std_logic ; +signal N93_1 : std_logic ; +signal N94_1 : std_logic ; +signal N95_1 : std_logic ; +signal N14_1 : std_logic ; +signal N96_1 : std_logic ; +signal N15_1 : std_logic ; +signal N97_1 : std_logic ; +signal N98_1 : std_logic ; +signal N99_1 : std_logic ; +signal N100_1 : std_logic ; +signal N101_1 : std_logic ; +signal N102_1 : std_logic ; +signal N103_1 : std_logic ; +signal N104_1 : std_logic ; +signal N105_1 : std_logic ; +signal N106_1 : std_logic ; +signal N107_1 : std_logic ; +signal N108_1 : std_logic ; +signal N109_1 : std_logic ; +signal N110_1 : std_logic ; +signal N121_1 : std_logic ; +signal N16_1 : std_logic ; +signal N17_1 : std_logic ; +signal N18_1 : std_logic ; +signal N19_1 : std_logic ; +signal N20_1 : std_logic ; +signal N21_1 : std_logic ; +signal N22_1 : std_logic ; +signal N23_1 : std_logic ; +signal N24_1 : std_logic ; +signal N25_1 : std_logic ; +signal N26_1 : std_logic ; +signal N27_1 : std_logic ; +signal N28_1 : std_logic ; +signal N29_1 : std_logic ; +signal N30_1 : std_logic ; +signal N31_1 : std_logic ; +signal N32_1 : std_logic ; +signal N33_1 : std_logic ; +signal N34_1 : std_logic ; +signal N35_1 : std_logic ; +signal N36_1 : std_logic ; +signal N37_1 : std_logic ; +signal N38_1 : std_logic ; +signal N39_1 : std_logic ; +signal N40_1 : std_logic ; +signal N41_1 : std_logic ; +signal N42_1 : std_logic ; +signal N43_1 : std_logic ; +signal N46_1 : std_logic ; +signal GND : std_logic ; +signal VCC : std_logic ; +component PCSDrsl_core_Z1_layer1 + port( + serdes_rst_dual_c : in std_logic; + rx_serdes_rst_c : in std_logic; + tx_serdes_rst_c : in std_logic; + rsl_rx_pcs_rst_c : out std_logic; + rx_pcs_rst_c : in std_logic; + rsl_tx_pcs_rst_c : out std_logic; + tx_pcs_rst_c : in std_logic; + rsl_disable : in std_logic; + rsl_tx_serdes_rst_c : out std_logic; + pll_lol : in std_logic; + pll_refclki : in std_logic; + rx_cdr_lol_s : in std_logic; + rx_los_low_s : in std_logic; + rsl_rst : in std_logic; + rxrefclk : in std_logic; + rsl_rx_serdes_rst_c : out std_logic; + rsl_serdes_rst_dual_c : out std_logic ); +end component; +begin +GND_0: VLO port map ( + Z => GND); +VCC_0: VHI port map ( + Z => VCC); +PUR_INST: PUR port map ( + PUR => VCC); +GSR_INST: GSR port map ( + GSR => VCC); +DCU0_INST: DCUA +generic map( + D_MACROPDB => "0b1", + D_IB_PWDNB => "0b1", + D_XGE_MODE => "0b0", + D_LOW_MARK => "0d4", + D_HIGH_MARK => "0d12", + D_BUS8BIT_SEL => "0b0", + D_CDR_LOL_SET => "0b00", + D_BITCLK_LOCAL_EN => "0b1", + D_BITCLK_ND_EN => "0b0", + D_BITCLK_FROM_ND_EN => "0b0", + D_SYNC_LOCAL_EN => "0b1", + D_SYNC_ND_EN => "0b0", + CH0_UC_MODE => "0b0", + CH0_PCIE_MODE => "0b0", + CH0_RIO_MODE => "0b0", + CH0_WA_MODE => "0b0", + CH0_INVERT_RX => "0b0", + CH0_INVERT_TX => "0b0", + CH0_PRBS_SELECTION => "0b0", + CH0_GE_AN_ENABLE => "0b0", + CH0_PRBS_LOCK => "0b0", + CH0_PRBS_ENABLE => "0b0", + CH0_ENABLE_CG_ALIGN => "0b1", + CH0_TX_GEAR_MODE => "0b0", + CH0_RX_GEAR_MODE => "0b0", + CH0_PCS_DET_TIME_SEL => "0b00", + CH0_PCIE_EI_EN => "0b0", + CH0_TX_GEAR_BYPASS => "0b0", + CH0_ENC_BYPASS => "0b0", + CH0_SB_BYPASS => "0b0", + CH0_RX_SB_BYPASS => "0b0", + CH0_WA_BYPASS => "0b0", + CH0_DEC_BYPASS => "0b0", + CH0_CTC_BYPASS => "0b0", + CH0_RX_GEAR_BYPASS => "0b0", + CH0_LSM_DISABLE => "0b0", + CH0_MATCH_2_ENABLE => "0b1", + CH0_MATCH_4_ENABLE => "0b0", + CH0_MIN_IPG_CNT => "0b11", + CH0_CC_MATCH_1 => "0x000", + CH0_CC_MATCH_2 => "0x000", + CH0_CC_MATCH_3 => "0x1BC", + CH0_CC_MATCH_4 => "0x050", + CH0_UDF_COMMA_MASK => "0x3ff", + CH0_UDF_COMMA_A => "0x283", + CH0_UDF_COMMA_B => "0x17C", + CH0_RX_DCO_CK_DIV => "0b010", + CH0_RCV_DCC_EN => "0b0", + CH0_REQ_LVL_SET => "0b00", + CH0_REQ_EN => "0b1", + CH0_RTERM_RX => "0d22", + CH0_PDEN_SEL => "0b1", + CH0_LDR_RX2CORE_SEL => "0b0", + CH0_LDR_CORE2TX_SEL => "0b0", + CH0_TPWDNB => "0b1", + CH0_RATE_MODE_TX => "0b0", + CH0_RTERM_TX => "0d19", + CH0_TX_CM_SEL => "0b00", + CH0_TDRV_PRE_EN => "0b0", + CH0_TDRV_SLICE0_SEL => "0b01", + CH0_TDRV_SLICE1_SEL => "0b00", + CH0_TDRV_SLICE2_SEL => "0b01", + CH0_TDRV_SLICE3_SEL => "0b01", + CH0_TDRV_SLICE4_SEL => "0b01", + CH0_TDRV_SLICE5_SEL => "0b01", + CH0_TDRV_SLICE0_CUR => "0b101", + CH0_TDRV_SLICE1_CUR => "0b000", + CH0_TDRV_SLICE2_CUR => "0b11", + CH0_TDRV_SLICE3_CUR => "0b11", + CH0_TDRV_SLICE4_CUR => "0b11", + CH0_TDRV_SLICE5_CUR => "0b00", + CH0_TDRV_DAT_SEL => "0b00", + CH0_TX_DIV11_SEL => "0b0", + CH0_RPWDNB => "0b1", + CH0_RATE_MODE_RX => "0b0", + CH0_RLOS_SEL => "0b1", + CH0_RX_LOS_LVL => "0b010", + CH0_RX_LOS_CEQ => "0b11", + CH0_RX_LOS_HYST_EN => "0b0", + CH0_RX_LOS_EN => "0b1", + CH0_RX_DIV11_SEL => "0b0", + CH0_SEL_SD_RX_CLK => "0b0", + CH0_FF_RX_H_CLK_EN => "0b0", + CH0_FF_RX_F_CLK_DIS => "0b0", + CH0_FF_TX_H_CLK_EN => "0b0", + CH0_FF_TX_F_CLK_DIS => "0b0", + CH0_RX_RATE_SEL => "0d8", + CH0_TDRV_POST_EN => "0b0", + CH0_TX_POST_SIGN => "0b0", + CH0_TX_PRE_SIGN => "0b0", + CH0_RXTERM_CM => "0b11", + CH0_RXIN_CM => "0b11", + CH0_LEQ_OFFSET_SEL => "0b0", + CH0_LEQ_OFFSET_TRIM => "0b000", + D_TX_MAX_RATE => "1.25", + CH0_CDR_MAX_RATE => "1.25", + CH0_TXAMPLITUDE => "0d1100", + CH0_TXDEPRE => "DISABLED", + CH0_TXDEPOST => "DISABLED", + CH0_PROTOCOL => "GBE", + D_ISETLOS => "0d0", + D_SETIRPOLY_AUX => "0b00", + D_SETICONST_AUX => "0b00", + D_SETIRPOLY_CH => "0b00", + D_SETICONST_CH => "0b00", + D_REQ_ISET => "0b000", + D_PD_ISET => "0b00", + D_DCO_CALIB_TIME_SEL => "0b00", + CH0_DCOCTLGI => "0b010", + CH0_DCOATDDLY => "0b00", + CH0_DCOATDCFG => "0b00", + CH0_DCOBYPSATD => "0b1", + CH0_DCOSCALEI => "0b00", + CH0_DCOITUNE4LSB => "0b111", + CH0_DCOIOSTUNE => "0b000", + CH0_DCODISBDAVOID => "0b0", + CH0_DCOCALDIV => "0b001", + CH0_DCONUOFLSB => "0b101", + CH0_DCOIUPDNX2 => "0b1", + CH0_DCOSTEP => "0b00", + CH0_DCOSTARTVAL => "0b000", + CH0_DCOFLTDAC => "0b01", + CH0_DCOITUNE => "0b00", + CH0_DCOFTNRG => "0b110", + CH0_CDR_CNT4SEL => "0b00", + CH0_CDR_CNT8SEL => "0b00", + CH0_BAND_THRESHOLD => "0d0", + CH0_AUTO_FACQ_EN => "0b1", + CH0_AUTO_CALIB_EN => "0b1", + CH0_CALIB_CK_MODE => "0b0", + CH0_REG_BAND_OFFSET => "0d0", + CH0_REG_BAND_SEL => "0d0", + CH0_REG_IDAC_SEL => "0d0", + CH0_REG_IDAC_EN => "0b0", + D_TXPLL_PWDNB => "0b1", + D_SETPLLRC => "0d1", + D_REFCK_MODE => "0b001", + D_TX_VCO_CK_DIV => "0b010", + D_PLL_LOL_SET => "0b00", + D_RG_EN => "0b0", + D_RG_SET => "0b00", + D_CMUSETISCL4VCO => "0b000", + D_CMUSETI4VCO => "0b00", + D_CMUSETINITVCT => "0b00", + D_CMUSETZGM => "0b000", + D_CMUSETP2AGM => "0b000", + D_CMUSETP1GM => "0b000", + D_CMUSETI4CPZ => "0d3", + D_CMUSETI4CPP => "0d3", + D_CMUSETICP4Z => "0b101", + D_CMUSETICP4P => "0b01", + D_CMUSETBIASI => "0b00" +) +port map ( + CH0_HDINP => hdinp, + CH1_HDINP => GND, + CH0_HDINN => hdinn, + CH1_HDINN => GND, + D_TXBIT_CLKP_FROM_ND => GND, + D_TXBIT_CLKN_FROM_ND => GND, + D_SYNC_ND => GND, + D_TXPLL_LOL_FROM_ND => GND, + CH0_RX_REFCLK => rxrefclk, + CH1_RX_REFCLK => GND, + CH0_FF_RXI_CLK => TX_PCLK_7, + CH1_FF_RXI_CLK => VCC, + CH0_FF_TXI_CLK => txi_clk, + CH1_FF_TXI_CLK => VCC, + CH0_FF_EBRD_CLK => TX_PCLK_7, + CH1_FF_EBRD_CLK => VCC, + CH0_FF_TX_D_0 => txdata(0), + CH1_FF_TX_D_0 => GND, + CH0_FF_TX_D_1 => txdata(1), + CH1_FF_TX_D_1 => GND, + CH0_FF_TX_D_2 => txdata(2), + CH1_FF_TX_D_2 => GND, + CH0_FF_TX_D_3 => txdata(3), + CH1_FF_TX_D_3 => GND, + CH0_FF_TX_D_4 => txdata(4), + CH1_FF_TX_D_4 => GND, + CH0_FF_TX_D_5 => txdata(5), + CH1_FF_TX_D_5 => GND, + CH0_FF_TX_D_6 => txdata(6), + CH1_FF_TX_D_6 => GND, + CH0_FF_TX_D_7 => txdata(7), + CH1_FF_TX_D_7 => GND, + CH0_FF_TX_D_8 => tx_k(0), + CH1_FF_TX_D_8 => GND, + CH0_FF_TX_D_9 => GND, + CH1_FF_TX_D_9 => GND, + CH0_FF_TX_D_10 => xmit(0), + CH1_FF_TX_D_10 => GND, + CH0_FF_TX_D_11 => tx_disp_correct(0), + CH1_FF_TX_D_11 => GND, + CH0_FF_TX_D_12 => GND, + CH1_FF_TX_D_12 => GND, + CH0_FF_TX_D_13 => GND, + CH1_FF_TX_D_13 => GND, + CH0_FF_TX_D_14 => GND, + CH1_FF_TX_D_14 => GND, + CH0_FF_TX_D_15 => GND, + CH1_FF_TX_D_15 => GND, + CH0_FF_TX_D_16 => GND, + CH1_FF_TX_D_16 => GND, + CH0_FF_TX_D_17 => GND, + CH1_FF_TX_D_17 => GND, + CH0_FF_TX_D_18 => GND, + CH1_FF_TX_D_18 => GND, + CH0_FF_TX_D_19 => GND, + CH1_FF_TX_D_19 => GND, + CH0_FF_TX_D_20 => GND, + CH1_FF_TX_D_20 => GND, + CH0_FF_TX_D_21 => GND, + CH1_FF_TX_D_21 => GND, + CH0_FF_TX_D_22 => GND, + CH1_FF_TX_D_22 => GND, + CH0_FF_TX_D_23 => GND, + CH1_FF_TX_D_23 => GND, + CH0_FFC_EI_EN => GND, + CH1_FFC_EI_EN => GND, + CH0_FFC_PCIE_DET_EN => GND, + CH1_FFC_PCIE_DET_EN => GND, + CH0_FFC_PCIE_CT => GND, + CH1_FFC_PCIE_CT => GND, + CH0_FFC_SB_INV_RX => GND, + CH1_FFC_SB_INV_RX => GND, + CH0_FFC_ENABLE_CGALIGN => GND, + CH1_FFC_ENABLE_CGALIGN => GND, + CH0_FFC_SIGNAL_DETECT => signal_detect_c, + CH1_FFC_SIGNAL_DETECT => GND, + CH0_FFC_FB_LOOPBACK => GND, + CH1_FFC_FB_LOOPBACK => GND, + CH0_FFC_SB_PFIFO_LP => GND, + CH1_FFC_SB_PFIFO_LP => GND, + CH0_FFC_PFIFO_CLR => GND, + CH1_FFC_PFIFO_CLR => GND, + CH0_FFC_RATE_MODE_RX => GND, + CH1_FFC_RATE_MODE_RX => GND, + CH0_FFC_RATE_MODE_TX => GND, + CH1_FFC_RATE_MODE_TX => GND, + CH0_FFC_DIV11_MODE_RX => GND, + CH1_FFC_DIV11_MODE_RX => GND, + CH0_FFC_RX_GEAR_MODE => GND, + CH1_FFC_RX_GEAR_MODE => GND, + CH0_FFC_TX_GEAR_MODE => GND, + CH1_FFC_TX_GEAR_MODE => GND, + CH0_FFC_DIV11_MODE_TX => GND, + CH1_FFC_DIV11_MODE_TX => GND, + CH0_FFC_LDR_CORE2TX_EN => GND, + CH1_FFC_LDR_CORE2TX_EN => GND, + CH0_FFC_LANE_TX_RST => RSL_TX_PCS_RST_C, + CH1_FFC_LANE_TX_RST => GND, + CH0_FFC_LANE_RX_RST => RSL_RX_PCS_RST_C, + CH1_FFC_LANE_RX_RST => GND, + CH0_FFC_RRST => RSL_RX_SERDES_RST_C, + CH1_FFC_RRST => GND, + CH0_FFC_TXPWDNB => tx_pwrup_c, + CH1_FFC_TXPWDNB => GND, + CH0_FFC_RXPWDNB => rx_pwrup_c, + CH1_FFC_RXPWDNB => GND, + CH0_LDR_CORE2TX => GND, + CH1_LDR_CORE2TX => GND, + D_SCIWDATA0 => GND, + D_SCIWDATA1 => GND, + D_SCIWDATA2 => GND, + D_SCIWDATA3 => GND, + D_SCIWDATA4 => GND, + D_SCIWDATA5 => GND, + D_SCIWDATA6 => GND, + D_SCIWDATA7 => GND, + D_SCIADDR0 => GND, + D_SCIADDR1 => GND, + D_SCIADDR2 => GND, + D_SCIADDR3 => GND, + D_SCIADDR4 => GND, + D_SCIADDR5 => GND, + D_SCIENAUX => GND, + D_SCISELAUX => GND, + CH0_SCIEN => GND, + CH1_SCIEN => GND, + CH0_SCISEL => GND, + CH1_SCISEL => GND, + D_SCIRD => GND, + D_SCIWSTN => GND, + D_CYAWSTN => GND, + D_FFC_SYNC_TOGGLE => GND, + D_FFC_DUAL_RST => rst_dual_c, + D_FFC_MACRO_RST => RSL_SERDES_RST_DUAL_C, + D_FFC_MACROPDB => serdes_pdb, + D_FFC_TRST => RSL_TX_SERDES_RST_C, + CH0_FFC_CDR_EN_BITSLIP => GND, + CH1_FFC_CDR_EN_BITSLIP => GND, + D_SCAN_ENABLE => GND, + D_SCAN_IN_0 => GND, + D_SCAN_IN_1 => GND, + D_SCAN_IN_2 => GND, + D_SCAN_IN_3 => GND, + D_SCAN_IN_4 => GND, + D_SCAN_IN_5 => GND, + D_SCAN_IN_6 => GND, + D_SCAN_IN_7 => GND, + D_SCAN_MODE => GND, + D_SCAN_RESET => GND, + D_CIN0 => GND, + D_CIN1 => GND, + D_CIN2 => GND, + D_CIN3 => GND, + D_CIN4 => GND, + D_CIN5 => GND, + D_CIN6 => GND, + D_CIN7 => GND, + D_CIN8 => GND, + D_CIN9 => GND, + D_CIN10 => GND, + D_CIN11 => GND, + CH0_HDOUTP => hdoutp, + CH1_HDOUTP => N47_1, + CH0_HDOUTN => hdoutn, + CH1_HDOUTN => N48_1, + D_TXBIT_CLKP_TO_ND => N1_1, + D_TXBIT_CLKN_TO_ND => N2_1, + D_SYNC_PULSE2ND => N3_1, + D_TXPLL_LOL_TO_ND => N4_1, + CH0_FF_RX_F_CLK => N5_1, + CH1_FF_RX_F_CLK => N49_1, + CH0_FF_RX_H_CLK => N6_1, + CH1_FF_RX_H_CLK => N50_1, + CH0_FF_TX_F_CLK => N7_1, + CH1_FF_TX_F_CLK => N51_1, + CH0_FF_TX_H_CLK => N8_1, + CH1_FF_TX_H_CLK => N52_1, + CH0_FF_RX_PCLK => N9_1, + CH1_FF_RX_PCLK => N53_1, + CH0_FF_TX_PCLK => TX_PCLK_7, + CH1_FF_TX_PCLK => N54_1, + CH0_FF_RX_D_0 => rxdata(0), + CH1_FF_RX_D_0 => N55_1, + CH0_FF_RX_D_1 => rxdata(1), + CH1_FF_RX_D_1 => N56_1, + CH0_FF_RX_D_2 => rxdata(2), + CH1_FF_RX_D_2 => N57_1, + CH0_FF_RX_D_3 => rxdata(3), + CH1_FF_RX_D_3 => N58_1, + CH0_FF_RX_D_4 => rxdata(4), + CH1_FF_RX_D_4 => N59_1, + CH0_FF_RX_D_5 => rxdata(5), + CH1_FF_RX_D_5 => N60_1, + CH0_FF_RX_D_6 => rxdata(6), + CH1_FF_RX_D_6 => N61_1, + CH0_FF_RX_D_7 => rxdata(7), + CH1_FF_RX_D_7 => N62_1, + CH0_FF_RX_D_8 => rx_k(0), + CH1_FF_RX_D_8 => N63_1, + CH0_FF_RX_D_9 => rx_disp_err(0), + CH1_FF_RX_D_9 => N64_1, + CH0_FF_RX_D_10 => rx_cv_err(0), + CH1_FF_RX_D_10 => N65_1, + CH0_FF_RX_D_11 => N10_1, + CH1_FF_RX_D_11 => N66_1, + CH0_FF_RX_D_12 => N67_1, + CH1_FF_RX_D_12 => N68_1, + CH0_FF_RX_D_13 => N69_1, + CH1_FF_RX_D_13 => N70_1, + CH0_FF_RX_D_14 => N71_1, + CH1_FF_RX_D_14 => N72_1, + CH0_FF_RX_D_15 => N73_1, + CH1_FF_RX_D_15 => N74_1, + CH0_FF_RX_D_16 => N75_1, + CH1_FF_RX_D_16 => N76_1, + CH0_FF_RX_D_17 => N77_1, + CH1_FF_RX_D_17 => N78_1, + CH0_FF_RX_D_18 => N79_1, + CH1_FF_RX_D_18 => N80_1, + CH0_FF_RX_D_19 => N81_1, + CH1_FF_RX_D_19 => N82_1, + CH0_FF_RX_D_20 => N83_1, + CH1_FF_RX_D_20 => N84_1, + CH0_FF_RX_D_21 => N85_1, + CH1_FF_RX_D_21 => N86_1, + CH0_FF_RX_D_22 => N87_1, + CH1_FF_RX_D_22 => N88_1, + CH0_FF_RX_D_23 => N11_1, + CH1_FF_RX_D_23 => N89_1, + CH0_FFS_PCIE_DONE => N12_1, + CH1_FFS_PCIE_DONE => N90_1, + CH0_FFS_PCIE_CON => N13_1, + CH1_FFS_PCIE_CON => N91_1, + CH0_FFS_RLOS => RX_LOS_LOW_S_8, + CH1_FFS_RLOS => N92_1, + CH0_FFS_LS_SYNC_STATUS => lsm_status_s, + CH1_FFS_LS_SYNC_STATUS => N93_1, + CH0_FFS_CC_UNDERRUN => ctc_urun_s, + CH1_FFS_CC_UNDERRUN => N94_1, + CH0_FFS_CC_OVERRUN => ctc_orun_s, + CH1_FFS_CC_OVERRUN => N95_1, + CH0_FFS_RXFBFIFO_ERROR => N14_1, + CH1_FFS_RXFBFIFO_ERROR => N96_1, + CH0_FFS_TXFBFIFO_ERROR => N15_1, + CH1_FFS_TXFBFIFO_ERROR => N97_1, + CH0_FFS_RLOL => RX_CDR_LOL_S_9, + CH1_FFS_RLOL => N98_1, + CH0_FFS_SKP_ADDED => ctc_ins_s, + CH1_FFS_SKP_ADDED => N99_1, + CH0_FFS_SKP_DELETED => ctc_del_s, + CH1_FFS_SKP_DELETED => N100_1, + CH0_LDR_RX2CORE => N101_1, + CH1_LDR_RX2CORE => N102_1, + D_SCIRDATA0 => N103_1, + D_SCIRDATA1 => N104_1, + D_SCIRDATA2 => N105_1, + D_SCIRDATA3 => N106_1, + D_SCIRDATA4 => N107_1, + D_SCIRDATA5 => N108_1, + D_SCIRDATA6 => N109_1, + D_SCIRDATA7 => N110_1, + D_SCIINT => N121_1, + D_SCAN_OUT_0 => N16_1, + D_SCAN_OUT_1 => N17_1, + D_SCAN_OUT_2 => N18_1, + D_SCAN_OUT_3 => N19_1, + D_SCAN_OUT_4 => N20_1, + D_SCAN_OUT_5 => N21_1, + D_SCAN_OUT_6 => N22_1, + D_SCAN_OUT_7 => N23_1, + D_COUT0 => N24_1, + D_COUT1 => N25_1, + D_COUT2 => N26_1, + D_COUT3 => N27_1, + D_COUT4 => N28_1, + D_COUT5 => N29_1, + D_COUT6 => N30_1, + D_COUT7 => N31_1, + D_COUT8 => N32_1, + D_COUT9 => N33_1, + D_COUT10 => N34_1, + D_COUT11 => N35_1, + D_COUT12 => N36_1, + D_COUT13 => N37_1, + D_COUT14 => N38_1, + D_COUT15 => N39_1, + D_COUT16 => N40_1, + D_COUT17 => N41_1, + D_COUT18 => N42_1, + D_COUT19 => N43_1, + D_REFCLKI => pll_refclki, + D_FFS_PLOL => N46_1); +RSL_INST: PCSDrsl_core_Z1_layer1 port map ( + serdes_rst_dual_c => serdes_rst_dual_c, + rx_serdes_rst_c => rx_serdes_rst_c, + tx_serdes_rst_c => tx_serdes_rst_c, + rsl_rx_pcs_rst_c => RSL_RX_PCS_RST_C, + rx_pcs_rst_c => rx_pcs_rst_c, + rsl_tx_pcs_rst_c => RSL_TX_PCS_RST_C, + tx_pcs_rst_c => tx_pcs_rst_c, + rsl_disable => rsl_disable, + rsl_tx_serdes_rst_c => RSL_TX_SERDES_RST_C, + pll_lol => pll_lol, + pll_refclki => pll_refclki, + rx_cdr_lol_s => RX_CDR_LOL_S_9, + rx_los_low_s => RX_LOS_LOW_S_8, + rsl_rst => rsl_rst, + rxrefclk => rxrefclk, + rsl_rx_serdes_rst_c => RSL_RX_SERDES_RST_C, + rsl_serdes_rst_dual_c => RSL_SERDES_RST_DUAL_C); +tx_pclk <= TX_PCLK_7; +rx_los_low_s <= RX_LOS_LOW_S_8; +rx_cdr_lol_s <= RX_CDR_LOL_S_9; +end beh; + diff --git a/gbe/cores/sgmii/PCSD/syn_results/PCSD.vm b/gbe/cores/sgmii/PCSD/syn_results/PCSD.vm new file mode 100644 index 0000000..0a8dd16 --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/PCSD.vm @@ -0,0 +1,2907 @@ +// +// Written by Synplify Pro +// Product Version "M-2017.03L-SP1-1" +// Program "Synplify Pro", Mapper "maplat, Build 1796R" +// Tue Apr 30 12:09:50 2019 +// +// Source file index table: +// Object locations will have the form : +// file 0 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd " +// file 1 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/snps_haps_pkg.vhd " +// file 2 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std1164.vhd " +// file 3 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/numeric.vhd " +// file 4 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/umr_capim.vhd " +// file 5 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/arith.vhd " +// file 6 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/unsigned.vhd " +// file 7 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/hyperents.vhd " +// file 8 "\/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd " +// file 9 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd " +// file 10 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v " +// file 11 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v " +// file 12 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v " +// file 13 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v " +// file 14 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v " +// file 15 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh " +// file 16 "\/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v " +// file 17 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/nlconst.dat " +// file 18 "\/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.fdc " + +`timescale 100 ps/100 ps +module PCSDrsl_core_Z1_layer1 ( + serdes_rst_dual_c, + rx_serdes_rst_c, + tx_serdes_rst_c, + rsl_rx_pcs_rst_c, + rx_pcs_rst_c, + rsl_tx_pcs_rst_c, + tx_pcs_rst_c, + rsl_disable, + rsl_tx_serdes_rst_c, + pll_lol, + pll_refclki, + rx_cdr_lol_s, + rx_los_low_s, + rsl_rst, + rxrefclk, + rsl_rx_serdes_rst_c, + rsl_serdes_rst_dual_c +) +; +input serdes_rst_dual_c ; +input rx_serdes_rst_c ; +input tx_serdes_rst_c ; +output rsl_rx_pcs_rst_c ; +input rx_pcs_rst_c ; +output rsl_tx_pcs_rst_c ; +input tx_pcs_rst_c ; +input rsl_disable ; +output rsl_tx_serdes_rst_c ; +input pll_lol ; +input pll_refclki ; +input rx_cdr_lol_s ; +input rx_los_low_s ; +input rsl_rst ; +input rxrefclk ; +output rsl_rx_serdes_rst_c ; +output rsl_serdes_rst_dual_c ; +wire serdes_rst_dual_c ; +wire rx_serdes_rst_c ; +wire tx_serdes_rst_c ; +wire rsl_rx_pcs_rst_c ; +wire rx_pcs_rst_c ; +wire rsl_tx_pcs_rst_c ; +wire tx_pcs_rst_c ; +wire rsl_disable ; +wire rsl_tx_serdes_rst_c ; +wire pll_lol ; +wire pll_refclki ; +wire rx_cdr_lol_s ; +wire rx_los_low_s ; +wire rsl_rst ; +wire rxrefclk ; +wire rsl_rx_serdes_rst_c ; +wire rsl_serdes_rst_dual_c ; +wire [2:0] plol0_cnt; +wire [2:0] plol0_cnt_3; +wire [1:0] rxs_cnt_3; +wire [1:0] rxs_cnt; +wire [1:0] rxs_cnt_QN; +wire [3:0] rlos_db_cnt; +wire [3:0] rlos_db_cnt_QN; +wire [17:0] rlols0_cnt_s; +wire [17:0] rlols0_cnt; +wire [17:0] rlols0_cnt_QN; +wire [3:0] rlol_db_cnt; +wire [3:0] rlol_db_cnt_QN; +wire [18:0] rlol1_cnt_s; +wire [18:0] rlol1_cnt; +wire [18:0] rlol1_cnt_QN; +wire [1:0] txs_cnt; +wire [1:0] txs_cnt_QN; +wire [1:1] txs_cnt_RNO; +wire [1:0] txp_cnt; +wire [1:0] txp_cnt_QN; +wire [1:1] txp_cnt_RNO; +wire [19:0] plol_cnt_s; +wire [19:0] plol_cnt; +wire [19:0] plol_cnt_QN; +wire [2:0] plol0_cnt_QN; +wire [0:0] un1_rlol_db_cnt_zero; +wire [0:0] un1_rlos_db_cnt_zero; +wire [0:0] un1_rlol_db_cnt_zero_bm; +wire [0:0] un1_rlol_db_cnt_zero_am; +wire [0:0] un1_rlos_db_cnt_zero_bm; +wire [0:0] un1_rlos_db_cnt_zero_am; +wire [16:0] rlol1_cnt_cry; +wire [0:0] rlol1_cnt_cry_0_S0; +wire [17:17] rlol1_cnt_cry_0_COUT; +wire [16:0] rlols0_cnt_cry; +wire [0:0] rlols0_cnt_cry_0_S0; +wire [17:17] rlols0_cnt_s_0_COUT; +wire [17:17] rlols0_cnt_s_0_S1; +wire [18:0] plol_cnt_cry; +wire [0:0] plol_cnt_cry_0_S0; +wire [19:19] plol_cnt_s_0_COUT; +wire [19:19] plol_cnt_s_0_S1; +wire rlos_db_p1 ; +wire rlos_db ; +wire rxp_rst25 ; +wire plol0_cnt9 ; +wire waita_plol0 ; +wire rlol1_cnt_tc_1 ; +wire rxs_rst ; +wire rlol1_cnt_scalar ; +wire waita_rlols06 ; +wire un1_rlols0_cnt_tc ; +wire waita_rlols0 ; +wire waita_rlols0_QN ; +wire VCC ; +wire wait_calib_RNO ; +wire un1_rlos_fedge_1 ; +wire wait_calib ; +wire wait_calib_QN ; +wire rxs_rst6 ; +wire un1_rxs_cnt_tc ; +wire rxs_rst_QN ; +wire un2_rlos_redge_1_i ; +wire rxp_rst2 ; +wire rxp_rst2_QN ; +wire rlos_p1 ; +wire rlos_p2 ; +wire rlos_p2_QN ; +wire rlos_p1_QN ; +wire rlos_db_p1_QN ; +wire rlos_db_cnt_axb_0 ; +wire rlos_db_cnt_cry_1_0_S0 ; +wire rlos_db_cnt_cry_1_0_S1 ; +wire rlos_db_cnt_s_3_0_S0 ; +wire un1_rlos_db_cnt_max ; +wire rlos_db_QN ; +wire rlols0_cnte ; +wire rlol_p1 ; +wire rlol_p2 ; +wire rlol_p2_QN ; +wire rlol_p1_QN ; +wire rlol_db ; +wire rlol_db_p1 ; +wire rlol_db_p1_QN ; +wire rlol_db_cnt_axb_0 ; +wire rlol_db_cnt_cry_1_0_S0 ; +wire rlol_db_cnt_cry_1_0_S1 ; +wire rlol_db_cnt_s_3_0_S0 ; +wire un1_rlol_db_cnt_max ; +wire rlol_db_QN ; +wire rlol1_cnte ; +wire plol_fedge ; +wire un1_plol0_cnt_tc_1_i ; +wire waita_plol0_QN ; +wire un1_plol_cnt_tc ; +wire un2_plol_cnt_tc ; +wire txs_rst ; +wire txs_rst_QN ; +wire N_12_i ; +wire un9_plol0_cnt_tc ; +wire un1_plol0_cnt_tc_1 ; +wire txp_rst ; +wire txp_rst_QN ; +wire N_13_i ; +wire pll_lol_p2 ; +wire pll_lol_p3 ; +wire pll_lol_p3_QN ; +wire pll_lol_p1 ; +wire pll_lol_p2_QN ; +wire pll_lol_p1_QN ; +wire rlols0_cnt_tc_1 ; +wire rlos_redge ; +wire rlols0_cnt11_0 ; +wire plol_cnt_scalar ; +wire rlols0_cnt_scalar ; +wire un8_rxs_cnt_tc ; +wire un1_plol_cnt_tc_11 ; +wire un1_plol_cnt_tc_12 ; +wire un1_plol_cnt_tc_13 ; +wire un1_plol_cnt_tc_14 ; +wire rlols0_cnt_tc_1_10 ; +wire rlols0_cnt_tc_1_11 ; +wire rlols0_cnt_tc_1_12 ; +wire rlols0_cnt_tc_1_13 ; +wire rlol1_cnt_tc_1_11 ; +wire rlol1_cnt_tc_1_12 ; +wire rlol1_cnt_tc_1_13 ; +wire rlol1_cnt_tc_1_14 ; +wire CO0_2 ; +wire rlols0_cnt_tc_1_9 ; +wire un1_plol_cnt_tc_10 ; +wire rlol1_cnt_tc_1_10 ; +wire rlos_db_cnt_cry_0 ; +wire rlos_db_cnt_cry_0_0_S0 ; +wire rlos_db_cnt_cry_0_0_S1 ; +wire rlos_db_cnt_cry_2 ; +wire rlos_db_cnt_s_3_0_COUT ; +wire rlos_db_cnt_s_3_0_S1 ; +wire rlol_db_cnt_cry_0 ; +wire rlol_db_cnt_cry_0_0_S0 ; +wire rlol_db_cnt_cry_0_0_S1 ; +wire rlol_db_cnt_cry_2 ; +wire rlol_db_cnt_s_3_0_COUT ; +wire rlol_db_cnt_s_3_0_S1 ; +wire GND ; +wire N_1 ; +wire N_2 ; +wire N_3 ; +wire N_4 ; +wire N_5 ; + LUT4 \genblk2.rxp_rst2_RNO ( + .A(rsl_serdes_rst_dual_c), + .B(rsl_rx_serdes_rst_c), + .C(rlos_db_p1), + .D(rlos_db), + .Z(rxp_rst25) +); +defparam \genblk2.rxp_rst2_RNO .init=16'hEFEE; + LUT4 \genblk1.plol0_cnt_RNO[1] ( + .A(plol0_cnt[1]), + .B(plol0_cnt9), + .C(waita_plol0), + .D(plol0_cnt[0]), + .Z(plol0_cnt_3[1]) +); +defparam \genblk1.plol0_cnt_RNO[1] .init=16'h1222; + LUT4 \genblk2.rxs_rst_RNIS0OP ( + .A(rlol1_cnt_tc_1), + .B(rxs_rst), + .C(rlos_db_p1), + .D(rlos_db), + .Z(rlol1_cnt_scalar) +); +defparam \genblk2.rxs_rst_RNIS0OP .init=16'h1011; +// @16:759 + FD1P3DX \genblk2.waita_rlols0 ( + .D(waita_rlols06), + .SP(un1_rlols0_cnt_tc), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(waita_rlols0) +); +// @16:656 + FD1P3BX \genblk2.wait_calib ( + .D(wait_calib_RNO), + .SP(un1_rlos_fedge_1), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(wait_calib) +); +// @16:694 + FD1P3DX \genblk2.rxs_rst ( + .D(rxs_rst6), + .SP(un1_rxs_cnt_tc), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxs_rst) +); +// @16:694 + FD1S3DX \genblk2.rxs_cnt[0] ( + .D(rxs_cnt_3[0]), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxs_cnt[0]) +); +// @16:694 + FD1S3DX \genblk2.rxs_cnt[1] ( + .D(rxs_cnt_3[1]), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxs_cnt[1]) +); +// @16:806 + FD1P3BX \genblk2.rxp_rst2 ( + .D(rxp_rst25), + .SP(un2_rlos_redge_1_i), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rxp_rst2) +); +// @16:567 + FD1S3DX \genblk2.rlos_p2 ( + .D(rlos_p1), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlos_p2) +); +// @16:567 + FD1S3DX \genblk2.rlos_p1 ( + .D(rx_los_low_s), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlos_p1) +); +// @16:567 + FD1S3BX \genblk2.rlos_db_p1 ( + .D(rlos_db), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlos_db_p1) +); +// @16:640 + FD1S3BX \genblk2.rlos_db_cnt[0] ( + .D(rlos_db_cnt_axb_0), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlos_db_cnt[0]) +); +// @16:640 + FD1S3BX \genblk2.rlos_db_cnt[1] ( + .D(rlos_db_cnt_cry_1_0_S0), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlos_db_cnt[1]) +); +// @16:640 + FD1S3BX \genblk2.rlos_db_cnt[2] ( + .D(rlos_db_cnt_cry_1_0_S1), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlos_db_cnt[2]) +); +// @16:640 + FD1S3BX \genblk2.rlos_db_cnt[3] ( + .D(rlos_db_cnt_s_3_0_S0), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlos_db_cnt[3]) +); +// @16:649 + FD1P3BX \genblk2.rlos_db ( + .D(rlos_db_cnt[3]), + .SP(un1_rlos_db_cnt_max), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlos_db) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[0] ( + .D(rlols0_cnt_s[0]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[0]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[1] ( + .D(rlols0_cnt_s[1]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[1]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[2] ( + .D(rlols0_cnt_s[2]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[2]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[3] ( + .D(rlols0_cnt_s[3]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[3]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[4] ( + .D(rlols0_cnt_s[4]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[4]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[5] ( + .D(rlols0_cnt_s[5]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[5]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[6] ( + .D(rlols0_cnt_s[6]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[6]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[7] ( + .D(rlols0_cnt_s[7]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[7]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[8] ( + .D(rlols0_cnt_s[8]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[8]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[9] ( + .D(rlols0_cnt_s[9]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[9]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[10] ( + .D(rlols0_cnt_s[10]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[10]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[11] ( + .D(rlols0_cnt_s[11]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[11]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[12] ( + .D(rlols0_cnt_s[12]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[12]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[13] ( + .D(rlols0_cnt_s[13]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[13]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[14] ( + .D(rlols0_cnt_s[14]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[14]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[15] ( + .D(rlols0_cnt_s[15]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[15]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[16] ( + .D(rlols0_cnt_s[16]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[16]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[17] ( + .D(rlols0_cnt_s[17]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[17]) +); +// @16:567 + FD1S3DX \genblk2.rlol_p2 ( + .D(rlol_p1), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol_p2) +); +// @16:567 + FD1S3DX \genblk2.rlol_p1 ( + .D(rx_cdr_lol_s), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol_p1) +); +// @16:567 + FD1S3BX \genblk2.rlol_db_p1 ( + .D(rlol_db), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlol_db_p1) +); +// @16:624 + FD1S3BX \genblk2.rlol_db_cnt[0] ( + .D(rlol_db_cnt_axb_0), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlol_db_cnt[0]) +); +// @16:624 + FD1S3BX \genblk2.rlol_db_cnt[1] ( + .D(rlol_db_cnt_cry_1_0_S0), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlol_db_cnt[1]) +); +// @16:624 + FD1S3BX \genblk2.rlol_db_cnt[2] ( + .D(rlol_db_cnt_cry_1_0_S1), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlol_db_cnt[2]) +); +// @16:624 + FD1S3BX \genblk2.rlol_db_cnt[3] ( + .D(rlol_db_cnt_s_3_0_S0), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlol_db_cnt[3]) +); +// @16:633 + FD1P3BX \genblk2.rlol_db ( + .D(rlol_db_cnt[3]), + .SP(un1_rlol_db_cnt_max), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlol_db) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[0] ( + .D(rlol1_cnt_s[0]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[0]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[1] ( + .D(rlol1_cnt_s[1]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[1]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[2] ( + .D(rlol1_cnt_s[2]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[2]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[3] ( + .D(rlol1_cnt_s[3]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[3]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[4] ( + .D(rlol1_cnt_s[4]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[4]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[5] ( + .D(rlol1_cnt_s[5]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[5]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[6] ( + .D(rlol1_cnt_s[6]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[6]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[7] ( + .D(rlol1_cnt_s[7]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[7]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[8] ( + .D(rlol1_cnt_s[8]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[8]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[9] ( + .D(rlol1_cnt_s[9]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[9]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[10] ( + .D(rlol1_cnt_s[10]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[10]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[11] ( + .D(rlol1_cnt_s[11]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[11]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[12] ( + .D(rlol1_cnt_s[12]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[12]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[13] ( + .D(rlol1_cnt_s[13]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[13]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[14] ( + .D(rlol1_cnt_s[14]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[14]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[15] ( + .D(rlol1_cnt_s[15]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[15]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[16] ( + .D(rlol1_cnt_s[16]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[16]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[17] ( + .D(rlol1_cnt_s[17]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[17]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[18] ( + .D(rlol1_cnt_s[18]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[18]) +); +// @16:443 + FD1P3DX \genblk1.waita_plol0 ( + .D(plol_fedge), + .SP(un1_plol0_cnt_tc_1_i), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(waita_plol0) +); +// @16:422 + FD1P3DX \genblk1.txs_rst ( + .D(un1_plol_cnt_tc), + .SP(un2_plol_cnt_tc), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txs_rst) +); +// @16:422 + FD1S3DX \genblk1.txs_cnt[0] ( + .D(N_12_i), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txs_cnt[0]) +); +// @16:422 + FD1S3DX \genblk1.txs_cnt[1] ( + .D(txs_cnt_RNO[1]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txs_cnt[1]) +); +// @16:461 + FD1P3DX \genblk1.txp_rst ( + .D(un9_plol0_cnt_tc), + .SP(un1_plol0_cnt_tc_1), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txp_rst) +); +// @16:461 + FD1S3DX \genblk1.txp_cnt[0] ( + .D(N_13_i), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txp_cnt[0]) +); +// @16:461 + FD1S3DX \genblk1.txp_cnt[1] ( + .D(txp_cnt_RNO[1]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txp_cnt[1]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[0] ( + .D(plol_cnt_s[0]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[0]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[1] ( + .D(plol_cnt_s[1]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[1]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[2] ( + .D(plol_cnt_s[2]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[2]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[3] ( + .D(plol_cnt_s[3]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[3]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[4] ( + .D(plol_cnt_s[4]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[4]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[5] ( + .D(plol_cnt_s[5]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[5]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[6] ( + .D(plol_cnt_s[6]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[6]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[7] ( + .D(plol_cnt_s[7]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[7]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[8] ( + .D(plol_cnt_s[8]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[8]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[9] ( + .D(plol_cnt_s[9]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[9]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[10] ( + .D(plol_cnt_s[10]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[10]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[11] ( + .D(plol_cnt_s[11]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[11]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[12] ( + .D(plol_cnt_s[12]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[12]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[13] ( + .D(plol_cnt_s[13]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[13]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[14] ( + .D(plol_cnt_s[14]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[14]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[15] ( + .D(plol_cnt_s[15]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[15]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[16] ( + .D(plol_cnt_s[16]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[16]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[17] ( + .D(plol_cnt_s[17]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[17]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[18] ( + .D(plol_cnt_s[18]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[18]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[19] ( + .D(plol_cnt_s[19]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[19]) +); +// @16:451 + FD1S3DX \genblk1.plol0_cnt[0] ( + .D(plol0_cnt_3[0]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol0_cnt[0]) +); +// @16:451 + FD1S3DX \genblk1.plol0_cnt[1] ( + .D(plol0_cnt_3[1]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol0_cnt[1]) +); +// @16:451 + FD1S3DX \genblk1.plol0_cnt[2] ( + .D(plol0_cnt_3[2]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol0_cnt[2]) +); +// @16:398 + FD1S3DX \genblk1.pll_lol_p3 ( + .D(pll_lol_p2), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(pll_lol_p3) +); +// @16:398 + FD1S3DX \genblk1.pll_lol_p2 ( + .D(pll_lol_p1), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(pll_lol_p2) +); +// @16:398 + FD1S3DX \genblk1.pll_lol_p1 ( + .D(pll_lol), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(pll_lol_p1) +); +// @16:422 + LUT4 \genblk1.txs_cnt_RNO[0] ( + .A(txs_cnt[0]), + .B(txs_rst), + .C(un1_plol_cnt_tc), + .D(VCC), + .Z(N_12_i) +); +defparam \genblk1.txs_cnt_RNO[0] .init=16'hA6A6; +// @16:434 + LUT4 \genblk1.txs_cnt_RNO[1] ( + .A(txs_cnt[0]), + .B(txs_cnt[1]), + .C(txs_rst), + .D(un1_plol_cnt_tc), + .Z(txs_cnt_RNO[1]) +); +defparam \genblk1.txs_cnt_RNO[1] .init=16'hCC6C; +// @16:806 + LUT4 \genblk2.rxp_rst2_RNO_0 ( + .A(rlols0_cnt_tc_1), + .B(rlos_redge), + .C(rsl_rx_serdes_rst_c), + .D(rsl_serdes_rst_dual_c), + .Z(un2_rlos_redge_1_i) +); +defparam \genblk2.rxp_rst2_RNO_0 .init=16'hFFFE; +// @8:357 + LUT4 \genblk2.waita_rlols0_RNI266C ( + .A(rlols0_cnt11_0), + .B(waita_rlols0), + .C(rlols0_cnt_tc_1), + .D(VCC), + .Z(rlols0_cnte) +); +defparam \genblk2.waita_rlols0_RNI266C .init=16'hFEFE; +// @8:357 + LUT4 \genblk2.wait_calib_RNIKRP81 ( + .A(rxs_rst), + .B(wait_calib), + .C(rlol1_cnt_tc_1), + .D(rlos_redge), + .Z(rlol1_cnte) +); +defparam \genblk2.wait_calib_RNIKRP81 .init=16'hFFFE; +// @16:317 + LUT4 \genblk2.rxs_rst6 ( + .A(rlol_db), + .B(rlos_db), + .C(rlol1_cnt_tc_1), + .D(VCC), + .Z(rxs_rst6) +); +defparam \genblk2.rxs_rst6 .init=16'h2020; +// @16:412 + LUT4 \genblk1.plol_cnt11_i ( + .A(pll_lol_p2), + .B(un1_plol_cnt_tc), + .C(rsl_tx_serdes_rst_c), + .D(VCC), + .Z(plol_cnt_scalar) +); +defparam \genblk1.plol_cnt11_i .init=16'h0202; +// @16:778 + LUT4 \genblk2.rlols0_cnt11_i ( + .A(rlols0_cnt11_0), + .B(rlols0_cnt_tc_1), + .C(VCC), + .D(VCC), + .Z(rlols0_cnt_scalar) +); +defparam \genblk2.rlols0_cnt11_i .init=16'h1111; +// @16:317 + LUT4 \genblk2.un1_rxs_cnt_tc ( + .A(rlol_db), + .B(rlos_db), + .C(un8_rxs_cnt_tc), + .D(rlol1_cnt_tc_1), + .Z(un1_rxs_cnt_tc) +); +defparam \genblk2.un1_rxs_cnt_tc .init=16'hFEFC; +// @8:357 + LUT4 \genblk2.wait_calib_RNO ( + .A(rlol_db), + .B(rlos_db), + .C(rlol1_cnt_tc_1), + .D(VCC), + .Z(wait_calib_RNO) +); +defparam \genblk2.wait_calib_RNO .init=16'hA3A3; +// @16:259 + LUT4 \genblk1.un2_plol_cnt_tc ( + .A(txs_cnt[0]), + .B(txs_cnt[1]), + .C(un1_plol_cnt_tc), + .D(VCC), + .Z(un2_plol_cnt_tc) +); +defparam \genblk1.un2_plol_cnt_tc .init=16'hF8F8; +// @16:340 + LUT4 \genblk2.un1_rlols0_cnt_tc ( + .A(rlols0_cnt11_0), + .B(waita_rlols06), + .C(rlols0_cnt_tc_1), + .D(VCC), + .Z(un1_rlols0_cnt_tc) +); +defparam \genblk2.un1_rlols0_cnt_tc .init=16'hFEFE; +// @16:322 + LUT4 \genblk2.un1_rlos_fedge_1 ( + .A(rlos_db), + .B(rlos_db_p1), + .C(rlol1_cnt_tc_1), + .D(VCC), + .Z(un1_rlos_fedge_1) +); +defparam \genblk2.un1_rlos_fedge_1 .init=16'hF6F6; +// @16:461 + LUT4 \genblk1.txp_cnt_RNO[0] ( + .A(txp_cnt[0]), + .B(txp_rst), + .C(un9_plol0_cnt_tc), + .D(VCC), + .Z(N_13_i) +); +defparam \genblk1.txp_cnt_RNO[0] .init=16'hA6A6; +// @16:473 + LUT4 \genblk1.txp_cnt_RNO[1] ( + .A(txp_cnt[0]), + .B(txp_cnt[1]), + .C(txp_rst), + .D(un9_plol0_cnt_tc), + .Z(txp_cnt_RNO[1]) +); +defparam \genblk1.txp_cnt_RNO[1] .init=16'hCC6C; +// @16:386 + LUT4 \genblk1.un1_plol_cnt_tc ( + .A(un1_plol_cnt_tc_11), + .B(un1_plol_cnt_tc_12), + .C(un1_plol_cnt_tc_13), + .D(un1_plol_cnt_tc_14), + .Z(un1_plol_cnt_tc) +); +defparam \genblk1.un1_plol_cnt_tc .init=16'h8000; +// @16:388 + LUT4 rlols0_cnt_tc_1_cZ ( + .A(rlols0_cnt_tc_1_10), + .B(rlols0_cnt_tc_1_11), + .C(rlols0_cnt_tc_1_12), + .D(rlols0_cnt_tc_1_13), + .Z(rlols0_cnt_tc_1) +); +defparam rlols0_cnt_tc_1_cZ.init=16'h8000; +// @16:387 + LUT4 rlol1_cnt_tc_1_cZ ( + .A(rlol1_cnt_tc_1_11), + .B(rlol1_cnt_tc_1_12), + .C(rlol1_cnt_tc_1_13), + .D(rlol1_cnt_tc_1_14), + .Z(rlol1_cnt_tc_1) +); +defparam rlol1_cnt_tc_1_cZ.init=16'h8000; +// @16:625 + LUT4 \un1_genblk2.rlol_db_cnt_axb_0 ( + .A(rlol_db_cnt[0]), + .B(un1_rlol_db_cnt_zero[0]), + .C(VCC), + .D(VCC), + .Z(rlol_db_cnt_axb_0) +); +defparam \un1_genblk2.rlol_db_cnt_axb_0 .init=16'h9999; +// @16:641 + LUT4 \un1_genblk2.rlos_db_cnt_axb_0 ( + .A(rlos_db_cnt[0]), + .B(un1_rlos_db_cnt_zero[0]), + .C(VCC), + .D(VCC), + .Z(rlos_db_cnt_axb_0) +); +defparam \un1_genblk2.rlos_db_cnt_axb_0 .init=16'h9999; +// @16:443 + LUT4 \genblk1.waita_plol0_RNO ( + .A(pll_lol_p2), + .B(pll_lol_p3), + .C(un9_plol0_cnt_tc), + .D(VCC), + .Z(un1_plol0_cnt_tc_1_i) +); +defparam \genblk1.waita_plol0_RNO .init=16'hF6F6; +// @16:452 + LUT4 \genblk1.plol0_cnt_3[2] ( + .A(CO0_2), + .B(plol0_cnt9), + .C(plol0_cnt[1]), + .D(plol0_cnt[2]), + .Z(plol0_cnt_3[2]) +); +defparam \genblk1.plol0_cnt_3[2] .init=16'h1320; +// @16:452 + LUT4 \genblk1.plol0_cnt_3[0] ( + .A(plol0_cnt9), + .B(plol0_cnt[0]), + .C(waita_plol0), + .D(VCC), + .Z(plol0_cnt_3[0]) +); +defparam \genblk1.plol0_cnt_3[0] .init=16'h1414; +// @16:219 + LUT4 \un1_rlol_db_cnt_zero_bm_cZ[0] ( + .A(rlol_db_cnt[0]), + .B(rlol_db_cnt[1]), + .C(rlol_db_cnt[2]), + .D(rlol_db_cnt[3]), + .Z(un1_rlol_db_cnt_zero_bm[0]) +); +defparam \un1_rlol_db_cnt_zero_bm_cZ[0] .init=16'h8000; +// @16:219 + PFUMX \un1_rlol_db_cnt_zero_cZ[0] ( + .ALUT(un1_rlol_db_cnt_zero_bm[0]), + .BLUT(un1_rlol_db_cnt_zero_am[0]), + .C0(rlol_p2), + .Z(un1_rlol_db_cnt_zero[0]) +); +// @16:219 + LUT4 \un1_rlos_db_cnt_zero_bm_cZ[0] ( + .A(rlos_db_cnt[0]), + .B(rlos_db_cnt[1]), + .C(rlos_db_cnt[2]), + .D(rlos_db_cnt[3]), + .Z(un1_rlos_db_cnt_zero_bm[0]) +); +defparam \un1_rlos_db_cnt_zero_bm_cZ[0] .init=16'h8000; +// @16:219 + PFUMX \un1_rlos_db_cnt_zero_cZ[0] ( + .ALUT(un1_rlos_db_cnt_zero_bm[0]), + .BLUT(un1_rlos_db_cnt_zero_am[0]), + .C0(rlos_p2), + .Z(un1_rlos_db_cnt_zero[0]) +); +// @16:269 + LUT4 \genblk1.un1_plol0_cnt_tc_1 ( + .A(txp_cnt[0]), + .B(txp_cnt[1]), + .C(un9_plol0_cnt_tc), + .D(VCC), + .Z(un1_plol0_cnt_tc_1) +); +defparam \genblk1.un1_plol0_cnt_tc_1 .init=16'hF8F8; +// @16:708 + LUT4 \rxs_cnt_3_cZ[1] ( + .A(rxs_cnt[0]), + .B(rxs_cnt[1]), + .C(rxs_rst), + .D(VCC), + .Z(rxs_cnt_3[1]) +); +defparam \rxs_cnt_3_cZ[1] .init=16'h6464; +// @16:764 + LUT4 \genblk2.waita_rlols06 ( + .A(rlol_db), + .B(rlol_db_p1), + .C(rlos_db), + .D(rlos_db_p1), + .Z(waita_rlols06) +); +defparam \genblk2.waita_rlols06 .init=16'h0504; +// @16:309 + LUT4 \genblk2.un1_rlol_db_cnt_max ( + .A(rlol_db_cnt[0]), + .B(rlol_db_cnt[1]), + .C(rlol_db_cnt[2]), + .D(rlol_db_cnt[3]), + .Z(un1_rlol_db_cnt_max) +); +defparam \genblk2.un1_rlol_db_cnt_max .init=16'h8001; +// @16:315 + LUT4 \genblk2.un1_rlos_db_cnt_max ( + .A(rlos_db_cnt[0]), + .B(rlos_db_cnt[1]), + .C(rlos_db_cnt[2]), + .D(rlos_db_cnt[3]), + .Z(un1_rlos_db_cnt_max) +); +defparam \genblk2.un1_rlos_db_cnt_max .init=16'h8001; +// @16:388 + LUT4 rlols0_cnt_tc_1_13_cZ ( + .A(rlols0_cnt[12]), + .B(rlols0_cnt[13]), + .C(rlols0_cnt_tc_1_9), + .D(VCC), + .Z(rlols0_cnt_tc_1_13) +); +defparam rlols0_cnt_tc_1_13_cZ.init=16'h1010; +// @16:386 + LUT4 \genblk1.un1_plol_cnt_tc_14 ( + .A(plol_cnt[5]), + .B(plol_cnt[10]), + .C(plol_cnt[18]), + .D(un1_plol_cnt_tc_10), + .Z(un1_plol_cnt_tc_14) +); +defparam \genblk1.un1_plol_cnt_tc_14 .init=16'h0100; +// @16:387 + LUT4 rlol1_cnt_tc_1_14_cZ ( + .A(rlol1_cnt[12]), + .B(rlol1_cnt[13]), + .C(rlol1_cnt[18]), + .D(rlol1_cnt_tc_1_10), + .Z(rlol1_cnt_tc_1_14) +); +defparam rlol1_cnt_tc_1_14_cZ.init=16'h0100; +// @16:479 + LUT4 \rdo_tx_pcs_rst_c_1[0] ( + .A(rsl_disable), + .B(txp_rst), + .C(tx_pcs_rst_c), + .D(VCC), + .Z(rsl_tx_pcs_rst_c) +); +defparam \rdo_tx_pcs_rst_c_1[0] .init=16'hF4F4; +// @16:852 + LUT4 \rdo_rx_pcs_rst_c_1[0] ( + .A(rsl_disable), + .B(rxp_rst2), + .C(rx_pcs_rst_c), + .D(VCC), + .Z(rsl_rx_pcs_rst_c) +); +defparam \rdo_rx_pcs_rst_c_1[0] .init=16'hF4F4; +// @16:438 + LUT4 rdo_tx_serdes_rst_c ( + .A(rsl_disable), + .B(txs_rst), + .C(tx_serdes_rst_c), + .D(VCC), + .Z(rsl_tx_serdes_rst_c) +); +defparam rdo_tx_serdes_rst_c.init=16'hF4F4; +// @16:708 + LUT4 \rxs_cnt_3_cZ[0] ( + .A(rxs_cnt[0]), + .B(rxs_cnt[1]), + .C(rxs_rst), + .D(VCC), + .Z(rxs_cnt_3[0]) +); +defparam \rxs_cnt_3_cZ[0] .init=16'h5252; +// @16:743 + LUT4 \rdo_rx_serdes_rst_c_1[0] ( + .A(rsl_disable), + .B(rxs_rst), + .C(rx_serdes_rst_c), + .D(VCC), + .Z(rsl_rx_serdes_rst_c) +); +defparam \rdo_rx_serdes_rst_c_1[0] .init=16'hF4F4; +// @16:375 + LUT4 rdo_serdes_rst_dual_c ( + .A(rsl_disable), + .B(rsl_rst), + .C(serdes_rst_dual_c), + .D(VCC), + .Z(rsl_serdes_rst_dual_c) +); +defparam rdo_serdes_rst_dual_c.init=16'hF4F4; +// @16:459 + LUT4 \genblk1.un9_plol0_cnt_tc ( + .A(plol0_cnt[0]), + .B(plol0_cnt[1]), + .C(plol0_cnt[2]), + .D(VCC), + .Z(un9_plol0_cnt_tc) +); +defparam \genblk1.un9_plol0_cnt_tc .init=16'h1010; +// @16:388 + LUT4 rlols0_cnt_tc_1_9_cZ ( + .A(rlols0_cnt[10]), + .B(rlols0_cnt[14]), + .C(rlols0_cnt[16]), + .D(rlols0_cnt[17]), + .Z(rlols0_cnt_tc_1_9) +); +defparam rlols0_cnt_tc_1_9_cZ.init=16'h0008; +// @16:388 + LUT4 rlols0_cnt_tc_1_10_cZ ( + .A(rlols0_cnt[0]), + .B(rlols0_cnt[1]), + .C(rlols0_cnt[2]), + .D(rlols0_cnt[15]), + .Z(rlols0_cnt_tc_1_10) +); +defparam rlols0_cnt_tc_1_10_cZ.init=16'h0100; +// @16:388 + LUT4 rlols0_cnt_tc_1_11_cZ ( + .A(rlols0_cnt[3]), + .B(rlols0_cnt[4]), + .C(rlols0_cnt[5]), + .D(rlols0_cnt[6]), + .Z(rlols0_cnt_tc_1_11) +); +defparam rlols0_cnt_tc_1_11_cZ.init=16'h0001; +// @16:388 + LUT4 rlols0_cnt_tc_1_12_cZ ( + .A(rlols0_cnt[7]), + .B(rlols0_cnt[8]), + .C(rlols0_cnt[9]), + .D(rlols0_cnt[11]), + .Z(rlols0_cnt_tc_1_12) +); +defparam rlols0_cnt_tc_1_12_cZ.init=16'h0001; +// @16:386 + LUT4 \genblk1.un1_plol_cnt_tc_10 ( + .A(plol_cnt[1]), + .B(plol_cnt[6]), + .C(plol_cnt[7]), + .D(plol_cnt[12]), + .Z(un1_plol_cnt_tc_10) +); +defparam \genblk1.un1_plol_cnt_tc_10 .init=16'h0080; +// @16:386 + LUT4 \genblk1.un1_plol_cnt_tc_11 ( + .A(plol_cnt[8]), + .B(plol_cnt[9]), + .C(plol_cnt[11]), + .D(plol_cnt[13]), + .Z(un1_plol_cnt_tc_11) +); +defparam \genblk1.un1_plol_cnt_tc_11 .init=16'h8000; +// @16:386 + LUT4 \genblk1.un1_plol_cnt_tc_12 ( + .A(plol_cnt[14]), + .B(plol_cnt[15]), + .C(plol_cnt[16]), + .D(plol_cnt[17]), + .Z(un1_plol_cnt_tc_12) +); +defparam \genblk1.un1_plol_cnt_tc_12 .init=16'h8000; +// @16:386 + LUT4 \genblk1.un1_plol_cnt_tc_13 ( + .A(plol_cnt[2]), + .B(plol_cnt[3]), + .C(plol_cnt[4]), + .D(plol_cnt[19]), + .Z(un1_plol_cnt_tc_13) +); +defparam \genblk1.un1_plol_cnt_tc_13 .init=16'h0100; +// @16:387 + LUT4 rlol1_cnt_tc_1_10_cZ ( + .A(rlol1_cnt[14]), + .B(rlol1_cnt[15]), + .C(rlol1_cnt[16]), + .D(rlol1_cnt[17]), + .Z(rlol1_cnt_tc_1_10) +); +defparam rlol1_cnt_tc_1_10_cZ.init=16'h0800; +// @16:387 + LUT4 rlol1_cnt_tc_1_11_cZ ( + .A(rlol1_cnt[0]), + .B(rlol1_cnt[1]), + .C(rlol1_cnt[2]), + .D(rlol1_cnt[3]), + .Z(rlol1_cnt_tc_1_11) +); +defparam rlol1_cnt_tc_1_11_cZ.init=16'h0001; +// @16:387 + LUT4 rlol1_cnt_tc_1_12_cZ ( + .A(rlol1_cnt[4]), + .B(rlol1_cnt[5]), + .C(rlol1_cnt[6]), + .D(rlol1_cnt[7]), + .Z(rlol1_cnt_tc_1_12) +); +defparam rlol1_cnt_tc_1_12_cZ.init=16'h0001; +// @16:387 + LUT4 rlol1_cnt_tc_1_13_cZ ( + .A(rlol1_cnt[8]), + .B(rlol1_cnt[9]), + .C(rlol1_cnt[10]), + .D(rlol1_cnt[11]), + .Z(rlol1_cnt_tc_1_13) +); +defparam rlol1_cnt_tc_1_13_cZ.init=16'h0001; +// @16:457 + LUT4 \genblk1.plol0_cnt_3_RNO[2] ( + .A(plol0_cnt[0]), + .B(waita_plol0), + .C(VCC), + .D(VCC), + .Z(CO0_2) +); +defparam \genblk1.plol0_cnt_3_RNO[2] .init=16'h8888; +// @16:441 + LUT4 plol_fedge_cZ ( + .A(pll_lol_p2), + .B(pll_lol_p3), + .C(VCC), + .D(VCC), + .Z(plol_fedge) +); +defparam plol_fedge_cZ.init=16'h4444; +// @16:757 + LUT4 rlos_redge_cZ ( + .A(rlos_db), + .B(rlos_db_p1), + .C(VCC), + .D(VCC), + .Z(rlos_redge) +); +defparam rlos_redge_cZ.init=16'h2222; +// @16:436 + LUT4 \genblk2.un8_rxs_cnt_tc ( + .A(rxs_cnt[0]), + .B(rxs_cnt[1]), + .C(VCC), + .D(VCC), + .Z(un8_rxs_cnt_tc) +); +defparam \genblk2.un8_rxs_cnt_tc .init=16'h8888; +// @16:219 + LUT4 \un1_rlos_db_cnt_zero_am_cZ[0] ( + .A(rlos_db_cnt[0]), + .B(rlos_db_cnt[1]), + .C(rlos_db_cnt[2]), + .D(rlos_db_cnt[3]), + .Z(un1_rlos_db_cnt_zero_am[0]) +); +defparam \un1_rlos_db_cnt_zero_am_cZ[0] .init=16'h0001; +// @16:219 + LUT4 \un1_rlol_db_cnt_zero_am_cZ[0] ( + .A(rlol_db_cnt[0]), + .B(rlol_db_cnt[1]), + .C(rlol_db_cnt[2]), + .D(rlol_db_cnt[3]), + .Z(un1_rlol_db_cnt_zero_am[0]) +); +defparam \un1_rlol_db_cnt_zero_am_cZ[0] .init=16'h0001; +// @16:454 + LUT4 \genblk1.plol0_cnt9 ( + .A(pll_lol_p2), + .B(plol0_cnt[2]), + .C(plol0_cnt[1]), + .D(plol0_cnt[0]), + .Z(plol0_cnt9) +); +defparam \genblk1.plol0_cnt9 .init=16'hAAAE; +// @16:783 + LUT4 \genblk2.rlols0_cnt11_0 ( + .A(rlol_db_p1), + .B(rlol_db), + .C(rlos_db_p1), + .D(rlos_db), + .Z(rlols0_cnt11_0) +); +defparam \genblk2.rlols0_cnt11_0 .init=16'h4F44; + CCU2C \genblk2.rlol1_cnt_cry_0[0] ( + .A0(VCC), + .B0(rlol1_cnt_scalar), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_5), + .COUT(rlol1_cnt_cry[0]), + .S0(rlol1_cnt_cry_0_S0[0]), + .S1(rlol1_cnt_s[0]) +); +defparam \genblk2.rlol1_cnt_cry_0[0] .INIT0=16'h500c; +defparam \genblk2.rlol1_cnt_cry_0[0] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[0] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[0] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[1] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[1]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[2]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[0]), + .COUT(rlol1_cnt_cry[2]), + .S0(rlol1_cnt_s[1]), + .S1(rlol1_cnt_s[2]) +); +defparam \genblk2.rlol1_cnt_cry_0[1] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[1] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[1] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[1] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[3] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[3]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[4]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[2]), + .COUT(rlol1_cnt_cry[4]), + .S0(rlol1_cnt_s[3]), + .S1(rlol1_cnt_s[4]) +); +defparam \genblk2.rlol1_cnt_cry_0[3] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[3] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[3] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[3] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[5] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[5]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[6]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[4]), + .COUT(rlol1_cnt_cry[6]), + .S0(rlol1_cnt_s[5]), + .S1(rlol1_cnt_s[6]) +); +defparam \genblk2.rlol1_cnt_cry_0[5] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[5] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[5] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[5] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[7] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[7]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[8]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[6]), + .COUT(rlol1_cnt_cry[8]), + .S0(rlol1_cnt_s[7]), + .S1(rlol1_cnt_s[8]) +); +defparam \genblk2.rlol1_cnt_cry_0[7] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[7] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[7] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[7] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[9] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[9]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[10]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[8]), + .COUT(rlol1_cnt_cry[10]), + .S0(rlol1_cnt_s[9]), + .S1(rlol1_cnt_s[10]) +); +defparam \genblk2.rlol1_cnt_cry_0[9] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[9] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[9] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[9] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[11] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[11]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[12]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[10]), + .COUT(rlol1_cnt_cry[12]), + .S0(rlol1_cnt_s[11]), + .S1(rlol1_cnt_s[12]) +); +defparam \genblk2.rlol1_cnt_cry_0[11] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[11] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[11] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[11] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[13] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[13]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[14]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[12]), + .COUT(rlol1_cnt_cry[14]), + .S0(rlol1_cnt_s[13]), + .S1(rlol1_cnt_s[14]) +); +defparam \genblk2.rlol1_cnt_cry_0[13] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[13] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[13] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[13] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[15] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[15]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[16]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[14]), + .COUT(rlol1_cnt_cry[16]), + .S0(rlol1_cnt_s[15]), + .S1(rlol1_cnt_s[16]) +); +defparam \genblk2.rlol1_cnt_cry_0[15] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[15] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[15] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[15] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[17] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[17]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[18]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[16]), + .COUT(rlol1_cnt_cry_0_COUT[17]), + .S0(rlol1_cnt_s[17]), + .S1(rlol1_cnt_s[18]) +); +defparam \genblk2.rlol1_cnt_cry_0[17] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[17] .INIT1=16'h800a; +defparam \genblk2.rlol1_cnt_cry_0[17] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[17] .INJECT1_1="NO"; + CCU2C \genblk2.rlols0_cnt_cry_0[0] ( + .A0(VCC), + .B0(rlols0_cnt_scalar), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_4), + .COUT(rlols0_cnt_cry[0]), + .S0(rlols0_cnt_cry_0_S0[0]), + .S1(rlols0_cnt_s[0]) +); +defparam \genblk2.rlols0_cnt_cry_0[0] .INIT0=16'h500c; +defparam \genblk2.rlols0_cnt_cry_0[0] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[0] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[0] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_cry_0[1] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[1]), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[2]), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[0]), + .COUT(rlols0_cnt_cry[2]), + .S0(rlols0_cnt_s[1]), + .S1(rlols0_cnt_s[2]) +); +defparam \genblk2.rlols0_cnt_cry_0[1] .INIT0=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[1] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[1] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[1] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_cry_0[3] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[3]), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[4]), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[2]), + .COUT(rlols0_cnt_cry[4]), + .S0(rlols0_cnt_s[3]), + .S1(rlols0_cnt_s[4]) +); +defparam \genblk2.rlols0_cnt_cry_0[3] .INIT0=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[3] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[3] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[3] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_cry_0[5] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[5]), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[6]), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[4]), + .COUT(rlols0_cnt_cry[6]), + .S0(rlols0_cnt_s[5]), + .S1(rlols0_cnt_s[6]) +); +defparam \genblk2.rlols0_cnt_cry_0[5] .INIT0=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[5] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[5] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[5] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_cry_0[7] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[7]), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[8]), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[6]), + .COUT(rlols0_cnt_cry[8]), + .S0(rlols0_cnt_s[7]), + .S1(rlols0_cnt_s[8]) +); +defparam \genblk2.rlols0_cnt_cry_0[7] .INIT0=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[7] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[7] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[7] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_cry_0[9] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[9]), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[10]), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[8]), + .COUT(rlols0_cnt_cry[10]), + .S0(rlols0_cnt_s[9]), + .S1(rlols0_cnt_s[10]) +); +defparam \genblk2.rlols0_cnt_cry_0[9] .INIT0=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[9] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[9] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[9] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_cry_0[11] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[11]), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[12]), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[10]), + .COUT(rlols0_cnt_cry[12]), + .S0(rlols0_cnt_s[11]), + .S1(rlols0_cnt_s[12]) +); +defparam \genblk2.rlols0_cnt_cry_0[11] .INIT0=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[11] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[11] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[11] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_cry_0[13] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[13]), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[14]), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[12]), + .COUT(rlols0_cnt_cry[14]), + .S0(rlols0_cnt_s[13]), + .S1(rlols0_cnt_s[14]) +); +defparam \genblk2.rlols0_cnt_cry_0[13] .INIT0=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[13] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[13] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[13] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_cry_0[15] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[15]), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[16]), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[14]), + .COUT(rlols0_cnt_cry[16]), + .S0(rlols0_cnt_s[15]), + .S1(rlols0_cnt_s[16]) +); +defparam \genblk2.rlols0_cnt_cry_0[15] .INIT0=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[15] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[15] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[15] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_s_0[17] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[17]), + .C0(VCC), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[16]), + .COUT(rlols0_cnt_s_0_COUT[17]), + .S0(rlols0_cnt_s[17]), + .S1(rlols0_cnt_s_0_S1[17]) +); +defparam \genblk2.rlols0_cnt_s_0[17] .INIT0=16'h800a; +defparam \genblk2.rlols0_cnt_s_0[17] .INIT1=16'h5003; +defparam \genblk2.rlols0_cnt_s_0[17] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_s_0[17] .INJECT1_1="NO"; + CCU2C \genblk1.plol_cnt_cry_0[0] ( + .A0(VCC), + .B0(plol_cnt_scalar), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_3), + .COUT(plol_cnt_cry[0]), + .S0(plol_cnt_cry_0_S0[0]), + .S1(plol_cnt_s[0]) +); +defparam \genblk1.plol_cnt_cry_0[0] .INIT0=16'h500c; +defparam \genblk1.plol_cnt_cry_0[0] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[0] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[0] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[1] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[1]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[2]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[0]), + .COUT(plol_cnt_cry[2]), + .S0(plol_cnt_s[1]), + .S1(plol_cnt_s[2]) +); +defparam \genblk1.plol_cnt_cry_0[1] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[1] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[1] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[1] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[3] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[3]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[4]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[2]), + .COUT(plol_cnt_cry[4]), + .S0(plol_cnt_s[3]), + .S1(plol_cnt_s[4]) +); +defparam \genblk1.plol_cnt_cry_0[3] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[3] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[3] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[3] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[5] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[5]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[6]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[4]), + .COUT(plol_cnt_cry[6]), + .S0(plol_cnt_s[5]), + .S1(plol_cnt_s[6]) +); +defparam \genblk1.plol_cnt_cry_0[5] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[5] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[5] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[5] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[7] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[7]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[8]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[6]), + .COUT(plol_cnt_cry[8]), + .S0(plol_cnt_s[7]), + .S1(plol_cnt_s[8]) +); +defparam \genblk1.plol_cnt_cry_0[7] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[7] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[7] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[7] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[9] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[9]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[10]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[8]), + .COUT(plol_cnt_cry[10]), + .S0(plol_cnt_s[9]), + .S1(plol_cnt_s[10]) +); +defparam \genblk1.plol_cnt_cry_0[9] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[9] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[9] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[9] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[11] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[11]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[12]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[10]), + .COUT(plol_cnt_cry[12]), + .S0(plol_cnt_s[11]), + .S1(plol_cnt_s[12]) +); +defparam \genblk1.plol_cnt_cry_0[11] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[11] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[11] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[11] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[13] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[13]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[14]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[12]), + .COUT(plol_cnt_cry[14]), + .S0(plol_cnt_s[13]), + .S1(plol_cnt_s[14]) +); +defparam \genblk1.plol_cnt_cry_0[13] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[13] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[13] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[13] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[15] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[15]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[16]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[14]), + .COUT(plol_cnt_cry[16]), + .S0(plol_cnt_s[15]), + .S1(plol_cnt_s[16]) +); +defparam \genblk1.plol_cnt_cry_0[15] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[15] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[15] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[15] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[17] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[17]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[18]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[16]), + .COUT(plol_cnt_cry[18]), + .S0(plol_cnt_s[17]), + .S1(plol_cnt_s[18]) +); +defparam \genblk1.plol_cnt_cry_0[17] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[17] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[17] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[17] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_s_0[19] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[19]), + .C0(VCC), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[18]), + .COUT(plol_cnt_s_0_COUT[19]), + .S0(plol_cnt_s[19]), + .S1(plol_cnt_s_0_S1[19]) +); +defparam \genblk1.plol_cnt_s_0[19] .INIT0=16'h800a; +defparam \genblk1.plol_cnt_s_0[19] .INIT1=16'h5003; +defparam \genblk1.plol_cnt_s_0[19] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_s_0[19] .INJECT1_1="NO"; + CCU2C \un1_genblk2.rlos_db_cnt_cry_0_0 ( + .A0(VCC), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(rlos_db_cnt[0]), + .B1(un1_rlos_db_cnt_zero[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_2), + .COUT(rlos_db_cnt_cry_0), + .S0(rlos_db_cnt_cry_0_0_S0), + .S1(rlos_db_cnt_cry_0_0_S1) +); +defparam \un1_genblk2.rlos_db_cnt_cry_0_0 .INIT0=16'h5003; +defparam \un1_genblk2.rlos_db_cnt_cry_0_0 .INIT1=16'h900a; +defparam \un1_genblk2.rlos_db_cnt_cry_0_0 .INJECT1_0="NO"; +defparam \un1_genblk2.rlos_db_cnt_cry_0_0 .INJECT1_1="NO"; +// @16:641 + CCU2C \un1_genblk2.rlos_db_cnt_cry_1_0 ( + .A0(un1_rlos_db_cnt_zero[0]), + .B0(rlos_p2), + .C0(rlos_db_cnt[1]), + .D0(VCC), + .A1(un1_rlos_db_cnt_zero[0]), + .B1(rlos_p2), + .C1(rlos_db_cnt[2]), + .D1(VCC), + .CIN(rlos_db_cnt_cry_0), + .COUT(rlos_db_cnt_cry_2), + .S0(rlos_db_cnt_cry_1_0_S0), + .S1(rlos_db_cnt_cry_1_0_S1) +); +defparam \un1_genblk2.rlos_db_cnt_cry_1_0 .INIT0=16'he101; +defparam \un1_genblk2.rlos_db_cnt_cry_1_0 .INIT1=16'he101; +defparam \un1_genblk2.rlos_db_cnt_cry_1_0 .INJECT1_0="NO"; +defparam \un1_genblk2.rlos_db_cnt_cry_1_0 .INJECT1_1="NO"; +// @16:641 + CCU2C \un1_genblk2.rlos_db_cnt_s_3_0 ( + .A0(rlos_db_cnt[3]), + .B0(rlos_p2), + .C0(un1_rlos_db_cnt_zero[0]), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(rlos_db_cnt_cry_2), + .COUT(rlos_db_cnt_s_3_0_COUT), + .S0(rlos_db_cnt_s_3_0_S0), + .S1(rlos_db_cnt_s_3_0_S1) +); +defparam \un1_genblk2.rlos_db_cnt_s_3_0 .INIT0=16'ha90a; +defparam \un1_genblk2.rlos_db_cnt_s_3_0 .INIT1=16'h5003; +defparam \un1_genblk2.rlos_db_cnt_s_3_0 .INJECT1_0="NO"; +defparam \un1_genblk2.rlos_db_cnt_s_3_0 .INJECT1_1="NO"; + CCU2C \un1_genblk2.rlol_db_cnt_cry_0_0 ( + .A0(VCC), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(rlol_db_cnt[0]), + .B1(un1_rlol_db_cnt_zero[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_1), + .COUT(rlol_db_cnt_cry_0), + .S0(rlol_db_cnt_cry_0_0_S0), + .S1(rlol_db_cnt_cry_0_0_S1) +); +defparam \un1_genblk2.rlol_db_cnt_cry_0_0 .INIT0=16'h5003; +defparam \un1_genblk2.rlol_db_cnt_cry_0_0 .INIT1=16'h900a; +defparam \un1_genblk2.rlol_db_cnt_cry_0_0 .INJECT1_0="NO"; +defparam \un1_genblk2.rlol_db_cnt_cry_0_0 .INJECT1_1="NO"; +// @16:625 + CCU2C \un1_genblk2.rlol_db_cnt_cry_1_0 ( + .A0(un1_rlol_db_cnt_zero[0]), + .B0(rlol_p2), + .C0(rlol_db_cnt[1]), + .D0(VCC), + .A1(un1_rlol_db_cnt_zero[0]), + .B1(rlol_p2), + .C1(rlol_db_cnt[2]), + .D1(VCC), + .CIN(rlol_db_cnt_cry_0), + .COUT(rlol_db_cnt_cry_2), + .S0(rlol_db_cnt_cry_1_0_S0), + .S1(rlol_db_cnt_cry_1_0_S1) +); +defparam \un1_genblk2.rlol_db_cnt_cry_1_0 .INIT0=16'he101; +defparam \un1_genblk2.rlol_db_cnt_cry_1_0 .INIT1=16'he101; +defparam \un1_genblk2.rlol_db_cnt_cry_1_0 .INJECT1_0="NO"; +defparam \un1_genblk2.rlol_db_cnt_cry_1_0 .INJECT1_1="NO"; +// @16:625 + CCU2C \un1_genblk2.rlol_db_cnt_s_3_0 ( + .A0(rlol_db_cnt[3]), + .B0(rlol_p2), + .C0(un1_rlol_db_cnt_zero[0]), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(rlol_db_cnt_cry_2), + .COUT(rlol_db_cnt_s_3_0_COUT), + .S0(rlol_db_cnt_s_3_0_S0), + .S1(rlol_db_cnt_s_3_0_S1) +); +defparam \un1_genblk2.rlol_db_cnt_s_3_0 .INIT0=16'ha90a; +defparam \un1_genblk2.rlol_db_cnt_s_3_0 .INIT1=16'h5003; +defparam \un1_genblk2.rlol_db_cnt_s_3_0 .INJECT1_0="NO"; +defparam \un1_genblk2.rlol_db_cnt_s_3_0 .INJECT1_1="NO"; + VHI VCC_0 ( + .Z(VCC) +); + VLO GND_cZ ( + .Z(GND) +); +endmodule /* PCSDrsl_core_Z1_layer1 */ + +module PCSD ( + hdoutp, + hdoutn, + hdinp, + hdinn, + rxrefclk, + tx_pclk, + txi_clk, + txdata, + tx_k, + xmit, + tx_disp_correct, + rxdata, + rx_k, + rx_disp_err, + rx_cv_err, + signal_detect_c, + rx_los_low_s, + lsm_status_s, + ctc_urun_s, + ctc_orun_s, + rx_cdr_lol_s, + ctc_ins_s, + ctc_del_s, + tx_pwrup_c, + rx_pwrup_c, + serdes_pdb, + pll_refclki, + rsl_disable, + rsl_rst, + serdes_rst_dual_c, + rst_dual_c, + tx_serdes_rst_c, + tx_pcs_rst_c, + pll_lol, + rx_serdes_rst_c, + rx_pcs_rst_c +) +; +output hdoutp ; +output hdoutn ; +input hdinp ; +input hdinn ; +input rxrefclk ; +output tx_pclk ; +input txi_clk ; +input [7:0] txdata ; +input [0:0] tx_k ; +input [0:0] xmit ; +input [0:0] tx_disp_correct ; +output [7:0] rxdata ; +output [0:0] rx_k ; +output [0:0] rx_disp_err ; +output [0:0] rx_cv_err ; +input signal_detect_c ; +output rx_los_low_s ; +output lsm_status_s ; +output ctc_urun_s ; +output ctc_orun_s ; +output rx_cdr_lol_s ; +output ctc_ins_s ; +output ctc_del_s ; +input tx_pwrup_c ; +input rx_pwrup_c ; +input serdes_pdb ; +input pll_refclki ; +input rsl_disable ; +input rsl_rst ; +input serdes_rst_dual_c ; +input rst_dual_c ; +input tx_serdes_rst_c ; +input tx_pcs_rst_c ; +input pll_lol ; +input rx_serdes_rst_c ; +input rx_pcs_rst_c ; +wire hdoutp ; +wire hdoutn ; +wire hdinp ; +wire hdinn ; +wire rxrefclk ; +wire tx_pclk ; +wire txi_clk ; +wire signal_detect_c ; +wire rx_los_low_s ; +wire lsm_status_s ; +wire ctc_urun_s ; +wire ctc_orun_s ; +wire rx_cdr_lol_s ; +wire ctc_ins_s ; +wire ctc_del_s ; +wire tx_pwrup_c ; +wire rx_pwrup_c ; +wire serdes_pdb ; +wire pll_refclki ; +wire rsl_disable ; +wire rsl_rst ; +wire serdes_rst_dual_c ; +wire rst_dual_c ; +wire tx_serdes_rst_c ; +wire tx_pcs_rst_c ; +wire pll_lol ; +wire rx_serdes_rst_c ; +wire rx_pcs_rst_c ; +wire rsl_tx_pcs_rst_c ; +wire rsl_rx_pcs_rst_c ; +wire rsl_rx_serdes_rst_c ; +wire rsl_serdes_rst_dual_c ; +wire rsl_tx_serdes_rst_c ; +wire n47_1 ; +wire n48_1 ; +wire n1_1 ; +wire n2_1 ; +wire n3_1 ; +wire n4_1 ; +wire n5_1 ; +wire n49_1 ; +wire n6_1 ; +wire n50_1 ; +wire n7_1 ; +wire n51_1 ; +wire n8_1 ; +wire n52_1 ; +wire n9_1 ; +wire n53_1 ; +wire n54_1 ; +wire n55_1 ; +wire n56_1 ; +wire n57_1 ; +wire n58_1 ; +wire n59_1 ; +wire n60_1 ; +wire n61_1 ; +wire n62_1 ; +wire n63_1 ; +wire n64_1 ; +wire n65_1 ; +wire n10_1 ; +wire n66_1 ; +wire n67_1 ; +wire n68_1 ; +wire n69_1 ; +wire n70_1 ; +wire n71_1 ; +wire n72_1 ; +wire n73_1 ; +wire n74_1 ; +wire n75_1 ; +wire n76_1 ; +wire n77_1 ; +wire n78_1 ; +wire n79_1 ; +wire n80_1 ; +wire n81_1 ; +wire n82_1 ; +wire n83_1 ; +wire n84_1 ; +wire n85_1 ; +wire n86_1 ; +wire n87_1 ; +wire n88_1 ; +wire n11_1 ; +wire n89_1 ; +wire n12_1 ; +wire n90_1 ; +wire n13_1 ; +wire n91_1 ; +wire n92_1 ; +wire n93_1 ; +wire n94_1 ; +wire n95_1 ; +wire n14_1 ; +wire n96_1 ; +wire n15_1 ; +wire n97_1 ; +wire n98_1 ; +wire n99_1 ; +wire n100_1 ; +wire n101_1 ; +wire n102_1 ; +wire n103_1 ; +wire n104_1 ; +wire n105_1 ; +wire n106_1 ; +wire n107_1 ; +wire n108_1 ; +wire n109_1 ; +wire n110_1 ; +wire n121_1 ; +wire n16_1 ; +wire n17_1 ; +wire n18_1 ; +wire n19_1 ; +wire n20_1 ; +wire n21_1 ; +wire n22_1 ; +wire n23_1 ; +wire n24_1 ; +wire n25_1 ; +wire n26_1 ; +wire n27_1 ; +wire n28_1 ; +wire n29_1 ; +wire n30_1 ; +wire n31_1 ; +wire n32_1 ; +wire n33_1 ; +wire n34_1 ; +wire n35_1 ; +wire n36_1 ; +wire n37_1 ; +wire n38_1 ; +wire n39_1 ; +wire n40_1 ; +wire n41_1 ; +wire n42_1 ; +wire n43_1 ; +wire n46_1 ; +wire GND ; +wire VCC ; + VLO GND_0 ( + .Z(GND) +); + VHI VCC_0 ( + .Z(VCC) +); + PUR PUR_INST ( + .PUR(VCC) +); + GSR GSR_INST ( + .GSR(VCC) +); +// @8:118 +(* CHAN="CH0" *) DCUA DCU0_inst ( + .CH0_HDINP(hdinp), + .CH1_HDINP(GND), + .CH0_HDINN(hdinn), + .CH1_HDINN(GND), + .D_TXBIT_CLKP_FROM_ND(GND), + .D_TXBIT_CLKN_FROM_ND(GND), + .D_SYNC_ND(GND), + .D_TXPLL_LOL_FROM_ND(GND), + .CH0_RX_REFCLK(rxrefclk), + .CH1_RX_REFCLK(GND), + .CH0_FF_RXI_CLK(tx_pclk), + .CH1_FF_RXI_CLK(VCC), + .CH0_FF_TXI_CLK(txi_clk), + .CH1_FF_TXI_CLK(VCC), + .CH0_FF_EBRD_CLK(tx_pclk), + .CH1_FF_EBRD_CLK(VCC), + .CH0_FF_TX_D_0(txdata[0]), + .CH1_FF_TX_D_0(GND), + .CH0_FF_TX_D_1(txdata[1]), + .CH1_FF_TX_D_1(GND), + .CH0_FF_TX_D_2(txdata[2]), + .CH1_FF_TX_D_2(GND), + .CH0_FF_TX_D_3(txdata[3]), + .CH1_FF_TX_D_3(GND), + .CH0_FF_TX_D_4(txdata[4]), + .CH1_FF_TX_D_4(GND), + .CH0_FF_TX_D_5(txdata[5]), + .CH1_FF_TX_D_5(GND), + .CH0_FF_TX_D_6(txdata[6]), + .CH1_FF_TX_D_6(GND), + .CH0_FF_TX_D_7(txdata[7]), + .CH1_FF_TX_D_7(GND), + .CH0_FF_TX_D_8(tx_k[0]), + .CH1_FF_TX_D_8(GND), + .CH0_FF_TX_D_9(GND), + .CH1_FF_TX_D_9(GND), + .CH0_FF_TX_D_10(xmit[0]), + .CH1_FF_TX_D_10(GND), + .CH0_FF_TX_D_11(tx_disp_correct[0]), + .CH1_FF_TX_D_11(GND), + .CH0_FF_TX_D_12(GND), + .CH1_FF_TX_D_12(GND), + .CH0_FF_TX_D_13(GND), + .CH1_FF_TX_D_13(GND), + .CH0_FF_TX_D_14(GND), + .CH1_FF_TX_D_14(GND), + .CH0_FF_TX_D_15(GND), + .CH1_FF_TX_D_15(GND), + .CH0_FF_TX_D_16(GND), + .CH1_FF_TX_D_16(GND), + .CH0_FF_TX_D_17(GND), + .CH1_FF_TX_D_17(GND), + .CH0_FF_TX_D_18(GND), + .CH1_FF_TX_D_18(GND), + .CH0_FF_TX_D_19(GND), + .CH1_FF_TX_D_19(GND), + .CH0_FF_TX_D_20(GND), + .CH1_FF_TX_D_20(GND), + .CH0_FF_TX_D_21(GND), + .CH1_FF_TX_D_21(GND), + .CH0_FF_TX_D_22(GND), + .CH1_FF_TX_D_22(GND), + .CH0_FF_TX_D_23(GND), + .CH1_FF_TX_D_23(GND), + .CH0_FFC_EI_EN(GND), + .CH1_FFC_EI_EN(GND), + .CH0_FFC_PCIE_DET_EN(GND), + .CH1_FFC_PCIE_DET_EN(GND), + .CH0_FFC_PCIE_CT(GND), + .CH1_FFC_PCIE_CT(GND), + .CH0_FFC_SB_INV_RX(GND), + .CH1_FFC_SB_INV_RX(GND), + .CH0_FFC_ENABLE_CGALIGN(GND), + .CH1_FFC_ENABLE_CGALIGN(GND), + .CH0_FFC_SIGNAL_DETECT(signal_detect_c), + .CH1_FFC_SIGNAL_DETECT(GND), + .CH0_FFC_FB_LOOPBACK(GND), + .CH1_FFC_FB_LOOPBACK(GND), + .CH0_FFC_SB_PFIFO_LP(GND), + .CH1_FFC_SB_PFIFO_LP(GND), + .CH0_FFC_PFIFO_CLR(GND), + .CH1_FFC_PFIFO_CLR(GND), + .CH0_FFC_RATE_MODE_RX(GND), + .CH1_FFC_RATE_MODE_RX(GND), + .CH0_FFC_RATE_MODE_TX(GND), + .CH1_FFC_RATE_MODE_TX(GND), + .CH0_FFC_DIV11_MODE_RX(GND), + .CH1_FFC_DIV11_MODE_RX(GND), + .CH0_FFC_RX_GEAR_MODE(GND), + .CH1_FFC_RX_GEAR_MODE(GND), + .CH0_FFC_TX_GEAR_MODE(GND), + .CH1_FFC_TX_GEAR_MODE(GND), + .CH0_FFC_DIV11_MODE_TX(GND), + .CH1_FFC_DIV11_MODE_TX(GND), + .CH0_FFC_LDR_CORE2TX_EN(GND), + .CH1_FFC_LDR_CORE2TX_EN(GND), + .CH0_FFC_LANE_TX_RST(rsl_tx_pcs_rst_c), + .CH1_FFC_LANE_TX_RST(GND), + .CH0_FFC_LANE_RX_RST(rsl_rx_pcs_rst_c), + .CH1_FFC_LANE_RX_RST(GND), + .CH0_FFC_RRST(rsl_rx_serdes_rst_c), + .CH1_FFC_RRST(GND), + .CH0_FFC_TXPWDNB(tx_pwrup_c), + .CH1_FFC_TXPWDNB(GND), + .CH0_FFC_RXPWDNB(rx_pwrup_c), + .CH1_FFC_RXPWDNB(GND), + .CH0_LDR_CORE2TX(GND), + .CH1_LDR_CORE2TX(GND), + .D_SCIWDATA0(GND), + .D_SCIWDATA1(GND), + .D_SCIWDATA2(GND), + .D_SCIWDATA3(GND), + .D_SCIWDATA4(GND), + .D_SCIWDATA5(GND), + .D_SCIWDATA6(GND), + .D_SCIWDATA7(GND), + .D_SCIADDR0(GND), + .D_SCIADDR1(GND), + .D_SCIADDR2(GND), + .D_SCIADDR3(GND), + .D_SCIADDR4(GND), + .D_SCIADDR5(GND), + .D_SCIENAUX(GND), + .D_SCISELAUX(GND), + .CH0_SCIEN(GND), + .CH1_SCIEN(GND), + .CH0_SCISEL(GND), + .CH1_SCISEL(GND), + .D_SCIRD(GND), + .D_SCIWSTN(GND), + .D_CYAWSTN(GND), + .D_FFC_SYNC_TOGGLE(GND), + .D_FFC_DUAL_RST(rst_dual_c), + .D_FFC_MACRO_RST(rsl_serdes_rst_dual_c), + .D_FFC_MACROPDB(serdes_pdb), + .D_FFC_TRST(rsl_tx_serdes_rst_c), + .CH0_FFC_CDR_EN_BITSLIP(GND), + .CH1_FFC_CDR_EN_BITSLIP(GND), + .D_SCAN_ENABLE(GND), + .D_SCAN_IN_0(GND), + .D_SCAN_IN_1(GND), + .D_SCAN_IN_2(GND), + .D_SCAN_IN_3(GND), + .D_SCAN_IN_4(GND), + .D_SCAN_IN_5(GND), + .D_SCAN_IN_6(GND), + .D_SCAN_IN_7(GND), + .D_SCAN_MODE(GND), + .D_SCAN_RESET(GND), + .D_CIN0(GND), + .D_CIN1(GND), + .D_CIN2(GND), + .D_CIN3(GND), + .D_CIN4(GND), + .D_CIN5(GND), + .D_CIN6(GND), + .D_CIN7(GND), + .D_CIN8(GND), + .D_CIN9(GND), + .D_CIN10(GND), + .D_CIN11(GND), + .CH0_HDOUTP(hdoutp), + .CH1_HDOUTP(n47_1), + .CH0_HDOUTN(hdoutn), + .CH1_HDOUTN(n48_1), + .D_TXBIT_CLKP_TO_ND(n1_1), + .D_TXBIT_CLKN_TO_ND(n2_1), + .D_SYNC_PULSE2ND(n3_1), + .D_TXPLL_LOL_TO_ND(n4_1), + .CH0_FF_RX_F_CLK(n5_1), + .CH1_FF_RX_F_CLK(n49_1), + .CH0_FF_RX_H_CLK(n6_1), + .CH1_FF_RX_H_CLK(n50_1), + .CH0_FF_TX_F_CLK(n7_1), + .CH1_FF_TX_F_CLK(n51_1), + .CH0_FF_TX_H_CLK(n8_1), + .CH1_FF_TX_H_CLK(n52_1), + .CH0_FF_RX_PCLK(n9_1), + .CH1_FF_RX_PCLK(n53_1), + .CH0_FF_TX_PCLK(tx_pclk), + .CH1_FF_TX_PCLK(n54_1), + .CH0_FF_RX_D_0(rxdata[0]), + .CH1_FF_RX_D_0(n55_1), + .CH0_FF_RX_D_1(rxdata[1]), + .CH1_FF_RX_D_1(n56_1), + .CH0_FF_RX_D_2(rxdata[2]), + .CH1_FF_RX_D_2(n57_1), + .CH0_FF_RX_D_3(rxdata[3]), + .CH1_FF_RX_D_3(n58_1), + .CH0_FF_RX_D_4(rxdata[4]), + .CH1_FF_RX_D_4(n59_1), + .CH0_FF_RX_D_5(rxdata[5]), + .CH1_FF_RX_D_5(n60_1), + .CH0_FF_RX_D_6(rxdata[6]), + .CH1_FF_RX_D_6(n61_1), + .CH0_FF_RX_D_7(rxdata[7]), + .CH1_FF_RX_D_7(n62_1), + .CH0_FF_RX_D_8(rx_k[0]), + .CH1_FF_RX_D_8(n63_1), + .CH0_FF_RX_D_9(rx_disp_err[0]), + .CH1_FF_RX_D_9(n64_1), + .CH0_FF_RX_D_10(rx_cv_err[0]), + .CH1_FF_RX_D_10(n65_1), + .CH0_FF_RX_D_11(n10_1), + .CH1_FF_RX_D_11(n66_1), + .CH0_FF_RX_D_12(n67_1), + .CH1_FF_RX_D_12(n68_1), + .CH0_FF_RX_D_13(n69_1), + .CH1_FF_RX_D_13(n70_1), + .CH0_FF_RX_D_14(n71_1), + .CH1_FF_RX_D_14(n72_1), + .CH0_FF_RX_D_15(n73_1), + .CH1_FF_RX_D_15(n74_1), + .CH0_FF_RX_D_16(n75_1), + .CH1_FF_RX_D_16(n76_1), + .CH0_FF_RX_D_17(n77_1), + .CH1_FF_RX_D_17(n78_1), + .CH0_FF_RX_D_18(n79_1), + .CH1_FF_RX_D_18(n80_1), + .CH0_FF_RX_D_19(n81_1), + .CH1_FF_RX_D_19(n82_1), + .CH0_FF_RX_D_20(n83_1), + .CH1_FF_RX_D_20(n84_1), + .CH0_FF_RX_D_21(n85_1), + .CH1_FF_RX_D_21(n86_1), + .CH0_FF_RX_D_22(n87_1), + .CH1_FF_RX_D_22(n88_1), + .CH0_FF_RX_D_23(n11_1), + .CH1_FF_RX_D_23(n89_1), + .CH0_FFS_PCIE_DONE(n12_1), + .CH1_FFS_PCIE_DONE(n90_1), + .CH0_FFS_PCIE_CON(n13_1), + .CH1_FFS_PCIE_CON(n91_1), + .CH0_FFS_RLOS(rx_los_low_s), + .CH1_FFS_RLOS(n92_1), + .CH0_FFS_LS_SYNC_STATUS(lsm_status_s), + .CH1_FFS_LS_SYNC_STATUS(n93_1), + .CH0_FFS_CC_UNDERRUN(ctc_urun_s), + .CH1_FFS_CC_UNDERRUN(n94_1), + .CH0_FFS_CC_OVERRUN(ctc_orun_s), + .CH1_FFS_CC_OVERRUN(n95_1), + .CH0_FFS_RXFBFIFO_ERROR(n14_1), + .CH1_FFS_RXFBFIFO_ERROR(n96_1), + .CH0_FFS_TXFBFIFO_ERROR(n15_1), + .CH1_FFS_TXFBFIFO_ERROR(n97_1), + .CH0_FFS_RLOL(rx_cdr_lol_s), + .CH1_FFS_RLOL(n98_1), + .CH0_FFS_SKP_ADDED(ctc_ins_s), + .CH1_FFS_SKP_ADDED(n99_1), + .CH0_FFS_SKP_DELETED(ctc_del_s), + .CH1_FFS_SKP_DELETED(n100_1), + .CH0_LDR_RX2CORE(n101_1), + .CH1_LDR_RX2CORE(n102_1), + .D_SCIRDATA0(n103_1), + .D_SCIRDATA1(n104_1), + .D_SCIRDATA2(n105_1), + .D_SCIRDATA3(n106_1), + .D_SCIRDATA4(n107_1), + .D_SCIRDATA5(n108_1), + .D_SCIRDATA6(n109_1), + .D_SCIRDATA7(n110_1), + .D_SCIINT(n121_1), + .D_SCAN_OUT_0(n16_1), + .D_SCAN_OUT_1(n17_1), + .D_SCAN_OUT_2(n18_1), + .D_SCAN_OUT_3(n19_1), + .D_SCAN_OUT_4(n20_1), + .D_SCAN_OUT_5(n21_1), + .D_SCAN_OUT_6(n22_1), + .D_SCAN_OUT_7(n23_1), + .D_COUT0(n24_1), + .D_COUT1(n25_1), + .D_COUT2(n26_1), + .D_COUT3(n27_1), + .D_COUT4(n28_1), + .D_COUT5(n29_1), + .D_COUT6(n30_1), + .D_COUT7(n31_1), + .D_COUT8(n32_1), + .D_COUT9(n33_1), + .D_COUT10(n34_1), + .D_COUT11(n35_1), + .D_COUT12(n36_1), + .D_COUT13(n37_1), + .D_COUT14(n38_1), + .D_COUT15(n39_1), + .D_COUT16(n40_1), + .D_COUT17(n41_1), + .D_COUT18(n42_1), + .D_COUT19(n43_1), + .D_REFCLKI(pll_refclki), + .D_FFS_PLOL(n46_1) +); +defparam DCU0_inst.D_MACROPDB = "0b1"; +defparam DCU0_inst.D_IB_PWDNB = "0b1"; +defparam DCU0_inst.D_XGE_MODE = "0b0"; +defparam DCU0_inst.D_LOW_MARK = "0d4"; +defparam DCU0_inst.D_HIGH_MARK = "0d12"; +defparam DCU0_inst.D_BUS8BIT_SEL = "0b0"; +defparam DCU0_inst.D_CDR_LOL_SET = "0b00"; +defparam DCU0_inst.D_BITCLK_LOCAL_EN = "0b1"; +defparam DCU0_inst.D_BITCLK_ND_EN = "0b0"; +defparam DCU0_inst.D_BITCLK_FROM_ND_EN = "0b0"; +defparam DCU0_inst.D_SYNC_LOCAL_EN = "0b1"; +defparam DCU0_inst.D_SYNC_ND_EN = "0b0"; +defparam DCU0_inst.CH0_UC_MODE = "0b0"; +defparam DCU0_inst.CH0_PCIE_MODE = "0b0"; +defparam DCU0_inst.CH0_RIO_MODE = "0b0"; +defparam DCU0_inst.CH0_WA_MODE = "0b0"; +defparam DCU0_inst.CH0_INVERT_RX = "0b0"; +defparam DCU0_inst.CH0_INVERT_TX = "0b0"; +defparam DCU0_inst.CH0_PRBS_SELECTION = "0b0"; +defparam DCU0_inst.CH0_GE_AN_ENABLE = "0b0"; +defparam DCU0_inst.CH0_PRBS_LOCK = "0b0"; +defparam DCU0_inst.CH0_PRBS_ENABLE = "0b0"; +defparam DCU0_inst.CH0_ENABLE_CG_ALIGN = "0b1"; +defparam DCU0_inst.CH0_TX_GEAR_MODE = "0b0"; +defparam DCU0_inst.CH0_RX_GEAR_MODE = "0b0"; +defparam DCU0_inst.CH0_PCS_DET_TIME_SEL = "0b00"; +defparam DCU0_inst.CH0_PCIE_EI_EN = "0b0"; +defparam DCU0_inst.CH0_TX_GEAR_BYPASS = "0b0"; +defparam DCU0_inst.CH0_ENC_BYPASS = "0b0"; +defparam DCU0_inst.CH0_SB_BYPASS = "0b0"; +defparam DCU0_inst.CH0_RX_SB_BYPASS = "0b0"; +defparam DCU0_inst.CH0_WA_BYPASS = "0b0"; +defparam DCU0_inst.CH0_DEC_BYPASS = "0b0"; +defparam DCU0_inst.CH0_CTC_BYPASS = "0b0"; +defparam DCU0_inst.CH0_RX_GEAR_BYPASS = "0b0"; +defparam DCU0_inst.CH0_LSM_DISABLE = "0b0"; +defparam DCU0_inst.CH0_MATCH_2_ENABLE = "0b1"; +defparam DCU0_inst.CH0_MATCH_4_ENABLE = "0b0"; +defparam DCU0_inst.CH0_MIN_IPG_CNT = "0b11"; +defparam DCU0_inst.CH0_CC_MATCH_1 = "0x000"; +defparam DCU0_inst.CH0_CC_MATCH_2 = "0x000"; +defparam DCU0_inst.CH0_CC_MATCH_3 = "0x1BC"; +defparam DCU0_inst.CH0_CC_MATCH_4 = "0x050"; +defparam DCU0_inst.CH0_UDF_COMMA_MASK = "0x3ff"; +defparam DCU0_inst.CH0_UDF_COMMA_A = "0x283"; +defparam DCU0_inst.CH0_UDF_COMMA_B = "0x17C"; +defparam DCU0_inst.CH0_RX_DCO_CK_DIV = "0b010"; +defparam DCU0_inst.CH0_RCV_DCC_EN = "0b0"; +defparam DCU0_inst.CH0_REQ_LVL_SET = "0b00"; +defparam DCU0_inst.CH0_REQ_EN = "0b1"; +defparam DCU0_inst.CH0_RTERM_RX = "0d22"; +defparam DCU0_inst.CH0_PDEN_SEL = "0b1"; +defparam DCU0_inst.CH0_LDR_RX2CORE_SEL = "0b0"; +defparam DCU0_inst.CH0_LDR_CORE2TX_SEL = "0b0"; +defparam DCU0_inst.CH0_TPWDNB = "0b1"; +defparam DCU0_inst.CH0_RATE_MODE_TX = "0b0"; +defparam DCU0_inst.CH0_RTERM_TX = "0d19"; +defparam DCU0_inst.CH0_TX_CM_SEL = "0b00"; +defparam DCU0_inst.CH0_TDRV_PRE_EN = "0b0"; +defparam DCU0_inst.CH0_TDRV_SLICE0_SEL = "0b01"; +defparam DCU0_inst.CH0_TDRV_SLICE1_SEL = "0b00"; +defparam DCU0_inst.CH0_TDRV_SLICE2_SEL = "0b01"; +defparam DCU0_inst.CH0_TDRV_SLICE3_SEL = "0b01"; +defparam DCU0_inst.CH0_TDRV_SLICE4_SEL = "0b01"; +defparam DCU0_inst.CH0_TDRV_SLICE5_SEL = "0b01"; +defparam DCU0_inst.CH0_TDRV_SLICE0_CUR = "0b101"; +defparam DCU0_inst.CH0_TDRV_SLICE1_CUR = "0b000"; +defparam DCU0_inst.CH0_TDRV_SLICE2_CUR = "0b11"; +defparam DCU0_inst.CH0_TDRV_SLICE3_CUR = "0b11"; +defparam DCU0_inst.CH0_TDRV_SLICE4_CUR = "0b11"; +defparam DCU0_inst.CH0_TDRV_SLICE5_CUR = "0b00"; +defparam DCU0_inst.CH0_TDRV_DAT_SEL = "0b00"; +defparam DCU0_inst.CH0_TX_DIV11_SEL = "0b0"; +defparam DCU0_inst.CH0_RPWDNB = "0b1"; +defparam DCU0_inst.CH0_RATE_MODE_RX = "0b0"; +defparam DCU0_inst.CH0_RLOS_SEL = "0b1"; +defparam DCU0_inst.CH0_RX_LOS_LVL = "0b010"; +defparam DCU0_inst.CH0_RX_LOS_CEQ = "0b11"; +defparam DCU0_inst.CH0_RX_LOS_HYST_EN = "0b0"; +defparam DCU0_inst.CH0_RX_LOS_EN = "0b1"; +defparam DCU0_inst.CH0_RX_DIV11_SEL = "0b0"; +defparam DCU0_inst.CH0_SEL_SD_RX_CLK = "0b0"; +defparam DCU0_inst.CH0_FF_RX_H_CLK_EN = "0b0"; +defparam DCU0_inst.CH0_FF_RX_F_CLK_DIS = "0b0"; +defparam DCU0_inst.CH0_FF_TX_H_CLK_EN = "0b0"; +defparam DCU0_inst.CH0_FF_TX_F_CLK_DIS = "0b0"; +defparam DCU0_inst.CH0_RX_RATE_SEL = "0d8"; +defparam DCU0_inst.CH0_TDRV_POST_EN = "0b0"; +defparam DCU0_inst.CH0_TX_POST_SIGN = "0b0"; +defparam DCU0_inst.CH0_TX_PRE_SIGN = "0b0"; +defparam DCU0_inst.CH0_RXTERM_CM = "0b11"; +defparam DCU0_inst.CH0_RXIN_CM = "0b11"; +defparam DCU0_inst.CH0_LEQ_OFFSET_SEL = "0b0"; +defparam DCU0_inst.CH0_LEQ_OFFSET_TRIM = "0b000"; +defparam DCU0_inst.D_TX_MAX_RATE = "1.25"; +defparam DCU0_inst.CH0_CDR_MAX_RATE = "1.25"; +defparam DCU0_inst.CH0_TXAMPLITUDE = "0d1100"; +defparam DCU0_inst.CH0_TXDEPRE = "DISABLED"; +defparam DCU0_inst.CH0_TXDEPOST = "DISABLED"; +defparam DCU0_inst.CH0_PROTOCOL = "GBE"; +defparam DCU0_inst.D_ISETLOS = "0d0"; +defparam DCU0_inst.D_SETIRPOLY_AUX = "0b00"; +defparam DCU0_inst.D_SETICONST_AUX = "0b00"; +defparam DCU0_inst.D_SETIRPOLY_CH = "0b00"; +defparam DCU0_inst.D_SETICONST_CH = "0b00"; +defparam DCU0_inst.D_REQ_ISET = "0b000"; +defparam DCU0_inst.D_PD_ISET = "0b00"; +defparam DCU0_inst.D_DCO_CALIB_TIME_SEL = "0b00"; +defparam DCU0_inst.CH0_DCOCTLGI = "0b010"; +defparam DCU0_inst.CH0_DCOATDDLY = "0b00"; +defparam DCU0_inst.CH0_DCOATDCFG = "0b00"; +defparam DCU0_inst.CH0_DCOBYPSATD = "0b1"; +defparam DCU0_inst.CH0_DCOSCALEI = "0b00"; +defparam DCU0_inst.CH0_DCOITUNE4LSB = "0b111"; +defparam DCU0_inst.CH0_DCOIOSTUNE = "0b000"; +defparam DCU0_inst.CH0_DCODISBDAVOID = "0b0"; +defparam DCU0_inst.CH0_DCOCALDIV = "0b001"; +defparam DCU0_inst.CH0_DCONUOFLSB = "0b101"; +defparam DCU0_inst.CH0_DCOIUPDNX2 = "0b1"; +defparam DCU0_inst.CH0_DCOSTEP = "0b00"; +defparam DCU0_inst.CH0_DCOSTARTVAL = "0b000"; +defparam DCU0_inst.CH0_DCOFLTDAC = "0b01"; +defparam DCU0_inst.CH0_DCOITUNE = "0b00"; +defparam DCU0_inst.CH0_DCOFTNRG = "0b110"; +defparam DCU0_inst.CH0_CDR_CNT4SEL = "0b00"; +defparam DCU0_inst.CH0_CDR_CNT8SEL = "0b00"; +defparam DCU0_inst.CH0_BAND_THRESHOLD = "0d0"; +defparam DCU0_inst.CH0_AUTO_FACQ_EN = "0b1"; +defparam DCU0_inst.CH0_AUTO_CALIB_EN = "0b1"; +defparam DCU0_inst.CH0_CALIB_CK_MODE = "0b0"; +defparam DCU0_inst.CH0_REG_BAND_OFFSET = "0d0"; +defparam DCU0_inst.CH0_REG_BAND_SEL = "0d0"; +defparam DCU0_inst.CH0_REG_IDAC_SEL = "0d0"; +defparam DCU0_inst.CH0_REG_IDAC_EN = "0b0"; +defparam DCU0_inst.D_TXPLL_PWDNB = "0b1"; +defparam DCU0_inst.D_SETPLLRC = "0d1"; +defparam DCU0_inst.D_REFCK_MODE = "0b001"; +defparam DCU0_inst.D_TX_VCO_CK_DIV = "0b010"; +defparam DCU0_inst.D_PLL_LOL_SET = "0b00"; +defparam DCU0_inst.D_RG_EN = "0b0"; +defparam DCU0_inst.D_RG_SET = "0b00"; +defparam DCU0_inst.D_CMUSETISCL4VCO = "0b000"; +defparam DCU0_inst.D_CMUSETI4VCO = "0b00"; +defparam DCU0_inst.D_CMUSETINITVCT = "0b00"; +defparam DCU0_inst.D_CMUSETZGM = "0b000"; +defparam DCU0_inst.D_CMUSETP2AGM = "0b000"; +defparam DCU0_inst.D_CMUSETP1GM = "0b000"; +defparam DCU0_inst.D_CMUSETI4CPZ = "0d3"; +defparam DCU0_inst.D_CMUSETI4CPP = "0d3"; +defparam DCU0_inst.D_CMUSETICP4Z = "0b101"; +defparam DCU0_inst.D_CMUSETICP4P = "0b01"; +defparam DCU0_inst.D_CMUSETBIASI = "0b00"; +// @8:357 + PCSDrsl_core_Z1_layer1 rsl_inst ( + .serdes_rst_dual_c(serdes_rst_dual_c), + .rx_serdes_rst_c(rx_serdes_rst_c), + .tx_serdes_rst_c(tx_serdes_rst_c), + .rsl_rx_pcs_rst_c(rsl_rx_pcs_rst_c), + .rx_pcs_rst_c(rx_pcs_rst_c), + .rsl_tx_pcs_rst_c(rsl_tx_pcs_rst_c), + .tx_pcs_rst_c(tx_pcs_rst_c), + .rsl_disable(rsl_disable), + .rsl_tx_serdes_rst_c(rsl_tx_serdes_rst_c), + .pll_lol(pll_lol), + .pll_refclki(pll_refclki), + .rx_cdr_lol_s(rx_cdr_lol_s), + .rx_los_low_s(rx_los_low_s), + .rsl_rst(rsl_rst), + .rxrefclk(rxrefclk), + .rsl_rx_serdes_rst_c(rsl_rx_serdes_rst_c), + .rsl_serdes_rst_dual_c(rsl_serdes_rst_dual_c) +); +endmodule /* PCSD */ + diff --git a/gbe/cores/sgmii/PCSD/syn_results/PCSD_cck.rpt.db b/gbe/cores/sgmii/PCSD/syn_results/PCSD_cck.rpt.db new file mode 100644 index 0000000000000000000000000000000000000000..029fa7a6cf9014af50ee9d4aa843536a1f7b5c42 GIT binary patch literal 8192 zcmeI#JqyA>3DEQgKL*xDXO@ z%d=&(imfwzIG4G0Jf%J073BwWN1`{~f``Krs^Nta{J wY>_tId!-qqw)j}S$WL3iQGJ`s(T{)t1Rwwb2tWV=5P$##AOHafK;VZ3UKAiP82|tP literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/PCSD/syn_results/PCSD_scck.rpt.db b/gbe/cores/sgmii/PCSD/syn_results/PCSD_scck.rpt.db new file mode 100644 index 0000000000000000000000000000000000000000..029fa7a6cf9014af50ee9d4aa843536a1f7b5c42 GIT binary patch literal 8192 zcmeI#JqyA>3DEQgKL*xDXO@ z%d=&(imfwzIG4G0Jf%J073BwWN1`{~f``Krs^Nta{J wY>_tId!-qqw)j}S$WL3iQGJ`s(T{)t1Rwwb2tWV=5P$##AOHafK;VZ3UKAiP82|tP literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/PCSD/syn_results/PCSD_synplify.lpf b/gbe/cores/sgmii/PCSD/syn_results/PCSD_synplify.lpf new file mode 100644 index 0000000..a0470d8 --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/PCSD_synplify.lpf @@ -0,0 +1,24 @@ +# +# Logical Preferences generated for Lattice by Synplify maplat, Build 1796R. +# + +# Period Constraints +#FREQUENCY PORT "pll_refclki" 100.0 MHz; +#FREQUENCY PORT "rxrefclk" 100.0 MHz; + + +# Output Constraints + +# Input Constraints + +# Point-to-point Delay Constraints + + + +# Block Path Constraints +#BLOCK PATH FROM CLKNET "rxrefclk" TO CLKNET "pll_refclki"; +#BLOCK PATH FROM CLKNET "pll_refclki" TO CLKNET "rxrefclk"; + +BLOCK ASYNCPATHS; + +# End of generated Logical Preferences. diff --git a/gbe/cores/sgmii/PCSD/syn_results/PCSD_synplify_tmp2.lpf b/gbe/cores/sgmii/PCSD/syn_results/PCSD_synplify_tmp2.lpf new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/sgmii/PCSD/syn_results/PCSD_synplify_tmp4.lpf b/gbe/cores/sgmii/PCSD/syn_results/PCSD_synplify_tmp4.lpf new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/sgmii/PCSD/syn_results/PCSD_synplify_tmp8.lpf b/gbe/cores/sgmii/PCSD/syn_results/PCSD_synplify_tmp8.lpf new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/sgmii/PCSD/syn_results/_CMD_.CML b/gbe/cores/sgmii/PCSD/syn_results/_CMD_.CML new file mode 100644 index 0000000..c760b6f --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/_CMD_.CML @@ -0,0 +1 @@ + -osyn /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synwork/PCSD_comp.srs -top PCSD -hdllog /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synlog/PCSD_compiler.srr -encrypt -mp 4 -verification_mode 0 -vhdl -prodtype synplify_pro -dspmac -fixsmult -infer_seqShift -nram -sdff_counter -divnmod -nostructver -encrypt -pro -dmgen /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/dm -lite -ui -fid2 -ram -sharing on -ll 2000 -autosm -ignore_undefined_lib -lib work /home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd -verilog -prodtype synplify_pro -dspmac -fixsmult -infer_seqShift -nram -sdff_counter -divnmod -nostructver -I /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/ -I /home/soft/lattice/diamond/3.10_x64/synpbase/lib -v2001 -devicelib /home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v -devicelib /home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v -encrypt -pro -dmgen /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/dm -ui -fid2 -ram -sharing on -ll 2000 -autosm -lib work /home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v -jobname "compiler" \ No newline at end of file diff --git a/gbe/cores/sgmii/PCSD/syn_results/_cmd._cml b/gbe/cores/sgmii/PCSD/syn_results/_cmd._cml new file mode 100644 index 0000000..a2a52c2 --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/_cmd._cml @@ -0,0 +1 @@ +-link -encrypt -top PCSD -osyn /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synwork/PCSD_comp.srs /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synwork/layer0.srs /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synwork/layer1.srs \ No newline at end of file diff --git a/gbe/cores/sgmii/PCSD/syn_results/backup/PCSD.srr b/gbe/cores/sgmii/PCSD/syn_results/backup/PCSD.srr new file mode 100644 index 0000000..20082f7 --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/backup/PCSD.srr @@ -0,0 +1,1157 @@ +#Build: Synplify Pro (R) M-2017.03L-SP1-1, Build 086R, Aug 4 2017 +#install: /home/soft/lattice/diamond/3.10_x64/synpbase +#OS: Linux +#Hostname: lxhadeb07 + +# Mon Apr 29 14:56:30 2019 + +#Implementation: syn_results + +Synopsys HDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Synopsys VHDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd":30:7:30:10|Top entity is set to PCSD. +VHDL syntax check successful! + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB) + + +Process completed successfully. +# Mon Apr 29 14:56:30 2019 + +###########################################################] +Synopsys Verilog Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps) +@I::"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v" (library work) +Verilog syntax check successful! + +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB) + + +Process completed successfully. +# Mon Apr 29 14:56:30 2019 + +###########################################################] +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd":30:7:30:10|Top entity is set to PCSD. +VHDL syntax check successful! +@N: CD630 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd":30:7:30:10|Synthesizing work.pcsd.v1. +Post processing for work.pcsd.v1 + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 74MB peak: 76MB) + + +Process completed successfully. +# Mon Apr 29 14:56:31 2019 + +###########################################################] +Running on host :lxhadeb07 +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps) +@I::"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v" (library work) +Verilog syntax check successful! +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +@N: CG364 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1968:7:1968:10|Synthesizing module sync in library work. + + PDATA_RST_VAL=32'b00000000000000000000000000000000 + Generated name = sync_0s +@N: CG364 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1051:7:1051:18|Synthesizing module PCSDsll_core in library work. + + PPROTOCOL=24'b010001110100001001000101 + PLOL_SETTING=32'b00000000000000000000000000000000 + PDYN_RATE_CTRL=64'b0100010001001001010100110100000101000010010011000100010101000100 + PPCIE_MAX_RATE=24'b001100100010111000110101 + PDIFF_VAL_LOCK=32'b00000000000000000000000000100111 + PDIFF_VAL_UNLOCK=32'b00000000000000000000000001001110 + PPCLK_TC=32'b00000000000000100000000000000000 + PDIFF_DIV11_VAL_LOCK=32'b00000000000000000000000000000000 + PDIFF_DIV11_VAL_UNLOCK=32'b00000000000000000000000000000000 + PPCLK_DIV11_TC=32'b00000000000000000000000000000000 + LPLL_LOSS_ST=2'b00 + LPLL_PRELOSS_ST=2'b01 + LPLL_PRELOCK_ST=2'b10 + LPLL_LOCK_ST=2'b11 + LRCLK_TC=16'b1111111111111111 + LRCLK_TC_PUL_WIDTH=16'b0000000000110010 + LHB_WAIT_CNT=8'b11111111 + LPCLK_TC_0=32'b00000000000000001000000000000000 + LPCLK_TC_1=32'b00000000000000010000000000000000 + LPCLK_TC_2=32'b00000000000000100000000000000000 + LPCLK_TC_3=32'b00000000000000101000000000000000 + LPCLK_TC_4=32'b00000000000000010000000000000000 + LPDIFF_LOCK_00=32'b00000000000000000000000000001001 + LPDIFF_LOCK_10=32'b00000000000000000000000000010011 + LPDIFF_LOCK_20=32'b00000000000000000000000000100111 + LPDIFF_LOCK_30=32'b00000000000000000000000000110001 + LPDIFF_LOCK_40=32'b00000000000000000000000000010011 + LPDIFF_LOCK_01=32'b00000000000000000000000000001001 + LPDIFF_LOCK_11=32'b00000000000000000000000000010011 + LPDIFF_LOCK_21=32'b00000000000000000000000000100111 + LPDIFF_LOCK_31=32'b00000000000000000000000000110001 + LPDIFF_LOCK_41=32'b00000000000000000000000000010011 + LPDIFF_LOCK_02=32'b00000000000000000000000000110001 + LPDIFF_LOCK_12=32'b00000000000000000000000001100010 + LPDIFF_LOCK_22=32'b00000000000000000000000011000100 + LPDIFF_LOCK_32=32'b00000000000000000000000011110101 + LPDIFF_LOCK_42=32'b00000000000000000000000001100010 + LPDIFF_LOCK_03=32'b00000000000000000000000010000011 + LPDIFF_LOCK_13=32'b00000000000000000000000100000110 + LPDIFF_LOCK_23=32'b00000000000000000000001000001100 + LPDIFF_LOCK_33=32'b00000000000000000000001010001111 + LPDIFF_LOCK_43=32'b00000000000000000000000100000110 + LPDIFF_UNLOCK_00=32'b00000000000000000000000000010011 + LPDIFF_UNLOCK_10=32'b00000000000000000000000000100111 + LPDIFF_UNLOCK_20=32'b00000000000000000000000001001110 + LPDIFF_UNLOCK_30=32'b00000000000000000000000001100010 + LPDIFF_UNLOCK_40=32'b00000000000000000000000000100111 + LPDIFF_UNLOCK_01=32'b00000000000000000000000001000001 + LPDIFF_UNLOCK_11=32'b00000000000000000000000010000011 + LPDIFF_UNLOCK_21=32'b00000000000000000000000100000110 + LPDIFF_UNLOCK_31=32'b00000000000000000000000101000111 + LPDIFF_UNLOCK_41=32'b00000000000000000000000010000011 + LPDIFF_UNLOCK_02=32'b00000000000000000000000001001000 + LPDIFF_UNLOCK_12=32'b00000000000000000000000010010000 + LPDIFF_UNLOCK_22=32'b00000000000000000000000100100000 + LPDIFF_UNLOCK_32=32'b00000000000000000000000101101000 + LPDIFF_UNLOCK_42=32'b00000000000000000000000010010000 + LPDIFF_UNLOCK_03=32'b00000000000000000000000011000100 + LPDIFF_UNLOCK_13=32'b00000000000000000000000110001001 + LPDIFF_UNLOCK_23=32'b00000000000000000000001100010010 + LPDIFF_UNLOCK_33=32'b00000000000000000000001111010111 + LPDIFF_UNLOCK_43=32'b00000000000000000000000110001001 + Generated name = PCSDsll_core_Z1_layer1 +@N: CG179 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1287:54:1287:59|Removing redundant assignment. +@N: CG179 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1293:52:1293:55|Removing redundant assignment. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1350:0:1350:5|Pruning unused register rcpri_mod_ch_st. Make sure that there are no unused intermediate registers. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 0 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 0 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 1 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 2 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 16 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 18 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 19 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 20 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|All reachable assignments to bit 21 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +@N: CG364 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":92:7:92:18|Synthesizing module PCSDrsl_core in library work. + + pnum_channels=32'b00000000000000000000000000000001 + pprotocol=24'b010001110100001001000101 + pserdes_mode=72'b010100100101100000100000010000010100111001000100001000000101010001011000 + pport_tx_rdy=64'b0100010001001001010100110100000101000010010011000100010101000100 + pwait_tx_rdy=32'b00000000000000000000101110111000 + pport_rx_rdy=64'b0100010001001001010100110100000101000010010011000100010101000100 + pwait_rx_rdy=32'b00000000000000000000101110111000 + wa_num_cycles=32'b00000000000000000000010000000000 + dac_num_cycles=32'b00000000000000000000000000000011 + lreset_pwidth=32'b00000000000000000000000000000011 + lwait_b4_trst=32'b00000000000010111110101111000010 + lwait_b4_trst_s=32'b00000000000000000000001100001101 + lplol_cnt_width=32'b00000000000000000000000000010100 + lwait_after_plol0=32'b00000000000000000000000000000100 + lwait_b4_rrst=32'b00000000000000101100000000000000 + lrrst_wait_width=32'b00000000000000000000000000010100 + lwait_after_rrst=32'b00000000000011000011010100000000 + lwait_b4_rrst_s=32'b00000000000000000000000111001100 + lrlol_cnt_width=32'b00000000000000000000000000010011 + lwait_after_lols=32'b00000000000000001100010000000000 + lwait_after_lols_s=32'b00000000000000000000000010010110 + llols_cnt_width=32'b00000000000000000000000000010010 + lrdb_max=32'b00000000000000000000000000001111 + ltxr_wait_width=32'b00000000000000000000000000001100 + lrxr_wait_width=32'b00000000000000000000000000001100 + Generated name = PCSDrsl_core_Z2_layer1 +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":274:33:274:48|Removing wire dual_or_serd_rst, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":275:33:275:46|Removing wire tx_any_pcs_rst, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":276:33:276:42|Removing wire tx_any_rst, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":277:33:277:41|Object txsr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":278:33:278:42|Object txdpr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":279:33:279:41|Object txpr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":280:33:280:41|Object txr_wt_en is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":281:33:281:42|Object txr_wt_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":282:33:282:41|Removing wire txr_wt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":283:33:283:43|Object ruo_tx_rdyr is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":326:33:326:40|Object rrst_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":327:33:327:43|Removing wire rrst_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":328:33:328:41|Object rrst_wait is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":341:33:341:39|Object rxp_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":342:33:342:39|Object rxp_rst is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":343:33:343:42|Removing wire rxp_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":346:33:346:42|Object rlolsz_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":347:33:347:45|Removing wire rlolsz_cnt_tc, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":350:33:350:43|Removing wire rxp_cnt2_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":351:33:351:47|Object data_loop_b_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":352:33:352:43|Object data_loop_b is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":353:33:353:46|Removing wire data_loop_b_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":356:33:356:41|Object rxsr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":357:33:357:41|Object rxpr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":358:33:358:42|Object rxsdr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":359:33:359:42|Object rxdpr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":360:33:360:48|Removing wire rxsdr_or_sr_appd, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":361:33:361:49|Removing wire dual_or_rserd_rst, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":362:33:362:46|Removing wire rx_any_pcs_rst, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":363:33:363:42|Removing wire rx_any_rst, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":364:33:364:41|Object rxr_wt_en is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":365:33:365:42|Object rxr_wt_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":366:33:366:41|Removing wire rxr_wt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":367:33:367:43|Object ruo_rx_rdyr is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":507:10:507:10|Object m is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":880:10:880:10|Object l is declared but not assigned. Either assign a value or remove the declaration. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":806:3:806:8|Pruning unused register genblk2.rxp_cnt2[2:0]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlol_p3. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlos_p3. Make sure that there are no unused intermediate registers. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":694:3:694:8|Optimizing register bit genblk2.rxs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":461:3:461:8|Optimizing register bit genblk1.txp_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":422:3:422:8|Optimizing register bit genblk1.txs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":422:3:422:8|Pruning register bit 2 of genblk1.txs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":461:3:461:8|Pruning register bit 2 of genblk1.txp_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":694:3:694:8|Pruning register bit 2 of genblk2.rxs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":200:33:200:48|Input port bits 3 to 1 of rui_tx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":204:33:204:51|Input port bits 3 to 1 of rui_rx_serdes_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":205:33:205:48|Input port bits 3 to 1 of rui_rx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":206:33:206:48|Input port bits 3 to 1 of rdi_rx_los_low_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":207:33:207:48|Input port bits 3 to 1 of rdi_rx_cdr_lol_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|Pruning register bits 6 to 4 of genblk5.rdiff_comp_unlock[6:3]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|Pruning register bits 5 to 3 of genblk5.rdiff_comp_lock[5:2]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rdiff_comp_unlock[3]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rcount_tc[17]. Make sure that there are no unused intermediate registers. +@N: CL201 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1801:0:1801:5|Trying to extract state machine for register sll_state. +Extracted state machine for register sll_state +State machine has 4 reachable states with original encodings of: + 00 + 01 + 10 + 11 + +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 75MB peak: 76MB) + + +Process completed successfully. +# Mon Apr 29 14:56:31 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode + +======================================================================================= +For a summary of linker messages for components that did not bind, please see log file: +@L: /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synwork/PCSD_comp.linkerlog +======================================================================================= + + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Mon Apr 29 14:56:31 2019 + +###########################################################] +@END + +At c_hdl Exit (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 3MB peak: 4MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Mon Apr 29 14:56:31 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Mon Apr 29 14:56:32 2019 + +###########################################################] +Pre-mapping Report + +# Mon Apr 29 14:56:33 2019 + +Synopsys Lattice Technology Pre-mapping, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 100MB) + +Reading constraint file: /home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.fdc +@L: /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/PCSD_scck.rpt +Printing clock summary report in "/home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/PCSD_scck.rpt" file +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 102MB peak: 104MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 102MB peak: 104MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 114MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 116MB) + +@N: BN362 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1408:0:1408:5|Removing sequential instance pcpri_mod_ch (in view: work.PCSDsll_core_Z1_layer1(verilog)) of type view:PrimLib.dffre(prim) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1244:27:1244:40|Removing instance div2_sync_inst (in view: work.PCSDsll_core_Z1_layer1(verilog)) of type view:work.sync_0s_3(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1252:27:1252:41|Removing instance div11_sync_inst (in view: work.PCSDsll_core_Z1_layer1(verilog)) of type view:work.sync_0s_2(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1236:27:1236:40|Removing instance gear_sync_inst (in view: work.PCSDsll_core_Z1_layer1(verilog)) of type view:work.sync_0s_4(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1268:27:1268:44|Removing instance pcie_mod_sync_inst (in view: work.PCSDsll_core_Z1_layer1(verilog)) of type view:work.sync_0s_0(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1260:27:1260:44|Removing instance cpri_mod_sync_inst (in view: work.PCSDsll_core_Z1_layer1(verilog)) of type view:work.sync_0s_1(verilog) because it does not drive other instances. +ICG Latch Removal Summary: +Number of ICG latches removed: 0 +Number of ICG latches not removed: 0 +syn_allowed_resources : blockrams=56 set on top level netlist PCSD + +Finished netlist restructuring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + + + +Clock Summary +****************** + + Start Requested Requested Clock Clock Clock +Level Clock Frequency Period Type Group Load +---------------------------------------------------------------------------------------------------------------- +0 - System 100.0 MHz 10.000 system system_clkgroup 0 + +0 - PCSD|pll_refclki 100.0 MHz 10.000 inferred Inferred_clkgroup_0 76 + +0 - PCSD|rxrefclk 100.0 MHz 10.000 inferred Inferred_clkgroup_1 59 + +0 - PCSD|tx_pclk_inferred_clock 100.0 MHz 10.000 inferred Inferred_clkgroup_2 53 +================================================================================================================ + +@W: MT529 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1988:0:1988:5|Found inferred clock PCSD|pll_refclki which controls 76 sequential elements including sll_inst.phb_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":567:3:567:8|Found inferred clock PCSD|rxrefclk which controls 59 sequential elements including rsl_inst.genblk2\.rlos_db_p1. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1988:0:1988:5|Found inferred clock PCSD|tx_pclk_inferred_clock which controls 53 sequential elements including sll_inst.rtc_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. + +Finished Pre Mapping Phase. + +Starting constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + +Encoding state machine sll_state[3:0] (in view: work.PCSDsll_core_Z1_layer1(verilog)) +original code -> new code + 00 -> 00 + 01 -> 01 + 10 -> 10 + 11 -> 11 +@N: MO225 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1801:0:1801:5|There are no possible illegal states for state machine sll_state[3:0] (in view: work.PCSDsll_core_Z1_layer1(verilog)); safe FSM implementation is not required. + +Finished constraint checker preprocessing (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + +None +None + +Finished constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + +Pre-mapping successful! + +At Mapper Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 58MB peak: 144MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime +# Mon Apr 29 14:56:33 2019 + +###########################################################] +Map & Optimize Report + +# Mon Apr 29 14:56:33 2019 + +Synopsys Lattice Technology Mapper, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 100MB) + +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 113MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 115MB) + + + +Starting Optimization and Mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 144MB) + + +Available hyper_sources - for debug and ip models + None Found + + +Finished RTL optimizations (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 144MB) + +Encoding state machine sll_state[3:0] (in view: work.PCSDsll_core_Z1_layer1(verilog)) +original code -> new code + 00 -> 00 + 01 -> 01 + 10 -> 10 + 11 -> 11 +@N: MO225 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1801:0:1801:5|There are no possible illegal states for state machine sll_state[3:0] (in view: work.PCSDsll_core_Z1_layer1(verilog)); safe FSM implementation is not required. +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1350:0:1350:5|Found counter in view:work.PCSDsll_core_Z1_layer1(verilog) instance rhb_wait_cnt[7:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1304:0:1304:5|Found counter in view:work.PCSDsll_core_Z1_layer1(verilog) instance rcount[15:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1759:0:1759:5|Found counter in view:work.PCSDsll_core_Z1_layer1(verilog) instance pcount[21:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":412:3:412:8|Found counter in view:work.PCSDrsl_core_Z2_layer1(verilog) instance genblk1\.plol_cnt[19:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":778:3:778:8|Found counter in view:work.PCSDrsl_core_Z2_layer1(verilog) instance genblk2\.rlols0_cnt[17:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":680:3:680:8|Found counter in view:work.PCSDrsl_core_Z2_layer1(verilog) instance genblk2\.rlol1_cnt[18:0] + +Starting factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + + +Finished factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + + +Starting gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + + +Finished gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + + +Finished generic timing optimizations - Pass 1 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 145MB) + + +Starting Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 146MB) + + +Finished Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 146MB) + + +Finished generic timing optimizations - Pass 2 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 146MB) + + +Finished preparing to map (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:01s; Memory used current: 145MB peak: 146MB) + +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.PCSD(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.PCSD(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.PCSD(v1)). + +Finished technology mapping (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 144MB peak: 146MB) + +Pass CPU time Worst Slack Luts / Registers +------------------------------------------------------------ + 1 0h:00m:01s 5.36ns 118 / 186 +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.PCSD(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.PCSD(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.PCSD(v1)). + +Finished technology timing optimizations and critical path resynthesis (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 144MB peak: 146MB) + +@N: FX164 |The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute. + +Finished restoring hierarchy (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 144MB peak: 146MB) + + + +@S |Clock Optimization Summary + + +#### START OF CLOCK OPTIMIZATION REPORT #####[ + +3 non-gated/non-generated clock tree(s) driving 186 clock pin(s) of sequential element(s) +0 gated/generated clock tree(s) driving 0 clock pin(s) of sequential element(s) +0 instances converted, 0 sequential instances remain driven by gated/generated clocks + +=================================== Non-Gated/Non-Generated Clocks ==================================== +Clock Tree ID Driving Element Drive Element Type Fanout Sample Instance +------------------------------------------------------------------------------------------------------- +@K:CKID0001 pll_refclki port 74 rsl_inst.genblk1\.pll_lol_p1 +@K:CKID0002 rxrefclk port 59 rsl_inst.genblk2\.rlol1_cnt[18] +@K:CKID0003 DCU0_inst DCUA 53 sll_inst.pcount[21] +======================================================================================================= + + +##### END OF CLOCK OPTIMIZATION REPORT ######] + + +Start Writing Netlists (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 109MB peak: 146MB) + +Writing Analyst data base /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synwork/PCSD_m.srm + +Finished Writing Netlist Databases (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 144MB peak: 146MB) + +Writing EDIF Netlist and constraint files +@N: FX1056 |Writing EDF file: /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/PCSD.edn +M-2017.03L-SP1-1 +@N: BW106 |Synplicity Constraint File capacitance units using default value of 1pF + +Finished Writing EDIF Netlist and constraint files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 148MB peak: 150MB) + +Writing Verilog Simulation files + +Finished Writing Verilog Simulation files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 148MB peak: 150MB) + +Writing VHDL Simulation files + +Finished Writing VHDL Simulation files (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 148MB peak: 150MB) + + +Start final timing analysis (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 149MB peak: 150MB) + +@W: MT246 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd":150:4:150:12|Blackbox DCUA is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) +@W: MT420 |Found inferred clock PCSD|rxrefclk with period 10.00ns. Please declare a user-defined clock on object "p:rxrefclk" +@W: MT420 |Found inferred clock PCSD|pll_refclki with period 10.00ns. Please declare a user-defined clock on object "p:pll_refclki" +@W: MT420 |Found inferred clock PCSD|tx_pclk_inferred_clock with period 10.00ns. Please declare a user-defined clock on object "n:tx_pclk" + + +##### START OF TIMING REPORT #####[ +# Timing Report written on Mon Apr 29 14:56:37 2019 +# + + +Top view: PCSD +Requested Frequency: 100.0 MHz +Wire load mode: top +Paths requested: 5 +Constraint File(s): /home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.fdc + +@N: MT320 |This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. + +@N: MT322 |Clock constraints include only register-to-register paths associated with each individual clock. + + + +Performance Summary +******************* + + +Worst slack in design: 4.079 + + Requested Estimated Requested Estimated Clock Clock +Starting Clock Frequency Frequency Period Period Slack Type Group +------------------------------------------------------------------------------------------------------------------------------------ +PCSD|pll_refclki 100.0 MHz 168.9 MHz 10.000 5.921 4.079 inferred Inferred_clkgroup_0 +PCSD|rxrefclk 100.0 MHz 170.5 MHz 10.000 5.864 4.136 inferred Inferred_clkgroup_1 +PCSD|tx_pclk_inferred_clock 100.0 MHz 237.5 MHz 10.000 4.211 5.789 inferred Inferred_clkgroup_2 +System 100.0 MHz 18518.5 MHz 10.000 0.054 9.946 system system_clkgroup +==================================================================================================================================== + + + + + +Clock Relationships +******************* + +Clocks | rise to rise | fall to fall | rise to fall | fall to rise +------------------------------------------------------------------------------------------------------------------------------------------------ +Starting Ending | constraint slack | constraint slack | constraint slack | constraint slack +------------------------------------------------------------------------------------------------------------------------------------------------ +System PCSD|rxrefclk | 10.000 9.946 | No paths - | No paths - | No paths - +PCSD|pll_refclki System | 10.000 8.385 | No paths - | No paths - | No paths - +PCSD|pll_refclki PCSD|pll_refclki | 10.000 4.079 | No paths - | No paths - | No paths - +PCSD|pll_refclki PCSD|tx_pclk_inferred_clock | Diff grp - | No paths - | No paths - | No paths - +PCSD|rxrefclk System | 10.000 8.283 | No paths - | No paths - | No paths - +PCSD|rxrefclk PCSD|rxrefclk | 10.000 4.136 | No paths - | No paths - | No paths - +PCSD|tx_pclk_inferred_clock PCSD|pll_refclki | Diff grp - | No paths - | No paths - | No paths - +PCSD|tx_pclk_inferred_clock PCSD|tx_pclk_inferred_clock | 10.000 5.789 | No paths - | No paths - | No paths - +================================================================================================================================================ + Note: 'No paths' indicates there are no paths in the design for that pair of clock edges. + 'Diff grp' indicates that paths exist but the starting clock and ending clock are in different clock groups. + + + +Interface Information +********************* + +No IO constraint found + + + +==================================== +Detailed Report for Clock: PCSD|pll_refclki +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +-------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[1] PCSD|pll_refclki FD1S3DX Q plol_cnt[1] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[6] PCSD|pll_refclki FD1S3DX Q plol_cnt[6] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[7] PCSD|pll_refclki FD1S3DX Q plol_cnt[7] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[12] PCSD|pll_refclki FD1S3DX Q plol_cnt[12] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[2] PCSD|pll_refclki FD1S3DX Q plol_cnt[2] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[3] PCSD|pll_refclki FD1S3DX Q plol_cnt[3] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[4] PCSD|pll_refclki FD1S3DX Q plol_cnt[4] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[5] PCSD|pll_refclki FD1S3DX Q plol_cnt[5] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[8] PCSD|pll_refclki FD1S3DX Q plol_cnt[8] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[9] PCSD|pll_refclki FD1S3DX Q plol_cnt[9] 0.907 4.684 +============================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +----------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[19] PCSD|pll_refclki FD1S3DX D plol_cnt_s[19] 9.946 4.079 +rsl_inst.genblk1\.plol_cnt[17] PCSD|pll_refclki FD1S3DX D plol_cnt_s[17] 9.946 4.139 +rsl_inst.genblk1\.plol_cnt[18] PCSD|pll_refclki FD1S3DX D plol_cnt_s[18] 9.946 4.139 +rsl_inst.genblk1\.plol_cnt[15] PCSD|pll_refclki FD1S3DX D plol_cnt_s[15] 9.946 4.200 +rsl_inst.genblk1\.plol_cnt[16] PCSD|pll_refclki FD1S3DX D plol_cnt_s[16] 9.946 4.200 +rsl_inst.genblk1\.plol_cnt[13] PCSD|pll_refclki FD1S3DX D plol_cnt_s[13] 9.946 4.261 +rsl_inst.genblk1\.plol_cnt[14] PCSD|pll_refclki FD1S3DX D plol_cnt_s[14] 9.946 4.261 +rsl_inst.genblk1\.plol_cnt[11] PCSD|pll_refclki FD1S3DX D plol_cnt_s[11] 9.946 4.322 +rsl_inst.genblk1\.plol_cnt[12] PCSD|pll_refclki FD1S3DX D plol_cnt_s[12] 9.946 4.322 +rsl_inst.genblk1\.plol_cnt[9] PCSD|pll_refclki FD1S3DX D plol_cnt_s[9] 9.946 4.383 +================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 5.867 + - Clock delay at starting point: 0.000 (ideal) + = Slack (critical) : 4.079 + + Number of logic level(s): 15 + Starting point: rsl_inst.genblk1\.plol_cnt[1] / Q + Ending point: rsl_inst.genblk1\.plol_cnt[19] / D + The start point is clocked by PCSD|pll_refclki [rising] on pin CK + The end point is clocked by PCSD|pll_refclki [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[1] FD1S3DX Q Out 0.907 0.907 - +plol_cnt[1] Net - - - - 2 +rsl_inst.genblk1\.un1_plol_cnt_tc_10 ORCALUT4 A In 0.000 0.907 - +rsl_inst.genblk1\.un1_plol_cnt_tc_10 ORCALUT4 Z Out 0.606 1.513 - +un1_plol_cnt_tc_10 Net - - - - 1 +rsl_inst.genblk1\.un1_plol_cnt_tc_14 ORCALUT4 D In 0.000 1.513 - +rsl_inst.genblk1\.un1_plol_cnt_tc_14 ORCALUT4 Z Out 0.606 2.119 - +un1_plol_cnt_tc_14 Net - - - - 1 +rsl_inst.genblk1\.un1_plol_cnt_tc ORCALUT4 D In 0.000 2.119 - +rsl_inst.genblk1\.un1_plol_cnt_tc ORCALUT4 Z Out 0.762 2.881 - +un1_plol_cnt_tc Net - - - - 5 +rsl_inst.genblk1\.plol_cnt11_i ORCALUT4 B In 0.000 2.881 - +rsl_inst.genblk1\.plol_cnt11_i ORCALUT4 Z Out 0.840 3.721 - +plol_cnt Net - - - - 21 +rsl_inst.genblk1\.plol_cnt_cry_0[0] CCU2C A1 In 0.000 3.721 - +rsl_inst.genblk1\.plol_cnt_cry_0[0] CCU2C COUT Out 0.900 4.621 - +plol_cnt_cry[0] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[1] CCU2C CIN In 0.000 4.621 - +rsl_inst.genblk1\.plol_cnt_cry_0[1] CCU2C COUT Out 0.061 4.682 - +plol_cnt_cry[2] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[3] CCU2C CIN In 0.000 4.682 - +rsl_inst.genblk1\.plol_cnt_cry_0[3] CCU2C COUT Out 0.061 4.743 - +plol_cnt_cry[4] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[5] CCU2C CIN In 0.000 4.743 - +rsl_inst.genblk1\.plol_cnt_cry_0[5] CCU2C COUT Out 0.061 4.804 - +plol_cnt_cry[6] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[7] CCU2C CIN In 0.000 4.804 - +rsl_inst.genblk1\.plol_cnt_cry_0[7] CCU2C COUT Out 0.061 4.865 - +plol_cnt_cry[8] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[9] CCU2C CIN In 0.000 4.865 - +rsl_inst.genblk1\.plol_cnt_cry_0[9] CCU2C COUT Out 0.061 4.926 - +plol_cnt_cry[10] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[11] CCU2C CIN In 0.000 4.926 - +rsl_inst.genblk1\.plol_cnt_cry_0[11] CCU2C COUT Out 0.061 4.987 - +plol_cnt_cry[12] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[13] CCU2C CIN In 0.000 4.987 - +rsl_inst.genblk1\.plol_cnt_cry_0[13] CCU2C COUT Out 0.061 5.048 - +plol_cnt_cry[14] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[15] CCU2C CIN In 0.000 5.048 - +rsl_inst.genblk1\.plol_cnt_cry_0[15] CCU2C COUT Out 0.061 5.109 - +plol_cnt_cry[16] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[17] CCU2C CIN In 0.000 5.109 - +rsl_inst.genblk1\.plol_cnt_cry_0[17] CCU2C COUT Out 0.061 5.170 - +plol_cnt_cry[18] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_s_0[19] CCU2C CIN In 0.000 5.170 - +rsl_inst.genblk1\.plol_cnt_s_0[19] CCU2C S0 Out 0.698 5.867 - +plol_cnt_s[19] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt[19] FD1S3DX D In 0.000 5.867 - +======================================================================================================= + + + + +==================================== +Detailed Report for Clock: PCSD|rxrefclk +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rlol1_cnt[14] PCSD|rxrefclk FD1P3DX Q rlol1_cnt[14] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[15] PCSD|rxrefclk FD1P3DX Q rlol1_cnt[15] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[16] PCSD|rxrefclk FD1P3DX Q rlol1_cnt[16] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[17] PCSD|rxrefclk FD1P3DX Q rlol1_cnt[17] 0.907 4.136 +rsl_inst.genblk2\.rlols0_cnt[7] PCSD|rxrefclk FD1P3DX Q rlols0_cnt[7] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[8] PCSD|rxrefclk FD1P3DX Q rlols0_cnt[8] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[9] PCSD|rxrefclk FD1P3DX Q rlols0_cnt[9] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[10] PCSD|rxrefclk FD1P3DX Q rlols0_cnt[10] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[11] PCSD|rxrefclk FD1P3DX Q rlols0_cnt[11] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[14] PCSD|rxrefclk FD1P3DX Q rlols0_cnt[14] 0.907 4.170 +=============================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------------------------------------ +rsl_inst.genblk2\.rlol1_cnt[17] PCSD|rxrefclk FD1P3DX D rlol1_cnt_s[17] 9.946 4.136 +rsl_inst.genblk2\.rlol1_cnt[18] PCSD|rxrefclk FD1P3DX D rlol1_cnt_s[18] 9.946 4.136 +rsl_inst.genblk2\.rlols0_cnt[17] PCSD|rxrefclk FD1P3DX D rlols0_cnt_s[17] 9.946 4.170 +rsl_inst.genblk2\.rlol1_cnt[15] PCSD|rxrefclk FD1P3DX D rlol1_cnt_s[15] 9.946 4.197 +rsl_inst.genblk2\.rlol1_cnt[16] PCSD|rxrefclk FD1P3DX D rlol1_cnt_s[16] 9.946 4.197 +rsl_inst.genblk2\.rlols0_cnt[15] PCSD|rxrefclk FD1P3DX D rlols0_cnt_s[15] 9.946 4.231 +rsl_inst.genblk2\.rlols0_cnt[16] PCSD|rxrefclk FD1P3DX D rlols0_cnt_s[16] 9.946 4.231 +rsl_inst.genblk2\.rlol1_cnt[13] PCSD|rxrefclk FD1P3DX D rlol1_cnt_s[13] 9.946 4.258 +rsl_inst.genblk2\.rlol1_cnt[14] PCSD|rxrefclk FD1P3DX D rlol1_cnt_s[14] 9.946 4.258 +rsl_inst.genblk2\.rlols0_cnt[13] PCSD|rxrefclk FD1P3DX D rlols0_cnt_s[13] 9.946 4.292 +================================================================================================================== + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 5.809 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : 4.136 + + Number of logic level(s): 14 + Starting point: rsl_inst.genblk2\.rlol1_cnt[14] / Q + Ending point: rsl_inst.genblk2\.rlol1_cnt[18] / D + The start point is clocked by PCSD|rxrefclk [rising] on pin CK + The end point is clocked by PCSD|rxrefclk [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +-------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rlol1_cnt[14] FD1P3DX Q Out 0.907 0.907 - +rlol1_cnt[14] Net - - - - 2 +rsl_inst.rlol1_cnt_tc_1_10 ORCALUT4 A In 0.000 0.907 - +rsl_inst.rlol1_cnt_tc_1_10 ORCALUT4 Z Out 0.606 1.513 - +rlol1_cnt_tc_1_10 Net - - - - 1 +rsl_inst.rlol1_cnt_tc_1_14 ORCALUT4 D In 0.000 1.513 - +rsl_inst.rlol1_cnt_tc_1_14 ORCALUT4 Z Out 0.606 2.119 - +rlol1_cnt_tc_1_14 Net - - - - 1 +rsl_inst.rlol1_cnt_tc_1 ORCALUT4 D In 0.000 2.119 - +rsl_inst.rlol1_cnt_tc_1 ORCALUT4 Z Out 0.768 2.887 - +rlol1_cnt_tc_1 Net - - - - 6 +rsl_inst.genblk2\.rlos_db_p1_RNIS0OP ORCALUT4 A In 0.000 2.887 - +rsl_inst.genblk2\.rlos_db_p1_RNIS0OP ORCALUT4 Z Out 0.837 3.724 - +rlol1_cnt Net - - - - 20 +rsl_inst.genblk2\.rlol1_cnt_cry_0[0] CCU2C A1 In 0.000 3.724 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[0] CCU2C COUT Out 0.900 4.624 - +rlol1_cnt_cry[0] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[1] CCU2C CIN In 0.000 4.624 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[1] CCU2C COUT Out 0.061 4.685 - +rlol1_cnt_cry[2] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[3] CCU2C CIN In 0.000 4.685 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[3] CCU2C COUT Out 0.061 4.746 - +rlol1_cnt_cry[4] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[5] CCU2C CIN In 0.000 4.746 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[5] CCU2C COUT Out 0.061 4.807 - +rlol1_cnt_cry[6] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[7] CCU2C CIN In 0.000 4.807 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[7] CCU2C COUT Out 0.061 4.868 - +rlol1_cnt_cry[8] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[9] CCU2C CIN In 0.000 4.868 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[9] CCU2C COUT Out 0.061 4.929 - +rlol1_cnt_cry[10] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[11] CCU2C CIN In 0.000 4.929 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[11] CCU2C COUT Out 0.061 4.990 - +rlol1_cnt_cry[12] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[13] CCU2C CIN In 0.000 4.990 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[13] CCU2C COUT Out 0.061 5.051 - +rlol1_cnt_cry[14] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[15] CCU2C CIN In 0.000 5.051 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[15] CCU2C COUT Out 0.061 5.112 - +rlol1_cnt_cry[16] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[17] CCU2C CIN In 0.000 5.112 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[17] CCU2C S1 Out 0.698 5.809 - +rlol1_cnt_s[18] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt[18] FD1P3DX D In 0.000 5.809 - +======================================================================================================== + + + + +==================================== +Detailed Report for Clock: PCSD|tx_pclk_inferred_clock +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------------------------------------ +sll_inst.ppul_sync_p1 PCSD|tx_pclk_inferred_clock FD1S3DX Q ppul_sync_p1 1.098 5.789 +sll_inst.ppul_sync_p2 PCSD|tx_pclk_inferred_clock FD1S3DX Q ppul_sync_p2 1.098 5.789 +sll_inst.pcount_diff[0] PCSD|tx_pclk_inferred_clock FD1P3BX Q un13_lock_0 0.985 6.147 +sll_inst.pcount[0] PCSD|tx_pclk_inferred_clock FD1S3DX Q pcount[0] 0.955 6.178 +sll_inst.pcount_diff[1] PCSD|tx_pclk_inferred_clock FD1P3BX Q un13_lock_1 0.955 6.239 +sll_inst.pcount_diff[2] PCSD|tx_pclk_inferred_clock FD1P3BX Q un13_lock_2 0.955 6.239 +sll_inst.pcount[1] PCSD|tx_pclk_inferred_clock FD1S3DX Q pcount[1] 0.907 6.287 +sll_inst.pcount[2] PCSD|tx_pclk_inferred_clock FD1S3DX Q pcount[2] 0.907 6.287 +sll_inst.pcount_diff[3] PCSD|tx_pclk_inferred_clock FD1P3BX Q un13_lock_3 0.955 6.300 +sll_inst.pcount_diff[4] PCSD|tx_pclk_inferred_clock FD1P3BX Q un13_lock_4 0.955 6.300 +================================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +----------------------------------------------------------------------------------------------------------------------------------- +sll_inst.pcount[21] PCSD|tx_pclk_inferred_clock FD1S3DX D pcount_s[21] 9.946 5.789 +sll_inst.pcount[19] PCSD|tx_pclk_inferred_clock FD1S3DX D pcount_s[19] 9.946 5.850 +sll_inst.pcount[20] PCSD|tx_pclk_inferred_clock FD1S3DX D pcount_s[20] 9.946 5.850 +sll_inst.pcount[17] PCSD|tx_pclk_inferred_clock FD1S3DX D pcount_s[17] 9.946 5.911 +sll_inst.pcount[18] PCSD|tx_pclk_inferred_clock FD1S3DX D pcount_s[18] 9.946 5.911 +sll_inst.pcount[15] PCSD|tx_pclk_inferred_clock FD1S3DX D pcount_s[15] 9.946 5.972 +sll_inst.pcount[16] PCSD|tx_pclk_inferred_clock FD1S3DX D pcount_s[16] 9.946 5.972 +sll_inst.pcount[13] PCSD|tx_pclk_inferred_clock FD1S3DX D pcount_s[13] 9.946 6.033 +sll_inst.pcount[14] PCSD|tx_pclk_inferred_clock FD1S3DX D pcount_s[14] 9.946 6.033 +sll_inst.pcount_diff[21] PCSD|tx_pclk_inferred_clock FD1P3DX D un1_pcount_diff_1_s_21_0_S0 9.946 6.034 +=================================================================================================================================== + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 4.157 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : 5.789 + + Number of logic level(s): 13 + Starting point: sll_inst.ppul_sync_p1 / Q + Ending point: sll_inst.pcount[21] / D + The start point is clocked by PCSD|tx_pclk_inferred_clock [rising] on pin CK + The end point is clocked by PCSD|tx_pclk_inferred_clock [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +-------------------------------------------------------------------------------------------- +sll_inst.ppul_sync_p1 FD1S3DX Q Out 1.098 1.098 - +ppul_sync_p1 Net - - - - 25 +sll_inst.pcount10_0_o3 ORCALUT4 A In 0.000 1.098 - +sll_inst.pcount10_0_o3 ORCALUT4 Z Out 0.851 1.950 - +N_8 Net - - - - 25 +sll_inst.pcount_cry_0[0] CCU2C A1 In 0.000 1.950 - +sll_inst.pcount_cry_0[0] CCU2C COUT Out 0.900 2.850 - +pcount_cry[0] Net - - - - 1 +sll_inst.pcount_cry_0[1] CCU2C CIN In 0.000 2.850 - +sll_inst.pcount_cry_0[1] CCU2C COUT Out 0.061 2.911 - +pcount_cry[2] Net - - - - 1 +sll_inst.pcount_cry_0[3] CCU2C CIN In 0.000 2.911 - +sll_inst.pcount_cry_0[3] CCU2C COUT Out 0.061 2.972 - +pcount_cry[4] Net - - - - 1 +sll_inst.pcount_cry_0[5] CCU2C CIN In 0.000 2.972 - +sll_inst.pcount_cry_0[5] CCU2C COUT Out 0.061 3.033 - +pcount_cry[6] Net - - - - 1 +sll_inst.pcount_cry_0[7] CCU2C CIN In 0.000 3.033 - +sll_inst.pcount_cry_0[7] CCU2C COUT Out 0.061 3.094 - +pcount_cry[8] Net - - - - 1 +sll_inst.pcount_cry_0[9] CCU2C CIN In 0.000 3.094 - +sll_inst.pcount_cry_0[9] CCU2C COUT Out 0.061 3.155 - +pcount_cry[10] Net - - - - 1 +sll_inst.pcount_cry_0[11] CCU2C CIN In 0.000 3.155 - +sll_inst.pcount_cry_0[11] CCU2C COUT Out 0.061 3.216 - +pcount_cry[12] Net - - - - 1 +sll_inst.pcount_cry_0[13] CCU2C CIN In 0.000 3.216 - +sll_inst.pcount_cry_0[13] CCU2C COUT Out 0.061 3.277 - +pcount_cry[14] Net - - - - 1 +sll_inst.pcount_cry_0[15] CCU2C CIN In 0.000 3.277 - +sll_inst.pcount_cry_0[15] CCU2C COUT Out 0.061 3.338 - +pcount_cry[16] Net - - - - 1 +sll_inst.pcount_cry_0[17] CCU2C CIN In 0.000 3.338 - +sll_inst.pcount_cry_0[17] CCU2C COUT Out 0.061 3.399 - +pcount_cry[18] Net - - - - 1 +sll_inst.pcount_cry_0[19] CCU2C CIN In 0.000 3.399 - +sll_inst.pcount_cry_0[19] CCU2C COUT Out 0.061 3.460 - +pcount_cry[20] Net - - - - 1 +sll_inst.pcount_s_0[21] CCU2C CIN In 0.000 3.460 - +sll_inst.pcount_s_0[21] CCU2C S0 Out 0.698 4.157 - +pcount_s[21] Net - - - - 1 +sll_inst.pcount[21] FD1S3DX D In 0.000 4.157 - +============================================================================================ + + + + +==================================== +Detailed Report for Clock: System +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +---------------------------------------------------------------------------------------- +DCU0_inst System DCUA CH0_FFS_RLOL rx_cdr_lol_s 0.000 9.946 +DCU0_inst System DCUA CH0_FFS_RLOS rx_los_low_s 0.000 9.946 +======================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rlol_p1 System FD1S3DX D rx_cdr_lol_s 9.946 9.946 +rsl_inst.genblk2\.rlos_p1 System FD1S3DX D rx_los_low_s 9.946 9.946 +=================================================================================================== + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 0.000 + - Clock delay at starting point: 0.000 (ideal) + - Estimated clock delay at start point: -0.000 + = Slack (non-critical) : 9.946 + + Number of logic level(s): 0 + Starting point: DCU0_inst / CH0_FFS_RLOL + Ending point: rsl_inst.genblk2\.rlol_p1 / D + The start point is clocked by System [rising] + The end point is clocked by PCSD|rxrefclk [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +--------------------------------------------------------------------------------------------------- +DCU0_inst DCUA CH0_FFS_RLOL Out 0.000 0.000 - +rx_cdr_lol_s Net - - - - 2 +rsl_inst.genblk2\.rlol_p1 FD1S3DX D In 0.000 0.000 - +=================================================================================================== + + + +##### END OF TIMING REPORT #####] + +Timing exceptions that could not be applied +None + +Finished final timing analysis (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 149MB peak: 150MB) + + +Finished timing report (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 149MB peak: 150MB) + +--------------------------------------- +Resource Usage Report +Part: lfe5um_25f-6 + +Register bits: 186 of 24288 (1%) +PIC Latch: 0 +I/O cells: 0 + + +Details: +CCU2C: 99 +DCUA: 1 +FD1P3BX: 20 +FD1P3DX: 60 +FD1S3BX: 10 +FD1S3DX: 96 +GSR: 1 +INV: 3 +ORCALUT4: 116 +PFUMX: 2 +PUR: 1 +VHI: 6 +VLO: 6 +Mapper successful! + +At Mapper Exit (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 34MB peak: 150MB) + +Process took 0h:00m:03s realtime, 0h:00m:03s cputime +# Mon Apr 29 14:56:37 2019 + +###########################################################] diff --git a/gbe/cores/sgmii/PCSD/syn_results/dm/layer0.xdm b/gbe/cores/sgmii/PCSD/syn_results/dm/layer0.xdm new file mode 100644 index 0000000..b88dcd9 --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/dm/layer0.xdm @@ -0,0 +1,513 @@ +%%% protect protected_file +@EG +- +]17p0Osk0CksRsPC#MHF=3"4j +"> +!S<-1-RFOksCHRVDRC#O0FMskHL0oHMRR0F0REC8HC#o-MR-S> +S +SS1SS1SS +SS1SS1SS1S +SF<1kCsOR"b=/lEFCF/#VD0/NH00O8C/HFNlMd8/3_4jG/nc#b$MLCN#/LDH/8PE/bE$CMsC0P#3ER8"N(=""=RD"8PEDO"RD0H#=4"-"DRbH=#0""-4/S> +SF<1kCsOR"b=/lEFC8/NsMHN/0oH/L0s6/#O0bClDCN0/Fbs[0CO/l#oHuH/B/17u7B138PE"=RN"RU"DP="E"8DRHOD#"0=-R4"b#DH0-="4>"/ +"/ +/S<1sFkO>C# +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMI="F3s u7B1s_#DOCFs3M#$_NLDOL _FRG"DP="E"8D>S +SSqS +SRSqS +SRSqSSqS"/ +"/ +S +S +SRSuS"/ + +SRSuS +SRS +SS +SS +S + + + +/S<7>CV +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMC="Okb6lB37z#q3$LM_D NO_GLF"=RD"8PED +">SWSS +S"/ +SqS +SRSqSS +SSqSS +SSuSS +SSuSS +SSuS"/ + +SR +SR +SR"/ +S +S +SR +SR"/ +"/ +S +S"/ + +SR +SR +SRSuS"/ +S +S +SR +SR +SR"/ + +SR"/ + +SRSuS"/ +SuS +SR +SR +SR +SR +SRSuS"/ +S +S +SR"/ + +SR +SR +SR +SR +SRS +S"/ +SuS +SR"/ + +SR"/ + +SRS +S"/ +S +S +SR"/ + +SRS +S"/ + +SR"/ + +SR"/ +S +S +SRSuSS +S"/ +SuS +SR +SR +SR"/ +S +S +SRSuS"/ +"/ +"/ +"/ +"/ +S +S +SR"/ +"/ +"/ +SuS +SR +SR +SR"/ + +SR +SR +SRSuS"/ +S +S +SR +SR +SR +SR +SRS +S"/ +"/ +"/ +SuS +SR"/ + +SRSuS"/ + +SR"/ +SuS +SRS +S"/ +SuS +SRSuS"/ +S +S +SRS +S"/ +S +S +SRSuS"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ + +SR"/ +S +S +SRSuS"/ +SuS +SR +SR +SR +SR +SRSuS"/ +S +S +SRS +S"/ +"/ +"/ +SuS +SR"/ + +SR +SR +SR +SR +SRS +S"/ +SuS +SRS +S"/ +SuS +SRS +S"/ +"/ +"/ +SuS +SRS +S"/ +"/ +"/ +SuS +SRS +S"/ +SuS +SR"/ + +SRSuS"/ + +SR"/ +SuS +SRS +S"/ +SuS +SRSuS"/ +S +S +SRSuS"/ +"/ +"/ +"/ +"/ + +SR"/ +S +S +SRS +S"/ + +SR"/ + +SR"/ +"/ +"/ +S +S +SR"/ + +SR +SR +SRSuSSuSSuS +SR"/ + +SR"/ +"/ +SuS +SRS +S"/ +SqS"/ +"/ +"/ +SqSSqSSqSSqS + + + +/S<7>CV +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMI="F3s u7B13"P4R"D=PDE8"S> +SRSqS +SRSqSSqSSqS +SR"/ +S +S + +SC<)V=RM"bCO63kl7qBz3M#$_NLDOL _FRG"H7="B_zjH0M#"S> +SWS +SqSS +SSR +SqSS +SqSS +SSR"/ +SSSS"/ +SSS +SqSS +SSRS +SqS +SqS +SqSSSS +SSR +SqS +SqS"/ +SSS +SqSS +SSR +SqS"/ +SSS"/ +SSS"/ +SSSS +SSR +SqS"/ +SSSS +SqSS +SSRS"/ +SSS +SqSS +SSR"/ +SSSSS +SqSS +SSR +SqSS"/ +SSSS +SSR +SqSSS +SSRSS +SqSS +SqS"/ +SSSS +SSRS +SSRS +SSR"/ +SSSS +SSRS +SqS +SqSS"/ +SSSS +SSR +SqSS"/ +SSS +SqS"/ +SSSS +SSR +SqSS"/ +SSS +SqSS +SqSS"/ +SSSS +SSRS +SSR"/ +SSS +SqSSS +SSR"/ +SSS"/ +SSSSSS"/ +SSSS +SSRS +SSR"/ +SSSS +SSR"/ +SSS +SqSS +SSRS +SqSSS +SSR +SqS"/ +SSSS +SSR +SqS +SqS +SqSS +SqS"/ +SSSS +SqSS +SSR"/ +SSSS +SqSSS +SSRS +SSR +SqSS +SSR +SqS"/ +SSSSS +SSR"/ +SSSS +SSR +SqSS +SSR +SqS"/ +SSS +SqS +SqSS"/ +SSS"/ +SSS +SqSS +SSR"/ +SSS +SqSS +SSRS +SSRS +SqSS +SSR +SqS"/ +SSS"/ +SSSSS +SSRSS +SqSS +S +SC<)V=RM"sIF B3u1#7sDF_Os#C3$LM_D NO_GLF"=RH"Ds#_#HM0 +">SS"/ +< +S/V7C>/ +<]17p0Osk0Cks> +@ diff --git a/gbe/cores/sgmii/PCSD/syn_results/dm/layer1.xdm b/gbe/cores/sgmii/PCSD/syn_results/dm/layer1.xdm new file mode 100644 index 0000000..4f635ad --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/dm/layer1.xdm @@ -0,0 +1,65 @@ +%%% protect protected_file +@EG +- +]17p0Osk0CksRsPC#MHF=3"4j +"> +!S<-1-RFOksCHRVDRC#O0FMskHL0oHMRR0F0REC8HC#o-MR-S> +S +S +SF<1kCsOR"b=/lEFCF/#VD0/NH00O8C/HFNlMd8/3_4jG/nc#b$MLCN#/LDH/ODkC/M0b_lH83CVPN"R=""4R"D=PHCsD"FoRHOD#"0=-R4"b#DH0-="4>"/ + +SF<1kCsOR"b=/lEFCF/#VD0/NH00O8C/HFNlMd8/3_4jG/nc#b$MLCN#/LDH/FPDol/ksN_Ob3HlPN"R=""dR"D=PHCsD"FoRHOD#"0=-R4"b#DH0-="4>"/ + +SF<1kCsOR"b=/lEFCF/#VD0/NH00O8C/HFNlMd8/3_4jG/nc#b$MLCN#/LDH/FPDoO/#C_lHbCHb#P3#EN"R=""6R"D=PHCsD"FoRHOD#"0=-R4"b#DH0-="4>"/ +< +S/k1Fs#OC> + + + +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMI="F3s u7B1s_#DOCFs__Z4DCN$sP43CDsHFRo"DP="CDsHF>o" +S +S +SRS +SS +S"/ +S +SSuS"/ +S +S +SRSuSS +SS +S"/ +"/ +SuSS +S"/ +"/ +SuS +SRS +SSuSS +SSuSS +S"/ + +SR"/ + +SR"/ +S +SS +SS +SS +S +/S<7>CV +]sC + +@ diff --git a/gbe/cores/sgmii/PCSD/syn_results/run_options.txt b/gbe/cores/sgmii/PCSD/syn_results/run_options.txt new file mode 100644 index 0000000..9fc0ce0 --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/run_options.txt @@ -0,0 +1,76 @@ +#-- Synopsys, Inc. +#-- Version M-2017.03L-SP1-1 +#-- Project file /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/run_options.txt +#-- Written on Tue Apr 30 12:09:44 2019 + + +#project files +add_file -vhdl -lib work "/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd" +add_file -verilog "/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v" +add_file -fpga_constraint "/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.fdc" + + + +#implementation: "syn_results" +impl -add syn_results -type fpga + +# +#implementation attributes + +set_option -vlog_std v2001 + +#device options +set_option -technology ecp5um +set_option -part LFE5UM_25F +set_option -package MG285C +set_option -speed_grade -6 +set_option -part_companion "" + +#compilation/mapping options +set_option -top_module "PCSD" + +# hdl_compiler_options +set_option -distributed_compile 0 + +# mapper_without_write_options +set_option -frequency 100 +set_option -srs_instrumentation 1 + +# mapper_options +set_option -write_verilog 1 +set_option -write_vhdl 1 + +# Lattice XP +set_option -maxfan 50 +set_option -disable_io_insertion 1 +set_option -retiming 0 +set_option -pipe 0 +set_option -forcegsr false +set_option -fix_gated_and_generated_clocks 1 +set_option -rw_check_on_ram 1 +set_option -update_models_cp 0 +set_option -syn_edif_array_rename 1 +set_option -Write_declared_clocks_only 1 + +# NFilter +set_option -no_sequential_opt 0 + +# sequential_optimization_options +set_option -symbolic_fsm_compiler 1 + +# Compiler Options +set_option -compiler_compatible 0 +set_option -resource_sharing 1 + +# Compiler Options +set_option -auto_infer_blackbox 0 + +#automatic place and route (vendor) options +set_option -write_apr_constraint 1 + +#set result format/file last +project -result_file "./PCSD.edn" + +#set log file +set_option log_file "/home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/PCSD.srf" +impl -active "syn_results" diff --git a/gbe/cores/sgmii/PCSD/syn_results/scemi_cfg.txt b/gbe/cores/sgmii/PCSD/syn_results/scemi_cfg.txt new file mode 100644 index 0000000..868d437 --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/scemi_cfg.txt @@ -0,0 +1,3 @@ +## UMR3 MESSAGE PORT CONFIGURATION FILE +## ************************************ +XTOR_DPI_MSG_PORT_UMR_ADDR_VERSION=0 diff --git a/gbe/cores/sgmii/PCSD/syn_results/scratchproject.prs b/gbe/cores/sgmii/PCSD/syn_results/scratchproject.prs new file mode 100644 index 0000000..1a2e57f --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/scratchproject.prs @@ -0,0 +1,74 @@ +#-- Synopsys, Inc. +#-- Version M-2017.03L-SP1-1 +#-- Project file /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/scratchproject.prs + +#project files +add_file -vhdl -lib work "/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd" +add_file -verilog "/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v" +add_file -fpga_constraint "/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.fdc" + + + +#implementation: "syn_results" +impl -add /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results -type fpga + +# +#implementation attributes + +set_option -vlog_std v2001 + +#device options +set_option -technology ecp5um +set_option -part LFE5UM_25F +set_option -package MG285C +set_option -speed_grade -6 +set_option -part_companion "" + +#compilation/mapping options +set_option -top_module "PCSD" + +# hdl_compiler_options +set_option -distributed_compile 0 + +# mapper_without_write_options +set_option -frequency 100 +set_option -srs_instrumentation 1 + +# mapper_options +set_option -write_verilog 1 +set_option -write_vhdl 1 + +# Lattice XP +set_option -maxfan 50 +set_option -disable_io_insertion 1 +set_option -retiming 0 +set_option -pipe 0 +set_option -forcegsr false +set_option -fix_gated_and_generated_clocks 1 +set_option -rw_check_on_ram 1 +set_option -update_models_cp 0 +set_option -syn_edif_array_rename 1 +set_option -Write_declared_clocks_only 1 + +# NFilter +set_option -no_sequential_opt 0 + +# sequential_optimization_options +set_option -symbolic_fsm_compiler 1 + +# Compiler Options +set_option -compiler_compatible 0 +set_option -resource_sharing 1 + +# Compiler Options +set_option -auto_infer_blackbox 0 + +#automatic place and route (vendor) options +set_option -write_apr_constraint 1 + +#set result format/file last +project -result_file "/home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/PCSD.edn" + +#set log file +set_option log_file "/home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/PCSD.srf" +impl -active "syn_results" diff --git a/gbe/cores/sgmii/PCSD/syn_results/synlog/PCSD_compiler.srr b/gbe/cores/sgmii/PCSD/syn_results/synlog/PCSD_compiler.srr new file mode 100644 index 0000000..cd2e67c --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/synlog/PCSD_compiler.srr @@ -0,0 +1,201 @@ +Synopsys HDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Synopsys VHDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd":24:7:24:10|Top entity is set to PCSD. +VHDL syntax check successful! +File /home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd changed - recompiling + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 70MB peak: 72MB) + + +Process completed successfully. +# Tue Apr 30 12:09:44 2019 + +###########################################################] +Synopsys Verilog Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps) +@I::"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v" (library work) +Verilog syntax check successful! + +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB) + + +Process completed successfully. +# Tue Apr 30 12:09:45 2019 + +###########################################################] +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd":24:7:24:10|Top entity is set to PCSD. +File /home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd changed - recompiling +File /home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd changed - recompiling +VHDL syntax check successful! +File /home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd changed - recompiling +@N: CD630 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd":24:7:24:10|Synthesizing work.pcsd.v1. +Post processing for work.pcsd.v1 + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 74MB peak: 76MB) + + +Process completed successfully. +# Tue Apr 30 12:09:45 2019 + +###########################################################] +Running on host :lxhadeb07 +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps) +@I::"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v" (library work) +Verilog syntax check successful! +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +@N: CG364 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":92:7:92:18|Synthesizing module PCSDrsl_core in library work. + + pnum_channels=32'b00000000000000000000000000000001 + pprotocol=24'b010001110100001001000101 + pserdes_mode=72'b010100100101100000100000010000010100111001000100001000000101010001011000 + pport_tx_rdy=64'b0100010001001001010100110100000101000010010011000100010101000100 + pwait_tx_rdy=32'b00000000000000000000101110111000 + pport_rx_rdy=64'b0100010001001001010100110100000101000010010011000100010101000100 + pwait_rx_rdy=32'b00000000000000000000101110111000 + wa_num_cycles=32'b00000000000000000000010000000000 + dac_num_cycles=32'b00000000000000000000000000000011 + lreset_pwidth=32'b00000000000000000000000000000011 + lwait_b4_trst=32'b00000000000010111110101111000010 + lwait_b4_trst_s=32'b00000000000000000000001100001101 + lplol_cnt_width=32'b00000000000000000000000000010100 + lwait_after_plol0=32'b00000000000000000000000000000100 + lwait_b4_rrst=32'b00000000000000101100000000000000 + lrrst_wait_width=32'b00000000000000000000000000010100 + lwait_after_rrst=32'b00000000000011000011010100000000 + lwait_b4_rrst_s=32'b00000000000000000000000111001100 + lrlol_cnt_width=32'b00000000000000000000000000010011 + lwait_after_lols=32'b00000000000000001100010000000000 + lwait_after_lols_s=32'b00000000000000000000000010010110 + llols_cnt_width=32'b00000000000000000000000000010010 + lrdb_max=32'b00000000000000000000000000001111 + ltxr_wait_width=32'b00000000000000000000000000001100 + lrxr_wait_width=32'b00000000000000000000000000001100 + Generated name = PCSDrsl_core_Z1_layer1 +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":274:33:274:48|Removing wire dual_or_serd_rst, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":275:33:275:46|Removing wire tx_any_pcs_rst, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":276:33:276:42|Removing wire tx_any_rst, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":277:33:277:41|Object txsr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":278:33:278:42|Object txdpr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":279:33:279:41|Object txpr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":280:33:280:41|Object txr_wt_en is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":281:33:281:42|Object txr_wt_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":282:33:282:41|Removing wire txr_wt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":283:33:283:43|Object ruo_tx_rdyr is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":326:33:326:40|Object rrst_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":327:33:327:43|Removing wire rrst_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":328:33:328:41|Object rrst_wait is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":341:33:341:39|Object rxp_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":342:33:342:39|Object rxp_rst is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":343:33:343:42|Removing wire rxp_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":346:33:346:42|Object rlolsz_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":347:33:347:45|Removing wire rlolsz_cnt_tc, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":350:33:350:43|Removing wire rxp_cnt2_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":351:33:351:47|Object data_loop_b_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":352:33:352:43|Object data_loop_b is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":353:33:353:46|Removing wire data_loop_b_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":356:33:356:41|Object rxsr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":357:33:357:41|Object rxpr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":358:33:358:42|Object rxsdr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":359:33:359:42|Object rxdpr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":360:33:360:48|Removing wire rxsdr_or_sr_appd, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":361:33:361:49|Removing wire dual_or_rserd_rst, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":362:33:362:46|Removing wire rx_any_pcs_rst, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":363:33:363:42|Removing wire rx_any_rst, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":364:33:364:41|Object rxr_wt_en is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":365:33:365:42|Object rxr_wt_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":366:33:366:41|Removing wire rxr_wt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":367:33:367:43|Object ruo_rx_rdyr is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":507:10:507:10|Object m is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":880:10:880:10|Object l is declared but not assigned. Either assign a value or remove the declaration. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":806:3:806:8|Pruning unused register genblk2.rxp_cnt2[2:0]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlol_p3. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlos_p3. Make sure that there are no unused intermediate registers. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":694:3:694:8|Optimizing register bit genblk2.rxs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":461:3:461:8|Optimizing register bit genblk1.txp_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":422:3:422:8|Optimizing register bit genblk1.txs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":422:3:422:8|Pruning register bit 2 of genblk1.txs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":461:3:461:8|Pruning register bit 2 of genblk1.txp_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":694:3:694:8|Pruning register bit 2 of genblk2.rxs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":200:33:200:48|Input port bits 3 to 1 of rui_tx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":204:33:204:51|Input port bits 3 to 1 of rui_rx_serdes_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":205:33:205:48|Input port bits 3 to 1 of rui_rx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":206:33:206:48|Input port bits 3 to 1 of rdi_rx_los_low_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":207:33:207:48|Input port bits 3 to 1 of rdi_rx_cdr_lol_s[3:0] are unused. Assign logic for all port bits or change the input port size. + +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 73MB peak: 75MB) + + +Process completed successfully. +# Tue Apr 30 12:09:45 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +File /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synwork/layer0.srs changed - recompiling +File /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synwork/layer1.srs changed - recompiling + +======================================================================================= +For a summary of linker messages for components that did not bind, please see log file: +@L: /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synwork/PCSD_comp.linkerlog +======================================================================================= + + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Tue Apr 30 12:09:46 2019 + +###########################################################] +@END + +At c_hdl Exit (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 3MB peak: 4MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Tue Apr 30 12:09:46 2019 + +###########################################################] diff --git a/gbe/cores/sgmii/PCSD/syn_results/synlog/PCSD_compiler.srr.db b/gbe/cores/sgmii/PCSD/syn_results/synlog/PCSD_compiler.srr.db new file mode 100644 index 0000000000000000000000000000000000000000..64aab840978977f4a582ac1d60aca86e02f0c33d GIT binary patch literal 20480 zcmeHP&2JmW6(=Rqlq|_i(%5dBx*aQ(W5)`~{osd~2B_pXjwBj(EC)Uq!D7iBQClr{ z7qdf3G6WP93N$eK7xdQl-b;~N3-sJ;kv||n?*)n?K-x>+%q&gHN+eO4u@Q6$d!Mx; zx$pO8=FPnKd(RsmHC&3(WA~VMx``g+zL9lXgkEU{bJjtMM|3Gs8yu66M8nq#gGKQ zz%5#g+8x&|-oLf+KEGH|ut~k3?Y0WN`MP0N>xRLFS>AtuJ3-I&+i1rn7!fb{0Q_I0E&nDPG%`OEUX{;o63h1`Wl#g#98^+t~ViXWW7-r0%#UHn+8~7t= z7GCFQ(y|Q?R%eDc7@Fq{zZ;&x>K}fO>v>1E)pemKh^1#%2L(w)m6`m**VI7K1QZa5 zpuh}Q24(G44rN{PsOU8g1%#4>t z7!CH7O`x^&O2AZ?I2aJ4U_xTqVF+hHMTd*^X(jWl%C`p{#OOS8RHIp&QZqDsf6%M2 zKRny)=x(HVXclrDjO25lUgdiT6GzT{;CgL;kDaW>Ic?uK$Mu|+>`|*_u^!5GvvS0v zay`RVG_I~Uvs~9X*}9rSSF>)`p3~Lo+MX2Jp z_bbNP1HnRX%bBn1Ca41!t#nu&{yZ3Ar_j^Hb2IxB@Z7iVu;*6w!E;$OS%i3#x-DFE zT)PwaPSGf6C2O~07Nb2sY}yen0*oR&uNYDILiSuuH^2m3=-U1UhA#jkP`3kdCyoNI z%c3wAS%wiuo!N)D|3yC?BKXYPaGAWsxcN&E(&rEInG3&}`*#xmC-MKcOuQuV|2L*w zlKB6mv|SSaADe+p;{THpze)Um>;zg*;{Ox5gCzcE49K@57n1n@WR8jj{w&Xw#Q$H* zwk7euUQOcv@rmFh{y%m0Vfn8t{(n97k5vBAghuCr@x|32xm8UfVx zyAjaz1h?IY0xjRhe$(653#{b83XKA~Yj0x|bs+~vx1ixd6dnMz&nge%4?|f7CLIhp zCuqzVd{Z<++&{R%;aGCv)Jl-Rt+VSX;0PjLf2`L_pU45Va-C;T-(?w8d9@Wa;Bd53 zU5Ei2=qY18R^CzpqFkyn5JC(nWKpGb*A^3d9k?2xPxOx!7Bie|P%1)g3zt7=3l6&?y%3?PF zVO9sn<`Foo{8AaDYnM4B*%hT_v15QZT2UIuWaCXG7XQy?K2PPf3%BMzo^8*x&Rf%u zr)ci!xj$t848KTTi3Ji1Bo_ECS)lJ!xc6nn*bUvRNJ{wWkcVM>4G1`|ulgZ0OsH zTDttU=-zRM4}y|9Jdy}>%4%SWN>0cGo(85DL;!O~B}`KdOi>70g51clquJ%783(ym zOWA0)4F>ZdD|^xk4yk0;%i3|1R={M@G3Mp33XwXxngQj9BfZ4K>0_2BAccx#gflt^*ZKGD;N7RN8uv9<~1GJ5C$Y-(3 zZ?`aH+``b?6YnE7tP=!P-&P1!+?e$6d$83*9XFJE4n8oP_5JO4l%O4%^(Uj{t+tQ# g7lC$B1=>+RcRX64S6|@RHf}PsFPTh^WRc1L0}i|FPXGV_ literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/PCSD/syn_results/synlog/PCSD_compiler.srr.rptmap b/gbe/cores/sgmii/PCSD/syn_results/synlog/PCSD_compiler.srr.rptmap new file mode 100644 index 0000000..0168f12 --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/synlog/PCSD_compiler.srr.rptmap @@ -0,0 +1 @@ +./synlog/PCSD_compiler.srr,PCSD_compiler.srr,Compile Log diff --git a/gbe/cores/sgmii/PCSD/syn_results/synlog/PCSD_fpga_mapper.srr b/gbe/cores/sgmii/PCSD/syn_results/synlog/PCSD_fpga_mapper.srr new file mode 100644 index 0000000..da6761e --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/synlog/PCSD_fpga_mapper.srr @@ -0,0 +1,537 @@ +# Tue Apr 30 12:09:48 2019 + +Synopsys Lattice Technology Mapper, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 100MB) + +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 113MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 115MB) + + + +Starting Optimization and Mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Available hyper_sources - for debug and ip models + None Found + + +Finished RTL optimizations (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":412:3:412:8|Found counter in view:work.PCSDrsl_core_Z1_layer1(verilog) instance genblk1\.plol_cnt[19:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":778:3:778:8|Found counter in view:work.PCSDrsl_core_Z1_layer1(verilog) instance genblk2\.rlols0_cnt[17:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":680:3:680:8|Found counter in view:work.PCSDrsl_core_Z1_layer1(verilog) instance genblk2\.rlol1_cnt[18:0] + +Starting factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 143MB) + + +Starting gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 143MB) + + +Finished gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 143MB) + + +Finished generic timing optimizations - Pass 1 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 143MB) + + +Starting Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 143MB) + + +Finished Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 143MB) + + +Finished generic timing optimizations - Pass 2 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 143MB) + + +Finished preparing to map (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 143MB) + + +Finished technology mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + +Pass CPU time Worst Slack Luts / Registers +------------------------------------------------------------ + 1 0h:00m:00s 5.36ns 63 / 92 + +Finished technology timing optimizations and critical path resynthesis (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + +@N: FX164 |The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute. + +Finished restoring hierarchy (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 143MB peak: 144MB) + + + +@S |Clock Optimization Summary + + +#### START OF CLOCK OPTIMIZATION REPORT #####[ + +2 non-gated/non-generated clock tree(s) driving 92 clock pin(s) of sequential element(s) +0 gated/generated clock tree(s) driving 0 clock pin(s) of sequential element(s) +0 instances converted, 0 sequential instances remain driven by gated/generated clocks + +=================================== Non-Gated/Non-Generated Clocks ==================================== +Clock Tree ID Driving Element Drive Element Type Fanout Sample Instance +------------------------------------------------------------------------------------------------------- +@K:CKID0001 rxrefclk port 59 rsl_inst.genblk2\.rlol1_cnt[18] +@K:CKID0002 pll_refclki port 33 rsl_inst.genblk1\.pll_lol_p1 +======================================================================================================= + + +##### END OF CLOCK OPTIMIZATION REPORT ######] + + +Start Writing Netlists (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 107MB peak: 144MB) + +Writing Analyst data base /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synwork/PCSD_m.srm + +Finished Writing Netlist Databases (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 142MB peak: 144MB) + +Writing EDIF Netlist and constraint files +@N: FX1056 |Writing EDF file: /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/PCSD.edn +M-2017.03L-SP1-1 +@N: BW106 |Synplicity Constraint File capacitance units using default value of 1pF + +Finished Writing EDIF Netlist and constraint files (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:02s; Memory used current: 146MB peak: 148MB) + +Writing Verilog Simulation files + +Finished Writing Verilog Simulation files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 146MB peak: 148MB) + +Writing VHDL Simulation files + +Finished Writing VHDL Simulation files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 147MB peak: 148MB) + + +Start final timing analysis (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 147MB peak: 148MB) + +@W: MT246 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd":118:4:118:12|Blackbox DCUA is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) +@W: MT420 |Found inferred clock PCSD|rxrefclk with period 10.00ns. Please declare a user-defined clock on object "p:rxrefclk" +@W: MT420 |Found inferred clock PCSD|pll_refclki with period 10.00ns. Please declare a user-defined clock on object "p:pll_refclki" + + +##### START OF TIMING REPORT #####[ +# Timing Report written on Tue Apr 30 12:09:50 2019 +# + + +Top view: PCSD +Requested Frequency: 100.0 MHz +Wire load mode: top +Paths requested: 5 +Constraint File(s): /home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.fdc + +@N: MT320 |This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. + +@N: MT322 |Clock constraints include only register-to-register paths associated with each individual clock. + + + +Performance Summary +******************* + + +Worst slack in design: 4.079 + +@N: MT286 |System clock period 0.000 stretches to negative invalid value -- ignoring stretching. + Requested Estimated Requested Estimated Clock Clock +Starting Clock Frequency Frequency Period Period Slack Type Group +------------------------------------------------------------------------------------------------------------------------- +PCSD|pll_refclki 100.0 MHz 168.9 MHz 10.000 5.921 4.079 inferred Inferred_clkgroup_0 +PCSD|rxrefclk 100.0 MHz 170.5 MHz 10.000 5.864 4.136 inferred Inferred_clkgroup_1 +System 100.0 MHz 18518.5 MHz 10.000 0.054 9.946 system system_clkgroup +========================================================================================================================= + + + + + +Clock Relationships +******************* + +Clocks | rise to rise | fall to fall | rise to fall | fall to rise +--------------------------------------------------------------------------------------------------------------------------- +Starting Ending | constraint slack | constraint slack | constraint slack | constraint slack +--------------------------------------------------------------------------------------------------------------------------- +System System | 10.000 10.000 | No paths - | No paths - | No paths - +System PCSD|rxrefclk | 10.000 9.946 | No paths - | No paths - | No paths - +PCSD|pll_refclki System | 10.000 8.385 | No paths - | No paths - | No paths - +PCSD|pll_refclki PCSD|pll_refclki | 10.000 4.079 | No paths - | No paths - | No paths - +PCSD|rxrefclk System | 10.000 8.283 | No paths - | No paths - | No paths - +PCSD|rxrefclk PCSD|rxrefclk | 10.000 4.136 | No paths - | No paths - | No paths - +=========================================================================================================================== + Note: 'No paths' indicates there are no paths in the design for that pair of clock edges. + 'Diff grp' indicates that paths exist but the starting clock and ending clock are in different clock groups. + + + +Interface Information +********************* + +No IO constraint found + + + +==================================== +Detailed Report for Clock: PCSD|pll_refclki +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +-------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[1] PCSD|pll_refclki FD1S3DX Q plol_cnt[1] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[6] PCSD|pll_refclki FD1S3DX Q plol_cnt[6] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[7] PCSD|pll_refclki FD1S3DX Q plol_cnt[7] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[12] PCSD|pll_refclki FD1S3DX Q plol_cnt[12] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[2] PCSD|pll_refclki FD1S3DX Q plol_cnt[2] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[3] PCSD|pll_refclki FD1S3DX Q plol_cnt[3] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[4] PCSD|pll_refclki FD1S3DX Q plol_cnt[4] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[5] PCSD|pll_refclki FD1S3DX Q plol_cnt[5] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[8] PCSD|pll_refclki FD1S3DX Q plol_cnt[8] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[9] PCSD|pll_refclki FD1S3DX Q plol_cnt[9] 0.907 4.684 +============================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +----------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[19] PCSD|pll_refclki FD1S3DX D plol_cnt_s[19] 9.946 4.079 +rsl_inst.genblk1\.plol_cnt[17] PCSD|pll_refclki FD1S3DX D plol_cnt_s[17] 9.946 4.139 +rsl_inst.genblk1\.plol_cnt[18] PCSD|pll_refclki FD1S3DX D plol_cnt_s[18] 9.946 4.139 +rsl_inst.genblk1\.plol_cnt[15] PCSD|pll_refclki FD1S3DX D plol_cnt_s[15] 9.946 4.200 +rsl_inst.genblk1\.plol_cnt[16] PCSD|pll_refclki FD1S3DX D plol_cnt_s[16] 9.946 4.200 +rsl_inst.genblk1\.plol_cnt[13] PCSD|pll_refclki FD1S3DX D plol_cnt_s[13] 9.946 4.261 +rsl_inst.genblk1\.plol_cnt[14] PCSD|pll_refclki FD1S3DX D plol_cnt_s[14] 9.946 4.261 +rsl_inst.genblk1\.plol_cnt[11] PCSD|pll_refclki FD1S3DX D plol_cnt_s[11] 9.946 4.322 +rsl_inst.genblk1\.plol_cnt[12] PCSD|pll_refclki FD1S3DX D plol_cnt_s[12] 9.946 4.322 +rsl_inst.genblk1\.plol_cnt[9] PCSD|pll_refclki FD1S3DX D plol_cnt_s[9] 9.946 4.383 +================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 5.867 + - Clock delay at starting point: 0.000 (ideal) + = Slack (critical) : 4.079 + + Number of logic level(s): 15 + Starting point: rsl_inst.genblk1\.plol_cnt[1] / Q + Ending point: rsl_inst.genblk1\.plol_cnt[19] / D + The start point is clocked by PCSD|pll_refclki [rising] on pin CK + The end point is clocked by PCSD|pll_refclki [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[1] FD1S3DX Q Out 0.907 0.907 - +plol_cnt[1] Net - - - - 2 +rsl_inst.genblk1\.un1_plol_cnt_tc_10 ORCALUT4 A In 0.000 0.907 - +rsl_inst.genblk1\.un1_plol_cnt_tc_10 ORCALUT4 Z Out 0.606 1.513 - +un1_plol_cnt_tc_10 Net - - - - 1 +rsl_inst.genblk1\.un1_plol_cnt_tc_14 ORCALUT4 D In 0.000 1.513 - +rsl_inst.genblk1\.un1_plol_cnt_tc_14 ORCALUT4 Z Out 0.606 2.119 - +un1_plol_cnt_tc_14 Net - - - - 1 +rsl_inst.genblk1\.un1_plol_cnt_tc ORCALUT4 D In 0.000 2.119 - +rsl_inst.genblk1\.un1_plol_cnt_tc ORCALUT4 Z Out 0.762 2.881 - +un1_plol_cnt_tc Net - - - - 5 +rsl_inst.genblk1\.plol_cnt11_i ORCALUT4 B In 0.000 2.881 - +rsl_inst.genblk1\.plol_cnt11_i ORCALUT4 Z Out 0.840 3.721 - +plol_cnt Net - - - - 21 +rsl_inst.genblk1\.plol_cnt_cry_0[0] CCU2C A1 In 0.000 3.721 - +rsl_inst.genblk1\.plol_cnt_cry_0[0] CCU2C COUT Out 0.900 4.621 - +plol_cnt_cry[0] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[1] CCU2C CIN In 0.000 4.621 - +rsl_inst.genblk1\.plol_cnt_cry_0[1] CCU2C COUT Out 0.061 4.682 - +plol_cnt_cry[2] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[3] CCU2C CIN In 0.000 4.682 - +rsl_inst.genblk1\.plol_cnt_cry_0[3] CCU2C COUT Out 0.061 4.743 - +plol_cnt_cry[4] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[5] CCU2C CIN In 0.000 4.743 - +rsl_inst.genblk1\.plol_cnt_cry_0[5] CCU2C COUT Out 0.061 4.804 - +plol_cnt_cry[6] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[7] CCU2C CIN In 0.000 4.804 - +rsl_inst.genblk1\.plol_cnt_cry_0[7] CCU2C COUT Out 0.061 4.865 - +plol_cnt_cry[8] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[9] CCU2C CIN In 0.000 4.865 - +rsl_inst.genblk1\.plol_cnt_cry_0[9] CCU2C COUT Out 0.061 4.926 - +plol_cnt_cry[10] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[11] CCU2C CIN In 0.000 4.926 - +rsl_inst.genblk1\.plol_cnt_cry_0[11] CCU2C COUT Out 0.061 4.987 - +plol_cnt_cry[12] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[13] CCU2C CIN In 0.000 4.987 - +rsl_inst.genblk1\.plol_cnt_cry_0[13] CCU2C COUT Out 0.061 5.048 - +plol_cnt_cry[14] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[15] CCU2C CIN In 0.000 5.048 - +rsl_inst.genblk1\.plol_cnt_cry_0[15] CCU2C COUT Out 0.061 5.109 - +plol_cnt_cry[16] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[17] CCU2C CIN In 0.000 5.109 - +rsl_inst.genblk1\.plol_cnt_cry_0[17] CCU2C COUT Out 0.061 5.170 - +plol_cnt_cry[18] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_s_0[19] CCU2C CIN In 0.000 5.170 - +rsl_inst.genblk1\.plol_cnt_s_0[19] CCU2C S0 Out 0.698 5.867 - +plol_cnt_s[19] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt[19] FD1S3DX D In 0.000 5.867 - +======================================================================================================= + + + + +==================================== +Detailed Report for Clock: PCSD|rxrefclk +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rlol1_cnt[14] PCSD|rxrefclk FD1P3DX Q rlol1_cnt[14] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[15] PCSD|rxrefclk FD1P3DX Q rlol1_cnt[15] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[16] PCSD|rxrefclk FD1P3DX Q rlol1_cnt[16] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[17] PCSD|rxrefclk FD1P3DX Q rlol1_cnt[17] 0.907 4.136 +rsl_inst.genblk2\.rlols0_cnt[10] PCSD|rxrefclk FD1P3DX Q rlols0_cnt[10] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[14] PCSD|rxrefclk FD1P3DX Q rlols0_cnt[14] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[16] PCSD|rxrefclk FD1P3DX Q rlols0_cnt[16] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[17] PCSD|rxrefclk FD1P3DX Q rlols0_cnt[17] 0.907 4.170 +rsl_inst.genblk2\.rlol1_cnt[0] PCSD|rxrefclk FD1P3DX Q rlol1_cnt[0] 0.907 4.742 +rsl_inst.genblk2\.rlol1_cnt[1] PCSD|rxrefclk FD1P3DX Q rlol1_cnt[1] 0.907 4.742 +=============================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------------------------------------ +rsl_inst.genblk2\.rlol1_cnt[17] PCSD|rxrefclk FD1P3DX D rlol1_cnt_s[17] 9.946 4.136 +rsl_inst.genblk2\.rlol1_cnt[18] PCSD|rxrefclk FD1P3DX D rlol1_cnt_s[18] 9.946 4.136 +rsl_inst.genblk2\.rlols0_cnt[17] PCSD|rxrefclk FD1P3DX D rlols0_cnt_s[17] 9.946 4.170 +rsl_inst.genblk2\.rlol1_cnt[15] PCSD|rxrefclk FD1P3DX D rlol1_cnt_s[15] 9.946 4.197 +rsl_inst.genblk2\.rlol1_cnt[16] PCSD|rxrefclk FD1P3DX D rlol1_cnt_s[16] 9.946 4.197 +rsl_inst.genblk2\.rlols0_cnt[15] PCSD|rxrefclk FD1P3DX D rlols0_cnt_s[15] 9.946 4.231 +rsl_inst.genblk2\.rlols0_cnt[16] PCSD|rxrefclk FD1P3DX D rlols0_cnt_s[16] 9.946 4.231 +rsl_inst.genblk2\.rlol1_cnt[13] PCSD|rxrefclk FD1P3DX D rlol1_cnt_s[13] 9.946 4.258 +rsl_inst.genblk2\.rlol1_cnt[14] PCSD|rxrefclk FD1P3DX D rlol1_cnt_s[14] 9.946 4.258 +rsl_inst.genblk2\.rlols0_cnt[13] PCSD|rxrefclk FD1P3DX D rlols0_cnt_s[13] 9.946 4.292 +================================================================================================================== + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 5.809 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : 4.136 + + Number of logic level(s): 14 + Starting point: rsl_inst.genblk2\.rlol1_cnt[14] / Q + Ending point: rsl_inst.genblk2\.rlol1_cnt[18] / D + The start point is clocked by PCSD|rxrefclk [rising] on pin CK + The end point is clocked by PCSD|rxrefclk [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +-------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rlol1_cnt[14] FD1P3DX Q Out 0.907 0.907 - +rlol1_cnt[14] Net - - - - 2 +rsl_inst.rlol1_cnt_tc_1_10 ORCALUT4 A In 0.000 0.907 - +rsl_inst.rlol1_cnt_tc_1_10 ORCALUT4 Z Out 0.606 1.513 - +rlol1_cnt_tc_1_10 Net - - - - 1 +rsl_inst.rlol1_cnt_tc_1_14 ORCALUT4 D In 0.000 1.513 - +rsl_inst.rlol1_cnt_tc_1_14 ORCALUT4 Z Out 0.606 2.119 - +rlol1_cnt_tc_1_14 Net - - - - 1 +rsl_inst.rlol1_cnt_tc_1 ORCALUT4 D In 0.000 2.119 - +rsl_inst.rlol1_cnt_tc_1 ORCALUT4 Z Out 0.768 2.887 - +rlol1_cnt_tc_1 Net - - - - 6 +rsl_inst.genblk2\.rxs_rst_RNIS0OP ORCALUT4 A In 0.000 2.887 - +rsl_inst.genblk2\.rxs_rst_RNIS0OP ORCALUT4 Z Out 0.837 3.724 - +rlol1_cnt Net - - - - 20 +rsl_inst.genblk2\.rlol1_cnt_cry_0[0] CCU2C A1 In 0.000 3.724 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[0] CCU2C COUT Out 0.900 4.624 - +rlol1_cnt_cry[0] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[1] CCU2C CIN In 0.000 4.624 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[1] CCU2C COUT Out 0.061 4.685 - +rlol1_cnt_cry[2] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[3] CCU2C CIN In 0.000 4.685 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[3] CCU2C COUT Out 0.061 4.746 - +rlol1_cnt_cry[4] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[5] CCU2C CIN In 0.000 4.746 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[5] CCU2C COUT Out 0.061 4.807 - +rlol1_cnt_cry[6] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[7] CCU2C CIN In 0.000 4.807 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[7] CCU2C COUT Out 0.061 4.868 - +rlol1_cnt_cry[8] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[9] CCU2C CIN In 0.000 4.868 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[9] CCU2C COUT Out 0.061 4.929 - +rlol1_cnt_cry[10] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[11] CCU2C CIN In 0.000 4.929 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[11] CCU2C COUT Out 0.061 4.990 - +rlol1_cnt_cry[12] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[13] CCU2C CIN In 0.000 4.990 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[13] CCU2C COUT Out 0.061 5.051 - +rlol1_cnt_cry[14] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[15] CCU2C CIN In 0.000 5.051 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[15] CCU2C COUT Out 0.061 5.112 - +rlol1_cnt_cry[16] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[17] CCU2C CIN In 0.000 5.112 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[17] CCU2C S1 Out 0.698 5.809 - +rlol1_cnt_s[18] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt[18] FD1P3DX D In 0.000 5.809 - +======================================================================================================== + + + + +==================================== +Detailed Report for Clock: System +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------------- +DCU0_inst System DCUA CH0_FFS_RLOL rx_cdr_lol_s 0.000 9.946 +DCU0_inst System DCUA CH0_FFS_RLOS rx_los_low_s 0.000 9.946 +DCU0_inst System DCUA CH0_FF_TX_PCLK tx_pclk 0.000 10.000 +=========================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +---------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rlol_p1 System FD1S3DX D rx_cdr_lol_s 9.946 9.946 +rsl_inst.genblk2\.rlos_p1 System FD1S3DX D rx_los_low_s 9.946 9.946 +DCU0_inst System DCUA CH0_FF_EBRD_CLK tx_pclk 10.000 10.000 +DCU0_inst System DCUA CH0_FF_RXI_CLK tx_pclk 10.000 10.000 +================================================================================================================ + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 0.000 + - Clock delay at starting point: 0.000 (ideal) + - Estimated clock delay at start point: -0.000 + = Slack (non-critical) : 9.946 + + Number of logic level(s): 0 + Starting point: DCU0_inst / CH0_FFS_RLOL + Ending point: rsl_inst.genblk2\.rlol_p1 / D + The start point is clocked by System [rising] + The end point is clocked by PCSD|rxrefclk [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +--------------------------------------------------------------------------------------------------- +DCU0_inst DCUA CH0_FFS_RLOL Out 0.000 0.000 - +rx_cdr_lol_s Net - - - - 2 +rsl_inst.genblk2\.rlol_p1 FD1S3DX D In 0.000 0.000 - +=================================================================================================== + + + +##### END OF TIMING REPORT #####] + +Timing exceptions that could not be applied +None + +Finished final timing analysis (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 147MB peak: 148MB) + + +Finished timing report (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 147MB peak: 148MB) + +--------------------------------------- +Resource Usage Report +Part: lfe5um_25f-6 + +Register bits: 92 of 24288 (0%) +PIC Latch: 0 +I/O cells: 0 + + +Details: +CCU2C: 37 +DCUA: 1 +FD1P3BX: 4 +FD1P3DX: 42 +FD1S3BX: 10 +FD1S3DX: 36 +GSR: 1 +ORCALUT4: 63 +PFUMX: 2 +PUR: 1 +VHI: 2 +VLO: 2 +Mapper successful! + +At Mapper Exit (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 32MB peak: 148MB) + +Process took 0h:00m:02s realtime, 0h:00m:02s cputime +# Tue Apr 30 12:09:51 2019 + +###########################################################] diff --git a/gbe/cores/sgmii/PCSD/syn_results/synlog/PCSD_fpga_mapper.srr.db b/gbe/cores/sgmii/PCSD/syn_results/synlog/PCSD_fpga_mapper.srr.db new file mode 100644 index 0000000000000000000000000000000000000000..b2fe294f4efe46b9adcc1481761fbc4514e1da1b GIT binary patch literal 8192 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/PCSD/syn_results/synlog/PCSD_fpga_mapper.xck b/gbe/cores/sgmii/PCSD/syn_results/synlog/PCSD_fpga_mapper.xck new file mode 100644 index 0000000..090e73d --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/synlog/PCSD_fpga_mapper.xck @@ -0,0 +1,2 @@ +CKID0001:@|S:rxrefclk@|E:rsl_inst.genblk2\.rlol1_cnt[18]@|F:@syn_sample_clock_path==CKID0001@|M:ClockId0001 +CKID0002:@|S:pll_refclki@|E:rsl_inst.genblk1\.pll_lol_p1@|F:@syn_sample_clock_path==CKID0002@|M:ClockId0002 diff --git a/gbe/cores/sgmii/PCSD/syn_results/synlog/PCSD_multi_srs_gen.srr b/gbe/cores/sgmii/PCSD/syn_results/synlog/PCSD_multi_srs_gen.srr new file mode 100644 index 0000000..fc78ac1 --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/synlog/PCSD_multi_srs_gen.srr @@ -0,0 +1,12 @@ +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +File /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synwork/PCSD_comp.srs changed - recompiling + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Tue Apr 30 12:09:47 2019 + +###########################################################] diff --git a/gbe/cores/sgmii/PCSD/syn_results/synlog/PCSD_multi_srs_gen.srr.db b/gbe/cores/sgmii/PCSD/syn_results/synlog/PCSD_multi_srs_gen.srr.db new file mode 100644 index 0000000000000000000000000000000000000000..029fa7a6cf9014af50ee9d4aa843536a1f7b5c42 GIT binary patch literal 8192 zcmeI#JqyA>3DEQgKL*xDXO@ z%d=&(imfwzIG4G0Jf%J073BwWN1`{~f``Krs^Nta{J wY>_tId!-qqw)j}S$WL3iQGJ`s(T{)t1Rwwb2tWV=5P$##AOHafK;VZ3UKAiP82|tP literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/PCSD/syn_results/synlog/PCSD_premap.srr b/gbe/cores/sgmii/PCSD/syn_results/synlog/PCSD_premap.srr new file mode 100644 index 0000000..fe3b5ab --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/synlog/PCSD_premap.srr @@ -0,0 +1,70 @@ +# Tue Apr 30 12:09:47 2019 + +Synopsys Lattice Technology Pre-mapping, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 100MB) + +Reading constraint file: /home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.fdc +@L: /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/PCSD_scck.rpt +Printing clock summary report in "/home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/PCSD_scck.rpt" file +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 101MB peak: 103MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 101MB peak: 103MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 114MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 116MB) + +ICG Latch Removal Summary: +Number of ICG latches removed: 0 +Number of ICG latches not removed: 0 +syn_allowed_resources : blockrams=56 set on top level netlist PCSD + +Finished netlist restructuring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + + +Clock Summary +****************** + + Start Requested Requested Clock Clock Clock +Level Clock Frequency Period Type Group Load +----------------------------------------------------------------------------------------------------- +0 - System 100.0 MHz 10.000 system system_clkgroup 0 + +0 - PCSD|rxrefclk 100.0 MHz 10.000 inferred Inferred_clkgroup_1 59 + +0 - PCSD|pll_refclki 100.0 MHz 10.000 inferred Inferred_clkgroup_0 33 +===================================================================================================== + +@W: MT529 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":412:3:412:8|Found inferred clock PCSD|pll_refclki which controls 33 sequential elements including rsl_inst.genblk1\.plol_cnt[19:0]. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":567:3:567:8|Found inferred clock PCSD|rxrefclk which controls 59 sequential elements including rsl_inst.genblk2\.rlos_db_p1. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. + +Finished Pre Mapping Phase. + +Starting constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished constraint checker preprocessing (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + +None +None + +Finished constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + +Pre-mapping successful! + +At Mapper Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 57MB peak: 143MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime +# Tue Apr 30 12:09:48 2019 + +###########################################################] diff --git a/gbe/cores/sgmii/PCSD/syn_results/synlog/PCSD_premap.srr.db b/gbe/cores/sgmii/PCSD/syn_results/synlog/PCSD_premap.srr.db new file mode 100644 index 0000000000000000000000000000000000000000..46a9c99e597e5b88457b2128a10d19c50cbb47d0 GIT binary patch literal 8192 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 B@wxy2 literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/PCSD/syn_results/synlog/layer0.tlg.rptmap b/gbe/cores/sgmii/PCSD/syn_results/synlog/layer0.tlg.rptmap new file mode 100644 index 0000000..3910cac --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/synlog/layer0.tlg.rptmap @@ -0,0 +1 @@ +./synwork/layer0.tlg,layer0.tlg,An incremental, partial HDL compilation log file that may allow early access to errors or other messages. diff --git a/gbe/cores/sgmii/PCSD/syn_results/synlog/layer1.tlg.rptmap b/gbe/cores/sgmii/PCSD/syn_results/synlog/layer1.tlg.rptmap new file mode 100644 index 0000000..af92e0b --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/synlog/layer1.tlg.rptmap @@ -0,0 +1 @@ +./synwork/layer1.tlg,layer1.tlg,An incremental, partial HDL compilation log file that may allow early access to errors or other messages. diff --git a/gbe/cores/sgmii/PCSD/syn_results/synlog/linker.rpt.rptmap b/gbe/cores/sgmii/PCSD/syn_results/synlog/linker.rpt.rptmap new file mode 100644 index 0000000..e21637c --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/synlog/linker.rpt.rptmap @@ -0,0 +1 @@ +./synwork/PCSD_comp.linkerlog,linker.rpt,Summary of linker messages for components that did not bind diff --git a/gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_compiler_notes.txt b/gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_compiler_notes.txt new file mode 100644 index 0000000..64eb40e --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_compiler_notes.txt @@ -0,0 +1,11 @@ +@N|Running in 64-bit mode +@N|Running in 64-bit mode +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd":24:7:24:10|Top entity is set to PCSD. +@N|Running in 64-bit mode +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd":24:7:24:10|Top entity is set to PCSD. +@N: CD630 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd":24:7:24:10|Synthesizing work.pcsd.v1. +@N: CG364 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":92:7:92:18|Synthesizing module PCSDrsl_core in library work. +@N|Running in 64-bit mode + diff --git a/gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_compiler_runstatus.xml b/gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_compiler_runstatus.xml new file mode 100644 index 0000000..5ab9b80 --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_compiler_runstatus.xml @@ -0,0 +1,41 @@ + + + + + + /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synlog/PCSD_compiler.srr + Synopsys HDL Compiler + + + Completed + + + + 10 + /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synlog/report/PCSD_compiler_notes.txt + + + 50 + /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synlog/report/PCSD_compiler_warnings.txt + + + 0 + /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synlog/report/PCSD_compiler_errors.txt + + + - + + + 00h:00m:02s + + + - + + + 1556618986 + + + \ No newline at end of file diff --git a/gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_compiler_warnings.txt b/gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_compiler_warnings.txt new file mode 100644 index 0000000..664f602 --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_compiler_warnings.txt @@ -0,0 +1,51 @@ +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":274:33:274:48|Removing wire dual_or_serd_rst, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":275:33:275:46|Removing wire tx_any_pcs_rst, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":276:33:276:42|Removing wire tx_any_rst, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":277:33:277:41|Object txsr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":278:33:278:42|Object txdpr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":279:33:279:41|Object txpr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":280:33:280:41|Object txr_wt_en is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":281:33:281:42|Object txr_wt_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":282:33:282:41|Removing wire txr_wt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":283:33:283:43|Object ruo_tx_rdyr is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":326:33:326:40|Object rrst_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":327:33:327:43|Removing wire rrst_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":328:33:328:41|Object rrst_wait is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":341:33:341:39|Object rxp_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":342:33:342:39|Object rxp_rst is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":343:33:343:42|Removing wire rxp_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":346:33:346:42|Object rlolsz_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":347:33:347:45|Removing wire rlolsz_cnt_tc, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":350:33:350:43|Removing wire rxp_cnt2_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":351:33:351:47|Object data_loop_b_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":352:33:352:43|Object data_loop_b is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":353:33:353:46|Removing wire data_loop_b_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":356:33:356:41|Object rxsr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":357:33:357:41|Object rxpr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":358:33:358:42|Object rxsdr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":359:33:359:42|Object rxdpr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":360:33:360:48|Removing wire rxsdr_or_sr_appd, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":361:33:361:49|Removing wire dual_or_rserd_rst, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":362:33:362:46|Removing wire rx_any_pcs_rst, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":363:33:363:42|Removing wire rx_any_rst, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":364:33:364:41|Object rxr_wt_en is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":365:33:365:42|Object rxr_wt_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":366:33:366:41|Removing wire rxr_wt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":367:33:367:43|Object ruo_rx_rdyr is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":507:10:507:10|Object m is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":880:10:880:10|Object l is declared but not assigned. Either assign a value or remove the declaration. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":806:3:806:8|Pruning unused register genblk2.rxp_cnt2[2:0]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlol_p3. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlos_p3. Make sure that there are no unused intermediate registers. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":694:3:694:8|Optimizing register bit genblk2.rxs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":461:3:461:8|Optimizing register bit genblk1.txp_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":422:3:422:8|Optimizing register bit genblk1.txs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":422:3:422:8|Pruning register bit 2 of genblk1.txs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":461:3:461:8|Pruning register bit 2 of genblk1.txp_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":694:3:694:8|Pruning register bit 2 of genblk2.rxs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":200:33:200:48|Input port bits 3 to 1 of rui_tx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":204:33:204:51|Input port bits 3 to 1 of rui_rx_serdes_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":205:33:205:48|Input port bits 3 to 1 of rui_rx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":206:33:206:48|Input port bits 3 to 1 of rdi_rx_los_low_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":207:33:207:48|Input port bits 3 to 1 of rdi_rx_cdr_lol_s[3:0] are unused. Assign logic for all port bits or change the input port size. + diff --git a/gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_fpga_mapper_area_report.xml b/gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_fpga_mapper_area_report.xml new file mode 100644 index 0000000..194415f --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_fpga_mapper_area_report.xml @@ -0,0 +1,26 @@ + + + + +/home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synlog/report/PCSD_fpga_mapper_resourceusage.rpt +Resource Usage + + +92 + + +0 + + +0 + + +0 + + +63 + + diff --git a/gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_fpga_mapper_errors.txt b/gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_fpga_mapper_errors.txt new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_fpga_mapper_notes.txt b/gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_fpga_mapper_notes.txt new file mode 100644 index 0000000..b4c4fcb --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_fpga_mapper_notes.txt @@ -0,0 +1,11 @@ +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":412:3:412:8|Found counter in view:work.PCSDrsl_core_Z1_layer1(verilog) instance genblk1\.plol_cnt[19:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":778:3:778:8|Found counter in view:work.PCSDrsl_core_Z1_layer1(verilog) instance genblk2\.rlols0_cnt[17:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":680:3:680:8|Found counter in view:work.PCSDrsl_core_Z1_layer1(verilog) instance genblk2\.rlol1_cnt[18:0] +@N: FX164 |The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute. +@N: FX1056 |Writing EDF file: /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/PCSD.edn +@N: BW106 |Synplicity Constraint File capacitance units using default value of 1pF +@N: MT320 |This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. +@N: MT322 |Clock constraints include only register-to-register paths associated with each individual clock. +@N: MT286 |System clock period 0.000 stretches to negative invalid value -- ignoring stretching. diff --git a/gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_fpga_mapper_opt_report.xml b/gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_fpga_mapper_opt_report.xml new file mode 100644 index 0000000..2e79d15 --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_fpga_mapper_opt_report.xml @@ -0,0 +1,14 @@ + + + + +2 / 0 + +/home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synlog/report/PCSD_fpga_mapper_combined_clk.rpt +START OF CLOCK OPTIMIZATION REPORT + + + diff --git a/gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_fpga_mapper_runstatus.xml b/gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_fpga_mapper_runstatus.xml new file mode 100644 index 0000000..f5531ea --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_fpga_mapper_runstatus.xml @@ -0,0 +1,46 @@ + + + + +/home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synlog/PCSD_fpga_mapper.srr +Synopsys Lattice Technology Mapper + + +Completed + + + +11 + +/home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synlog/report/PCSD_fpga_mapper_notes.txt + + + +3 + +/home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synlog/report/PCSD_fpga_mapper_warnings.txt + + + +0 + +/home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synlog/report/PCSD_fpga_mapper_errors.txt + + + +0h:00m:02s + + +0h:00m:02s + + +148MB + + +1556618991 + + + diff --git a/gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_fpga_mapper_timing_report.xml b/gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_fpga_mapper_timing_report.xml new file mode 100644 index 0000000..04932ce --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_fpga_mapper_timing_report.xml @@ -0,0 +1,35 @@ + + + + +/home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synlog/PCSD_fpga_mapper.srr +START OF TIMING REPORT + + +Clock Name +Req Freq +Est Freq +Slack + + +PCSD|pll_refclki +100.0 MHz +168.9 MHz +4.079 + + +PCSD|rxrefclk +100.0 MHz +170.5 MHz +4.136 + + +System +100.0 MHz +18518.5 MHz +9.946 + + diff --git a/gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_fpga_mapper_warnings.txt b/gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_fpga_mapper_warnings.txt new file mode 100644 index 0000000..5df4948 --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_fpga_mapper_warnings.txt @@ -0,0 +1,3 @@ +@W: MT246 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd":118:4:118:12|Blackbox DCUA is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) +@W: MT420 |Found inferred clock PCSD|rxrefclk with period 10.00ns. Please declare a user-defined clock on object "p:rxrefclk" +@W: MT420 |Found inferred clock PCSD|pll_refclki with period 10.00ns. Please declare a user-defined clock on object "p:pll_refclki" diff --git a/gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_premap_errors.txt b/gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_premap_errors.txt new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_premap_notes.txt b/gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_premap_notes.txt new file mode 100644 index 0000000..eed8756 --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_premap_notes.txt @@ -0,0 +1,2 @@ +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) diff --git a/gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_premap_runstatus.xml b/gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_premap_runstatus.xml new file mode 100644 index 0000000..3302c41 --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_premap_runstatus.xml @@ -0,0 +1,46 @@ + + + + +/home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synlog/PCSD_premap.srr +Synopsys Lattice Technology Pre-mapping + + +Completed + + + +2 + +/home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synlog/report/PCSD_premap_notes.txt + + + +2 + +/home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synlog/report/PCSD_premap_warnings.txt + + + +0 + +/home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synlog/report/PCSD_premap_errors.txt + + + +0h:00m:00s + + +0h:00m:00s + + +143MB + + +1556618988 + + + diff --git a/gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_premap_warnings.txt b/gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_premap_warnings.txt new file mode 100644 index 0000000..22d5ea5 --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/synlog/report/PCSD_premap_warnings.txt @@ -0,0 +1,2 @@ +@W: MT529 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":412:3:412:8|Found inferred clock PCSD|pll_refclki which controls 33 sequential elements including rsl_inst.genblk1\.plol_cnt[19:0]. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":567:3:567:8|Found inferred clock PCSD|rxrefclk which controls 59 sequential elements including rsl_inst.genblk2\.rlos_db_p1. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. diff --git a/gbe/cores/sgmii/PCSD/syn_results/synlog/report/metrics.db b/gbe/cores/sgmii/PCSD/syn_results/synlog/report/metrics.db new file mode 100644 index 0000000000000000000000000000000000000000..3d974e4e3831441084f7ad4e1dd75d9e6311c32e GIT binary patch literal 20480 zcmeI3O>Y}T7{_TOUB3l4lnYU+XOxZS<$3<|-(NO|nH@j=cE?wo zbt4(NirqG@8m4L7Wy~;)CR~@`8kGg8B-f~zqsl3tO{4PH3jzTPWT=}6ddg<>=_a1F;?QOHYtuJ=A zSvl=2-;CPNxTo0AmEOK9KV>0T()T9qp&JbNq&X12iYLuyQG3$xqA=uQN~6-YN1tC@EL1AyaaDWtg2+2)d65`$8T*kq*cqXJXSa7Yn75d0f^u_d5Y#4*PzYlb?M{uHg=M`q&%HG1&ori+ zxtHhgUl1)L0VIF~kN^@u0!RP}AOR$R1dsp{_!k13Z(F34C&jOA6)87pbz!LMGj5+3;luCbHC=k&lSmUK;C+kSf(f3?=u3TTh(~#~C zOdf>$_nItlmAB7h29FJc&4XyjI}O;7C_#2J%hsKzCTEGs`ro9#8}Ne#2_OL^fCP{L y5 +
    +
    +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug  4 2017
    +@N: :  | Running in 64-bit mode 
    +File /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synwork/PCSD_comp.srs changed - recompiling
    +
    +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB)
    +
    +Process took 0h:00m:01s realtime, 0h:00m:01s cputime
    +
    +Process completed successfully.
    +# Tue Apr 30 12:09:47 2019
    +
    +###########################################################]
    +
    +
    +
    +
    +# Tue Apr 30 12:09:47 2019
    +
    +Synopsys Lattice Technology Pre-mapping, Version maplat, Build 1796R, Built Aug  4 2017 09:36:35
    +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited.
    +Product Version M-2017.03L-SP1-1
    +
    +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 100MB)
    +
    +Reading constraint file: /home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.fdc
    +Linked File: PCSD_scck.rpt
    +Printing clock  summary report in "/home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/PCSD_scck.rpt" file 
    +@N:MF248 :  | Running in 64-bit mode. 
    +@N:MF666 :  | Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) 
    +
    +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 101MB peak: 103MB)
    +
    +
    +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 101MB peak: 103MB)
    +
    +
    +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 114MB)
    +
    +
    +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 116MB)
    +
    +ICG Latch Removal Summary:
    +Number of ICG latches removed:	0
    +Number of ICG latches not removed:	0
    +syn_allowed_resources : blockrams=56  set on top level netlist PCSD
    +
    +Finished netlist restructuring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB)
    +
    +
    +
    +Clock Summary
    +******************
    +
    +          Start                Requested     Requested     Clock        Clock                   Clock
    +Level     Clock                Frequency     Period        Type         Group                   Load 
    +-----------------------------------------------------------------------------------------------------
    +0 -       System               100.0 MHz     10.000        system       system_clkgroup         0    
    +                                                                                                     
    +0 -       PCSD|rxrefclk        100.0 MHz     10.000        inferred     Inferred_clkgroup_1     59   
    +                                                                                                     
    +0 -       PCSD|pll_refclki     100.0 MHz     10.000        inferred     Inferred_clkgroup_0     33   
    +=====================================================================================================
    +
    +@W:MT529 : PCSD_softlogic.v(412) | Found inferred clock PCSD|pll_refclki which controls 33 sequential elements including rsl_inst.genblk1\.plol_cnt[19:0]. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. 
    +@W:MT529 : PCSD_softlogic.v(567) | Found inferred clock PCSD|rxrefclk which controls 59 sequential elements including rsl_inst.genblk2\.rlos_db_p1. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. 
    +
    +Finished Pre Mapping Phase.
    +
    +Starting constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB)
    +
    +
    +Finished constraint checker preprocessing (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB)
    +
    +None
    +None
    +
    +Finished constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB)
    +
    +Pre-mapping successful!
    +
    +At Mapper Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 57MB peak: 143MB)
    +
    +Process took 0h:00m:01s realtime, 0h:00m:01s cputime
    +# Tue Apr 30 12:09:48 2019
    +
    +###########################################################]
    +
    +
    +
    +
    +# Tue Apr 30 12:09:48 2019
    +
    +Synopsys Lattice Technology Mapper, Version maplat, Build 1796R, Built Aug  4 2017 09:36:35
    +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited.
    +Product Version M-2017.03L-SP1-1
    +
    +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 100MB)
    +
    +@N:MF248 :  | Running in 64-bit mode. 
    +@N:MF666 :  | Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) 
    +
    +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB)
    +
    +
    +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB)
    +
    +
    +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 113MB)
    +
    +
    +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 115MB)
    +
    +
    +
    +Starting Optimization and Mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB)
    +
    +
    +Available hyper_sources - for debug and ip models
    +	None Found
    +
    +
    +Finished RTL optimizations (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB)
    +
    +@N:MO231 : PCSD_softlogic.v(412) | Found counter in view:work.PCSDrsl_core_Z1_layer1(verilog) instance genblk1\.plol_cnt[19:0] 
    +@N:MO231 : PCSD_softlogic.v(778) | Found counter in view:work.PCSDrsl_core_Z1_layer1(verilog) instance genblk2\.rlols0_cnt[17:0] 
    +@N:MO231 : PCSD_softlogic.v(680) | Found counter in view:work.PCSDrsl_core_Z1_layer1(verilog) instance genblk2\.rlol1_cnt[18:0] 
    +
    +Starting factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB)
    +
    +
    +Finished factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 143MB)
    +
    +
    +Starting gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 143MB)
    +
    +
    +Finished gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 143MB)
    +
    +
    +Finished generic timing optimizations - Pass 1 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 143MB)
    +
    +
    +Starting Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 143MB)
    +
    +
    +Finished Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 143MB)
    +
    +
    +Finished generic timing optimizations - Pass 2 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 143MB)
    +
    +
    +Finished preparing to map (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 143MB)
    +
    +
    +Finished technology mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB)
    +
    +Pass		 CPU time		Worst Slack		Luts / Registers
    +------------------------------------------------------------
    +   1		0h:00m:00s		     5.36ns		  63 /        92
    +
    +Finished technology timing optimizations and critical path resynthesis (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB)
    +
    +@N:FX164 :  | The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute.   
    +
    +Finished restoring hierarchy (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 143MB peak: 144MB)
    +
    +
    +
    +@S |Clock Optimization Summary
    +
    +
    +#### START OF CLOCK OPTIMIZATION REPORT #####[
    +
    +2 non-gated/non-generated clock tree(s) driving 92 clock pin(s) of sequential element(s)
    +0 gated/generated clock tree(s) driving 0 clock pin(s) of sequential element(s)
    +0 instances converted, 0 sequential instances remain driven by gated/generated clocks
    +
    +=================================== Non-Gated/Non-Generated Clocks ====================================
    +Clock Tree ID     Driving Element     Drive Element Type     Fanout     Sample Instance                
    +-------------------------------------------------------------------------------------------------------
    +ClockId0001        rxrefclk            port                   59         rsl_inst.genblk2\.rlol1_cnt[18]
    +ClockId0002        pll_refclki         port                   33         rsl_inst.genblk1\.pll_lol_p1   
    +=======================================================================================================
    +
    +
    +##### END OF CLOCK OPTIMIZATION REPORT ######]
    +
    +
    +Start Writing Netlists (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 107MB peak: 144MB)
    +
    +Writing Analyst data base /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synwork/PCSD_m.srm
    +
    +Finished Writing Netlist Databases (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 142MB peak: 144MB)
    +
    +Writing EDIF Netlist and constraint files
    +@N:FX1056 :  | Writing EDF file: /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/PCSD.edn 
    +M-2017.03L-SP1-1
    +@N:BW106 :  | Synplicity Constraint File capacitance units using default value of 1pF  
    +
    +Finished Writing EDIF Netlist and constraint files (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:02s; Memory used current: 146MB peak: 148MB)
    +
    +Writing Verilog Simulation files
    +
    +Finished Writing Verilog Simulation files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 146MB peak: 148MB)
    +
    +Writing VHDL Simulation files
    +
    +Finished Writing VHDL Simulation files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 147MB peak: 148MB)
    +
    +
    +Start final timing analysis (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 147MB peak: 148MB)
    +
    +@W:MT246 : PCSD.vhd(118) | Blackbox DCUA is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) 
    +@W:MT420 :  | Found inferred clock PCSD|rxrefclk with period 10.00ns. Please declare a user-defined clock on object "p:rxrefclk" 
    +@W:MT420 :  | Found inferred clock PCSD|pll_refclki with period 10.00ns. Please declare a user-defined clock on object "p:pll_refclki" 
    +
    +
    +##### START OF TIMING REPORT #####[
    +# Timing Report written on Tue Apr 30 12:09:50 2019
    +#
    +
    +
    +Top view:               PCSD
    +Requested Frequency:    100.0 MHz
    +Wire load mode:         top
    +Paths requested:        5
    +Constraint File(s):    /home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.fdc
    +                       
    +@N:MT320 :  | This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. 
    +
    +@N:MT322 :  | Clock constraints include only register-to-register paths associated with each individual clock. 
    +
    +
    +
    +Performance Summary
    +*******************
    +
    +
    +Worst slack in design: 4.079
    +
    +@N:MT286 :  | System clock period 0.000 stretches to negative invalid value -- ignoring stretching. 
    +                     Requested     Estimated       Requested     Estimated               Clock        Clock              
    +Starting Clock       Frequency     Frequency       Period        Period        Slack     Type         Group              
    +-------------------------------------------------------------------------------------------------------------------------
    +PCSD|pll_refclki     100.0 MHz     168.9 MHz       10.000        5.921         4.079     inferred     Inferred_clkgroup_0
    +PCSD|rxrefclk        100.0 MHz     170.5 MHz       10.000        5.864         4.136     inferred     Inferred_clkgroup_1
    +System               100.0 MHz     18518.5 MHz     10.000        0.054         9.946     system       system_clkgroup    
    +=========================================================================================================================
    +
    +
    +
    +
    +
    +Clock Relationships
    +*******************
    +
    +Clocks                              |    rise  to  rise    |    fall  to  fall   |    rise  to  fall   |    fall  to  rise 
    +---------------------------------------------------------------------------------------------------------------------------
    +Starting          Ending            |  constraint  slack   |  constraint  slack  |  constraint  slack  |  constraint  slack
    +---------------------------------------------------------------------------------------------------------------------------
    +System            System            |  10.000      10.000  |  No paths    -      |  No paths    -      |  No paths    -    
    +System            PCSD|rxrefclk     |  10.000      9.946   |  No paths    -      |  No paths    -      |  No paths    -    
    +PCSD|pll_refclki  System            |  10.000      8.385   |  No paths    -      |  No paths    -      |  No paths    -    
    +PCSD|pll_refclki  PCSD|pll_refclki  |  10.000      4.079   |  No paths    -      |  No paths    -      |  No paths    -    
    +PCSD|rxrefclk     System            |  10.000      8.283   |  No paths    -      |  No paths    -      |  No paths    -    
    +PCSD|rxrefclk     PCSD|rxrefclk     |  10.000      4.136   |  No paths    -      |  No paths    -      |  No paths    -    
    +===========================================================================================================================
    + Note: 'No paths' indicates there are no paths in the design for that pair of clock edges.
    +       'Diff grp' indicates that paths exist but the starting clock and ending clock are in different clock groups.
    +
    +
    +
    +Interface Information 
    +*********************
    +
    +No IO constraint found
    +
    +
    +
    +====================================
    +Detailed Report for Clock: PCSD|pll_refclki
    +====================================
    +
    +
    +
    +Starting Points with Worst Slack
    +********************************
    +
    +                                   Starting                                                  Arrival          
    +Instance                           Reference            Type        Pin     Net              Time        Slack
    +                                   Clock                                                                      
    +--------------------------------------------------------------------------------------------------------------
    +rsl_inst.genblk1\.plol_cnt[1]      PCSD|pll_refclki     FD1S3DX     Q       plol_cnt[1]      0.907       4.079
    +rsl_inst.genblk1\.plol_cnt[6]      PCSD|pll_refclki     FD1S3DX     Q       plol_cnt[6]      0.907       4.079
    +rsl_inst.genblk1\.plol_cnt[7]      PCSD|pll_refclki     FD1S3DX     Q       plol_cnt[7]      0.907       4.079
    +rsl_inst.genblk1\.plol_cnt[12]     PCSD|pll_refclki     FD1S3DX     Q       plol_cnt[12]     0.907       4.079
    +rsl_inst.genblk1\.plol_cnt[2]      PCSD|pll_refclki     FD1S3DX     Q       plol_cnt[2]      0.907       4.684
    +rsl_inst.genblk1\.plol_cnt[3]      PCSD|pll_refclki     FD1S3DX     Q       plol_cnt[3]      0.907       4.684
    +rsl_inst.genblk1\.plol_cnt[4]      PCSD|pll_refclki     FD1S3DX     Q       plol_cnt[4]      0.907       4.684
    +rsl_inst.genblk1\.plol_cnt[5]      PCSD|pll_refclki     FD1S3DX     Q       plol_cnt[5]      0.907       4.684
    +rsl_inst.genblk1\.plol_cnt[8]      PCSD|pll_refclki     FD1S3DX     Q       plol_cnt[8]      0.907       4.684
    +rsl_inst.genblk1\.plol_cnt[9]      PCSD|pll_refclki     FD1S3DX     Q       plol_cnt[9]      0.907       4.684
    +==============================================================================================================
    +
    +
    +Ending Points with Worst Slack
    +******************************
    +
    +                                   Starting                                                    Required          
    +Instance                           Reference            Type        Pin     Net                Time         Slack
    +                                   Clock                                                                         
    +-----------------------------------------------------------------------------------------------------------------
    +rsl_inst.genblk1\.plol_cnt[19]     PCSD|pll_refclki     FD1S3DX     D       plol_cnt_s[19]     9.946        4.079
    +rsl_inst.genblk1\.plol_cnt[17]     PCSD|pll_refclki     FD1S3DX     D       plol_cnt_s[17]     9.946        4.139
    +rsl_inst.genblk1\.plol_cnt[18]     PCSD|pll_refclki     FD1S3DX     D       plol_cnt_s[18]     9.946        4.139
    +rsl_inst.genblk1\.plol_cnt[15]     PCSD|pll_refclki     FD1S3DX     D       plol_cnt_s[15]     9.946        4.200
    +rsl_inst.genblk1\.plol_cnt[16]     PCSD|pll_refclki     FD1S3DX     D       plol_cnt_s[16]     9.946        4.200
    +rsl_inst.genblk1\.plol_cnt[13]     PCSD|pll_refclki     FD1S3DX     D       plol_cnt_s[13]     9.946        4.261
    +rsl_inst.genblk1\.plol_cnt[14]     PCSD|pll_refclki     FD1S3DX     D       plol_cnt_s[14]     9.946        4.261
    +rsl_inst.genblk1\.plol_cnt[11]     PCSD|pll_refclki     FD1S3DX     D       plol_cnt_s[11]     9.946        4.322
    +rsl_inst.genblk1\.plol_cnt[12]     PCSD|pll_refclki     FD1S3DX     D       plol_cnt_s[12]     9.946        4.322
    +rsl_inst.genblk1\.plol_cnt[9]      PCSD|pll_refclki     FD1S3DX     D       plol_cnt_s[9]      9.946        4.383
    +=================================================================================================================
    +
    +
    +
    +Worst Path Information
    +View Worst Path in Analyst
    +***********************
    +
    +
    +Path information for path number 1: 
    +      Requested Period:                      10.000
    +    - Setup time:                            0.054
    +    + Clock delay at ending point:           0.000 (ideal)
    +    = Required time:                         9.946
    +
    +    - Propagation time:                      5.867
    +    - Clock delay at starting point:         0.000 (ideal)
    +    = Slack (critical) :                     4.079
    +
    +    Number of logic level(s):                15
    +    Starting point:                          rsl_inst.genblk1\.plol_cnt[1] / Q
    +    Ending point:                            rsl_inst.genblk1\.plol_cnt[19] / D
    +    The start point is clocked by            PCSD|pll_refclki [rising] on pin CK
    +    The end   point is clocked by            PCSD|pll_refclki [rising] on pin CK
    +
    +Instance / Net                                        Pin      Pin               Arrival     No. of    
    +Name                                     Type         Name     Dir     Delay     Time        Fan Out(s)
    +-------------------------------------------------------------------------------------------------------
    +rsl_inst.genblk1\.plol_cnt[1]            FD1S3DX      Q        Out     0.907     0.907       -         
    +plol_cnt[1]                              Net          -        -       -         -           2         
    +rsl_inst.genblk1\.un1_plol_cnt_tc_10     ORCALUT4     A        In      0.000     0.907       -         
    +rsl_inst.genblk1\.un1_plol_cnt_tc_10     ORCALUT4     Z        Out     0.606     1.513       -         
    +un1_plol_cnt_tc_10                       Net          -        -       -         -           1         
    +rsl_inst.genblk1\.un1_plol_cnt_tc_14     ORCALUT4     D        In      0.000     1.513       -         
    +rsl_inst.genblk1\.un1_plol_cnt_tc_14     ORCALUT4     Z        Out     0.606     2.119       -         
    +un1_plol_cnt_tc_14                       Net          -        -       -         -           1         
    +rsl_inst.genblk1\.un1_plol_cnt_tc        ORCALUT4     D        In      0.000     2.119       -         
    +rsl_inst.genblk1\.un1_plol_cnt_tc        ORCALUT4     Z        Out     0.762     2.881       -         
    +un1_plol_cnt_tc                          Net          -        -       -         -           5         
    +rsl_inst.genblk1\.plol_cnt11_i           ORCALUT4     B        In      0.000     2.881       -         
    +rsl_inst.genblk1\.plol_cnt11_i           ORCALUT4     Z        Out     0.840     3.721       -         
    +plol_cnt                                 Net          -        -       -         -           21        
    +rsl_inst.genblk1\.plol_cnt_cry_0[0]      CCU2C        A1       In      0.000     3.721       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[0]      CCU2C        COUT     Out     0.900     4.621       -         
    +plol_cnt_cry[0]                          Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[1]      CCU2C        CIN      In      0.000     4.621       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[1]      CCU2C        COUT     Out     0.061     4.682       -         
    +plol_cnt_cry[2]                          Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[3]      CCU2C        CIN      In      0.000     4.682       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[3]      CCU2C        COUT     Out     0.061     4.743       -         
    +plol_cnt_cry[4]                          Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[5]      CCU2C        CIN      In      0.000     4.743       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[5]      CCU2C        COUT     Out     0.061     4.804       -         
    +plol_cnt_cry[6]                          Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[7]      CCU2C        CIN      In      0.000     4.804       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[7]      CCU2C        COUT     Out     0.061     4.865       -         
    +plol_cnt_cry[8]                          Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[9]      CCU2C        CIN      In      0.000     4.865       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[9]      CCU2C        COUT     Out     0.061     4.926       -         
    +plol_cnt_cry[10]                         Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[11]     CCU2C        CIN      In      0.000     4.926       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[11]     CCU2C        COUT     Out     0.061     4.987       -         
    +plol_cnt_cry[12]                         Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[13]     CCU2C        CIN      In      0.000     4.987       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[13]     CCU2C        COUT     Out     0.061     5.048       -         
    +plol_cnt_cry[14]                         Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[15]     CCU2C        CIN      In      0.000     5.048       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[15]     CCU2C        COUT     Out     0.061     5.109       -         
    +plol_cnt_cry[16]                         Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[17]     CCU2C        CIN      In      0.000     5.109       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[17]     CCU2C        COUT     Out     0.061     5.170       -         
    +plol_cnt_cry[18]                         Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_s_0[19]       CCU2C        CIN      In      0.000     5.170       -         
    +rsl_inst.genblk1\.plol_cnt_s_0[19]       CCU2C        S0       Out     0.698     5.867       -         
    +plol_cnt_s[19]                           Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt[19]           FD1S3DX      D        In      0.000     5.867       -         
    +=======================================================================================================
    +
    +
    +
    +
    +====================================
    +Detailed Report for Clock: PCSD|rxrefclk
    +====================================
    +
    +
    +
    +Starting Points with Worst Slack
    +********************************
    +
    +                                     Starting                                                 Arrival          
    +Instance                             Reference         Type        Pin     Net                Time        Slack
    +                                     Clock                                                                     
    +---------------------------------------------------------------------------------------------------------------
    +rsl_inst.genblk2\.rlol1_cnt[14]      PCSD|rxrefclk     FD1P3DX     Q       rlol1_cnt[14]      0.907       4.136
    +rsl_inst.genblk2\.rlol1_cnt[15]      PCSD|rxrefclk     FD1P3DX     Q       rlol1_cnt[15]      0.907       4.136
    +rsl_inst.genblk2\.rlol1_cnt[16]      PCSD|rxrefclk     FD1P3DX     Q       rlol1_cnt[16]      0.907       4.136
    +rsl_inst.genblk2\.rlol1_cnt[17]      PCSD|rxrefclk     FD1P3DX     Q       rlol1_cnt[17]      0.907       4.136
    +rsl_inst.genblk2\.rlols0_cnt[10]     PCSD|rxrefclk     FD1P3DX     Q       rlols0_cnt[10]     0.907       4.170
    +rsl_inst.genblk2\.rlols0_cnt[14]     PCSD|rxrefclk     FD1P3DX     Q       rlols0_cnt[14]     0.907       4.170
    +rsl_inst.genblk2\.rlols0_cnt[16]     PCSD|rxrefclk     FD1P3DX     Q       rlols0_cnt[16]     0.907       4.170
    +rsl_inst.genblk2\.rlols0_cnt[17]     PCSD|rxrefclk     FD1P3DX     Q       rlols0_cnt[17]     0.907       4.170
    +rsl_inst.genblk2\.rlol1_cnt[0]       PCSD|rxrefclk     FD1P3DX     Q       rlol1_cnt[0]       0.907       4.742
    +rsl_inst.genblk2\.rlol1_cnt[1]       PCSD|rxrefclk     FD1P3DX     Q       rlol1_cnt[1]       0.907       4.742
    +===============================================================================================================
    +
    +
    +Ending Points with Worst Slack
    +******************************
    +
    +                                     Starting                                                   Required          
    +Instance                             Reference         Type        Pin     Net                  Time         Slack
    +                                     Clock                                                                        
    +------------------------------------------------------------------------------------------------------------------
    +rsl_inst.genblk2\.rlol1_cnt[17]      PCSD|rxrefclk     FD1P3DX     D       rlol1_cnt_s[17]      9.946        4.136
    +rsl_inst.genblk2\.rlol1_cnt[18]      PCSD|rxrefclk     FD1P3DX     D       rlol1_cnt_s[18]      9.946        4.136
    +rsl_inst.genblk2\.rlols0_cnt[17]     PCSD|rxrefclk     FD1P3DX     D       rlols0_cnt_s[17]     9.946        4.170
    +rsl_inst.genblk2\.rlol1_cnt[15]      PCSD|rxrefclk     FD1P3DX     D       rlol1_cnt_s[15]      9.946        4.197
    +rsl_inst.genblk2\.rlol1_cnt[16]      PCSD|rxrefclk     FD1P3DX     D       rlol1_cnt_s[16]      9.946        4.197
    +rsl_inst.genblk2\.rlols0_cnt[15]     PCSD|rxrefclk     FD1P3DX     D       rlols0_cnt_s[15]     9.946        4.231
    +rsl_inst.genblk2\.rlols0_cnt[16]     PCSD|rxrefclk     FD1P3DX     D       rlols0_cnt_s[16]     9.946        4.231
    +rsl_inst.genblk2\.rlol1_cnt[13]      PCSD|rxrefclk     FD1P3DX     D       rlol1_cnt_s[13]      9.946        4.258
    +rsl_inst.genblk2\.rlol1_cnt[14]      PCSD|rxrefclk     FD1P3DX     D       rlol1_cnt_s[14]      9.946        4.258
    +rsl_inst.genblk2\.rlols0_cnt[13]     PCSD|rxrefclk     FD1P3DX     D       rlols0_cnt_s[13]     9.946        4.292
    +==================================================================================================================
    +
    +
    +
    +Worst Path Information
    +View Worst Path in Analyst
    +***********************
    +
    +
    +Path information for path number 1: 
    +      Requested Period:                      10.000
    +    - Setup time:                            0.054
    +    + Clock delay at ending point:           0.000 (ideal)
    +    = Required time:                         9.946
    +
    +    - Propagation time:                      5.809
    +    - Clock delay at starting point:         0.000 (ideal)
    +    = Slack (non-critical) :                 4.136
    +
    +    Number of logic level(s):                14
    +    Starting point:                          rsl_inst.genblk2\.rlol1_cnt[14] / Q
    +    Ending point:                            rsl_inst.genblk2\.rlol1_cnt[18] / D
    +    The start point is clocked by            PCSD|rxrefclk [rising] on pin CK
    +    The end   point is clocked by            PCSD|rxrefclk [rising] on pin CK
    +
    +Instance / Net                                         Pin      Pin               Arrival     No. of    
    +Name                                      Type         Name     Dir     Delay     Time        Fan Out(s)
    +--------------------------------------------------------------------------------------------------------
    +rsl_inst.genblk2\.rlol1_cnt[14]           FD1P3DX      Q        Out     0.907     0.907       -         
    +rlol1_cnt[14]                             Net          -        -       -         -           2         
    +rsl_inst.rlol1_cnt_tc_1_10                ORCALUT4     A        In      0.000     0.907       -         
    +rsl_inst.rlol1_cnt_tc_1_10                ORCALUT4     Z        Out     0.606     1.513       -         
    +rlol1_cnt_tc_1_10                         Net          -        -       -         -           1         
    +rsl_inst.rlol1_cnt_tc_1_14                ORCALUT4     D        In      0.000     1.513       -         
    +rsl_inst.rlol1_cnt_tc_1_14                ORCALUT4     Z        Out     0.606     2.119       -         
    +rlol1_cnt_tc_1_14                         Net          -        -       -         -           1         
    +rsl_inst.rlol1_cnt_tc_1                   ORCALUT4     D        In      0.000     2.119       -         
    +rsl_inst.rlol1_cnt_tc_1                   ORCALUT4     Z        Out     0.768     2.887       -         
    +rlol1_cnt_tc_1                            Net          -        -       -         -           6         
    +rsl_inst.genblk2\.rxs_rst_RNIS0OP         ORCALUT4     A        In      0.000     2.887       -         
    +rsl_inst.genblk2\.rxs_rst_RNIS0OP         ORCALUT4     Z        Out     0.837     3.724       -         
    +rlol1_cnt                                 Net          -        -       -         -           20        
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[0]      CCU2C        A1       In      0.000     3.724       -         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[0]      CCU2C        COUT     Out     0.900     4.624       -         
    +rlol1_cnt_cry[0]                          Net          -        -       -         -           1         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[1]      CCU2C        CIN      In      0.000     4.624       -         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[1]      CCU2C        COUT     Out     0.061     4.685       -         
    +rlol1_cnt_cry[2]                          Net          -        -       -         -           1         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[3]      CCU2C        CIN      In      0.000     4.685       -         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[3]      CCU2C        COUT     Out     0.061     4.746       -         
    +rlol1_cnt_cry[4]                          Net          -        -       -         -           1         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[5]      CCU2C        CIN      In      0.000     4.746       -         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[5]      CCU2C        COUT     Out     0.061     4.807       -         
    +rlol1_cnt_cry[6]                          Net          -        -       -         -           1         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[7]      CCU2C        CIN      In      0.000     4.807       -         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[7]      CCU2C        COUT     Out     0.061     4.868       -         
    +rlol1_cnt_cry[8]                          Net          -        -       -         -           1         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[9]      CCU2C        CIN      In      0.000     4.868       -         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[9]      CCU2C        COUT     Out     0.061     4.929       -         
    +rlol1_cnt_cry[10]                         Net          -        -       -         -           1         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[11]     CCU2C        CIN      In      0.000     4.929       -         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[11]     CCU2C        COUT     Out     0.061     4.990       -         
    +rlol1_cnt_cry[12]                         Net          -        -       -         -           1         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[13]     CCU2C        CIN      In      0.000     4.990       -         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[13]     CCU2C        COUT     Out     0.061     5.051       -         
    +rlol1_cnt_cry[14]                         Net          -        -       -         -           1         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[15]     CCU2C        CIN      In      0.000     5.051       -         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[15]     CCU2C        COUT     Out     0.061     5.112       -         
    +rlol1_cnt_cry[16]                         Net          -        -       -         -           1         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[17]     CCU2C        CIN      In      0.000     5.112       -         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[17]     CCU2C        S1       Out     0.698     5.809       -         
    +rlol1_cnt_s[18]                           Net          -        -       -         -           1         
    +rsl_inst.genblk2\.rlol1_cnt[18]           FD1P3DX      D        In      0.000     5.809       -         
    +========================================================================================================
    +
    +
    +
    +
    +====================================
    +Detailed Report for Clock: System
    +====================================
    +
    +
    +
    +Starting Points with Worst Slack
    +********************************
    +
    +              Starting                                                   Arrival           
    +Instance      Reference     Type     Pin                Net              Time        Slack 
    +              Clock                                                                        
    +-------------------------------------------------------------------------------------------
    +DCU0_inst     System        DCUA     CH0_FFS_RLOL       rx_cdr_lol_s     0.000       9.946 
    +DCU0_inst     System        DCUA     CH0_FFS_RLOS       rx_los_low_s     0.000       9.946 
    +DCU0_inst     System        DCUA     CH0_FF_TX_PCLK     tx_pclk          0.000       10.000
    +===========================================================================================
    +
    +
    +Ending Points with Worst Slack
    +******************************
    +
    +                              Starting                                                       Required           
    +Instance                      Reference     Type        Pin                 Net              Time         Slack 
    +                              Clock                                                                             
    +----------------------------------------------------------------------------------------------------------------
    +rsl_inst.genblk2\.rlol_p1     System        FD1S3DX     D                   rx_cdr_lol_s     9.946        9.946 
    +rsl_inst.genblk2\.rlos_p1     System        FD1S3DX     D                   rx_los_low_s     9.946        9.946 
    +DCU0_inst                     System        DCUA        CH0_FF_EBRD_CLK     tx_pclk          10.000       10.000
    +DCU0_inst                     System        DCUA        CH0_FF_RXI_CLK      tx_pclk          10.000       10.000
    +================================================================================================================
    +
    +
    +
    +Worst Path Information
    +View Worst Path in Analyst
    +***********************
    +
    +
    +Path information for path number 1: 
    +      Requested Period:                      10.000
    +    - Setup time:                            0.054
    +    + Clock delay at ending point:           0.000 (ideal)
    +    = Required time:                         9.946
    +
    +    - Propagation time:                      0.000
    +    - Clock delay at starting point:         0.000 (ideal)
    +    - Estimated clock delay at start point:  -0.000
    +    = Slack (non-critical) :                 9.946
    +
    +    Number of logic level(s):                0
    +    Starting point:                          DCU0_inst / CH0_FFS_RLOL
    +    Ending point:                            rsl_inst.genblk2\.rlol_p1 / D
    +    The start point is clocked by            System [rising]
    +    The end   point is clocked by            PCSD|rxrefclk [rising] on pin CK
    +
    +Instance / Net                            Pin              Pin               Arrival     No. of    
    +Name                          Type        Name             Dir     Delay     Time        Fan Out(s)
    +---------------------------------------------------------------------------------------------------
    +DCU0_inst                     DCUA        CH0_FFS_RLOL     Out     0.000     0.000       -         
    +rx_cdr_lol_s                  Net         -                -       -         -           2         
    +rsl_inst.genblk2\.rlol_p1     FD1S3DX     D                In      0.000     0.000       -         
    +===================================================================================================
    +
    +
    +
    +##### END OF TIMING REPORT #####]
    +
    +Timing exceptions that could not be applied
    +None
    +
    +Finished final timing analysis (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 147MB peak: 148MB)
    +
    +
    +Finished timing report (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 147MB peak: 148MB)
    +
    +---------------------------------------
    +Resource Usage Report
    +Part: lfe5um_25f-6
    +
    +Register bits: 92 of 24288 (0%)
    +PIC Latch:       0
    +I/O cells:       0
    +
    +
    +Details:
    +CCU2C:          37
    +DCUA:           1
    +FD1P3BX:        4
    +FD1P3DX:        42
    +FD1S3BX:        10
    +FD1S3DX:        36
    +GSR:            1
    +ORCALUT4:       63
    +PFUMX:          2
    +PUR:            1
    +VHI:            2
    +VLO:            2
    +Mapper successful!
    +
    +At Mapper Exit (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 32MB peak: 148MB)
    +
    +Process took 0h:00m:02s realtime, 0h:00m:02s cputime
    +# Tue Apr 30 12:09:51 2019
    +
    +###########################################################]
    +
    +
    diff --git a/gbe/cores/sgmii/PCSD/syn_results/syntmp/PCSD_toc.htm b/gbe/cores/sgmii/PCSD/syn_results/syntmp/PCSD_toc.htm new file mode 100644 index 0000000..9a28325 --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/syntmp/PCSD_toc.htm @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/gbe/cores/sgmii/PCSD/syn_results/syntmp/closed.png b/gbe/cores/sgmii/PCSD/syn_results/syntmp/closed.png new file mode 100644 index 0000000000000000000000000000000000000000..0d78634f322a904e7bd0c9466498c0a42777589f GIT binary patch literal 3672 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 + + + + + + + + + + + + + + + + diff --git a/gbe/cores/sgmii/PCSD/syn_results/syntmp/statusReport.html b/gbe/cores/sgmii/PCSD/syn_results/syntmp/statusReport.html new file mode 100644 index 0000000..b48fd55 --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/syntmp/statusReport.html @@ -0,0 +1,114 @@ + + + Project Status Summary Page + + + + + + +
    + + + + + + + + + + +
    Project Settings
    Project Name PCSD Device Name syn_results: Lattice ECP5UM : LFE5UM_25F
    Implementation Name syn_results Top Module PCSD
    Pipelining 0 Retiming 0
    Resource Sharing 1 Fanout Guide 50
    Disable I/O Insertion 1 Disable Sequential Optimizations 0
    Clock Conversion 1 FSM Compiler 1

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Run Status
    Job NameStatusCPU TimeReal TimeMemoryDate/Time
    (compiler)Complete10500-00m:02s-4/30/19
    12:09 PM
    (premap)Complete2200m:00s0m:00s143MB4/30/19
    12:09 PM
    (fpga_mapper)Complete11300m:02s0m:02s148MB4/30/19
    12:09 PM
    Multi-srs GeneratorComplete4/30/19
    12:09 PM
    +
    + + + + + + + + + + + + + + + + +
    Area Summary
    Register bits 92I/O cells 0
    Block RAMs +(v_ram) 0DSPs +(dsp_used) 0
    ORCA LUTs +(total_luts) 63

    + + + + + + + + + + +
    Timing Summary
    Clock NameReq FreqEst FreqSlack
    PCSD|pll_refclki100.0 MHz168.9 MHz4.079
    PCSD|rxrefclk100.0 MHz170.5 MHz4.136
    System100.0 MHz18518.5 MHz9.946
    +
    + + + + + + +
    Optimizations Summary
    Combined Clock Conversion 2 / 0

    +
    +
    + \ No newline at end of file diff --git a/gbe/cores/sgmii/PCSD/syn_results/synwork/.cckTransfer b/gbe/cores/sgmii/PCSD/syn_results/synwork/.cckTransfer new file mode 100644 index 0000000000000000000000000000000000000000..1106516a728bba57445e931c86cd822e9e0a3dda GIT binary patch literal 457 zcmV;)0XF_0iwFP!0000015#C0RVXORFG)=2L*O z9v+2<{FA`hI0jmdB4H+Qmw|4bJ)6uuF#qJ=DF=uy;av6S>5M z4zY8HP9@#@r67~dOd3g|ArFk4Wzfi!$wS_|!_~XS5<*$>b3`ZR8C&q=!h|75HyIJ6 z2Qh;(W*1?h;7x_p#98L6uU}S`3gJNL`+EOC_fxf3m~LG{m?X`_7H?b!MRufJ zBA+qHwpT5lnrl@-Uou&72C)MszLY|*?TF>+d3?rku{@1!b*--d?G%)qf4Kwup&A>- z=Ra=`&F@Md+VV$Ps%4qco3K{RYs5=7)3a3^9;z?ZUjP6A|NjF3L@?kstpWf5oafvx literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/PCSD/syn_results/synwork/PCSD_comp.fdep b/gbe/cores/sgmii/PCSD/syn_results/synwork/PCSD_comp.fdep new file mode 100644 index 0000000..48777ad --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/synwork/PCSD_comp.fdep @@ -0,0 +1,35 @@ +#OPTIONS:"|-mixedhdl|-top|PCSD|-layerid|0|-orig_srs|/home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synwork/PCSD_comp.srs|-prodtype|synplify_pro|-dspmac|-fixsmult|-infer_seqShift|-nram|-sdff_counter|-divnmod|-nostructver|-encrypt|-pro|-lite|-ui|-fid2|-ram|-sharing|on|-ll|2000|-autosm|-ignore_undefined_lib|-lib|work" +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/linux_a_64/c_vhdl":1542167766 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/location.map":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/snps_haps_pkg.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std1164.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/numeric.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/umr_capim.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/arith.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/unsigned.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/hyperents.vhd":1542167610 +#CUR:"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd":1556618983 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":1542167599 +#OPTIONS:"|-mixedhdl|-modhint|/home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synwork/_verilog_hintfile|-top|work.PCSDrsl_core|-mpparams|/home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synwork/_mh_params|-layerid|1|-orig_srs|/home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synwork/PCSD_comp.srs|-prodtype|synplify_pro|-dspmac|-fixsmult|-infer_seqShift|-nram|-sdff_counter|-divnmod|-nostructver|-I|/home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/|-I|/home/soft/lattice/diamond/3.10_x64/synpbase/lib|-v2001|-devicelib|/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v|-devicelib|/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v|-encrypt|-pro|-ui|-fid2|-ram|-sharing|on|-ll|2000|-autosm|-lib|work" +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/linux_a_64/c_ver":1542167761 +#CUR:"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synwork/_verilog_hintfile":1556618984 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v":1542167595 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v":1542167597 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v":1542167630 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v":1542167630 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v":1542167630 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh":1542167630 +#CUR:"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":1556618983 +0 "/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd" vhdl +1 "/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v" verilog +#Dependency Lists(Uses List) +0 1 +1 -1 +#Dependency Lists(Users Of) +0 -1 +1 0 +#Design Unit to File Association +module work PCSDrsl_core 1 +module work pcsd 0 +arch work pcsd v1 0 diff --git a/gbe/cores/sgmii/PCSD/syn_results/synwork/PCSD_comp.linkerlog b/gbe/cores/sgmii/PCSD/syn_results/synwork/PCSD_comp.linkerlog new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/sgmii/PCSD/syn_results/synwork/PCSD_comp.srs b/gbe/cores/sgmii/PCSD/syn_results/synwork/PCSD_comp.srs new file mode 100644 index 0000000000000000000000000000000000000000..c237416d55410a761feff44678e2508db52d7c28 GIT binary patch literal 31689 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/PCSD/syn_results/synwork/PCSD_m_srm/1.srm b/gbe/cores/sgmii/PCSD/syn_results/synwork/PCSD_m_srm/1.srm new file mode 100644 index 0000000000000000000000000000000000000000..635a9486c392e3675a81ab5f56f9613b846dae87 GIT binary patch literal 26132 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∓nt%83< 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 I$-@c&0N4e{8~^|S literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/PCSD/syn_results/synwork/PCSD_mult.srs b/gbe/cores/sgmii/PCSD/syn_results/synwork/PCSD_mult.srs new file mode 100644 index 0000000000000000000000000000000000000000..a26742c0d16d177202aae8fb6822631e6cade8ac GIT binary patch literal 24257 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 P|NjF3G>^&G&`1FQi6nb- literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/PCSD/syn_results/synwork/PCSD_mult_srs/1.srs b/gbe/cores/sgmii/PCSD/syn_results/synwork/PCSD_mult_srs/1.srs new file mode 100644 index 0000000000000000000000000000000000000000..77b4f44d89780a5ed3bf95dc82b3c2a4b1e1f76a GIT binary patch literal 5162 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 Yp%1DJ=>G!%0RR630AS3oMRSG#0QI{l1^@s6 literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/PCSD/syn_results/synwork/PCSD_mult_srs/fileinfo.srs b/gbe/cores/sgmii/PCSD/syn_results/synwork/PCSD_mult_srs/fileinfo.srs new file mode 100644 index 0000000000000000000000000000000000000000..1f3fbca4fb74a33edd5ea0765661238429a07ec3 GIT binary patch literal 395 zcmV;60d)Q!iwFP!000001I*P+PQx$|2H<^9VFh(bo%98$OE>@$2Z$Vdk_^O-<#8f< zdmLKY8dj}A7wDoZEc{jbaOe(SjuY=7W-C3#B4M~ud-~tjBxX@;7q5%p^R{gvEVxGaw#n8 zh_@UIPdM~-L|cu8))~UeKzwM|W6{-H3qyB`cz1us6Uw15yh6{tD^?`A2W^8Fc*w`s zkdK@yjmV!LU!Fdf2zEb)xiy^(eK|f-b8Fhbrjh4(iFd0~`riY4jcrGq$xPt#Th z^lv$=##}*p3d#N#(uZ!lA6>VKP9gIvKu(hM2w7YKLK4EKX^Y{|MN?T`4P(&)&8V-B pnALX-^=D(w51oAQhsMKoe6*}DAIt{;009600{|iyO&19Y006x#xcmSB literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/PCSD/syn_results/synwork/PCSD_mult_srs/skeleton.srs b/gbe/cores/sgmii/PCSD/syn_results/synwork/PCSD_mult_srs/skeleton.srs new file mode 100644 index 0000000000000000000000000000000000000000..a3a2fba0319bb0c4de08bc061ab80b66891a805d GIT binary patch literal 2633 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/PCSD/syn_results/synwork/PCSD_prem.fse b/gbe/cores/sgmii/PCSD/syn_results/synwork/PCSD_prem.fse new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/sgmii/PCSD/syn_results/synwork/PCSD_prem.srd b/gbe/cores/sgmii/PCSD/syn_results/synwork/PCSD_prem.srd new file mode 100644 index 0000000000000000000000000000000000000000..061b9892139d1e1d4062a19a72afd6062b3c8d2d GIT binary patch literal 38649 zcmZ6yXE+@18~2?M5hMgb^oSr)qeojw5D_hj-ife8S>0lnh=}Mx^cK;3XZ7C8>Z>mn zi^W>2tyP}<{`d1dFYb9W^S$PK%v^IE=XuOE=jR;G@H;pDw~-D{Yl0RYJtRNy1CSj) zIF_J4oY8M6`Qo=IVLwmZ^5|}~6XV@G6$=pJs${8>-;M+1Ci7~aqBR~UoBkN1af5@y z_kPW9N?x8p7blkX<=;027{9H54gMTCP9owamhFwsSLZ2+1^n3+7&ysJkQrN@dv3SyB{ebTi1$sZ%a{?A@-pF3 z7GwEz|9eRyg)@LL&6(9DmJilr=;DNW3e=aP0Ld_NxQk6uI7u=Z7q^s1ronb=l#B~7vGco&mr%z^o| z;x(N|T!nmZ<_bRL3#QSa+PpPr8%?v$ks5jb+MWAwE`JuCqf}v|_>J-B`o;$h*qxizzG1kfa8VH&_IaZ9>eUMlK@8mN zVJU1Ju>LK$!{t0rP>784UApGg1?Wbab8kLZ;hiUokC~Bc zR_CRz3(X?v=D&+C{z!l4uOn4GynOsbIu7Ei5ndaN0bwt}$uM{s=3!s6^($B}o zXU_cO{NNy98xzuW8jW3E$}LB7A{XcdY zC$i=8Xmh_j8jA%fzSQ5p?Z|;_RmXCIkS#ut3ozCGgr+b40DTUh0KKX+4@v>(yw5>m z0m0kRnIAYaCqfn!S5SSYnSd*r3m1Ib!(Qa}<(|;R!FC^JiI)sk)`kQ$x3#Hr0=}lk z<^>Q4tH-!WKk(_n)ur`0-q|y3?aH=i@XC{TDt7=_x`5)7mRnmwuvb@@map#DtH%iV z4o>);0d8k%Qht4bw0jRs+E(!Ip;`mL7n04(fGdqvepxVd(J|zy=403;B`)&|>)z_9 z{R&rD+5`VRmM!*krldF8+5_enNZWi%D*6XGT1+a>PgrI>sqfxb3#Xs*6sg!=+1m5)&0V5at7^sL4eK-AOlncbiT;l3z{56< zv=@QnS*{rq54&C7Qb%dvEhpI0c;CIcxW%fyS?qVFm+;{V!Jv^5gX)-Ci1DS%_dSun znL(j_@ zT9?KfD9*NDvOn4vI$;jx$|>~y&F$cF8Phu`Xd5;*Y`qdv?0vt(9}CV2u;zolzTqvk zcuEe+S@0)kpY@CN8e7;?$WQd>^yqa8e@`-g^SWbCEA#dZ)Sby2lTQN4Lk@y>Ik%o@ znO4d_cV*)XWD!O_ul)wF^yJbnnJ=}yz$IodQgPPCu? z&;lHi@BjYtb)fZ|=wnZ2EKJ*)l2!iI42`SCYTo@{vIkT_%*1V-2;zs8yaXX$8>$w^ zviK3TxjPwA_abNx#yHJi2u0`L;aJ;r+2YDWQ?Xw^m+cMN9LulBcmH}-mIsPF655Nl z3#t6FLY0RVw^v+^PgCXs(v1vp-Ll+a8g?1sQYN}tQV#{{jhJAr6K%fQ2U8LgG5C;LB9TD?O1VjuW~ zqgCZIFosRPq~)yz+22W9HcuYipdVGcGh)YVNyytIO@Oq=!t2-ZLIg_n*3MXw`t>0p z!fW-`u~-^$``zTd4P?!U@!?H%0P;VZfZ%_&#s6$n|7?<+9MTF2x1NHyI~O=O3=~)h zuH^IwcP*J-d>V~@c_>Kq__~Y`VkCJxZxB8B`_&gWqmH)GBNHimyrUFUZYU9*P zw?{4V39YQmUEp4Nj`cE!a>|)@n>2NT!2RsW`!bp=kN81cTSB>(V!cd^{QGFm(^ zo|@M7iQurx(_GBcgk$=e>CbI|W+om2hho9x; z^lZC|Oh$cZX0kWzrF^WVeb=28!uq_0+t}j1bmiov?2Um1a+oS^U3r4;Zl8>v3}c1L zTu!G4^`WzXB{{_i_v8oqw2812n+H9bbYu$vALqw66@SL=xlc)h@lWO#_}Jq_-pb~M z{t|ku(WQf6BdwygHWC9!GHf}raY2{E8EH0o1X4j$8)d<-4dRrjm}o+qL=LBKR)@EiE5_9zj(fEH4OydRbtUZO!(c*Srcc(pQTMn^C=TX z=ERtTes@%vwe8Wx@M)bp6TfXtxMqg*y{d|&5gEK1o6|{)f?0edA8)WacN*rK5omtZ zk@^e3f+h!XcHF8?O+&Ib>-9RA3nDo0a))M{m(dK$nNyE{O?=Fsx+==m)Ob&nvp~v9=fhr|a&b1^)QV!*`Zs|(H(|A6}&2aZkA)X(It8bn;*UuA;d@AQY*{j$de{4mYC zXZYj3y$Lx_(!1imkr5G_dWf#rH1kq;!9Cn0<% z*SG3l#X4;Re)YdH%!ofs7_;v-o0Mb!p!>W<^_Yaas&DC2V1*JcJcMUpr@fVo_TqLi z41>$i@F`FGxff_HxD(YF5$C&Hwk7$s2wy<|QyOw1$T^fgkQH;dXV5(Tz~=XLZ4u%| z<7l@2G0RJY&y+4_pp9j7_Un6!@YCm^2Z>R;M`tqI9G$JPz;Qo8Dg(nbgVAEWmfK^V z9D+{6R1v2sUBN`^lQp*X!_qhO?6)U8AFeMdPX~c@6#8#iFDg;L)^ht*74Ws*{Eqq+ z`R^C6ulO#5Ea+V8V(wPPz4W;qp<#BTYKx@*Lq(o;yROa=MUgq_L)p6`vmK>*N;t0+ z4rPSH4Lx)qQD6eoWz~9_3&lR&dXc(A{#X?HOYgNruYK4bWmnnA{T{Mot(!^ zuYs03uiccGzWH$lb^){m8Z*V08O&~tdCZKA&rjkP8yN@??Sr&?bir36NkO3+I7Elf&QyNEVL;dp;lBQRF(W77H)bH{GW$|8Ne zzg3U!{$1|He5=&T3)*S~>P3&|!n3KL@Sex~+jRxvfVGYXN17Sq_(Sb2lSgQBmH$n4 zx^l;tT^oVX@MLM9^1E{xT$p&E(efQQuCCEW@lT1r(n+VN+R``z{eJWL>LL2pp4k?F zHH&YpvHYfFtiLkw)kF~g996^jJZ#W7AZVETg8d=3whVEjXf!A%CJvHyeg9hWGI%Q$ zo~{IcQ3(;>iE9wPH56c;!ZvGM8o&*VPoWN)y;_lUQawv3Spu6yRNT$od39fl{e5B@ zOz=xHqJK_BX{WLVr$~&lSHeY(jdGo5@!3*McI#Gmd>+et(Mr}n@dt&gA9pNuAX&PAu;v!Q7} z@oo{*8QW|R{+As8Z&vlPhHjcD-ujsqL!X39+57qpKzAJJd+*PVyxsh>S9&36P!{l| zrrV%EzIssUi&K!+&7!v!F-Li7B*(iJ2>Tm4*bkWhV>i}Gj|z**mCazO-Pe&+miwgC z>G5cwBAnmiw*&4{PtE;vwltbO0qqr^qxZE; z7aESAo>MfGWVJ+ZC&!E~<1SiC-`~n4f%|m+{(BHw_Vq1?w$|9nNZyoHcc1xu#Gk9F zBk(?**tG6{Nua7Q{okBkdD7qFYlgf}=bbduY8`-h2)eNMdTAev)3g65BHtFxO!B?& zEKWM*{kLt)ONr0%ZfHg&tE@bmZH(@*A&ZD0B&5X>UE6oJ8r@S(2l(X}eQt?}n}^%v}i%b)EuaCN1WYoMN$)alwX7m#fn zDXTTYU-Y~l%&J-}&U|>L=7QDs0h8uPLMTb^gL&*xzKO$%ZQ#A)a`73;C%?93{l;|xl2ES&CFR%3vyPoj~ z94(p{O0n+kMzC4i`a-#uru0VRGt~`-+zA~y;hNF1SvM0Xw&bOh7D8KRevqefZbN{% z*`gL&F3*qpCy&k{jfKT^;}c0}Cy$?>X!LImrs+vL1vMtj+P&OWeQ&yv-omL1y~uG^ zNmSGZOC0<6IMH&9sc7hFh&d+EybC7fFd^mL!DV~)XUSWN)2`L(UDDFv_ zO64FITq35U-!CI>lU&-TVWja_*hpakw^5Z)o32Jrb}8i>l`>!|RcVy$AYSiUxhC|v ztD&mXzgLQJG&da3>*TH<+OlNYTU%$+-z9!bnfix$c`F+VshLpkUl%_+p$%)CmX>QZ zt;;No+o!PYg-b-1U>Q@3)Ho`oD@&|BuB%?h)xO&g>Tm6<>!nyIpPqymRfUMzE3dzy z8RAE#Q172l-m05THL@Stn<}}KiObukaN5|MP?l-Vufu(v4bVCdo1Z%lp~mw4jThgz zIqd~<-e)A*vbLfpLKh#O%qBGQ)%}z@8}#R7mtTO~lrVX_aQ-=i+tBjP!eAkrZWp^o z(d=)5dnTF=GM_^HlMWpmXTNF@BYp=5DLK9q5+i-@q~#>m6YTLP<8*e=;w@q{+7WtN z;ftKCs>39;_r#U;2)r?>BHY}viZbs-l2?0zXjXdG+`QF1lgWacysxVN4<-#8(8h&x zUB}_8FpPkY2Z({n!)5v)8Q@J-3_HqcTL|Kz?DmzHAYQ=E{NUXy^Dg(@zIV) zz~*8&ej_xUXlnF{TM^;xTIVPrFq-2;3?fMUnLAn-%+Mx3x(lsMUlV}badiLTtL0=u zI+{E*P_*r``enM|Xa$qn@dc+SmjB^hlHasH(v zgYD=d0A89I))M4&>D357kZF&tYN-Fz7&>0p>8sUysgC~qs>iE~U+x!lb9m0i@vK>E zFmq>oxw}&-r8KlOAXwWO*;VaHPh<=?mBis|+kc%%7BANIaqKyaCJ1c~F(wY4<83b0 zZ8{)EmLkRTyqf2j_gzm4SMFo2Y*3Pu9D|*p6bqOW((XJF-gN-9Dga=lT4gK)>4u2n z2Z5V>pt(#9$6-h4BgZMn4LwDuy3sZYBv3rxYc%*yP8Q>jc2Fc|DsZLPoQLq5)n2C_ zXuglG`^uPRBS>b_QgrXH(`Cb=!PZBM0r34gAEVmrns~`QQ726QhWyKLkX33vJfGAf z>mv9lv}GrUCOu_NVP6dv(OR9MP=Hf(yii?>9*)L{*7chj(S`TaDeCX}IiW3?CIXoS zdS*h3(kn~%!psi8dr{=2pYHx)W_~vhSeU;|(>0WMx%>r~D$r)^sRJp2AJ;~_vW_RW zoqWRzGJ$rtCe1#d-xApEEd^(MDt5-R-Yw#{mD;J35Zntl1jLEki6=zQS>%~DQy^=y z>$gI(N4fPKb&`jEDoJ!WUH_I}l^hi(JWRw`;u(gx=o>!t0>tdqAq62qH3M@KZSB8{ zIVS7NEdZCEnXPRC14Q`IUdSodf3fA-Eudaaow;dS=lYxprw7wC2!KGoVz1FS`U_+< z=hKLVqdiVVj+MQ>CPeh(<;kV|(`Y28e|yt{G!l7s0J!uqK!7mKy=|!}=Px0?kbu)0 z0g$%Kt4->~E@?$f(~;1~*8q}zB02bao4Z*Z*+#y$U_o<$>l1>2&yH44a3h$@rVzQa z1I+&ZBt{`J_!x)PT_Hz81HRKBv6J}>G1!dQ00YwMfPhYAmMcy0MPXPh|CRUo(Jhy2 zzUj7P!LzBmd`BQ&@4@RMzg$S)^|O2XllAp5VdLvPWFZ4KGwIF2@yW^6{z#LiarK#T zeL#E2>FKq5!0GwEuo?6mr*OgC7O7Q#X(Eu$`Ml@qoUknlZ5cVN%ey#j17Vlt7h3>f zvnBy8msfoX&Cu#b^*Ehs1-HyN>_NFAM{7VkSfQN;#Nlkg$$>?FUGTuW;KL)0G~!aN z@B;ppH4kIoX&3j_gyqM$2gtYfCvQKxcEjRxJviw42>Bt_jd@HZ4_DmHM(@~uMJS?FhuK5h!y z&O`J&KCewO^x>29hcI6bL;~L={&SstZbp91`rKFJ6CpWt^w%7y&^F~%Yc9_CQAPV< ze#HevN#}PxL#quPL&7b6yH3i|iuq?HUL-@3Rt@@wa}V^T0`*cV-mwY>y!J!pw19G3 zK!K83Eue|z`U(H<44l!rQcUi&tE_x^hp>c@e$FRXsb|!-t;GZ!z%kYU66Z+{uIf6R z8*wgC{JEOY?+4b-+28>vR&;$@Z`GC}zN<@5dQVA6=^w2Uk_?VNA{KGKc&yqNGHcM) z8qP-EBW)+>-hFIs1ltaA5=6^C$EQzMDy%{8W|YZ^BE!8jT2U8D5p7RYx1Ql2XVa9C z7`UJ!eOkarWV2wo+L59R&*7L@&^edqtTx_d* zYXA7b$CKB-76Mmbe)BJoPF5hbh(t)@OoA{6T*@`;U8(9Zml%NoRP>g8{kL&(-$fbv z)b`LX?&9WhU;zv~Mx~pfl$5bva%wAg2w!K-Z%T$={bE2g<(oxR^ZmCVFW_*-> zmRfA1lmxPI zxx+&?+*h1;GQhH{&^-R3>`e)mD_XyYGBgs}<7x+F8FKyRk{pdp^4F3dZIO=!KXcD^ zBvR@{{>D9ndvrZ3V6zy!?4E&T(J6dO<)?e0hUC-HN3=zXuICXlY9Re2pmV31d&!%A zDO0RnSvrXKV$xngi_&)#OFCw`@3V5Mv(B1k&1NdI8m9WROVB*WpH0fQCg&$@J{y)N zNN786Qsn!*7T1;=nN0CnwC6w!$7$j}+h(|>hu>#j zBBMVTwo(*Vbf%24ZuyB(3P@W8>l@OikU}lqSk>|hA}AeRd;h_XJS`diu4ineX@^a% zIW4U@{g-&pGXHm2-@#%Z&12*%Wu%g_$oQ+8cxNasbuf7|l9fVyrAjfOg+F)yYxjOL z#RD1MuSF01l)Wh zT_P>?H1l*9oT`(%w(jJu%G+igqc^y7Hz2Kw=dg7WoRL2hhzPWVP$35G|Wj)6gu-jz}06bY#Bi^}V%^p5u}=zlIEq#5LI<_xgj zlaD;p1si-vxIJATq7bzD?!qU+_!j!adseZ5C(B~?RfuUcs!Aqk44Qhsf!E#a* z0&z4Fo!T@~E<&@7S|XY}>!UNG_5-|XWl%o5kmdee|9-H(_X$k8GR{Pi&#Z(Z~8QqS`?0Eo^_NpGO2~gf)EdZCxVMfeR_GQceAv= z#B`anOutcW zuADn00=hhT4^;SD?I>F9D5bj&9xB{uw>FwK>2C>{3NYLnf=?IjE3Gy#Ry*#YBlu<> zWxtSBg#~vnB%=hEfmVnESdZ8ZnS%M|ElAzT&5h9e4;+-D#m0+=haIZ?O3#ot%w zV+Dv!1^OpI$4to}al~|i$8D|*_kl?>b;x$Irzz$C6V?@&YSf>1(xBLhH@~VpYJ-z=)mhvCGnqBG=_dNf* zvut^ttmZTUf|&LI4PT>5lQ{H`a2YU%c>SZgq~^ziJYlC{lS39g=cFxQV7c^ip3z@-XRf^Uw;_S#>`PR7{U=6je%=^ z{-yZHTI#N${z)gq%N{0;gY-bET^CV#x4LQDy?H&{G2fZ_V!pj!QS2$}b{ovF_?TG4 z&RB+CGj~E2<88vd9fWv1)TEquV3UY10k#%A3x+Q(*u6`mdnlsZX+u~>gYD(KXwk2G z<~D$zg%!BDB~T|ed6#o+t)ijDEpEMd?ZnKO1{5=M?M;+-1j&aV^B%(oqWL*Jtl zuFNR_sz>vG=AKT#Y8(acv~l`cU>E1D=M~FN;>|5$s(}xUogS;OE%F=(@*G>uB>|Q+ zPCmr%5(~Ip_1K@BhjxG1F3LEltPUM-X#Kb+F?}_7Lr%T_x46kYXBO^p+j}AIPC8DC z(r?+NnPqHpoVYQKY1vT=&UPt#>YVurAoOOSb$#$i9rL-~#ozJgpWR5!7jjC12-|m3 z%b3@MB54!}US*n;0G3NPt~P72UV`tZ>USQW80BW>WC9Q5EA{qRUf5YDdc+OcC#eDM z{t&A6)@-smbefzy_Q|{4wS7-4Sa*20E#RJ7QK+|RZ?7%4z(}oV?wRp7{4s_qV6%#y zbbQ?VfZH1Ls)BD30Y3rqGYU-kAAM_d1KsYz#|My5U3-n!1z zUFN2@g%E;&gj0XidocX~J)gHZdBUDM7PHz|&@5ZY#EDp@@|-(l_9SRTwR>)4*)dhs zQ3*LRrIZQ)fv&JJ{lV-wqFut2%~1Z-2Au-85968rhKj_7N=+J5OmDce*%=x1$LmpX z$3yfk4!FU?VBncH-4JdQmY`r}Q1dF%X6;V$z`v?DLW(Z?`>enoBxhi?CZpsZYk?09 zUxW#kt%?Hkt#G2h@YzEiqcT{f2Bw|1_;Bsw2Yjwg*JQD6|s@O$c&j*MU4LxuOGp=J^p_kJrCBaX#2{ zU{=(Y2o$Wj1YoiaXb6{?uWrU(b@3wTeh#Z_YUzOn=7@*QyGq!<6?ZF_W7@!LEL0{ zA&thhj_|ITD0TC6S#}e;e!J0_-lQl=&Nu&i>(?5=!pk3*sI}n zQ(5*|y;y((jb~*|%(EH?hWT2w9fGBXoA_lAbH$?k zvI9O1sT*BIf3g0t9XC+@26Mz;M=Qi`Tpu&xaU(#29}b-mI#vK_f}R9YZOi7OQ{SSZaX9( z3TVjZ#e`QoXdofRDb!g=c;a(73pCSxC|p z9+l(6#GLE;i1E3rtX2c5b2zyg40sBXX;zujzQs>&R~)7(DDk&NR^L=`05u#MT!O2z-7o4^hUUkXDAo`q*CPi zycF2_n-Ow;##*SIUhVeR+auXIC1N9c2bAnZefiQch&I%^8fkKB-1jp>lvd8V26Vz6 zx+hjA^BJh&ycH)ki67gVqHTyJTEAH;%!~s{T4mdDjwJJc>m!dN|JM3=A72Jz$;rQU7H{-$S}V_xwq?3 zl9SF0uN7Jts&QTysG(w*AL(~bW1N@8)J3RPCk)WZYZs3>>t~>@rdjsHq@>q?4f>EW z$!iS0#$9qg22V>8ora;j=qE(CgZ2g0aaetvJAq??$Io#ZZPHG4urR#HH+d{Gz2WC5 zSd!?lhBl)@x|+xpg6gFh54^g8@c!J5o6l%QHPPAv5&H z=Ta`fUJk^y43ZU3GncYfr|jRi;l4_vXkv~6Rz1ZZM)-3*01g3-eOh^eWce0qgNf+DL}MR-G|)qn z?}C0>V)@3O%DFs<23UOoz0RDfh>Pprdt!F*XWBomTj&OZA#?@BkFR`M)9d*2re)0A zUco`bn~e#C>D0QqI)@>QeX8R5oq4p{iC9lm;JH$eef#KelZ zf%p9CfH@F9$*E&+W{-F5D{+MH6eLW?ATEre_6k1B*&eSMOb4ncoI4JwvE5k$IsXxT zBuqfZoY8axoj)uIm&>tY%1S&9)OX6tikd!q)@O4f@26F~-!~}40Wg!&-3RL)fo(OT zbcpy5ZK5w{-V53OSjBqRwLJFX$fBPkrA_|Y{Qv?vb0K0*u2xskORRKpI5-Vt7x;C= z3`|Ma=;>Cbv2VfU-CB%AL#DgU_$BIApuSYsU@+|R037a0By8>ncE7r4M~B_T8kijp z2Y#aI8%p)APOH>p^sfG8`14eraV=z_Z-JQE#<4#UBKai^w8~AYx*li|jZSi*q z8k%s*Gky}wr_dy<+9YSh2Q%b@)oJZ)Z-_6O5sMU#;x;XO66(G&4%t)v)Fj)6e`ARi zUr^~#>Lrq~cG<|UPaYT9YCCg2`!rEt9oL;LV~xke7)pd=@Fpkg0BU3C3Iw|1y)y(o z(S>jxon)!+DH%*N+3pseDR1qimeX8lLDwNsW!9yP!@=lCEkyaHuk=?0iN958g~s~aKCM~U_`M%Jc9*DmhX>pSHiH^0Nwd#SZ;KuR{|4c$j7y+-*4 zt^FGkdyPl?i~;Np`%gCKlL78br^!Ra;fD@$vp~FmvvqU5igo0vk<50rh7-`M5?-YO zebZ;`%<8Z)TX*QTFsNcJ#AGcb-DfNl>gt_`9JIM)Jgm$+XYd`ymd+qP4>d#&#!21^ z-{HRck-QHom?9URCNC?61Bvp}G%*PBqmwz5RYB!VrfJoaxa9rJ|IZ)-L}?wHtREA6 zi5K`iJkyNo1+(~MW=y>F+Kth(q-Ub^Op)ZP=%h&hsK1)oiZ$K?ob&YlLy4OszoOhT zqbYi>V|qN&dfnxby`Mg?CI^`15mbDqKt?7^cBa+hM3Ob@7P}GatJvgCkpT>;`VJ{# zy6^I-_(*hYPp!nfG`C{Jp2?GPm+L_deEIsZ<|n%h5c2Oi3~7@`F!P<_o3}$YBykIx zqyLICj*2uY@(Prf(e9O8pTD3HiZl71X`6R$?^~o;p9U1}7v8V(d2g!NrJPAoJ<^{M( ze?;kI0q8ZfI<|;aGVq7Gnz=Pxab^43zAwT@tVIKQM-;^2E^W9WOsx7}qXQ|%tmQX< zYH_9-jLUCaDkGT{k;4&qP2)`eQ8!_Is&cr6ekQUi->vl-h7^qdHRcZ9XrNuWOI>j_;|4TpRV{K1cPsd(k4ivqBYXb1h<4zJMY*JT!CcMPb?HR6+ zK`gR_uawOhEwLtsSQf2w*R5(JP;LIhj?NtSum&5>pN!suaShmw}p|@-+AP(=xU27??n+VVfB?R z{rWTOmxc!w-Gz#(;mA(ze^nA8GKF7}99t~De~|6m_-&nTCGpjqNWQJ_5lL6o?m4u5 z*K5tDVr|-P{_j6Zn0nsZdeY{>H1pNDgXO&#F);<9_Y>M}$OL=O1S=~0MyQT$?1XK) z@{pWO&^!-&tQtk&0tbHJl#w34Fc#hyHIz}`g}%-F@gPJ$#^P4QRH(Aay22ea*mR}7 ze>s2s1OPUQuC5#zzrj8wqs5jR2TGh5+BY|Rj);Hq>xs{%WofNRd&SbWOX1!V%6H$> zc%WKPt%2$dSAm}af3bT%udTi`!*Sv`gQK-{pB@j- zuJ~nZZ}j-)w9pXH?g4M2&%~pyr7ugctUcB-&S{-A_7=g5r(EykduS%*up!%`io-)* zTs-xdXR1hjZ5;e)^c?8hsfc&;gTWo1LCqC-}2Z8+e|tAP6SO|b3S zSbrxl#_=Ubt2KN>27XpJ<@V-b*j+wX|JPKy|KzbYU0?d|A?>Fd+L%T4bF1J(vJ(NG z&qRb>2{h2+d#(CpX*S*HP8|^cCmiDl~#keVLW}mHe zDY%9@xg<eaqDb4rdjh#_H60_MCOXi0E6rp{VNTRPA zS<=WEQ}>;B%0D;fgvN3Ndq#5TUoLJPd)8#uoBpD?f)7V(4I@5KyuQ1C^=XkR%8$!M z}Rzr{Dv*qy!}D^i&G;3R-%8(r4B8K!|KCb zy=C^x+L!e9zo+&=Lpd6rgsAMwtYv(-s1k<(hg?81ZS|CGiFDpWOZ0T7?$+^y%U}%4 zcQ8jet}LYg?@?L#QEfwRMnTU{PL@tpONIBzUucp7C*B}i8{8&qLMolsqBO$r&-3(b zjcu0Opv-*NmQ{T@(_w9M%}h}cK2Lt{_DJudsMGcVzeVq{?0+RZZ``5Z z*!t4Xd9%-h3PTsm;uPwO%z4Yz@&u{n$=s!CjXj{le{B1vF9$NA4}pJBCm)=_SHCfE zET1K$U4XWC@-bG3b{InK_=uTgXux&m4}a6M?0D-vb5nX8Kx{w>*VKaw$Ex&4BpVT!4+q1c1QpU5vaue0*(w+v_Zx+NkzhP@U1o07dR^7>vOFr28=V(=GSM|@qMyfeiv z3TnXPr$#ECQ5P0Xi!c$$?uE}Bh_xcPTP1GeZ^%`%&wHz10OJ9VIjR#3B3nx8=6<#b zZcBs;2x86kQQX|6)RI5SzuSbOiffHRLB(q-yYJ6iP_${FG+Gflzwtog)mMXD&GiCs zA?KTx%rdp3lcaJVX z^^zCwlK{!c(2g8=dYFt<9&TYdo|k*R3`Mm(Uv@_+NGzM6mZq0|h84UrJ?V~P`1W%c zEBCt1X5^#NKS&{lepCrY;&}(dUO25$yRuk2uHR!x)YQa$a|Jwc9g@=G!(>$soCVNv zYb+`Wp}wz5i1#wVvwJolAH>fZ)PV#!7(+tb?c{BG!#?)?VHSDUz?s(T_ZanY@tKx2 z$#n1kJrQ~$CP{t{BK*1O3pE; z;FmdIMg!+Vr%t|_lhS|ex8xIv!)xp!r9fsUC0_-v1n9rE3qkLHgQvrk0;&IEvO@5G zl=xpH#+|grpGXE*wz-msdAi`46|+nCsrvVl_G%?RzPllgb@>IU1) zzbW#uVj6>`ytwJ46-a4NZ^MSGg_KMB$uj__d9`~eCRJ;zCtN-{O-M!N&sfd74)|)A zh}Q~#VOogvQE=Uq>WueN9yAr)iS6<_=#ySe6xzb#;#>@DE z-)x!Zu*pSSoNw+QlV4t44Waf%mcZ2SM$HCNF43n)+V9H|H%bt-*X762(&gTs=kRmQ z^wvDZ{kMeQ5MpbC8b(`qnQJuMH zf|c4)71vY5-nm8X?}hdo_H)|XO}gD*x*jvVUk7w5A{)$~4;K_Eh%88+B~}ROqA9=O z`(!U^1JwBJQEY_^oZ+%+YA@bs)QTnn=Yink$&<_~9yUc@jmogI>?5&;!HEd-a+>msr!M zjd-M9N>}TcFH>8=&$T61`5K}^&plJ;Fgq(=*>O_LCj~Pgb;7i1{m7N*q-x_|3NxmY zv=+J=bMtLa+w*G7g6=>6IT| zFyFMye?3$4t2?4z{-k9NA($waCFHl%xz!zEg6UO0zVSJ`EJ z{1j^FDrKGWOBCjDkIv=_cPyjdd030vwGc;#LK|cdq5qallv2zzU0T9G;%Fbig|v(5ZU;Px&o4)tuZ5xSl#K&#whpkn2ohTVV+^s&ww2B&_r* z;ibi`7O&`i^&PXNZ)f-MZDJ8CTBC8-KFNonLajTVkj}NGl#21UA`8TctKXtPzUEH& zjMIOndAVGfSdW#85Qp=)DU0-9KdR4oEprNtHOLbJ#?GPw;+{{<;+W1}9S=-cX5eT{ z=DjTUHyBtnCNwzB_x+$Tyi%F=CJJk&mYWM=fXcH%hl{Gk=*xF3RhJiv@v>#V#W!Iw zM>=qlggUh)q_({@r^#B1>{+Y%VUk@;?dyTGLp)RrnF)!XU!zcSbQf zsnEIvB!+qQU$zWr7g>~TpT2|WmzM-(Sm$d=*vI(_TN1tQwWauhs{@9Qd^oW-P~I62 zvlC{|KVR5*8R^g8!P+UAwp==nU7!M{79mXf9WytA~c+IHi`Fh(c z2jW?_A9VW7%Ksu_J^~4r{9i!O8(Sz+<1+kz%p_}N{-22OC@H;2u9)&^xuA~6EE z?@U;D{KJ;k_?h*lH=Nh!lJ~LOdo?G=ayR-L7UOG9fHNIx8ZZZYg(Vcpu}1r0YZ`BY zLYZx}txp@}=>P|logefjG3DO~xpc5o8$FPaO!giN6ZNs#=SXpI6v0drQVgRL{hb@@howp&YhJ;P1~9LLpYj_EtsbC zF}X{C*`thbS6n{qY|V#3I5z^FRhpqo7vqIIM{*(6ku$up5S!lSxe`oVxpZ}A& zq3X~6NiMI~pE$x>bMiz^|26~@yGi2$ZVHQB)R)^EQ1*JpCNjz2Wh{&AtQ*J?eAiy_w9rX{fP&O0NN)lnBE5y)q=eofKp+7EgdQM3fKZm-?#|Ba&d$8K@7}p@ z-aYT1cg~sf`FxIH^Lr_-fhbbal%GIDa3Ejl+j)vfJtgs4Iw7dGETcG`~ZA0uY*y z3gV}pN*0eM@LfS-Lc9q=7MGm4}Aji z>BhMH^dGS4_*@;oqNCuASG$!J+bkcT-h3h+xIg}R92q9D^6e#5-Aci%W)j2(OOPI} z1H==BIkXiiI7W08f<8;2*1Xt|%BKwdbtUe{f`_DT&9D*SXAzi*_4QgoVAhO5YoX}F zsJcnH?V@>3VTCI9alxqBgvv?|KDVUOnCiG(>MP?H6XT0ValhnLH0ADMcn`TBqjB{> zL>s6{Gxpv6eu|Atgm^rClTv9JpD^(J9=UQ#RZjqTR@=f zJ3NdUGl+ed9x4X5W;jfewc3K@(Sq|wbx%*}$6av-76ZPuc|wK2mLILp6mpn1@kEH6 z>vg&Yz|Gy7`?SCA8m}A(5mPwCuGH-DEp*`TvcFoOXF2(hkd2f(w9VmA@EGWAALvua z8M(mu;NR{So~xTC7D9(Y6>jU&<=la&N1le*DJKz63VQ>`r?Kj2R1TZ&X@=leWkrSV z_MC!B1?K5xb#&)@IyZ`bI(z8Zx%#ZG2>yK?oc6uY@9kT8BzLPWsRx+Lhe}1wS)$%( zT_DZRvc;XG-?~k@4vfL2T8t&}MppFe)=F2AFXLy})^v8?eXTt(Qe6=(rs}cPXw|KQ zMM5?MNXbX*m()knk;InBP3HsOI->V_CqeEB>8zM{bsysYSnK5Lcw(XfovI9kkg)!} z;xF?AYEj235F`)FGD3ed_6M^aZ=>zj}vl>t#ZcowpNLA;Y(EtqkU7vy+$2<}%I`FscA$05{gwHej>cK^U&ct0&y*};g zwNK<$mCoV^r#tPm(g>i1{G|Uc4;{@Bb4lwy>zf@Ij{K8)n&G}|73+kQPdpA^ByoPa zI>0wsNyv-cXD_4YJ^^#5<;MPVs2GC!@}MMtwl_^IKJ-|(eK$->&VHbx>-CLic#9|g zEz4fxy63O`&9dS|!AsgdRKws z4SfuG0=x;X#x=Z}h{O@oiQ=xh?Np$k(Frm&=UUlqT=&>G-AkA2&-Y;}{}6I7M}G|8 zj$%P{PIL!6SFq7D25V&*PC_O=I_`(IdTip{cf)`g`1Me3ISM1?I82UhGvKbs){v2q zREct9$ocXwy)H>-Ef}9-b?2kgW=o$rkWBoLWrd6?RhxnkDH%xOKC(OBxnyfuKG}6U z?_K#@AJIbLmZi8GMPFe3rw-;46g$$@;ewSCVcfpci8JQ82x;krjg~79={FOdRR)4p zNPHLnPF}CDk9cj040TycWDs0+kDayh1FnLIU)%l#8WKs_N4JN)uOV^Km1;d%JUjClzt*yTW4-NNNn{6zV+h`}7W`q}4MVtX26;$|*Aut9A#+@v( z^-ai=GZ-9g#o-^rx1F@Or$M~3IX`Y$5Hi&bod2;ENWc)PbFz>k$svIJWPGF}1QgL) zxpYL@JCL8O>~xHalWHsf^qYA^ZR0W&h+sIz7M$HLp;|Z75|X!IQI7v3?U7O<6V@6& z&3N0n-xu?R^ul?Zm(>Fi!mzuvkT0#dFE$sgI`_uB@sD7S`LZ#~Uaia3eISOLFH#(W+VHE5Y<$_`W`La)K=AbD)wkOn1Im`KbZqLvgLByF`mhxPdiFP3{RFe3H0L$(*}gxkYu4mJsO$e6Ne ziq9PIw;qXs8KVS`QObHDzs@xLyu1o-T2xjlZp>7%=QYmn70#WV^X&fj?-A{56p}N9 zY_*pOb!FK7%KkH{8OD+396_vt9!pD4ztp}xN2kJ_yg=uH?ZAf<3K*%cD3-{kOn>}; z5G7o&*bG~=va^3|pG)<6K-GAUr&F(epIrKV&=Z)d0@W`Wz0=k?jI#wRYA5i|xW{i9 zF7u2LCg#myfUmQe!awM{aC;we^D@!$td-R)Znscxp?to32ajm^Unj&77;!VmPe!%w7#dzuO@NVAJC{#;6N{A3rW2PYnhCChrWWFg)nXKMTl#ColI=5%a@v8eu+ z$6{rrT28_Sv;8&`=pWnqJ!kLRcn+WsB&9?#2P~4+7~Ku-j0?q#Jwtc8_y&cUUS7`- z2Hk$?WU*lrmGzp@>LBS11nKTixz{n*6x`vn*CUg}q(9Xn$PLylfR=A#qO3S5E6G-Y zy;G)eed>41V;|ov4_7#ky?HmleBwf+X37NR4Foz?0}T@c6HlY%@!{urP&f8`NBmcL zdb;mBf)U582Bc{(;#sC3EQN6VYa#Q=yWJ=P(|O}M4FT%`A3CnThtp2@+4NAts6R_zOMqW@Xrc2*5y2U(6k61S$;dUW*_9qC|!X=6v7 zZIO@&XCYmX^&Mxav%GbT+)i1W|Bj13iz+`XfAuUBB(M7V*~#}P90w;Jj^9C^Z6R@9 z!_Sl+WLeE+%Ce4#AY0~zrkUpGz3ntGe#+_gYKabOQ-15D$7JqvrP>kQ{D5Sd;+96M z4J?(k>;6&Z`lEnJ{+W;!NcT~rVtM*@-7c+fD%RCXzAyOnEcJI3VikZaigV6a^oWo= zoo^0&X}L2fJL{R_F)6kGIr)qBSl&dVQI=%&Mom&>9A$`+&(yfl?}`-BEgZdK$qz4} z;|ojp)cWhh$h%DdoVlYM(sTHIR(yeY=QI8o`9v`P0lAFRqzoSfbQv_atv@XMOrhwK z-xobT5f6(bFi9RaZm-*_n(Ypp=x9#NO+m5^IosarC?$5#iS1nIr?*1x(*9da;Q_qr zzf3w;Y3J3RqVVOsHPPr#x&f9m=+{p$zW#X~bps&4sv+`XT;1N*y@R8Obix-v?or!q zb0%;3kbjZvi=9Kigev_u(VTN$i_JfAcTfT2Jw-|0b~=)M#f~|;zE~?`0UTj4$SNh$ z>0q$YD#aNMv&=TdY#pSh$yW~}R~^Lzom%J)J~qX_^KwOA*l?z;K!28w=Nmy-=LFVJ zht8;%y;t@b$ETtj33fSJCttdnexhk4x7Z}l?ll^j&K=QC|4y<#kff0h27ol4=4t!4 zY9|710M%7>u6guDR`OD+JaVD>@R}5fv1olir);fb@`4h#WJUp8f<(W7EyqjjD-J9gV)p=AM9yyr1$YVA4I3ghwzlA^?{rZs?wVOj^wY% zWjCdqweqHb@3ncj$ONYtfpduBj*va!4yV>Wp|#4nvGq-nr$kX0osDwfEbv(I!SKkEFJ(u0=Lv?m z3<%Hhtkfs8=kuobP_zSjfjWE7To0J)IJDtAr@$N)!3N|0^4$U%*OSbb?k0OOH+qZd zpLx=0)U=g?o_X>UyW#YzE#uHRwQ9L`Xi02?c%tu6nt|Wh0$XQX5@&|E!O1BS@w%_+# z)l3rnlTQWaybj26NC$fy31_FI^yF=dN=|t`kM_aa1ZEWXXkb zk1R$$!*8mXi|*`}cAMq%l!RW+&denEyU|Fi_At{vYsGFow~dQEyi3fwNbds~wp%C3g09*&vxwL*b$7A8-PN5x6I75O(FI!PQzl7*7V z-I{lrC&C1&t;8?QDvmmU4YW2oH&w=8nd7xyi4UoJmQUAu&13>dG940wl*d~Y4j{1( z+xtdRG;p%4JK2tNojexIIaj%YgQyptGq22z5474-`s6_<{8MVuoodME8O1q2@GX(v zSe`nz3^4ey>qFG=kKK%+@cEIvjKn8hqqG@*KPEgqUO5tv zuY~?q;BEbmNa;8c`-9AxYwm8v1IOqUe$I)uwm2(m4>a0X6MCu{vgVb}*7uuSYzB%8gr{t8jDS=IiD?x<1R zfgVGXYS?KRek!mcJ@lD$1c2|4DzOvhKBgLbdGJ>h+r>Vy+!O0?b5qr31gmREVPDI! z6$Q#~UNY|$yi#T5WfA$qb9O(~q*L}To8clrduC~%zJ4Eleo%+##`F{A2f#7~a`D9? zUgPXDk1jLwVaQr&WD9=XFcpU8n43)$TEhR5D~V~Hn#&qX!sNT{2U1o3cDgF(?}4aW zOJX1H=e25kMpJo}jw|%NOJ8%2^D*|MS^KdCt+sy^zT?!FUf1ki_(krOJF$($Er_|T z_{1JJP_Zl<-_Qva>b$G#S*m%Qw5Chc8Ph%tOIb8al4-LU8Qpbq?^G4Cdisd7!3Hg$ z=xL1I>d&am=?2;pJXlcLsmjE)O2@jm(ncB>m_PnhMRsF1%AL;`ZL%vVAl~}js8O!S zyuU#zx#_`({K@dbSE**dg-31e=KYopyUGo$l@Z9YrsbFb%?5rX11|Vf6*rTqE=`N4Tte z)cLAW(fW&9vwOC1_JVRw@zxo5KQozB=`h0QYrQz+y|7yAYaJ?XRR#OeD7Y&=$c;iq(qZ7rH9bX6!M=EzXmq?#SUxR`?z!F zSNp^!3=i%2^IIeGWdD&D_rN}~`-eFWMFxcFbOq>UwyHG3$mYq`MBf=?ZagfUC6)K4 zPQ5`u&nSvV${x{wB*c8bz&TtoU^15NfR}s^%G7u3*6JkTQRK0+CUrwn4vUQB7*HP_ z`WsT`K&AOz(J!fV1+8P-mt6-F;PQocGe+#lQIap-F1@O?wd>xM9s=xsbN1?i!jtr9ed-j{iQX*y4l_P4#zZw0%f=e-?X_t;+<)4|)@3QQG1I#5@ zYRL(!p3Mw7gWn=4`?!9SbFYO4v9ty)2?Le**EThpX*fjmgy2ws9X}c_8sgDCw|Uv~ zfVObTOFB$`9bLlE;pH z%^8qRHczlT6ONggtAnA|N6Kg9hJ%Ga>Nd`ILMCHPCR26xL;yJ}EWe|&vY6XCC9oE3 zPfOMJ!(N*5hf9l2G&Y`y@|}zmF~^lR6x)#+#QowkRq~eXY5; zs5rT`TC^idsp~b#-1i|*f_do&i?%s)mz1xZ{zdAD)Gm`2?6>a3GK~Hbi#KAXNXdU| zk;XxgS!(dN=7d>aSK-CCI;5TRIiqe1OQgBUDEe^Lfxpq;j@R$W`s-R5|8C0hRWWrj zw&U5XZcpO!jqvVikRhvRmQ%^k&jsd&2HP3(2y%-|KHVNnLo#79Rw-$28@C2b+>Mo; zmFF1wJ7Ff8C3*fOb}Rw)XB+5p9#}FEk;Am@5g{hI-SvYG<_M^#wECUi3+LH>K9bP^ z=BqcwvZwhCuh)00YiXNjziwqeP?72Rs+@H6tnhcpLQ9rD4eW)35Qnf$G%Ks`uJ@t6 zIBqCuV%VYmE!-8Ca?_9BB}8|E;xa)^B+B{sNt}siTDXp#nSZF1cAw_I6W|#OZ$Fr6 z+CMCY(-H0p5SZD@2W!WjYQzQ5~T!;(cM5{j^R=WH8!8XQ6k zOhzy05}*%ij^Sf}4m^d!(`VsMJ&sXJ9dmyHK<#O(q3U6T!@`uj`S##OdU4>iOj=1@ zx^s-1*ecCOjvU7Li_8%J6%sdR*MZn^b^TYRBjKamw4Lza2D;g9#Sa9?pA9g;tXoj4z)}+bhpzby1c6KV6Q>n|F&ogG7=MA>|T!>sYoK*E7E6;58CGm4k zIK-kv_dY`^&GW8z_o2@rY+pXg3*2w&e`T$qwFvSNg~Z;DjSyvs9k!UJxMeSo9c3~w z$y2~)3CXB3POJu_ZP_pGRw|xAA2A$ci_Krq*5r4wew>u=K~Nz$}x@bj(K&72SeL` z4IV?|t+@pdP|DHJ1A0=PZrBi~?MjkQ!zl=qJf5+u=_$%lC&)m|Yh_*rjf|o! zFy{r3PEFFZz*a^#g}sIc)mcRH@sQ=Tl;-(<%q6EJhHk9x1wbTIJoVa`KdJJ+=ZioV zgy+24gqLkmp7O{^;?PXp1Eum*i=N>h(ffqxK1VZ)j~xh<@ZT$P*K7$)To0ho{THbC zUvt4t|AS&P#p*agx13tIIJRDlE2nazPZ+`@_gRSa-GT8`r~7$REZoXarLvH!l}t30 zl#p=XYW@yan7Vvy(C^k4ol6iouz_TYO-eze1Po&&hNN zKS-bVT3A+jj&>D(IJmn|H5jIfnhI_qegBZH?=jmu0$1fcEh3nvjgLWhyrL+f*)xrw zvKND0v&27qF=S}mMqG`G$yk&kZp%uq03L4(Y$+hwPpXu!blt+a268;TaXeeOwoj?XnDa9xkZW2Z z{JADKD}RRVs8kTAA@yolI$K|5R`0|!#P1p|mH%dYG%S7|yMsMQxJFQLLl1t>&~%)m^tAVLY$!(v&RLLXDi5lJAce z9?mV)iE~IsWw}SoaoK%1^h%5fus@9+>KuusJ)mS?c}1}^q2&Ln{8=mM(OREtqKmS~ zAg)ax&OvwU*cIJ_7Ugy>T%TSasZe=uy$eJQXRB!VPdNOZ5tz^Ed0QNWb{Izb~E$EIoTG^uXsAiEuxbw=pT%16&x^=h=v1!+2;p3#Ov=7-Hibxe|`l zPX%M5S`4QNQO3*{R7XU~XBpL0{^CM2nFHi_WstxhmM<2nx^53LZ{9YSnW^ve|B#ct z6PN&;PezlDS5Vp(upmwqz@wRu6*=y4g`!y>0UJ3hQq*uNX2hM#B1_JSypVp(R%?kJ zdPZOL<_&Q=Z;~P(G!64jEBGUtQrrHOuc+_Cwh#PtlHK8(JE|TlHR9a^p-mL#joH6X z=62Bf7g}#mnVQPOW+3e#rH9Og?1>lj)2pRCg%j>99(T@YU)pO>KrD5_fiF%eTEF`g z4k+ihL|F@nD#Z8>b#fu>p#*X?>xRitbs;+P0iyaKAm;qzktn%Rqf!{4sR_Re4OTc7 zrzr_k`h{h1r*AZ!`S5P0kNQPvO7#5C)eX{5`S;2eV)9Q_wU)E@XY9N)B2ta-VMbU+ z232zYDb_f^q9t$PIqY22;pWW+a7aJG<^>sP0Lt)JQVc@-jCESX&$jL(U80ohXTcKk z3G1HpFpyreXxPBmT3xW*eL+hb1&zhpe&*bLb3UivfRsT8YrWUbj(Y7J!c}7Ddtsd& z&X?v23%DxXi-zoMsb^&rGKqY3iS@_|De9Wj$Qk6u#YuLOs|V{rh)YN~mTW$)THLg? z+!(!o-~SHp0bG1uJY3kqrIC(;^W`@QfG8iAF6^{_1*xvUTAr{=b{DRYadTU_sUrVr zB1A2jn;O5Yy?z1%_=iK$c!m50?P1c5Ce}S>#sJzu{>+P@=67+J=g@s#kM!vvdQ9Nb z)8!PKZYLka(HS(ZfG~f;kn;_b{L9}h`XoL5_%ckw@GuGU21jA;(?%ByFZzBQVp0Bv zi>;Wut%~%??dUQgi~S(O#fg)86&;touO0ZHT(uqa_;Dj3^4>ubxa`S&JjJm5n|*cI zR8h#&(<0Hd>>}$s9jAR4_*6FO8F_9cp6`XEGi`@gV?8(1^fo3qL(%fym^MMlTG5R_ zr8jOua^15<|D3Xm^c_prf9eZNyl%ZS-p=&Y_ldchv~J+Y7G|q)MvYEOfp(VsRjXT~ zps4;TM>Ta6`2wL)ejPLSqCBi*<(*qS#mnX2Jx#=$Dth(OHGRMDtSyJp^7RDya->)y zjRI40usd^dq79k{ubDBtZ1|?)ak_=O!x=AE#As4HXb!Ru;@Q1EKD8P+1Y)T@w4TFj zy~;B%8%;j2qRhg!&>`)P+*!w0iq;uti0yw`6fRXyR)RQAydU>rK4m}sl}Sp-ihKWS zX6gOgC?f{V<41#mUg5!3nVh}ojCm#3^VdgFyN)uNfEAr=5*DpV5H)v@=Eke;{$$w$ z_P#m3B1hXUo_9QaDz$YE<~cVecG{-nss*it=+Qn(bPeuUxx{?DDw%T#Ib%yB&HH22 zAIm28_s5l^z)HW!!Oolt7NJ5 z;e5Pm^HTgA^GdBK!zXzpJMB$vjB)M!=|=P23x*&xqWDN2?TnSD3z%olvTiM`>2sDA z5NoG!h~*A>PW5eMWu_o$^oT5h+|0rtyRaLWxqhK9OLS(LX0(v&AB{Y^O`_FqR!->PHv)FX^Lgkz0J|DERIsv)r6ktf&MxYs^xxp*6ivs#hRe^ZvQkvHy?#HqRb4?~)_d37K0n zLz=jh4PXxD#2=e6fz7NixDRMGl}V!yMfny~v-&)wVla|HX$69Ct9Thi_c^Qk1cg1RkqzEa*MWS$?VS#gewyfcehDbC}y^t2p=Z{!Fi4L}ReXj5ALY^CBIu zf9{+W(r0&xq*OITz5P(cDT79Nm~@|&9IO4GiCuHiutN?ghI4sQvkWg|8V~R0`-Xnq zJa?s>R1BrMYH+8PL{+Dza3-l+)Z0>Po~Z8MM!J%WX3D(V4wbo9T6&x3*UM2T>yr7)y)xU49A$83I~yJF z1^gp(i}eVgA7=nHe*nB)^KOiLfUY&OFCLn3L4Fo{jM4C03Cp4RbFVoX`E<6LjY`Ec ztTdgoP=DA(+{6xbR(izb%4P)R#$A1l`$>+HI=M4>(_?HbY|%8{Pp9{gCx<>BuDiB= zNNi?oowj=1V=I?)bj~TwpUTj8iEy%B6#JBu>f_(xcBtS9mFRgQ3?u~eNiK1I-o?3G zMsBn`IJAm8yxj5qd89^UPQs;p@74E+1WeCzc+N=4m6oE z+%~>$b#f!}8G(2MDX}CfiqIF*AVKyiILo_1dnd^0hMk_n&X)?^gT7vMstf&TquXEA zGqp(&$1~P-26Im}JFP3KlZLP;o7TF+ith$Aen7`BB6U!odgHNT!H0C-``Ew(sB~|_Jzdif-HcH(480qI z)lTuqqsbguHu&F(zC%f5kbF*G(|if^OWE48?LYuqfEz3Nnzf7K=rQ>)W_E!0tDl!c z;%&)f?(WO3(u94Ih?4%?J;pvJ zP*h>LwrI-QTDz)Yul>D8iN3`S=Wp^!w|Bwtv-5{$`PL1@1lC!BE%j znx-HOUUc3)kNy>)5hWU5FV%HlYCnm}Yn(z>T9IdhX#;&?)vP=hpqu|PC=Qt*D1pZm z!sBoMt26`%6qr|3)`u&hF#@7vs}S)e_4O^x9QJq%Njx*%E-*rAk|~+(mD*xx{E;9M z?XvUFFvQ4zFuTx5<73O>?IxpHe|@$kE{-3QmydG>hxog8|7+cCQp9d4A`Nc2>y64F zA}Iy1UsBn(TnFQ4A(#rkhLAMO!x_9t@g6j(3XiDaifHno$m?n{D;BL~yDxrgr4H+g z(dXe)A=%V%)v~GH60LgR_15Q{Z9AN+lsLA0DG&G8pOo+nn<~yC7rVDppKlofPQ(8! z_vdMp8=Vhu_rcT8r=fY7j?v@(w@MB(!`q&wXK41gd(KX7f9PQ={*6sqk%)7QO}eZb zqLt#6@`_`Pl%P-IdRSnG|Bw9yrDLgEWPOG)Vx670vQvGI8Ypqxqkok@EWB-pf!mYP zIl0GnBJTpP(_@-zm4GXia$Q;BlKtW76uU}G1tWy~v6@NFIn|-df|CH9nMi z%y3G)8yL9IH;{-IUT0VgW_0>#Ue8VYuV|Z}s5c^BKp6sh2eld*7%A>-27f&@wS1WN zH<8ABt}c4w-0y4kDN;j#Ztd?M?8awC~w zUUUxD#`;ZR?s3o~Wq|9>#bdtVe`bMKeTvr16ZiT{I$0VOuH26xc@tQNHm3eNO@B|4 z5uKL8Q0IP)@H=*+CyVt~4%ex8Co^Ru%?a;Tplr{>3T?G$=fP>isHi6!r?MUymbkyS z{2##$HQIh)&F=&~sJhn`J$hZ%x#$m+g6L`_3rm~=O8c4^w=L?oieW<#-{ixo%41&@ z28QeDaqW_=wFuogrKAii#~^^04f}OK^5IUFfM7%beA+JBEd<$*k&ieFVnKl|wIK@@ z90rvZtYE1Mhhk>*!p9e&1&}ONfR?CxxVYchj~1F&2!^|IpEApOc7JJT>3;=slu!A; zL*Z&4py+*=O?BBZ|Gbe^yWHoMBJ^OP_@`KGZ#tAs4BFa8^`LR&Qy=fck;{eB*VWT@ z8ddCLaeC2wl$S3xFseDcoaI!YOwG&qzD&g!i*I@Ny*srgoNo_nRVLnP?WivSoo%7Y zv=K}kHz(ft6>-$r1IPVOg9AYjevNhW(Ec)y;eu9~->otr2#5!=wYBJBA@EH(y5jrl zy;FIBk5vJ7bkNzu{)hIoO7P_V_~~YZVcfhx$-L}mrrgJf_Nhl~5@g4ZRty9o2X*SI zcc-0BJ>5CEDkuzXqh?O~4&8=m;~Xyk^gTYg?+PA|C{1z%pYEzm!_NHaZe=^UW1dc% z9@BL(B7QTqo4_-~cQ9w@bO%t@k4N?N@Zr0D>1~O2$k|UGr#8hl(G`7+EJUz6ay9_{ zX&`z0@#UW~scbrWW`{iSI1e$4UwvUi&uuCP&^Ve69M3j0duQoYDT=AfOat=Bqhc@{ zcg}uurBm(}cP8#;`0GR@B}}xX&sk$)xQr5?F~NU>OfP&P>Vn*(=xgwQr!8%L=^9KF z3OuH`$k@_D-=6U7iD;sW)2X_V-EWLT?BX{{*ncy(v+#ZR#ElDjN1p{-d8!S4%do76 z5_g#IRZ?a62rjQAX5;imqW>0k zixBtkD<=0hC4#nMElqHZA#K;_SIG#H$iB+zt(epCZ#VpTRw6)+lIRwT(Thl^=#I^U za!X?MH(xhFOtRu)+a^*c*;KPCc6*>Qd2`)2BM@a4C3{iaSD}9OfJuf7qqi+2oo58L zWTYRH=_jfNm3*h#qSa?)Y z+4CgJ7I5B`eI^+ud*jHR4O0tgeERVLwHzHN2unWOQ_1CX6M^vo_V@TR@22;+QdP=- zS3uO(2B?9u>9WD9+L0nGFm$i~p3MVZT+YI+Tz@Hlr!VqEC;K@!XZK**oxzBXAu?ZL znt$`aza)0R^9@B$Q?ZtYY*Iz;>-nMGg<_$L9E_BI8Ss+Bp_TExY^MdoYc_plNn1Ok z0wLS+mm0n-on6AS2I8}tF{K#a@C~TF;`{{+bHO<*^-J1T&SXH;YON(1l2zc*9#kc8vK@REjwKu5+Dv;)5f=VOSmlBr7J0FJw}_L{{K&V#c0 zxJDqZy3GVsImZK?IZtYoHOz4R1fV#v4v*4`6M7=?& zZm{Wxub!BS^UY^n2ZYRB&R4VFv1GA=jE=^ybJG?m`Te*&7yapFiO5mBXrJDUe5V@( zINxxfof(#IKHJdy7}C4O;c!5gk!L*b+4hQq^SzSi+70Y1<075X#@un|;Djev?H1=h z81#3nZf07xW*;n?W}F~XReN^dKsM*h$S zQcf9ubyaiYRB7hb$wT7NXq@QpPmE29V}DzcyF=Fk>#ZTObjufNvdu?J7ls$3A*e^B zmmn{6>&A{kKt)S1JTkz-9?DrC52CB*w=}mxnLgKbN!bb4qLs{d50QF!nf)3t;PqIX zv#Y2#xQvM_%u{?X^zzA3g&+VQQs?rj4T0Q#oG4xZarYP9H`+U1YS)Q2AKnG(0s zw<4fCZd2!A-f0VF$ekVg#FxNaXF$IV-f={Dns`6<#8({&LpJBwIoX>DLsc=-2Jq2!@8W3&D%Gi1 zouv5ek&XgF@P&nU{FZV3f=pQowyfuUza(NYlnsTcjz#fyHpsuala@uvvbJ@DoKbEP z0KCJ+iHq&I?Av~QE=7oZOxRyy(&Fvh*ZHC< z^(kI{K9cG7&^rDf#igr<`s|7CTJZ6#PHyDR5MUHO=q44Fh-K_ap^v z2l{_Yn7B^N&AeUL4?pTQo9;<=GaY-KPI{0Fec_`G(LWo$$yk!7{bCNPZhq!i{#vfs zCB@GDS?Td7vkkK|_9B~tGH$KXbDdI~g1C;KvC zAo+t>!d;{OKOJ|WZi3iKiJu_n=cqv_zdNG6E$|x|irgAx!||;}%l{)3`j=l)@@Gff z`KK@O3dr{F*Zpw}d=UXRECp|JOt|0F;xmnZiIEE}c`%3HjvyuJh9d2mC@LAqXwq(h zoOK-!<1WiabFWflw=bob3`h!rIK7dvrcaYBpx;`JQopYR(S zm{M)yrWnz8UP#e{W3dv1C52eqpK?>3DaX=CyKR6J6ZIr}gE{pKQ+CK{YDl09>kf}S zqK0uhkTaaXakenb3nQurh2QAkrMd0~7kTPD2&$1xLuYN!VZG;LVHr_g@^yp|nX-hs z6>M^N>z|G){{F2`x#5ofiwn|e4W{xjU~hmCHpBA6X1u*(Oup%*JN6T@NU329x}1#-a}$IKxIaF z9s4tj@v}>x4O`Hn%O5#X9q5bV${6*_$RjWCbSJaF1Z)aqVjZXjPaiO1eBRWn5X?!z zchQYAf|%$?Q+t~~DZf4E{rcNdz|Yq~M;F-CwW}&$o0g{~T2)&D?dJ*u!2&6=|Mvc_ zq<=YwxbIz)2ZM+&?y0$W%d zLW9|zOCo^P%HIhQX&JK%@99Z49mEbh)vE4KI6^qSmX>xe8#HlfpA>xM-zav*(l#3_%$g=~;P;zxz-xzTZ|SNE%3SA0?iT^=fq>IU zv)%}>JZt2!@-V&IolkqOCn;kY%Xh-5-*qw32egDVTt%DZZAHmE1*+lnXWJ(Eo|uW9Mf(Tjm*DdO2icw=tDd%CEB~5x z-aX52UpSxD&%W19k{-BWH1o5RO#655qZJw>=^IAUqi`c%aII6H9o&Y%t)R8pSqt;k zd~N`Ya|*2$uIrY!;x83%%Qg7tqoFp#>f$acSzc*jWna7Ad0k&ZzZcq>#QAOF{QBR} z49;ajMNEe|#A;JrijzwAF7` zK!GB=c$<{?+7waNLH*`1?cem#+(n8XL#-F%zi9uQ{oTY8spoDVOA2paS+A!IJW%`$ z>SPz)DsDO-{JZgkWWUn@#9-5UE`F`kPl7|Uo(?i5o0Y;|ZC!T`+~eQ3qj5TA89ZU> zqD5WRoYVp1o6E<1v-)*3oeB%mi^5fOpHK;(JuAg&FOW}V&(iqSJ13u}8Eg&?XPOEB zx;THa2cTJp>K~KwN;498GAoF}4sQ(7|0*$UV|H&n&F@i4tO2VY(C5A6v6E3;d+NgWZydATfhz*=yM?{YMM~1BOjPTqa|9@|_ zR?8-+fMw8A#2Lp&M-Nea;@ZV~aqQ^}*X2oB_pvT+UyHUV)RdP(D2dj%U^^)O!{NIv z8JaC_$%B}@k?BFMd)6al{phvEZD2A^Xv?u`KdxE=5xiaV5Tfsw{YbhLjdHN>KGnw? zFUx!<-t)qU8~t0G_bLt!t@5~;@M1cPH8t;J2f z=gZJYt?v5lbvGk<=R9NMW1bX4m=D)_;@xS+3Nzu_6}e)Y0uINvyMAxmC$BwVg+@=A z^>NFK8J*Fi7c*MzFS3Fity4aT7`8J!61ZQ{@7I#`$xtjv{6?|Epf_`MV{FZ%cAY~90(exre^5tBZXHAzd!b%vWpvp%MCHRLEtlLAZ?Z;z2%gM|^K zw`SWkx$$pY_G(_9w#Hn-RoQD)v5PY|(A9ZbOVHKui3@+*)729V|8qrLuTUi*(J3Knl4L6ZY22^MR zUBc?{1S7x1qN}V~RzTbMCO9zYiB0D3;``=EVLwDz;i0Remhsy9@YcyCqn$#>VV}v6 zaelks3N2VPZvzYT`ELt_qI@{hTDGP_tOPZ8us$Cz9qVCjSJR`*7WNy5%}4a| ziro{}EtV1ExTnDK^szkhS*n{+km@VyKjkrtrOC}x;^>d8_}jP^X>5xNF6&2gqBvTe z6|aa}P{J;F;9B?t@xuZ5xd5Ux9?gumlEX8b`%ib4P7KevrgXUM`ZzQdbsp$b%-7{F zb0{~g-9-OOadGGZ?TC;ghpWCFeHxigyff>nef;%LlCW{jN4cH6IKMHSjG8f?otg{D zIp{U}Ce9D3gL2E?sl9%wi}Oy+faIJbe`&ha=wI?*J2k)J;E;vM0bhfVTKCP>#vvpi7Kzf}ynoJjm)Q@qv&?p1%o z_mux*@2FtCWyc}2{klwxV#}AL18NxV95%kmK%3wjAfuxyT-=k%O=T2`Ej_$By}v5b zGP?6Fr))7myh>d9p{7Znm9}*}Qvf%ALLL>VWr0HnwX;))?PkN!)>X7DWXC_< zLUqeyMxFNH3WK`Z=IF3^$>3l)z><&aK%JBuRb<0Bo59{caShjAJpt)A&ssFhskQp; zJ0;t?vS2Znb{3Ot&Oal+Im<6v*Xa+iusED)!S_BsA77OXJ2=TxQ&og>2#0*(N4yIW zExXOzqrhr#pkYH5@oBU!@P7nJ6}IZIz_2iTP!-$=kCnd*naaTc#lrck z(ZwD*Fx#!9NO=T3i$=VD7Bzea!jcC%t;F_gr09*fkE$J{Q>!D@r7fF6;l=`ZC@Py(0@Ajnmhab~`HjB!XVx=C_UW%)<3Qt-cz!<5Ah; zFZC0+x^6YQ)&1rGhGI!uMHTD7^0=vPeT|IcQRFr(*ZXQs5fYVgQ#ZgereBY0bQJv1 zJ@x7Fs}YTki%VX~1+V@&uU#vzUY*xbF^sf1?r4k@a!#XO(k#wtl1rL?okn_J9Utp7 z(o{b@9^dOeqhp+H_$V7!i{B}m$3d6sHrI6v&xAu|4+ZT}m!nU=Mz#Fh`ufLFA4RKD zH}1pw9~i2l7wP3t+KjFJI~Yghko$lAUY!_cy&e^1o8x5%&fh;Ud5q1gaz}hS=`K+udY2ws6ZqdXgbzHxR+tqQsCT>>8E$g^+Rpz5Bbb2uH~fCn{1TLw=UyvV^6 zOt|tI&hL|2ZHWE{2mjkBAxo%of93Is$=!|oVjct;upIx1)t&sFXH|Dbf=7?Z6E%g9 zNBq99MNuc@Jje{{H3gT~ANgus=hGwPw96W;@_1r=7iWAi=gaF^h@15+!cjMNue3ft ztgq7Y{&n3RDIT%?8gHejZSdU4Yd2EXZVJn5eKKPAQ_py-<^AnCZ_IZ`y-VJUlK0|_ z_hQs9>{R2Ol=r{uyc6WTyyV?4dH2tF_eZ>K*yOz{?~m7c?~pgUQ+vj{SMu(i@$QY- zz1uV1GkyoA)(^;OXGps^r(HJgxqSIp_d#Qce%bKtydFx~-SP)^r=?M^DtW!yzto@L z+L6KrB`rbPT^p@BV)ua?v?|ih+GrP}-I>oC3#4UthA(K75xYO!piPigZKLgvdWEe@ z+CI`IZM3@)yKmf}-SN4#(Dp{X^SSl-+*)X7qu%-4W_)h5OWNgVc0RWypW6kk>ZhaG z`P@=aM@btks&+m%g0#CfT6HwLTsH)^(Jn^hT;B!KE^D+{E%91$Wo#u<#4F~{dQn?q z0>AR5(XzI;bXJdA5^Q~Tf>d*?!Cwv$9g&NByQu<@WLIZ98RsL}lwMBT~d@J`Ur~+w}JB4GpSb z0yf$;$3_=p`}MI=V{GqCE}oGicE=4&%=lbKE^7@m(rA0Y`OV7tq2azAPhc2^G!l25 zYIZ^F=_nx<*JN2=lau}pSS4>n`8am3>1-Tg579_6_zR#yKUQBT)}y)|DUwf0IBCGu z9G>U=3d{LZejmOG!_aa8Q~mx0Y{B0jHDL+AGv9>u{n-T!SLFiM#8^Dv@HweH6aL<-dRFmyS9@OYcVN|Xg3q(sbDzHttDbj0 zBx&ur$KQ=r&og{hYtKvmo{T-S_Yu>>w^8k0LQxm#C$`si`FnS9cXW+462vkDn=Ft` z+J$wvkteq1d4Wtr6E^l*)?zPA%$RbVXKUeq;-tidUJ}=E$$!GQ#O-6U0cwWwW^Jol z9MJv7+(5Y2Wcxq0&z|Oc4>Z)u=P-G2#W-2>!Urb_O_u^>dzsprxrYp>?VAqfm+Vf5 z4YG#x+QS&a(1j}x%m;jCckZrS*qEkG*>~6D%yB|S=Zs_L9%7UFlMwC*rYU4PM5hWo$9xd_pzTfSJ#d^Ex}GUd0`I{!1ztA2$%7fV)H8)_Jcz5gx~?bt+S;z$ z!LbuLoK&_*e7ls7^9b$0@dW=sMlZu{!f=z&y$)jBhh{$Z+MUFj9GHT)iLOECdv1>a z?J+mQeGO+)=eoo>rg<%JPN?lePw0d4_G~gJJNHM;_BMP!#3qB9)_V`}p zaYA-|?G8f9_C=<7@wLk?7T=j{zq($?et#mM>oI?hJ$60onm;pssEy2Y$sl$^_KjxT zS8)oN>*9P|zSf#OHre-@`I?#9*p_2gV`IjknVB8){ZsqQ;DNJ=Ju|m`diG4%9kBp5 z;{Y;^tyP%fHq0Q%#=yQ8jb)Gq<4u4&B(U>+?|hzvJIB}po|bJG&lXsNPQ;MU7`52G z2fN%WnLoz;8*X@Ps6La-9&1^+flaP+rfuv@;Mkom7Q#J#r|m91d**l-&CBlfbGhuj zG5an!`@VNRXDy2#IE@|p^iIP$L-xRFMEqm(2hA3H{Op;`wK``)!J=lTkqe0Qyt zdSochmG89c%7$!Ah}wjo`T4->2^+%CbsmoMP#^EmhukkXuF%cR*tlG;fcpZjooQpe z&H1u*+1RcLl;zZHZt=a(;tJwo|K6Mw`v4wHkH{oHuW-%B{LCaotf}^3X1H^zGcVK3 zhX8k(kj?x?e!z9}!u}ff4YO?vtWKA-&?PN&ix#>?3!U0Rr?$|M7CO>Gm$uNQEp+|D z25AedG2a%tq=jzLLbqt4Q(NfN7CO>GM_TC87P_=fhjAfe7nKA}?V0-!V9r;>1T7q6 z&R2}pkPNboR`_Hdue97B?LgzX4UW(A5{#uRM?=RNv#~K~_Y>3SxO=V4(Hxdn*lwn> z`}u{;78s|)y`Z|NLY?jmMq=NrVzC{Y{+aGsL-%4Yf&H1sEtcPjJPL_FKNLA=9$y;I zc$Q|EC}2WS#D<3~gb+_s5f{u_&RWEGmVcmauSAZq2F!>y?k1qXY>}Ql*YUv_K4{?a zY?H$)dbh?HAL4-&Y&IZof~#E55GNai$sOb|D8vIMz$rk&^E^Clf;&u6!v#MVL*&H* z_o6;ly%?)D$CAca!p3^A@ni7zKBgIL{%6mmpv8j8W_PM{pUL%v!1gE9;W;Ch2cX&$ z9}_`5yEkbr(^kP}-+y7eWNAm}C`?5MmGawtTZ^oag}IcdVT3;HtP*(%w{ubVkYc^jm-fNl;kioM0%Q5%gq_7= zP0yY=p8ZA&4cS?r#&R|R_8pLXt@h|de(5uN+}A!Hp*6qa^f*@xjhF@dc@7E_86gg4 z%()Iecn?|`<5JJ|A2LnL<5`KzDqL3J*!ov>UilgK1g5!_?Yxa!+AYS4z8u5Wi=F=k zZjJk__?(K*<~7JZuAa%(6j$#W{Ll$7n`X}w6Ff%?uQJR;{Y_3IU?%vy#`a*Mv3v?` z7T690nq{w!)#7V3hBuq=yZ~``cOF*f7*p^w(%f&Zf{cCnVqfTKP5|}CoWz_^JU)WV zbmPg8vfqI74s>gE-wi8ezh`B6^obr<-PC$wzY&JXup!>-(n&WZjK=UN!1R{i7f5M$ zG9;Xj@dA$$yGzoQXxg3R-@`r_uzmdsN2+}5CaEcSK0QreKzTiW!|`U9sGRoJfcIN{ zHq|4Lx`&E~Wq@%|V5=Vx9?>+Nq=L__HH{93Z?HXBN1)QGOVUXLxB3Rg3M8g`Ds+!- zrxqN(y}c@1fR!P2SCuT?fInbm9gbV;P>d_*%zDQLthk)Ckn=>@`}%kOUYFY<<+fmb zOx`1Jfh#cGvU@D0PR!VCU~qaBXY?V+Ksl$Q6nV0t{fkqV|e$*RtRZ`q6@N&FW;1B(D)X(N~0R7cCPW4-QkQ)4s@QN&- z)Y_U5!SfY;=qa*5O7gWiJ!j0 zYJ&e)wy>;M>li&zSRlXg?a(S^AtKkMo6xjBuIBxof?>VE_W1gWQ{?-9JYUR9c^CrT zwqU)&>+#5N3w73pV{vC}kzQlXwuXf|eKY9vnc0jq_MG)>puUa0&gSq>MS{cO86rK8 z5sfj@Kc#cOmT)gBukgs@ma10pld)p^t`-j)?=nCs{kb-u14bZAi6r&099#2gc89Bb z+ms(EM;>D%iR;kVSIFq~5h7}$PYjn8AL|i!Q^CK!eoACKD{zwP@sX`jglh!Kvu+)x zlAh+Vm`u`|-jSj|!$F!_i7y|VJI_g5$gtW>|{!(_ol1(mT zrzl&o-ueD$!;=c1{z`W-{ujDi^j&G}qq^=^0`Fag=}ua8f5&xivl~XtsLiJA&N;iQ z+2SY4U-^mB;wSoHE7pb7;}L_RdYpfnlE&U*WBzGL=k`zzkFb5x@yyhti@gQP;{i|Y zi#^2ORkzOtqyIry*gYQH$Y;3n{tcepm$It+J)j%YhCi2gbe_=m-!9IM;!e&Rmofy3X5)h?MY>?sq(mb z1?$}Qm<|1NtG~TT=lK$kYX=G5wr~72eO0CnKWF!(Fy7;z5@8-d`ZsFLM=j-7IMn@k zcs)&x=$)M{W=cq7&L=}sa11}U3_Q1LC~J^isgpz`naSdAyI9&M-A3jaCM_s244;JKbIO}EPFfQRr?eNQodRy4)M z(}7~HTOY&D1PQayd>@p#=85S=rKmy6&K%4=r_pVD&SK!%8euL;U#910l7VS;bTEuR z&i6Xc{Ef;tVsUC_{Q*CASAXkA*eALOIiD ztH09~&oLU~3~M_z^xNa~d25{cse!^!mhsHsByH-qUA@1RveKq3@pUwZjT0wuuqb{#R3OWW;yO1ju9p)N3bq)hv@jeMZ^JXrwbhOA?p^t zwbcNaNOPH(HodVt#cbx0((Mbo!)_G5XV&t4<;B44T(^q&U^aOkr-pT28?o=>oeuEz z)>t)aAC!Ai4hM_JKqB@XMr7+-na7LuX7R;>=j}Jl9iNL>jEl~3CroC_E7?9<4d1}x>{WW#qvvU2b+--Pmj3!Kt)l7Fik_qTdWtcx z|9WZVbv&sr-B-@5w9&ius-L8Y(3jWxzA1G(CDy;Vofa4HQyUz?|KfXzH1);!bfU?r z%#VcZTL~vp)Dwkl{@qsg`$FP-r3*TnrL)~E9(HK@>C=Fa!9XR0e`x9;qidUgUzGiJ zVMevJX47oAwmY9<`iZ22oL2qEfZhB3Uz?_Mkl#mUzi~)qn}5!V-)HG9`s_z-`h@-H z&p%Z5LWOiZ(!AzXYMr2M}0-2RQ-`~Ho6*6iOJ-zo7j6N=xR85RE)^0HDF z@q2wtM&>nt(_s;QAB@tE`I`JTcYZ6@Wc*uppFJ%cDcBjupS?6nHO z&(|>jp3TKNnwooQr{xNMo8ey%|IUB2nA_H6^Ubbdv?5n0ssI2|NjF3V7j6|O=bcBhNN%V literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/PCSD/syn_results/synwork/_mh_info b/gbe/cores/sgmii/PCSD/syn_results/synwork/_mh_info new file mode 100644 index 0000000..206dc98 --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/synwork/_mh_info @@ -0,0 +1,2 @@ +|/home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synwork/layer1.info| +|2| diff --git a/gbe/cores/sgmii/PCSD/syn_results/synwork/_verilog_hintfile b/gbe/cores/sgmii/PCSD/syn_results/synwork/_verilog_hintfile new file mode 100644 index 0000000..fe902b6 --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/synwork/_verilog_hintfile @@ -0,0 +1,54 @@ +%%% protect protected_file +#OPTIONS:"|-bldtbl|-prodtype|synplify_pro|-dspmac|-fixsmult|-infer_seqShift|-nram|-sdff_counter|-divnmod|-nostructver|-encrypt|-pro|-lite|-ui|-fid2|-ram|-sharing|on|-ll|2000|-autosm|-ignore_undefined_lib|-lib|work" +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/linux_a_64/c_vhdl":1542167766 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/location.map":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/snps_haps_pkg.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std1164.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/numeric.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/umr_capim.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/arith.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/unsigned.vhd":1542167610 +#CUR:"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd":1556618983 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":1542167599 +@E8lFkRDCu7B1 +LDHs$NsRsIF k +F00bkRFE8kR0b4k +F00bkRFE8kR0M4M +HbRk0EM8Hb +R4HkMb08REHRMM4M +HbRk0sCGsV ODRF4 +kk0b0GR0_DbO +R4HkMb0GR0HD_O +R4HkMb0GR08NN0RHU +M0bkR_0G +R4HkMb0lRGH40R +bHMk00RGH_8#Ob_FCssO40R +0FkbRk0sNG80UNR +0FkbRk0s G_RF4 +kk0b0GRs_#8Hbs_Cs +R4Fbk0ks0RGP_O_sCsRH4 +M0bkRo#HM_ND8CC0OO0_RF4 +kk0b0GRs_#DF_IDF_4#R +0FkbRk0D_#l#00Nk##_RF4 +kk0b00ROOs_kk#M_RF4 +kk0b00ROOs_Fk#M_RF4 +kk0b0GRs_sO8_DDF_4#R +0FkbRk0O_0OH_M## +R4Fbk0kO0R08O_C#D_RH4 +M0bkR_0GbkIsbR_O4M +HbRk0sbG_Ibsk_4OR +bHMk#0RCCs8#8_bL +R4HkMb0DRbDC_sV ODH +R4HkMb0#RsDH_8#DNLC +R4HkMb0#RsD#_s0 +R4HkMb0CR#s#8C_0s#_N8kDR_O4M +HbRk0s_#08DkN_4OR +bHMk00RGC_#s#8C_0s#_4OR +bHMk00RGO_b##_s0R_O4M +HbRk0b_DDDRFD4M +HbRk0s#G_CCs8##_s0R_O4M +HbRk0sbG_Os#_#O0_RC4 +MF8l8CkD + +@ diff --git a/gbe/cores/sgmii/PCSD/syn_results/synwork/layer0.fdep b/gbe/cores/sgmii/PCSD/syn_results/synwork/layer0.fdep new file mode 100644 index 0000000..b533443 --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/synwork/layer0.fdep @@ -0,0 +1,32 @@ +#defaultlanguage:vhdl +#OPTIONS:"|-mixedhdl|-top|PCSD|-layerid|0|-orig_srs|/home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synwork/PCSD_comp.srs|-prodtype|synplify_pro|-dspmac|-fixsmult|-infer_seqShift|-nram|-sdff_counter|-divnmod|-nostructver|-encrypt|-pro|-lite|-ui|-fid2|-ram|-sharing|on|-ll|2000|-autosm|-ignore_undefined_lib|-lib|work" +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/linux_a_64/c_vhdl":1542167766 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/location.map":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/snps_haps_pkg.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std1164.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/numeric.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/umr_capim.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/arith.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/unsigned.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/hyperents.vhd":1542167610 +#CUR:"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd":1556618983 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":1542167599 +0 "/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd" vhdl + +# Dependency Lists (Uses list) +0 -1 + +# Dependency Lists (Users Of) +0 -1 + +# Design Unit to File Association +arch work pcsd v1 0 +module work pcsd 0 + +# Unbound Instances to File Association +inst work pcsd pcsdrsl_core 0 +inst work pcsd dcua 0 + + +# Configuration files used diff --git a/gbe/cores/sgmii/PCSD/syn_results/synwork/layer0.fdeporig b/gbe/cores/sgmii/PCSD/syn_results/synwork/layer0.fdeporig new file mode 100644 index 0000000..41b0e30 --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/synwork/layer0.fdeporig @@ -0,0 +1,28 @@ +#defaultlanguage:vhdl +#OPTIONS:"|-mixedhdl|-top|PCSD|-layerid|0|-orig_srs|/home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synwork/PCSD_comp.srs|-prodtype|synplify_pro|-dspmac|-fixsmult|-infer_seqShift|-nram|-sdff_counter|-divnmod|-nostructver|-encrypt|-pro|-lite|-ui|-fid2|-ram|-sharing|on|-ll|2000|-autosm|-ignore_undefined_lib|-lib|work" +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/linux_a_64/c_vhdl":1542167766 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/location.map":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/snps_haps_pkg.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std1164.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/numeric.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/umr_capim.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/arith.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/unsigned.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/hyperents.vhd":1542167610 +#CUR:"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd":1556618983 +0 "/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd" vhdl + +# Dependency Lists (Uses list) +0 -1 + +# Dependency Lists (Users Of) +0 -1 + +# Design Unit to File Association +arch work pcsd v1 0 +module work pcsd 0 + +# Unbound Instances to File Association +inst work pcsd pcsdrsl_core 0 +inst work pcsd dcua 0 diff --git a/gbe/cores/sgmii/PCSD/syn_results/synwork/layer0.srs b/gbe/cores/sgmii/PCSD/syn_results/synwork/layer0.srs new file mode 100644 index 0000000000000000000000000000000000000000..6422805218b7e6bf28f6a7cf669f759013ee5c8e GIT binary patch literal 47561 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/PCSD/syn_results/synwork/layer1.tlg b/gbe/cores/sgmii/PCSD/syn_results/synwork/layer1.tlg new file mode 100644 index 0000000..52e3197 --- /dev/null +++ b/gbe/cores/sgmii/PCSD/syn_results/synwork/layer1.tlg @@ -0,0 +1,96 @@ +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +@N: CG364 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":92:7:92:18|Synthesizing module PCSDrsl_core in library work. + + pnum_channels=32'b00000000000000000000000000000001 + pprotocol=24'b010001110100001001000101 + pserdes_mode=72'b010100100101100000100000010000010100111001000100001000000101010001011000 + pport_tx_rdy=64'b0100010001001001010100110100000101000010010011000100010101000100 + pwait_tx_rdy=32'b00000000000000000000101110111000 + pport_rx_rdy=64'b0100010001001001010100110100000101000010010011000100010101000100 + pwait_rx_rdy=32'b00000000000000000000101110111000 + wa_num_cycles=32'b00000000000000000000010000000000 + dac_num_cycles=32'b00000000000000000000000000000011 + lreset_pwidth=32'b00000000000000000000000000000011 + lwait_b4_trst=32'b00000000000010111110101111000010 + lwait_b4_trst_s=32'b00000000000000000000001100001101 + lplol_cnt_width=32'b00000000000000000000000000010100 + lwait_after_plol0=32'b00000000000000000000000000000100 + lwait_b4_rrst=32'b00000000000000101100000000000000 + lrrst_wait_width=32'b00000000000000000000000000010100 + lwait_after_rrst=32'b00000000000011000011010100000000 + lwait_b4_rrst_s=32'b00000000000000000000000111001100 + lrlol_cnt_width=32'b00000000000000000000000000010011 + lwait_after_lols=32'b00000000000000001100010000000000 + lwait_after_lols_s=32'b00000000000000000000000010010110 + llols_cnt_width=32'b00000000000000000000000000010010 + lrdb_max=32'b00000000000000000000000000001111 + ltxr_wait_width=32'b00000000000000000000000000001100 + lrxr_wait_width=32'b00000000000000000000000000001100 + Generated name = PCSDrsl_core_Z1_layer1 +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":274:33:274:48|Removing wire dual_or_serd_rst, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":275:33:275:46|Removing wire tx_any_pcs_rst, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":276:33:276:42|Removing wire tx_any_rst, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":277:33:277:41|Object txsr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":278:33:278:42|Object txdpr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":279:33:279:41|Object txpr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":280:33:280:41|Object txr_wt_en is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":281:33:281:42|Object txr_wt_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":282:33:282:41|Removing wire txr_wt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":283:33:283:43|Object ruo_tx_rdyr is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":326:33:326:40|Object rrst_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":327:33:327:43|Removing wire rrst_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":328:33:328:41|Object rrst_wait is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":341:33:341:39|Object rxp_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":342:33:342:39|Object rxp_rst is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":343:33:343:42|Removing wire rxp_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":346:33:346:42|Object rlolsz_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":347:33:347:45|Removing wire rlolsz_cnt_tc, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":350:33:350:43|Removing wire rxp_cnt2_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":351:33:351:47|Object data_loop_b_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":352:33:352:43|Object data_loop_b is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":353:33:353:46|Removing wire data_loop_b_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":356:33:356:41|Object rxsr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":357:33:357:41|Object rxpr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":358:33:358:42|Object rxsdr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":359:33:359:42|Object rxdpr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":360:33:360:48|Removing wire rxsdr_or_sr_appd, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":361:33:361:49|Removing wire dual_or_rserd_rst, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":362:33:362:46|Removing wire rx_any_pcs_rst, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":363:33:363:42|Removing wire rx_any_rst, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":364:33:364:41|Object rxr_wt_en is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":365:33:365:42|Object rxr_wt_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":366:33:366:41|Removing wire rxr_wt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":367:33:367:43|Object ruo_rx_rdyr is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":507:10:507:10|Object m is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":880:10:880:10|Object l is declared but not assigned. Either assign a value or remove the declaration. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":806:3:806:8|Pruning unused register genblk2.rxp_cnt2[2:0]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlol_p3. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlos_p3. Make sure that there are no unused intermediate registers. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":694:3:694:8|Optimizing register bit genblk2.rxs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":461:3:461:8|Optimizing register bit genblk1.txp_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":422:3:422:8|Optimizing register bit genblk1.txs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":422:3:422:8|Pruning register bit 2 of genblk1.txs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":461:3:461:8|Pruning register bit 2 of genblk1.txp_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":694:3:694:8|Pruning register bit 2 of genblk2.rxs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":200:33:200:48|Input port bits 3 to 1 of rui_tx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":204:33:204:51|Input port bits 3 to 1 of rui_rx_serdes_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":205:33:205:48|Input port bits 3 to 1 of rui_rx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":206:33:206:48|Input port bits 3 to 1 of rdi_rx_los_low_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v":207:33:207:48|Input port bits 3 to 1 of rdi_rx_cdr_lol_s[3:0] are unused. Assign logic for all port bits or change the input port size. diff --git a/gbe/cores/sgmii/PCSD/syn_results/synwork/layer1.tlg.db b/gbe/cores/sgmii/PCSD/syn_results/synwork/layer1.tlg.db new file mode 100644 index 0000000000000000000000000000000000000000..88572b9ddef55c34a5b860adc067e21f3247003b GIT binary patch literal 20480 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/PCSD/syn_results/synwork/modulechange_mixhdl/layer0/modulechange.db b/gbe/cores/sgmii/PCSD/syn_results/synwork/modulechange_mixhdl/layer0/modulechange.db new file mode 100644 index 0000000000000000000000000000000000000000..e2728388fac837ae3abb8d8f704c0333b62959a0 GIT binary patch literal 20480 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 Z-}uMw1%T(vz7OC4F)rf3PKLmIvG zF!&(zy)8ln(!*j1K@?k3NFh!l8i6t_^x)fliQa12%|94Hzu&p{&Rl2o19#5%`+nzq z=R4*GaDYyLJ*is4y>sufi2lI2$mB^L`fmbqYBGqzzt zbxGH98PebR{gbmfF^%nV!h_wvzaPkhe?U`HL-@^}_~_{S@bToS;KY$gThnrn^Simy zhEC42iiR@{_HG^1j9)b;W&^8Sm~iO8VcN~i7)F4N)FEnQW}FJ-nhQDmHaVf7Q#Kh5 z$OF|`m&!MnWx+5Yzd?G&pDi05wW}b%?m~UQnv- zp8&pnz8~jVcFy(VCh%=xKThA@6;I2PW?*_oP%8LL>uHx{$1O6DwqLElJ@u9_?Q%7W zl3%rrY3AS#xLS^p1L@N?HA$-Ym|FAkv^Wtk;H1-b7K~WqOehq?4UC%SS!Jg3sTMJm zSj8Xfq+ShDGZ&Q^kF)_(EmO2Cb7DGh3)LxL2X$hTWm9TzFTKf5`gH%uvaI-CV3(y{ zE`$V%p0&4Tm5tfJMcr^q?4rJ!d-NL5bRA2w1>`S>9?3&hH}5QP36|v);2xa=kS!J* z$1WqY&AWPvKm~CyRv0B=zDsanV5cac4w&aXvS>gH3~hn z2789_+Fp+*teMBgDMeN_3ToR+=8u(JqvDy`)v-pa8Y~% zxG@D9G1&Ys-(|u-(4GU(NqVB(yhmPEJdl`#ohjRBu7zn*D3O_Gfpnl`JC$`i=x7iT z*Xb#!)4aB%iHR5LnfVkqG1|O89HXe_B7)j{kN_1o-eglfQFMcjwHF#)P@*cqYu+QA zlcVBjFLoSpgNH&tkXlIGZr*Drx>!{kIFqp8RwWVtqZNa8?Atj3cERua$r4YYTFWsJ zm-ZA_>zLComh}U@yBNjsywLITsV_w0BdE@_NE_J=@#`UqV`DqUWWdJ1f}jVg3#4W7 zFz(390CXS^h+{qeJs}eQ48#C_*lu6R#QphKJaB0IC}#+GFCqc03f%$-o;WqFLBJam z3Ft@>2Yoye_9Vz|od_(;dq6ETQ(Pek=(f0i5YUcsk05Ld@%pqumMcOst_1El5Xl@7 zQf2BYli$HsTM*TaVFB=mJb65OvBiF#Jnp@` zxqhB}GW76PhabUf^kdS4dvv97_h8bzd$EOndvZ_J#bvC>$l|El`w|Ho_x2dYY*)!?JJcJ=*lyhL9TgU_O_3Id-HRE zSxvc^cWx%KgtC&yRoz-hwn6IT+b>Z+9RB&&%58u!S4CCzsMlQbyXvz0L0wDK54CrO zvu}d4MpOIRk5TUyj;Jr`{Pc~#X|OG?|B@abXGu4&4sM0Pft0cJsZv$n%pnNjrc9669KJku-n}S8P#Jo!#2^Q57F>zV2s74qj89Xcp!i9r! sAj>!;2Lgrzav=6N90!7igK^+LH#ii>pd5(OS~(1*C*>fN*6|Sk1Gjscuba_vhi); + + scuba_vlo_inst: VLO + port map (Z=>scuba_vlo); + + PLLInst_0: EHXPLLL + generic map (PLLRST_ENA=> "DISABLED", INTFB_WAKE=> "DISABLED", + STDBY_ENABLE=> "DISABLED", DPHASE_SOURCE=> "DISABLED", + CLKOS3_FPHASE=> 0, CLKOS3_CPHASE=> 0, CLKOS2_FPHASE=> 0, + CLKOS2_CPHASE=> 0, CLKOS_FPHASE=> 0, CLKOS_CPHASE=> 17, + CLKOP_FPHASE=> 0, CLKOP_CPHASE=> 0, PLL_LOCK_MODE=> 0, + CLKOS_TRIM_DELAY=> 0, CLKOS_TRIM_POL=> "FALLING", + CLKOP_TRIM_DELAY=> 0, CLKOP_TRIM_POL=> "FALLING", + OUTDIVIDER_MUXD=> "DIVD", CLKOS3_ENABLE=> "DISABLED", + OUTDIVIDER_MUXC=> "DIVC", CLKOS2_ENABLE=> "DISABLED", + OUTDIVIDER_MUXB=> "DIVB", CLKOS_ENABLE=> "ENABLED", + OUTDIVIDER_MUXA=> "REFCLK", CLKOP_ENABLE=> "ENABLED", CLKOS3_DIV=> 1, + CLKOS2_DIV=> 1, CLKOS_DIV=> 18, CLKOP_DIV=> 1, CLKFB_DIV=> 4, + CLKI_DIV=> 15, FEEDBK_PATH=> "INT_OS") + port map (CLKI=>CLKI, CLKFB=>CLKFB_t, PHASESEL1=>scuba_vlo, + PHASESEL0=>scuba_vlo, PHASEDIR=>scuba_vlo, + PHASESTEP=>scuba_vlo, PHASELOADREG=>scuba_vlo, + STDBY=>scuba_vlo, PLLWAKESYNC=>scuba_vlo, RST=>scuba_vlo, + ENCLKOP=>scuba_vlo, ENCLKOS=>scuba_vlo, ENCLKOS2=>scuba_vlo, + ENCLKOS3=>scuba_vlo, CLKOP=>CLKOP_t, CLKOS=>CLKOS_t, + CLKOS2=>open, CLKOS3=>open, LOCK=>LOCK, INTLOCK=>open, + REFCLK=>REFCLK, CLKINTFB=>CLKFB_t); + + CLKOS <= CLKOS_t; + CLKOP <= CLKOP_t; +end Structure; diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/pll_in125_out125_out33_ngd.asd b/gbe/cores/sgmii/pll_in125_out125_out33/pll_in125_out125_out33_ngd.asd new file mode 100644 index 0000000..c265c78 --- /dev/null +++ b/gbe/cores/sgmii/pll_in125_out125_out33/pll_in125_out125_out33_ngd.asd @@ -0,0 +1 @@ +[ActiveSupport NGD] diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/.recordref b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/.recordref new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/_CMD_.CML b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/_CMD_.CML new file mode 100644 index 0000000..3410943 --- /dev/null +++ b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/_CMD_.CML @@ -0,0 +1 @@ + -osyn /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/synwork/pll_in125_out125_out33_comp.srs -top pll_in125_out125_out33 -hdllog /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/synlog/pll_in125_out125_out33_compiler.srr -encrypt -mp 4 -verification_mode 0 -vhdl -prodtype synplify_pro -dspmac -fixsmult -infer_seqShift -nram -sdff_counter -divnmod -nostructver -encrypt -pro -dmgen /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/dm -lite -ui -fid2 -ram -sharing on -ll 2000 -autosm -ignore_undefined_lib -lib work /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.vhd -jobname "compiler" \ No newline at end of file diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/_cmd._cml b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/_cmd._cml new file mode 100644 index 0000000..63c1e88 --- /dev/null +++ b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/_cmd._cml @@ -0,0 +1 @@ +-link -encrypt -top pll_in125_out125_out33 -osyn /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/synwork/pll_in125_out125_out33_comp.srs /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/synwork/layer0.srs \ No newline at end of file diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/backup/pll_in125_out125_out33.srr b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/backup/pll_in125_out125_out33.srr new file mode 100644 index 0000000..febff8d --- /dev/null +++ b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/backup/pll_in125_out125_out33.srr @@ -0,0 +1,403 @@ +#Build: Synplify Pro (R) M-2017.03L-SP1-1, Build 086R, Aug 4 2017 +#install: /home/soft/lattice/diamond/3.10_x64/synpbase +#OS: Linux +#Hostname: lxhadeb07 + +# Thu May 9 10:42:24 2019 + +#Implementation: syn_results + +Synopsys HDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Synopsys VHDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.vhd":12:7:12:28|Top entity is set to pll_in125_out125_out33. +VHDL syntax check successful! +@N: CD630 :"/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.vhd":12:7:12:28|Synthesizing work.pll_in125_out125_out33.structure. +@N: CD630 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":2083:10:2083:16|Synthesizing ecp5um.ehxplll.syn_black_box. +Post processing for ecp5um.ehxplll.syn_black_box +@N: CD630 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":832:10:832:12|Synthesizing ecp5um.vlo.syn_black_box. +Post processing for ecp5um.vlo.syn_black_box +@N: CD630 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":825:10:825:12|Synthesizing ecp5um.vhi.syn_black_box. +Post processing for ecp5um.vhi.syn_black_box +Post processing for work.pll_in125_out125_out33.structure +@W: CL168 :"/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.vhd":45:4:45:17|Removing instance scuba_vhi_inst because it does not drive other instances. To preserve this instance, use the syn_noprune synthesis directive. + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Thu May 9 10:42:24 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 67MB peak: 68MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Thu May 9 10:42:24 2019 + +###########################################################] +@END + +At c_hdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 3MB peak: 4MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Thu May 9 10:42:24 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 67MB peak: 68MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Thu May 9 10:42:26 2019 + +###########################################################] +Pre-mapping Report + +# Thu May 9 10:42:26 2019 + +Synopsys Lattice Technology Pre-mapping, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + +Reading constraint file: /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.fdc +@L: /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33_scck.rpt +Printing clock summary report in "/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33_scck.rpt" file +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 101MB peak: 103MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 101MB peak: 103MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 114MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 116MB) + +ICG Latch Removal Summary: +Number of ICG latches removed: 0 +Number of ICG latches not removed: 0 +syn_allowed_resources : blockrams=56 set on top level netlist pll_in125_out125_out33 + +Finished netlist restructuring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + + +Clock Summary +****************** + + Start Requested Requested Clock Clock Clock +Level Clock Frequency Period Type Group Load +------------------------------------------------------------------------------------- +0 - System 100.0 MHz 10.000 system system_clkgroup 0 +===================================================================================== + +Finished Pre Mapping Phase. + +Starting constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished constraint checker preprocessing (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + +None +None + +Finished constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + +Pre-mapping successful! + +At Mapper Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 56MB peak: 143MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime +# Thu May 9 10:42:26 2019 + +###########################################################] +Map & Optimize Report + +# Thu May 9 10:42:26 2019 + +Synopsys Lattice Technology Mapper, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 113MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 115MB) + + + +Starting Optimization and Mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Available hyper_sources - for debug and ip models + None Found + + +Finished RTL optimizations (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Starting factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Finished factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Starting gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Finished gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Finished generic timing optimizations - Pass 1 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Starting Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished generic timing optimizations - Pass 2 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished preparing to map (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished technology mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + +Pass CPU time Worst Slack Luts / Registers +------------------------------------------------------------ + +Finished technology timing optimizations and critical path resynthesis (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + +@N: FX164 |The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute. + +Finished restoring hierarchy (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + + +@S |Clock Optimization Summary + + +#### START OF CLOCK OPTIMIZATION REPORT #####[ + +0 non-gated/non-generated clock tree(s) driving 0 clock pin(s) of sequential element(s) +0 gated/generated clock tree(s) driving 0 clock pin(s) of sequential element(s) +0 instances converted, 0 sequential instances remain driven by gated/generated clocks + + + +##### END OF CLOCK OPTIMIZATION REPORT ######] + + +Start Writing Netlists (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 106MB peak: 143MB) + +Writing Analyst data base /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/synwork/pll_in125_out125_out33_m.srm + +Finished Writing Netlist Databases (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + +Writing EDIF Netlist and constraint files +@N: FX1056 |Writing EDF file: /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.edn +M-2017.03L-SP1-1 +@N: BW106 |Synplicity Constraint File capacitance units using default value of 1pF + +Finished Writing EDIF Netlist and constraint files (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 144MB peak: 146MB) + +Writing Verilog Simulation files + +Finished Writing Verilog Simulation files (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 144MB peak: 146MB) + +Writing VHDL Simulation files + +Finished Writing VHDL Simulation files (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 145MB peak: 146MB) + + +Start final timing analysis (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 145MB peak: 146MB) + +@W: MT246 :"/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.vhd":51:4:51:12|Blackbox EHXPLLL is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) + + +##### START OF TIMING REPORT #####[ +# Timing Report written on Thu May 9 10:42:29 2019 +# + + +Top view: pll_in125_out125_out33 +Requested Frequency: 100.0 MHz +Wire load mode: top +Paths requested: 5 +Constraint File(s): /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.fdc + +@N: MT320 |This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. + +@N: MT322 |Clock constraints include only register-to-register paths associated with each individual clock. + + + +Performance Summary +******************* + + +Worst slack in design: 10.000 + +@N: MT286 |System clock period 0.000 stretches to negative invalid value -- ignoring stretching. + Requested Estimated Requested Estimated Clock Clock +Starting Clock Frequency Frequency Period Period Slack Type Group +---------------------------------------------------------------------------------------------------------------- +System 100.0 MHz NA 10.000 0.000 10.000 system system_clkgroup +================================================================================================================ +Estimated period and frequency reported as NA means no slack depends directly on the clock waveform + + + + + +Clock Relationships +******************* + +Clocks | rise to rise | fall to fall | rise to fall | fall to rise +--------------------------------------------------------------------------------------------------------- +Starting Ending | constraint slack | constraint slack | constraint slack | constraint slack +--------------------------------------------------------------------------------------------------------- +System System | 10.000 10.000 | No paths - | No paths - | No paths - +========================================================================================================= + Note: 'No paths' indicates there are no paths in the design for that pair of clock edges. + 'Diff grp' indicates that paths exist but the starting clock and ending clock are in different clock groups. + + + +Interface Information +********************* + +No IO constraint found + + + +==================================== +Detailed Report for Clock: System +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------ +PLLInst_0 System EHXPLLL CLKOP CLKOP 0.000 10.000 +============================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------- +PLLInst_0 System EHXPLLL CLKFB CLKOP 10.000 10.000 +=============================================================================== + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.000 + + Clock delay at ending point: 0.000 (ideal) + + Estimated clock delay at ending point: 0.000 + = Required time: 10.000 + + - Propagation time: 0.000 + - Clock delay at starting point: 0.000 (ideal) + - Estimated clock delay at start point: -0.000 + = Slack (critical) : 10.000 + + Number of logic level(s): 0 + Starting point: PLLInst_0 / CLKOP + Ending point: PLLInst_0 / CLKFB + The start point is clocked by System [rising] + The end point is clocked by System [rising] + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +--------------------------------------------------------------------------------- +PLLInst_0 EHXPLLL CLKOP Out 0.000 0.000 - +CLKOP Net - - - - 2 +PLLInst_0 EHXPLLL CLKFB In 0.000 0.000 - +================================================================================= + + + +##### END OF TIMING REPORT #####] + +Timing exceptions that could not be applied +None + +Finished final timing analysis (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 146MB peak: 146MB) + + +Finished timing report (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 146MB peak: 146MB) + +--------------------------------------- +Resource Usage Report +Part: lfe5um_25f-6 + +Register bits: 0 of 24288 (0%) +PIC Latch: 0 +I/O cells: 0 + + +Details: +EHXPLLL: 1 +GSR: 1 +PUR: 1 +VHI: 1 +VLO: 1 +Mapper successful! + +At Mapper Exit (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 33MB peak: 146MB) + +Process took 0h:00m:02s realtime, 0h:00m:02s cputime +# Thu May 9 10:42:29 2019 + +###########################################################] diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/dm/layer0.xdm b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/dm/layer0.xdm new file mode 100644 index 0000000..d3eb144 --- /dev/null +++ b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/dm/layer0.xdm @@ -0,0 +1,164 @@ +%%% protect protected_file +@EG +- +]17p0Osk0CksRsPC#MHF=3"4j +"> +!S<-1-RFOksCHRVDRC#O0FMskHL0oHMRR0F0REC8HC#o-MR-S> +S +SS1SS1SS +SS1SS1SS1S +SF<1kCsOR"b=/lEFCF/#VD0/NH00O8C/HFNlMd8/3_4jG/nc#b$MLCN#/LDH/8PE/bE$CMsC0P#3ER8"N(=""=RD"8PEDO"RD0H#=4"-"DRbH=#0""-4/S> +SF<1kCsOR"b=/lEFC8/NsMHN/0oH/L0s6/#O0bClDCN0/Fbs[0CO/l#oHbH/DHD_M64._0Fk4_.6Fdk0dD/bDM_H4_.6F4k0.F6_kd0d38PE"=RN"RU"DP="E"8DRHOD#"0=-R4"b#DH0-="4>"/ +"/ +/S<1sFkO>C# +< +S!R--vkF8DsCRFRF0- +->SF<)FM0R=F"Isb 3DHD_M64._0Fk4_.6Fdk0d03#s0kOk"sC/ +> + +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMC="Okb6lp3em$3#MD_LN_O L"FGR"D=PDE8"S> +SR +SRS +SSqS +SRSqS +SRSqSSqSSqS +SRS +S +/S<7>CV +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMC="Okb6l]3 Xpupp$3#MD_LN_O L"FGR"D=PDE8"S> +SRR/ +SqSS +S"/ +S +SS +SS +SS +S"/ +SuSS +S"/ +"/ +"/ +S +SSuS +SR +SR +SR +SR +SR"/ +S +SSuS"/ +S +S"/ +SuSS +SSuS +SRS +SSuSS +SSuSS +S +SR +SR +SR +SRS +S"/ +SuSS +S"/ +S +SS +SS +S"/ +"/ +SqS + + + +/S<7>CV +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMI="F3s b_DDH.M46k_F064._0Fkd#d30Osk0Cks"=RD"8PED +">SWSR/ +SqS"/ +SqSSqSS +S"/ +"/ + + + +SC<)V=RM"bCO63kle3pm#_$MLODN F_LGH"R=O"#k_LNP_DFH0M#"S> +SWSR/ +S +Sj" +SSS +SqSSS +SSR +SqS"/ +SSS"/ +SSS"/ +SSS"/ +SSSS +SSR +SqSS"/ +SSSS +SSR"/ +SSSS +SqS +SqS +SqS +SqSS +SSR"/ +SSS"/ +SSS"/ +SSSS +SqSS +SSR"/ +SSSS +SqSS"/ +SSSS +SSRS +SSRS +SqS +SqS +S)S7<7/]ps10kkO0s +C>@ + + diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.areasrr b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.areasrr new file mode 100644 index 0000000..5d28e26 --- /dev/null +++ b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.areasrr @@ -0,0 +1,15 @@ +---------------------------------------------------------------------- +Report for cell pll_in125_out125_out33.structure + +Register bits: 0 of 24288 (0%) +PIC Latch: 0 +I/O cells: 0 + Cell usage: + cell count Res Usage(%) + EHXPLLL 1 100.0 + GSR 1 100.0 + PUR 1 100.0 + VHI 1 100.0 + VLO 1 100.0 + + TOTAL 5 diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.fse b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.fse new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.htm b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.htm new file mode 100644 index 0000000..43c5f13 --- /dev/null +++ b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.htm @@ -0,0 +1,9 @@ + + + syntmp/pll_in125_out125_out33_srr.htm log file + + + + + + diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.prj b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.prj new file mode 100644 index 0000000..133a2cb --- /dev/null +++ b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.prj @@ -0,0 +1,46 @@ +#-- Lattice Semiconductor Corporation Ltd. +#-- Synplify OEM project file /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.prj +#-- Written on Fri May 10 15:07:25 2019 + + +#device options +set_option -technology ecp5um +set_option -part LFE5UM-85F +set_option -speed_grade 8 + +#use verilog 2001 standard option +set_option -vlog_std v2001 + +#map options +set_option -frequency 100 +set_option -fanout_limit 50 +set_option -disable_io_insertion true +set_option -retiming false +set_option -pipe false +set_option -pipe false +set_option -force_gsr false + +#simulation options +set_option -write_verilog true +set_option -write_vhdl true + +#timing analysis options + +#automatic place and route (vendor) options +set_option -write_apr_constraint 1 + +#-- add_file options +add_file -vhdl -lib work "/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.vhd" +add_file -constraint {"/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.fdc"} + +#-- top module name +set_option -top_module pll_in125_out125_out33 + +#-- set result format/file last +project -result_file "pll_in125_out125_out33.edn" + +#-- error message log file +project -log_file pll_in125_out125_out33.srf + +#-- run Synplify with 'arrange VHDL file' +project -run diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.srd b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.srd new file mode 100644 index 0000000000000000000000000000000000000000..d5fd4e612e5d0b1f880b8fa44082f98de3e17860 GIT binary patch literal 5523 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 VP~ZXp009600{~wuAc1}{0024(HG=>E literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.srf b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.srf new file mode 100644 index 0000000..2ad892a --- /dev/null +++ b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.srf @@ -0,0 +1,404 @@ +#Build: Synplify Pro (R) M-2017.03L-SP1-1, Build 086R, Aug 4 2017 +#install: /home/soft/lattice/diamond/3.10_x64/synpbase +#OS: Linux +#Hostname: lxhadeb07 + +# Fri May 10 15:07:25 2019 + +#Implementation: syn_results + +Synopsys HDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Synopsys VHDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.vhd":12:7:12:28|Top entity is set to pll_in125_out125_out33. +File /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.vhd changed - recompiling +File /home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd changed - recompiling +VHDL syntax check successful! +File /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.vhd changed - recompiling +@N: CD630 :"/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.vhd":12:7:12:28|Synthesizing work.pll_in125_out125_out33.structure. +@N: CD630 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":2083:10:2083:16|Synthesizing ecp5um.ehxplll.syn_black_box. +Post processing for ecp5um.ehxplll.syn_black_box +@N: CD630 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":832:10:832:12|Synthesizing ecp5um.vlo.syn_black_box. +Post processing for ecp5um.vlo.syn_black_box +@N: CD630 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":825:10:825:12|Synthesizing ecp5um.vhi.syn_black_box. +Post processing for ecp5um.vhi.syn_black_box +Post processing for work.pll_in125_out125_out33.structure +@W: CL168 :"/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.vhd":46:4:46:17|Removing instance scuba_vhi_inst because it does not drive other instances. To preserve this instance, use the syn_noprune synthesis directive. + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 15:07:25 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +File /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/synwork/layer0.srs changed - recompiling + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 67MB peak: 68MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 15:07:26 2019 + +###########################################################] +@END + +At c_hdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 3MB peak: 4MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 15:07:26 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +File /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/synwork/pll_in125_out125_out33_comp.srs changed - recompiling + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 67MB peak: 68MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 15:07:27 2019 + +###########################################################] +# Fri May 10 15:07:27 2019 + +Synopsys Lattice Technology Pre-mapping, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + +Reading constraint file: /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.fdc +@L: /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33_scck.rpt +Printing clock summary report in "/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33_scck.rpt" file +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 101MB peak: 103MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 101MB peak: 103MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 114MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 116MB) + +ICG Latch Removal Summary: +Number of ICG latches removed: 0 +Number of ICG latches not removed: 0 +syn_allowed_resources : blockrams=56 set on top level netlist pll_in125_out125_out33 + +Finished netlist restructuring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + + +Clock Summary +****************** + + Start Requested Requested Clock Clock Clock +Level Clock Frequency Period Type Group Load +------------------------------------------------------------------------------------- +0 - System 100.0 MHz 10.000 system system_clkgroup 0 +===================================================================================== + +Finished Pre Mapping Phase. + +Starting constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished constraint checker preprocessing (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + +None +None + +Finished constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + +Pre-mapping successful! + +At Mapper Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 56MB peak: 143MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime +# Fri May 10 15:07:28 2019 + +###########################################################] +# Fri May 10 15:07:28 2019 + +Synopsys Lattice Technology Mapper, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 113MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 115MB) + + + +Starting Optimization and Mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Available hyper_sources - for debug and ip models + None Found + + +Finished RTL optimizations (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Starting factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Finished factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Starting gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Finished gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Finished generic timing optimizations - Pass 1 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Starting Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished generic timing optimizations - Pass 2 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished preparing to map (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished technology mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + +Pass CPU time Worst Slack Luts / Registers +------------------------------------------------------------ + +Finished technology timing optimizations and critical path resynthesis (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + +@N: FX164 |The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute. + +Finished restoring hierarchy (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + + +@S |Clock Optimization Summary + + +#### START OF CLOCK OPTIMIZATION REPORT #####[ + +0 non-gated/non-generated clock tree(s) driving 0 clock pin(s) of sequential element(s) +0 gated/generated clock tree(s) driving 0 clock pin(s) of sequential element(s) +0 instances converted, 0 sequential instances remain driven by gated/generated clocks + + + +##### END OF CLOCK OPTIMIZATION REPORT ######] + + +Start Writing Netlists (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 106MB peak: 143MB) + +Writing Analyst data base /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/synwork/pll_in125_out125_out33_m.srm + +Finished Writing Netlist Databases (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + +Writing EDIF Netlist and constraint files +@N: FX1056 |Writing EDF file: /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.edn +M-2017.03L-SP1-1 +@N: BW106 |Synplicity Constraint File capacitance units using default value of 1pF + +Finished Writing EDIF Netlist and constraint files (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 144MB peak: 146MB) + +Writing Verilog Simulation files + +Finished Writing Verilog Simulation files (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 144MB peak: 146MB) + +Writing VHDL Simulation files + +Finished Writing VHDL Simulation files (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 145MB peak: 146MB) + + +Start final timing analysis (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:02s; Memory used current: 145MB peak: 146MB) + +@W: MT246 :"/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.vhd":52:4:52:12|Blackbox EHXPLLL is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) + + +##### START OF TIMING REPORT #####[ +# Timing Report written on Fri May 10 15:07:30 2019 +# + + +Top view: pll_in125_out125_out33 +Requested Frequency: 100.0 MHz +Wire load mode: top +Paths requested: 5 +Constraint File(s): /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.fdc + +@N: MT320 |This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. + +@N: MT322 |Clock constraints include only register-to-register paths associated with each individual clock. + + + +Performance Summary +******************* + + +Worst slack in design: 10.000 + +@N: MT286 |System clock period 0.000 stretches to negative invalid value -- ignoring stretching. + Requested Estimated Requested Estimated Clock Clock +Starting Clock Frequency Frequency Period Period Slack Type Group +---------------------------------------------------------------------------------------------------------------- +System 100.0 MHz NA 10.000 0.000 10.000 system system_clkgroup +================================================================================================================ +Estimated period and frequency reported as NA means no slack depends directly on the clock waveform + + + + + +Clock Relationships +******************* + +Clocks | rise to rise | fall to fall | rise to fall | fall to rise +--------------------------------------------------------------------------------------------------------- +Starting Ending | constraint slack | constraint slack | constraint slack | constraint slack +--------------------------------------------------------------------------------------------------------- +System System | 10.000 10.000 | No paths - | No paths - | No paths - +========================================================================================================= + Note: 'No paths' indicates there are no paths in the design for that pair of clock edges. + 'Diff grp' indicates that paths exist but the starting clock and ending clock are in different clock groups. + + + +Interface Information +********************* + +No IO constraint found + + + +==================================== +Detailed Report for Clock: System +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +----------------------------------------------------------------------------------- +PLLInst_0 System EHXPLLL CLKINTFB CLKFB_t 0.000 10.000 +=================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------- +PLLInst_0 System EHXPLLL CLKFB CLKFB_t 10.000 10.000 +================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.000 + + Clock delay at ending point: 0.000 (ideal) + + Estimated clock delay at ending point: 0.000 + = Required time: 10.000 + + - Propagation time: 0.000 + - Clock delay at starting point: 0.000 (ideal) + - Estimated clock delay at start point: -0.000 + = Slack (critical) : 10.000 + + Number of logic level(s): 0 + Starting point: PLLInst_0 / CLKINTFB + Ending point: PLLInst_0 / CLKFB + The start point is clocked by System [rising] + The end point is clocked by System [rising] + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +------------------------------------------------------------------------------------ +PLLInst_0 EHXPLLL CLKINTFB Out 0.000 0.000 - +CLKFB_t Net - - - - 1 +PLLInst_0 EHXPLLL CLKFB In 0.000 0.000 - +==================================================================================== + + + +##### END OF TIMING REPORT #####] + +Timing exceptions that could not be applied +None + +Finished final timing analysis (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:02s; Memory used current: 146MB peak: 146MB) + + +Finished timing report (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:02s; Memory used current: 146MB peak: 146MB) + +--------------------------------------- +Resource Usage Report +Part: lfe5um_25f-6 + +Register bits: 0 of 24288 (0%) +PIC Latch: 0 +I/O cells: 0 + + +Details: +EHXPLLL: 1 +GSR: 1 +PUR: 1 +VHI: 1 +VLO: 1 +Mapper successful! + +At Mapper Exit (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 33MB peak: 146MB) + +Process took 0h:00m:02s realtime, 0h:00m:02s cputime +# Fri May 10 15:07:30 2019 + +###########################################################] diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.srm b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.srm new file mode 100644 index 0000000000000000000000000000000000000000..15fc0b09ae565cc350ee65162593427e15082695 GIT binary patch literal 5576 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 Wa!}v`00030{{sN#>~LuID*yoWvLmbj literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.srr b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.srr new file mode 100644 index 0000000..2ad892a --- /dev/null +++ b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.srr @@ -0,0 +1,404 @@ +#Build: Synplify Pro (R) M-2017.03L-SP1-1, Build 086R, Aug 4 2017 +#install: /home/soft/lattice/diamond/3.10_x64/synpbase +#OS: Linux +#Hostname: lxhadeb07 + +# Fri May 10 15:07:25 2019 + +#Implementation: syn_results + +Synopsys HDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Synopsys VHDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.vhd":12:7:12:28|Top entity is set to pll_in125_out125_out33. +File /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.vhd changed - recompiling +File /home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd changed - recompiling +VHDL syntax check successful! +File /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.vhd changed - recompiling +@N: CD630 :"/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.vhd":12:7:12:28|Synthesizing work.pll_in125_out125_out33.structure. +@N: CD630 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":2083:10:2083:16|Synthesizing ecp5um.ehxplll.syn_black_box. +Post processing for ecp5um.ehxplll.syn_black_box +@N: CD630 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":832:10:832:12|Synthesizing ecp5um.vlo.syn_black_box. +Post processing for ecp5um.vlo.syn_black_box +@N: CD630 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":825:10:825:12|Synthesizing ecp5um.vhi.syn_black_box. +Post processing for ecp5um.vhi.syn_black_box +Post processing for work.pll_in125_out125_out33.structure +@W: CL168 :"/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.vhd":46:4:46:17|Removing instance scuba_vhi_inst because it does not drive other instances. To preserve this instance, use the syn_noprune synthesis directive. + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 15:07:25 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +File /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/synwork/layer0.srs changed - recompiling + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 67MB peak: 68MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 15:07:26 2019 + +###########################################################] +@END + +At c_hdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 3MB peak: 4MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 15:07:26 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +File /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/synwork/pll_in125_out125_out33_comp.srs changed - recompiling + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 67MB peak: 68MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 15:07:27 2019 + +###########################################################] +# Fri May 10 15:07:27 2019 + +Synopsys Lattice Technology Pre-mapping, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + +Reading constraint file: /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.fdc +@L: /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33_scck.rpt +Printing clock summary report in "/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33_scck.rpt" file +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 101MB peak: 103MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 101MB peak: 103MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 114MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 116MB) + +ICG Latch Removal Summary: +Number of ICG latches removed: 0 +Number of ICG latches not removed: 0 +syn_allowed_resources : blockrams=56 set on top level netlist pll_in125_out125_out33 + +Finished netlist restructuring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + + +Clock Summary +****************** + + Start Requested Requested Clock Clock Clock +Level Clock Frequency Period Type Group Load +------------------------------------------------------------------------------------- +0 - System 100.0 MHz 10.000 system system_clkgroup 0 +===================================================================================== + +Finished Pre Mapping Phase. + +Starting constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished constraint checker preprocessing (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + +None +None + +Finished constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + +Pre-mapping successful! + +At Mapper Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 56MB peak: 143MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime +# Fri May 10 15:07:28 2019 + +###########################################################] +# Fri May 10 15:07:28 2019 + +Synopsys Lattice Technology Mapper, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 113MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 115MB) + + + +Starting Optimization and Mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Available hyper_sources - for debug and ip models + None Found + + +Finished RTL optimizations (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Starting factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Finished factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Starting gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Finished gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Finished generic timing optimizations - Pass 1 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Starting Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished generic timing optimizations - Pass 2 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished preparing to map (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished technology mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + +Pass CPU time Worst Slack Luts / Registers +------------------------------------------------------------ + +Finished technology timing optimizations and critical path resynthesis (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + +@N: FX164 |The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute. + +Finished restoring hierarchy (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + + +@S |Clock Optimization Summary + + +#### START OF CLOCK OPTIMIZATION REPORT #####[ + +0 non-gated/non-generated clock tree(s) driving 0 clock pin(s) of sequential element(s) +0 gated/generated clock tree(s) driving 0 clock pin(s) of sequential element(s) +0 instances converted, 0 sequential instances remain driven by gated/generated clocks + + + +##### END OF CLOCK OPTIMIZATION REPORT ######] + + +Start Writing Netlists (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 106MB peak: 143MB) + +Writing Analyst data base /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/synwork/pll_in125_out125_out33_m.srm + +Finished Writing Netlist Databases (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + +Writing EDIF Netlist and constraint files +@N: FX1056 |Writing EDF file: /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.edn +M-2017.03L-SP1-1 +@N: BW106 |Synplicity Constraint File capacitance units using default value of 1pF + +Finished Writing EDIF Netlist and constraint files (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 144MB peak: 146MB) + +Writing Verilog Simulation files + +Finished Writing Verilog Simulation files (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 144MB peak: 146MB) + +Writing VHDL Simulation files + +Finished Writing VHDL Simulation files (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 145MB peak: 146MB) + + +Start final timing analysis (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:02s; Memory used current: 145MB peak: 146MB) + +@W: MT246 :"/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.vhd":52:4:52:12|Blackbox EHXPLLL is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) + + +##### START OF TIMING REPORT #####[ +# Timing Report written on Fri May 10 15:07:30 2019 +# + + +Top view: pll_in125_out125_out33 +Requested Frequency: 100.0 MHz +Wire load mode: top +Paths requested: 5 +Constraint File(s): /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.fdc + +@N: MT320 |This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. + +@N: MT322 |Clock constraints include only register-to-register paths associated with each individual clock. + + + +Performance Summary +******************* + + +Worst slack in design: 10.000 + +@N: MT286 |System clock period 0.000 stretches to negative invalid value -- ignoring stretching. + Requested Estimated Requested Estimated Clock Clock +Starting Clock Frequency Frequency Period Period Slack Type Group +---------------------------------------------------------------------------------------------------------------- +System 100.0 MHz NA 10.000 0.000 10.000 system system_clkgroup +================================================================================================================ +Estimated period and frequency reported as NA means no slack depends directly on the clock waveform + + + + + +Clock Relationships +******************* + +Clocks | rise to rise | fall to fall | rise to fall | fall to rise +--------------------------------------------------------------------------------------------------------- +Starting Ending | constraint slack | constraint slack | constraint slack | constraint slack +--------------------------------------------------------------------------------------------------------- +System System | 10.000 10.000 | No paths - | No paths - | No paths - +========================================================================================================= + Note: 'No paths' indicates there are no paths in the design for that pair of clock edges. + 'Diff grp' indicates that paths exist but the starting clock and ending clock are in different clock groups. + + + +Interface Information +********************* + +No IO constraint found + + + +==================================== +Detailed Report for Clock: System +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +----------------------------------------------------------------------------------- +PLLInst_0 System EHXPLLL CLKINTFB CLKFB_t 0.000 10.000 +=================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------- +PLLInst_0 System EHXPLLL CLKFB CLKFB_t 10.000 10.000 +================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.000 + + Clock delay at ending point: 0.000 (ideal) + + Estimated clock delay at ending point: 0.000 + = Required time: 10.000 + + - Propagation time: 0.000 + - Clock delay at starting point: 0.000 (ideal) + - Estimated clock delay at start point: -0.000 + = Slack (critical) : 10.000 + + Number of logic level(s): 0 + Starting point: PLLInst_0 / CLKINTFB + Ending point: PLLInst_0 / CLKFB + The start point is clocked by System [rising] + The end point is clocked by System [rising] + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +------------------------------------------------------------------------------------ +PLLInst_0 EHXPLLL CLKINTFB Out 0.000 0.000 - +CLKFB_t Net - - - - 1 +PLLInst_0 EHXPLLL CLKFB In 0.000 0.000 - +==================================================================================== + + + +##### END OF TIMING REPORT #####] + +Timing exceptions that could not be applied +None + +Finished final timing analysis (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:02s; Memory used current: 146MB peak: 146MB) + + +Finished timing report (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:02s; Memory used current: 146MB peak: 146MB) + +--------------------------------------- +Resource Usage Report +Part: lfe5um_25f-6 + +Register bits: 0 of 24288 (0%) +PIC Latch: 0 +I/O cells: 0 + + +Details: +EHXPLLL: 1 +GSR: 1 +PUR: 1 +VHI: 1 +VLO: 1 +Mapper successful! + +At Mapper Exit (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 33MB peak: 146MB) + +Process took 0h:00m:02s realtime, 0h:00m:02s cputime +# Fri May 10 15:07:30 2019 + +###########################################################] diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.srr.db b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.srr.db new file mode 100644 index 0000000000000000000000000000000000000000..5279189ce487c962f61c7678dabb0ab4717b4fb6 GIT binary patch literal 8192 zcmeHKPj4GV6n9LBo1|_UP!ypO=_xsoih9?(wl|h5RWxZ_kW$emK`n5w#=B#C$nMN) zX4Z|XToU%oTluDdpS9q!*h-iPD+ zy9fI)8{K9B42kpyMBagr@so?Y>6D9s6UKitImVTY>)YnP`Rc-tg_X&TpKdhE-<99L zzOelBGFjeP`eA8*@%zQkuH7wtTXJzq-f{+V266^+266`edkpkfOY7zF&RX%&vD@^H zMoQBN{80EO5L3xS09C76t%A~$YJWf#XaSt|iDpBJN8yl!>0ufs6e<;9eJ&*9{n>oH zw7Agp-Ya?2IC^9p)m(Qk_23JRb_pJ+3QhT85>OC49D$^LhDc;Zi^}X8Vxk8Mh*H95 zMAHDCGd%!G`~fZw*pLMY2{Y_dpW}B{(CMU{IjtTK7{X_f!6#`fqy`)y9H_!kGzp>y zaY%fMg8@j9;7~v`v7jv^^cY9`=j&AxYIO$^ML`cJv>!jb4@1fWocVhjnX@UV$@-0J z>*M~Uam#RC_crZ;h^S2h$q2XmOxs#^8_Ksa5@<+MJC@=r>T6r|BgX7F3_FZFZli{w^cVkj=PJyJL!s3*#G$1hQNfot zBS-Y%#BIprH(tG7dapcLTr0MpIn{>uR5EQgz5k$%femR3t|km>#5*$E*_%Q_1D;_@ zmd$>TQb=C?7)4~*GDHd#J7(Za`X)P4k$v*%F7mI;o}f!92NhGF^)Ol%JPs*AEh?(P zfWTNX(dz-xTCy%G*@7t*qb1|^OH7Kk=XvLuIHXb;=aiclX*9UKC!)wC!Y116OrceJ z?6iZ~PlFCV>hvk6GQCS{h5~1EhIOjilwIp~w&U%^h4u1XtRopvpyyicU%5@J@8GoFevqKt*VMd_JazXh? zmvn{$h6O?yh4{pjCuBAdSh9WW9J9@sU@ zsdi4ix{U_oF3Q&qS=SB|pK@(eKW-#ZR>7KXqvcdvY3H6DP2ImRyFZ`CECaD?DqIIk zTqYz$Gk^7HYFJAVjp^QiCKQ*WS$zx9?2xPE#;rDM22R#{m$E|#r+99Jmt(3G5ff9d zWBNPKBgbv+AagCZ`8wF=LY`QcpKlhvC?vj4A literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.srs b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.srs new file mode 100644 index 0000000000000000000000000000000000000000..1303ca775c633db2ad38acf6a8e87211d46495f3 GIT binary patch literal 4807 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.vhm b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.vhm new file mode 100644 index 0000000..57f03c8 --- /dev/null +++ b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.vhm @@ -0,0 +1,108 @@ +-- +-- Written by Synplicity +-- Product Version "M-2017.03L-SP1-1" +-- Program "Synplify Pro", Mapper "maplat, Build 1796R" +-- Fri May 10 15:07:29 2019 +-- + +-- +-- Written by Synplify Pro version Build 1796R +-- Fri May 10 15:07:29 2019 +-- + +-- +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; +library synplify; +use synplify.components.all; +library pmi; +use pmi.pmi_components.all; +library ecp5um; +use ecp5um.components.all; + +entity pll_in125_out125_out33 is +port( + CLKI : in std_logic; + CLKOP : out std_logic; + CLKOS : out std_logic; + LOCK : out std_logic); +end pll_in125_out125_out33; + +architecture beh of pll_in125_out125_out33 is + signal CLKOS2 : std_logic ; + signal CLKOS3 : std_logic ; + signal INTLOCK : std_logic ; + signal CLKFB_T : std_logic ; + signal REFCLK : std_logic ; + signal GND : std_logic ; + signal VCC : std_logic ; +begin +GND_0: VLO port map ( + Z => GND); +VCC_0: VHI port map ( + Z => VCC); +PUR_INST: PUR port map ( + PUR => VCC); +GSR_INST: GSR port map ( + GSR => VCC); +PLLINST_0: EHXPLLL + generic map( + CLKI_DIV => 15, + CLKFB_DIV => 4, + CLKOP_DIV => 1, + CLKOS_DIV => 18, + CLKOS2_DIV => 1, + CLKOS3_DIV => 1, + CLKOP_ENABLE => "ENABLED", + CLKOS_ENABLE => "ENABLED", + CLKOS2_ENABLE => "DISABLED", + CLKOS3_ENABLE => "DISABLED", + CLKOP_CPHASE => 0, + CLKOS_CPHASE => 17, + CLKOS2_CPHASE => 0, + CLKOS3_CPHASE => 0, + CLKOP_FPHASE => 0, + CLKOS_FPHASE => 0, + CLKOS2_FPHASE => 0, + CLKOS3_FPHASE => 0, + FEEDBK_PATH => "INT_OS", + CLKOP_TRIM_POL => "FALLING", + CLKOP_TRIM_DELAY => 0, + CLKOS_TRIM_POL => "FALLING", + CLKOS_TRIM_DELAY => 0, + OUTDIVIDER_MUXA => "REFCLK", + OUTDIVIDER_MUXB => "DIVB", + OUTDIVIDER_MUXC => "DIVC", + OUTDIVIDER_MUXD => "DIVD", + PLL_LOCK_MODE => 0, + STDBY_ENABLE => "DISABLED", + DPHASE_SOURCE => "DISABLED", + PLLRST_ENA => "DISABLED", + INTFB_WAKE => "DISABLED" + ) + port map ( + CLKI => CLKI, + CLKFB => CLKFB_T, + PHASESEL1 => GND, + PHASESEL0 => GND, + PHASEDIR => GND, + PHASESTEP => GND, + PHASELOADREG => GND, + STDBY => GND, + PLLWAKESYNC => GND, + RST => GND, + ENCLKOP => GND, + ENCLKOS => GND, + ENCLKOS2 => GND, + ENCLKOS3 => GND, + CLKOP => CLKOP, + CLKOS => CLKOS, + CLKOS2 => CLKOS2, + CLKOS3 => CLKOS3, + LOCK => LOCK, + INTLOCK => INTLOCK, + REFCLK => REFCLK, + CLKINTFB => CLKFB_T); +end beh; + diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.vm b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.vm new file mode 100644 index 0000000..653411d --- /dev/null +++ b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.vm @@ -0,0 +1,115 @@ +// +// Written by Synplify Pro +// Product Version "M-2017.03L-SP1-1" +// Program "Synplify Pro", Mapper "maplat, Build 1796R" +// Fri May 10 15:07:29 2019 +// +// Source file index table: +// Object locations will have the form : +// file 0 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd " +// file 1 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/snps_haps_pkg.vhd " +// file 2 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std1164.vhd " +// file 3 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/numeric.vhd " +// file 4 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/umr_capim.vhd " +// file 5 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/arith.vhd " +// file 6 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/unsigned.vhd " +// file 7 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/hyperents.vhd " +// file 8 "\/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.vhd " +// file 9 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd " +// file 10 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/nlconst.dat " +// file 11 "\/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.fdc " + +`timescale 100 ps/100 ps +(* NGD_DRC_MASK=1 *)module pll_in125_out125_out33 ( + CLKI, + CLKOP, + CLKOS, + LOCK +) +; +input CLKI ; +output CLKOP ; +output CLKOS ; +output LOCK ; +wire CLKI ; +wire CLKOP ; +wire CLKOS ; +wire LOCK ; +wire CLKOS2 ; +wire CLKOS3 ; +wire INTLOCK ; +wire CLKFB_t ; +wire REFCLK ; +wire GND ; +wire VCC ; + VLO GND_0 ( + .Z(GND) +); + VHI VCC_0 ( + .Z(VCC) +); + PUR PUR_INST ( + .PUR(VCC) +); + GSR GSR_INST ( + .GSR(VCC) +); +// @8:52 +(* LPF_RESISTOR="16" , ICP_CURRENT="5" , FREQUENCY_PIN_CLKI="125.000000" , FREQUENCY_PIN_CLKOP="125.000000" , FREQUENCY_PIN_CLKOS="33.333333" *) EHXPLLL PLLInst_0 ( + .CLKI(CLKI), + .CLKFB(CLKFB_t), + .PHASESEL1(GND), + .PHASESEL0(GND), + .PHASEDIR(GND), + .PHASESTEP(GND), + .PHASELOADREG(GND), + .STDBY(GND), + .PLLWAKESYNC(GND), + .RST(GND), + .ENCLKOP(GND), + .ENCLKOS(GND), + .ENCLKOS2(GND), + .ENCLKOS3(GND), + .CLKOP(CLKOP), + .CLKOS(CLKOS), + .CLKOS2(CLKOS2), + .CLKOS3(CLKOS3), + .LOCK(LOCK), + .INTLOCK(INTLOCK), + .REFCLK(REFCLK), + .CLKINTFB(CLKFB_t) +); +defparam PLLInst_0.CLKI_DIV = 15; +defparam PLLInst_0.CLKFB_DIV = 4; +defparam PLLInst_0.CLKOP_DIV = 1; +defparam PLLInst_0.CLKOS_DIV = 18; +defparam PLLInst_0.CLKOS2_DIV = 1; +defparam PLLInst_0.CLKOS3_DIV = 1; +defparam PLLInst_0.CLKOP_ENABLE = "ENABLED"; +defparam PLLInst_0.CLKOS_ENABLE = "ENABLED"; +defparam PLLInst_0.CLKOS2_ENABLE = "DISABLED"; +defparam PLLInst_0.CLKOS3_ENABLE = "DISABLED"; +defparam PLLInst_0.CLKOP_CPHASE = 0; +defparam PLLInst_0.CLKOS_CPHASE = 17; +defparam PLLInst_0.CLKOS2_CPHASE = 0; +defparam PLLInst_0.CLKOS3_CPHASE = 0; +defparam PLLInst_0.CLKOP_FPHASE = 0; +defparam PLLInst_0.CLKOS_FPHASE = 0; +defparam PLLInst_0.CLKOS2_FPHASE = 0; +defparam PLLInst_0.CLKOS3_FPHASE = 0; +defparam PLLInst_0.FEEDBK_PATH = "INT_OS"; +defparam PLLInst_0.CLKOP_TRIM_POL = "FALLING"; +defparam PLLInst_0.CLKOP_TRIM_DELAY = 0; +defparam PLLInst_0.CLKOS_TRIM_POL = "FALLING"; +defparam PLLInst_0.CLKOS_TRIM_DELAY = 0; +defparam PLLInst_0.OUTDIVIDER_MUXA = "REFCLK"; +defparam PLLInst_0.OUTDIVIDER_MUXB = "DIVB"; +defparam PLLInst_0.OUTDIVIDER_MUXC = "DIVC"; +defparam PLLInst_0.OUTDIVIDER_MUXD = "DIVD"; +defparam PLLInst_0.PLL_LOCK_MODE = 0; +defparam PLLInst_0.STDBY_ENABLE = "DISABLED"; +defparam PLLInst_0.DPHASE_SOURCE = "DISABLED"; +defparam PLLInst_0.PLLRST_ENA = "DISABLED"; +defparam PLLInst_0.INTFB_WAKE = "DISABLED"; +endmodule /* pll_in125_out125_out33 */ + diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33_cck.rpt.db b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33_cck.rpt.db new file mode 100644 index 0000000000000000000000000000000000000000..029fa7a6cf9014af50ee9d4aa843536a1f7b5c42 GIT binary patch literal 8192 zcmeI#JqyA>3DEQgKL*xDXO@ z%d=&(imfwzIG4G0Jf%J073BwWN1`{~f``Krs^Nta{J wY>_tId!-qqw)j}S$WL3iQGJ`s(T{)t1Rwwb2tWV=5P$##AOHafK;VZ3UKAiP82|tP literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33_scck.rpt.db b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33_scck.rpt.db new file mode 100644 index 0000000000000000000000000000000000000000..029fa7a6cf9014af50ee9d4aa843536a1f7b5c42 GIT binary patch literal 8192 zcmeI#JqyA>3DEQgKL*xDXO@ z%d=&(imfwzIG4G0Jf%J073BwWN1`{~f``Krs^Nta{J wY>_tId!-qqw)j}S$WL3iQGJ`s(T{)t1Rwwb2tWV=5P$##AOHafK;VZ3UKAiP82|tP literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33_synplify.lpf b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33_synplify.lpf new file mode 100644 index 0000000..8e445e1 --- /dev/null +++ b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33_synplify.lpf @@ -0,0 +1,20 @@ +# +# Logical Preferences generated for Lattice by Synplify maplat, Build 1796R. +# + +# Period Constraints + + +# Output Constraints + +# Input Constraints + +# Point-to-point Delay Constraints + + + +# Block Path Constraints + +BLOCK ASYNCPATHS; + +# End of generated Logical Preferences. diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33_synplify_tmp2.lpf b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33_synplify_tmp2.lpf new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33_synplify_tmp4.lpf b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33_synplify_tmp4.lpf new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33_synplify_tmp8.lpf b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33_synplify_tmp8.lpf new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/run_options.txt b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/run_options.txt new file mode 100644 index 0000000..b19e59a --- /dev/null +++ b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/run_options.txt @@ -0,0 +1,75 @@ +#-- Synopsys, Inc. +#-- Version M-2017.03L-SP1-1 +#-- Project file /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/run_options.txt +#-- Written on Fri May 10 15:07:25 2019 + + +#project files +add_file -vhdl -lib work "/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.vhd" +add_file -fpga_constraint "/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.fdc" + + + +#implementation: "syn_results" +impl -add syn_results -type fpga + +# +#implementation attributes + +set_option -vlog_std v2001 + +#device options +set_option -technology ecp5um +set_option -part LFE5UM_25F +set_option -package MG285C +set_option -speed_grade -6 +set_option -part_companion "" + +#compilation/mapping options +set_option -top_module "pll_in125_out125_out33" + +# hdl_compiler_options +set_option -distributed_compile 0 + +# mapper_without_write_options +set_option -frequency 100 +set_option -srs_instrumentation 1 + +# mapper_options +set_option -write_verilog 1 +set_option -write_vhdl 1 + +# Lattice XP +set_option -maxfan 50 +set_option -disable_io_insertion 1 +set_option -retiming 0 +set_option -pipe 0 +set_option -forcegsr false +set_option -fix_gated_and_generated_clocks 1 +set_option -rw_check_on_ram 1 +set_option -update_models_cp 0 +set_option -syn_edif_array_rename 1 +set_option -Write_declared_clocks_only 1 + +# NFilter +set_option -no_sequential_opt 0 + +# sequential_optimization_options +set_option -symbolic_fsm_compiler 1 + +# Compiler Options +set_option -compiler_compatible 0 +set_option -resource_sharing 1 + +# Compiler Options +set_option -auto_infer_blackbox 0 + +#automatic place and route (vendor) options +set_option -write_apr_constraint 1 + +#set result format/file last +project -result_file "./pll_in125_out125_out33.edn" + +#set log file +set_option log_file "/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.srf" +impl -active "syn_results" diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/scemi_cfg.txt b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/scemi_cfg.txt new file mode 100644 index 0000000..868d437 --- /dev/null +++ b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/scemi_cfg.txt @@ -0,0 +1,3 @@ +## UMR3 MESSAGE PORT CONFIGURATION FILE +## ************************************ +XTOR_DPI_MSG_PORT_UMR_ADDR_VERSION=0 diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/scratchproject.prs b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/scratchproject.prs new file mode 100644 index 0000000..dccd7f3 --- /dev/null +++ b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/scratchproject.prs @@ -0,0 +1,73 @@ +#-- Synopsys, Inc. +#-- Version M-2017.03L-SP1-1 +#-- Project file /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/scratchproject.prs + +#project files +add_file -vhdl -lib work "/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.vhd" +add_file -fpga_constraint "/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.fdc" + + + +#implementation: "syn_results" +impl -add /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results -type fpga + +# +#implementation attributes + +set_option -vlog_std v2001 + +#device options +set_option -technology ecp5um +set_option -part LFE5UM_25F +set_option -package MG285C +set_option -speed_grade -6 +set_option -part_companion "" + +#compilation/mapping options +set_option -top_module "pll_in125_out125_out33" + +# hdl_compiler_options +set_option -distributed_compile 0 + +# mapper_without_write_options +set_option -frequency 100 +set_option -srs_instrumentation 1 + +# mapper_options +set_option -write_verilog 1 +set_option -write_vhdl 1 + +# Lattice XP +set_option -maxfan 50 +set_option -disable_io_insertion 1 +set_option -retiming 0 +set_option -pipe 0 +set_option -forcegsr false +set_option -fix_gated_and_generated_clocks 1 +set_option -rw_check_on_ram 1 +set_option -update_models_cp 0 +set_option -syn_edif_array_rename 1 +set_option -Write_declared_clocks_only 1 + +# NFilter +set_option -no_sequential_opt 0 + +# sequential_optimization_options +set_option -symbolic_fsm_compiler 1 + +# Compiler Options +set_option -compiler_compatible 0 +set_option -resource_sharing 1 + +# Compiler Options +set_option -auto_infer_blackbox 0 + +#automatic place and route (vendor) options +set_option -write_apr_constraint 1 + +#set result format/file last +project -result_file "/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.edn" + +#set log file +set_option log_file "/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.srf" +impl -active "syn_results" diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/layer0.tlg.rptmap b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/layer0.tlg.rptmap new file mode 100644 index 0000000..3910cac --- /dev/null +++ b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/layer0.tlg.rptmap @@ -0,0 +1 @@ +./synwork/layer0.tlg,layer0.tlg,An incremental, partial HDL compilation log file that may allow early access to errors or other messages. diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/pll_in125_out125_out33_compiler.srr b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/pll_in125_out125_out33_compiler.srr new file mode 100644 index 0000000..b343684 --- /dev/null +++ b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/pll_in125_out125_out33_compiler.srr @@ -0,0 +1,55 @@ +Synopsys HDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Synopsys VHDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.vhd":12:7:12:28|Top entity is set to pll_in125_out125_out33. +File /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.vhd changed - recompiling +File /home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd changed - recompiling +VHDL syntax check successful! +File /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.vhd changed - recompiling +@N: CD630 :"/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.vhd":12:7:12:28|Synthesizing work.pll_in125_out125_out33.structure. +@N: CD630 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":2083:10:2083:16|Synthesizing ecp5um.ehxplll.syn_black_box. +Post processing for ecp5um.ehxplll.syn_black_box +@N: CD630 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":832:10:832:12|Synthesizing ecp5um.vlo.syn_black_box. +Post processing for ecp5um.vlo.syn_black_box +@N: CD630 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":825:10:825:12|Synthesizing ecp5um.vhi.syn_black_box. +Post processing for ecp5um.vhi.syn_black_box +Post processing for work.pll_in125_out125_out33.structure +@W: CL168 :"/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.vhd":46:4:46:17|Removing instance scuba_vhi_inst because it does not drive other instances. To preserve this instance, use the syn_noprune synthesis directive. + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 15:07:25 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +File /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/synwork/layer0.srs changed - recompiling + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 67MB peak: 68MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 15:07:26 2019 + +###########################################################] +@END + +At c_hdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 3MB peak: 4MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 15:07:26 2019 + +###########################################################] diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/pll_in125_out125_out33_compiler.srr.db b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/pll_in125_out125_out33_compiler.srr.db new file mode 100644 index 0000000000000000000000000000000000000000..ab343225f2f286c43a97ab1e792e1494bd36aabf GIT binary patch literal 8192 zcmeH~&2H2%5XZCI(jq}y5JEjbC950&QQ}R~{ZNn)rBqycq3wm!%1Ndhvxyzq&bCE+ z*`5%O!n5!~+?eb~OQo%lP`QAuIAf2;&fmX`4?g^`&kc}csd8pW;M{X+HRlZ>j^iv~ ztz(^)8a5VZ9kf;dcV)qO`Qyt9M%C87I{4UP30MM_fF)oFSOS)SC143y0+xU!U#owxgYWafRw6Ea{bPMO*w85jM_-ZbRW z(dXiq-~wlIVV+la^QF5>&f59v_tnnIx0T1(vBeUw1S|ndz!IHV+a09IX1Lu7x2u=e9v(n02VC^5$g_8j;m@zB8XY3fp9|- z37QCr4aEmQq)9=7#;&nILoC-XyAH{?rCeA;^IZbG|-Gk zG%I5ehC*C4%Y3r!j^7NuMmRS9@bFBGKmWPf{Y4meD~VCY;(j-hr!H<6Dm9BYuO{%v zYASP$noQ1DbAJKVwAoFv@f)3>k~6WbxpW{s#bnFoYYOV9iR-JH{$>(;e%MBGq2IYG z_C%__JO5C)+Nd%%rGn{y9pb%z^z?lty6yi#lHqBh+9Z?o@_Z!NK}kXAd&5J(EXB++ UJO_fOLT07mQV@fOL{GBnC$bxiU;qFB literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/pll_in125_out125_out33_compiler.srr.rptmap b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/pll_in125_out125_out33_compiler.srr.rptmap new file mode 100644 index 0000000..1ce0348 --- /dev/null +++ b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/pll_in125_out125_out33_compiler.srr.rptmap @@ -0,0 +1 @@ +./synlog/pll_in125_out125_out33_compiler.srr,pll_in125_out125_out33_compiler.srr,Compile Log diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/pll_in125_out125_out33_fpga_mapper.srr b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/pll_in125_out125_out33_fpga_mapper.srr new file mode 100644 index 0000000..2b5185d --- /dev/null +++ b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/pll_in125_out125_out33_fpga_mapper.srr @@ -0,0 +1,265 @@ +# Fri May 10 15:07:28 2019 + +Synopsys Lattice Technology Mapper, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 113MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 115MB) + + + +Starting Optimization and Mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Available hyper_sources - for debug and ip models + None Found + + +Finished RTL optimizations (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Starting factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Finished factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Starting gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Finished gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + +Finished generic timing optimizations - Pass 1 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Starting Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished generic timing optimizations - Pass 2 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished preparing to map (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished technology mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + +Pass CPU time Worst Slack Luts / Registers +------------------------------------------------------------ + +Finished technology timing optimizations and critical path resynthesis (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + +@N: FX164 |The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute. + +Finished restoring hierarchy (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + + + +@S |Clock Optimization Summary + + +#### START OF CLOCK OPTIMIZATION REPORT #####[ + +0 non-gated/non-generated clock tree(s) driving 0 clock pin(s) of sequential element(s) +0 gated/generated clock tree(s) driving 0 clock pin(s) of sequential element(s) +0 instances converted, 0 sequential instances remain driven by gated/generated clocks + + + +##### END OF CLOCK OPTIMIZATION REPORT ######] + + +Start Writing Netlists (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 106MB peak: 143MB) + +Writing Analyst data base /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/synwork/pll_in125_out125_out33_m.srm + +Finished Writing Netlist Databases (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB) + +Writing EDIF Netlist and constraint files +@N: FX1056 |Writing EDF file: /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.edn +M-2017.03L-SP1-1 +@N: BW106 |Synplicity Constraint File capacitance units using default value of 1pF + +Finished Writing EDIF Netlist and constraint files (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 144MB peak: 146MB) + +Writing Verilog Simulation files + +Finished Writing Verilog Simulation files (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 144MB peak: 146MB) + +Writing VHDL Simulation files + +Finished Writing VHDL Simulation files (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 145MB peak: 146MB) + + +Start final timing analysis (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:02s; Memory used current: 145MB peak: 146MB) + +@W: MT246 :"/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.vhd":52:4:52:12|Blackbox EHXPLLL is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) + + +##### START OF TIMING REPORT #####[ +# Timing Report written on Fri May 10 15:07:30 2019 +# + + +Top view: pll_in125_out125_out33 +Requested Frequency: 100.0 MHz +Wire load mode: top +Paths requested: 5 +Constraint File(s): /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.fdc + +@N: MT320 |This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. + +@N: MT322 |Clock constraints include only register-to-register paths associated with each individual clock. + + + +Performance Summary +******************* + + +Worst slack in design: 10.000 + +@N: MT286 |System clock period 0.000 stretches to negative invalid value -- ignoring stretching. + Requested Estimated Requested Estimated Clock Clock +Starting Clock Frequency Frequency Period Period Slack Type Group +---------------------------------------------------------------------------------------------------------------- +System 100.0 MHz NA 10.000 0.000 10.000 system system_clkgroup +================================================================================================================ +Estimated period and frequency reported as NA means no slack depends directly on the clock waveform + + + + + +Clock Relationships +******************* + +Clocks | rise to rise | fall to fall | rise to fall | fall to rise +--------------------------------------------------------------------------------------------------------- +Starting Ending | constraint slack | constraint slack | constraint slack | constraint slack +--------------------------------------------------------------------------------------------------------- +System System | 10.000 10.000 | No paths - | No paths - | No paths - +========================================================================================================= + Note: 'No paths' indicates there are no paths in the design for that pair of clock edges. + 'Diff grp' indicates that paths exist but the starting clock and ending clock are in different clock groups. + + + +Interface Information +********************* + +No IO constraint found + + + +==================================== +Detailed Report for Clock: System +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +----------------------------------------------------------------------------------- +PLLInst_0 System EHXPLLL CLKINTFB CLKFB_t 0.000 10.000 +=================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------- +PLLInst_0 System EHXPLLL CLKFB CLKFB_t 10.000 10.000 +================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.000 + + Clock delay at ending point: 0.000 (ideal) + + Estimated clock delay at ending point: 0.000 + = Required time: 10.000 + + - Propagation time: 0.000 + - Clock delay at starting point: 0.000 (ideal) + - Estimated clock delay at start point: -0.000 + = Slack (critical) : 10.000 + + Number of logic level(s): 0 + Starting point: PLLInst_0 / CLKINTFB + Ending point: PLLInst_0 / CLKFB + The start point is clocked by System [rising] + The end point is clocked by System [rising] + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +------------------------------------------------------------------------------------ +PLLInst_0 EHXPLLL CLKINTFB Out 0.000 0.000 - +CLKFB_t Net - - - - 1 +PLLInst_0 EHXPLLL CLKFB In 0.000 0.000 - +==================================================================================== + + + +##### END OF TIMING REPORT #####] + +Timing exceptions that could not be applied +None + +Finished final timing analysis (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:02s; Memory used current: 146MB peak: 146MB) + + +Finished timing report (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:02s; Memory used current: 146MB peak: 146MB) + +--------------------------------------- +Resource Usage Report +Part: lfe5um_25f-6 + +Register bits: 0 of 24288 (0%) +PIC Latch: 0 +I/O cells: 0 + + +Details: +EHXPLLL: 1 +GSR: 1 +PUR: 1 +VHI: 1 +VLO: 1 +Mapper successful! + +At Mapper Exit (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 33MB peak: 146MB) + +Process took 0h:00m:02s realtime, 0h:00m:02s cputime +# Fri May 10 15:07:30 2019 + +###########################################################] diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/pll_in125_out125_out33_fpga_mapper.srr.db b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/pll_in125_out125_out33_fpga_mapper.srr.db new file mode 100644 index 0000000000000000000000000000000000000000..d0f80ffd1df04cd4594b02884d486c3b76b65fce GIT binary patch literal 8192 zcmeH~&ube;6vtOe8pkAx+kz3H7#=>^5dE~I1P4NFS859ib!7nQT35C#G->g=4DTF}CEwf0P-M2IE$LD=V?4Ca#bAu2{l`;bd-q&8G z;ynfMJg-`QX()~g{oX9k?O?Azc2vE_Kfl&!R%Poqk3Q~j1RMcJz!7i+905nb5pVkh-TlaVXbEf>5sRxj7 zadCZBPPsN*aPgnX8Li~P?Av$q%{#HT^~ct$dw<M|x79v!r;|PjZAt19&8);v!nlr_-j82A{lFw{4(jHqb%0ds0O3r69kIp7%Am z@{>G3kRn-t!iZBQs$pbfeGVBju?D8K^f@yaz#DF2K<3A^IN)<0Og-0~3IntmG182wB2>Bx3+d=41+(VNDoG1tAyY|7yL?6QdtM zt`SU(FgpF=2<9jPn)!bpt6*hPm-Sn>>&xh}|D9#t8|=1XnPQ6tiZjuQxM>+R>ubM7 zoghaBTbYut(Kjs}rJT32B$;y2>Gr3TUpX8ce8AkC$HDGlzkArTKb`I|Rd+FyZ(;c3 z%hU0AYyqTPYm0>0S`_F!%Mwm_%SuxjVA6yFUdk2_Gip4$)&PbfB}aW*FJOdep$oDB z$jrKVM{=QF!`^dh5jP79`V0$#`|yS-LGhow|K%$yk)7@8@rzEIv?wSK-_Aa{(g}=s zg5a}^(G4c3Q@P-zp1i0az>rZ_=-txFkz#bR5v=65{O0Dy{o3W`c6Ic!)9w#mC~j=g z!|zAb*aQ#Z^Rz)P#8j;+`%p_T5UZT>8@Ar_BBeoZLL#!XEJ#UWryaPKzTF*#$bS0y znD}d36U-0==nQ=xQn#9Lnjj-BYBXSzpk8trhQN$bd`3!cLWyEgwP9b;rWg$dgR7l5 zN2P6W6!txz9PXXSG_@OHmwZmk)EXgwJEh%^!IW-IBNV8LtKvUHLuYrLYpL3TZgYQC g@m}Rtz4q8f?)Dy?<-+#e&L8v|Gj702t=uL50tQ*nKL7v# literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/pll_in125_out125_out33_fpga_mapper.szr b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/pll_in125_out125_out33_fpga_mapper.szr new file mode 100644 index 0000000000000000000000000000000000000000..353b988509af53fae2da283282395013cd2eeff0 GIT binary patch literal 6132 zcmVej?WO1+{|;q4bu*{y?M>VFfC&X6OR`9w^PTT}hopN!h>TrLh3;ve%OZ3pR-w^l zs2J1%GJhY6evQQ#Sg&wPD-0a9GXHD4|=TkNfH4Vnp@tg`qVp|BV z^ivu33(7+oCQLBHRA_lzC?i81PqTJ3zC54%@1=BLxC-&L`MJ3q&%?49bNpnmE4IOb z0Tr(nMgNseQ*ez`1~E%1hd}65jgtT`%7*3Iv0!uGK_gc>c74FM3vN{GOsW0ILPrN3 z%R^R}RIrqXj?14dWnrlb>_IBVk+Hk31YginuI&a47 zW(Q0owPnrl-(l74z35>3rGc0?8gnQTb8b2svH>(iOwL;b+3h=T~@7X@D)vvUP3IN*3IUoC{it$)!p2W(3_a$=*ugBI2 z!)-kF?NL3JA_@S84atR5GA%(UG1i@^Ic74id^pY7v}h0gGku6fIu=4T^=9nb=cdDH zyWc2)7I|S37bp-sEc%kip>bLvL`oG7nCpbpqD|5FhJ`Y9KjSdMf|e>p(;jL!2&u-g zP?iho&r2c06g?6;cCa7GbexV$gQ!gTxoZ~<^vGDIg7cw}<09s{fI~in>9ipeabciH z5i(`r@gW!mM;oz3=q2#bF>nw|?dg<5tQ$OW&ohX!tes^H8a5OU)BZheCJ@`t;xBh0 zYxneJ%u`pmHjQIwa643dAQb$Yd@#sEVHww9%5A5e7sH2mmr9Fq67zOr2omv@8smzG z=82F|$^u=a>0vvHc3MhkPzdyc`{f>gv~rs0Qnw%=$<*&pY`%$dGh8I7{)V_a(oGM z(*6DiP$SKRGD`oU%0AwWxdEG+8aE}d3)RQx0Kd0^%m`h`=iB&3BAj|~HLmWwEcNA=h9$2puK z53_5?OK4sK(#fN2`no&sbf+Zk$)I$qf6Aa2oxtnH>&xb&EP`E|qsO4ZwkNc&Zm&t8 ziD4JcaL^_OVFXZ1r9uqG5($Log=Wkkc(eiMEhimz8_xsQk`Sa?(#HV>JJM|pCPuCe zG)OTBfK$kM8bh8t94@|vN$4|<*Ifaz(V(r2mBOo+H zfGbDkN@HqnW{;-rY_V*#BGQP6_bqVOa!6W`r@d5SoOArbY28c&j<4W66@~(jv#j6E zvZ9*-{jLYgHxsT3K*f;8D1N$GKkH^i_FYDySaFGd$o+L^bB8?F_4x%>XDI^HpGPOF zGxCf)o2|OAeu03=-`2I(s?^wIV}3aR#R@Lt_U@Vad=BDmPlB!4q14rQIJ!!h0p_sw zY0;B~_Z|O+VzQRrzLlmiGQ2e55)trAB4QH=%1hn&QD9ZoqIac?_sdP^uKiVNWQ9vb%{ z>lRtorCIhJhgA`v8bw^jIar6*U{M#cvup(@VQSTRb9F)psqi2%>~yS31bI;+$V8&} zDTO*Ff_vLoLhp@&30epQ#g}F=Y&zG?=;}K}S|I};e-`79I~*qKMyqIg#vwIO+nkdV zvgQikF4HO|`o~p1q)a9u@-pMfhA2&nSn4oBFwe*5mp z-A{ZwAd#Y#vyRC?k+ts&#-EnQ2~@dPhBQIBR@E9YzF(R`PvfvXjVqpiT9s+WjFl4+}$%;!L)6!j8|`XUE_<;#~`MPQz)6g&u3G zf*xbG``qpR9cO>t_Kr(Ef3mAo{o#uO=5veJB&(|a`wX0ZxyR|3XVZ$)uhq~9pDzPU zd1H9@Fl=U^Q=L|(D z)KZo5L5y9n29q)*NE#F?6&v@x`Y|kdDtLjaIcauCZ+(OWQ%hsiz(@Eg1d`O!1tYom4u!nB@b^ZgP>p z8<|@e1I#EwPtQX-Mvm=PsepsE zug~?muP8@*{GYN9@**NtQ_odfo(J^1$E#E+ve-s{Q-H>jA}mj%&k;Y--S|1Dc8uk% z8*lq!u>kh(BI9#QeN3zIR+C$-jCmYcay~YcImX6H7Yd2o3dAgs<~t5>M`+9ds{1Ki z-SXtA{vu=Ya~U(an51~W$|-Yb?rdG=PNv_}3ag8BB3Y{oe*FF(#lhFwkj-hNE3Tc) z77|jnHmG_q_r9c9`U}8X-qtSq3hT7g#aIg~7;;}j3WQ2q&m-z_ynxw+$rO;E42Ukc zmy%-fENaG9^Cg%xoG1*$h4iD%qV`-9`VJ#s*@m~g%AwSXJG-mRa7?$_qJe0oO9U%4 zADnZe1DtygCa3pd^83rm&$oGSvUr31AuIk!;8rU%VBUSv&a&Iw+Dd?1!Pzy`R|y3f z=ekQEyS0gfl%w9LYMDZUIZeNaPktKr7OmEsv&oy$WYRrCL_#)Vni{SxGFI&84v>Rl z=WR2fIc01!-*a!wcHZI5GTs+jN+^S!=K3Oe^d6ti@9XpO5ivhf`s2o?toV`txQ)w} z`O(&XWQ!c}7}gap@x3TIN#m1`^9HeOOwAa3;cHe~`t%@T0xu5o=4<55nyPZ2eluLc><4|v)9y2Hy46wcnIM&asPq8@on)r^MHOVuWb=UKs zqRR=q?fbgX$EpOjnO6r_GUX>WXf<~@;&9bJ1EZ0T2AF!V#-ujoilby)wz2={A`X;c zmoyz?Eu&<@z*KX-ZN}jo4r6%=(O1*5JFVtWn@RMww-4`QL2F$9H25<0!!z=%)q}Uy zI`w|toI|T{h4FRu4IXgan$)i*uwFp#3VOd@jh2(u_2_>lv(XhS>ql2mpZMo)$ZsUW z+^$WdWFe1rL+W?)!C?KoGUJY)0zHX`uEK1#y`G*T7t0f0W6|e2=YG8fI2Q%u`jpU< z%s}#NMC`Dt%qeSup3< z-l1B1CtHIZ-N5YX$w%1h=G%(9xb54#MhibjfH9E5Fdbef-mTVJ+XuD&sh9Adlw6w3vIz0Ik9FtVB*@f&zQ^c%MhvpWR|;JWO1I`!+&#ou$EUw!U#PdC0)nyHe*j8P0N15cPS1H{yq$wgm_=MS~} zka566hNG~WCGB%y$B8fsb#v-`^=mI=tR@3DM>}jQPEq ztrC7Eh7=1W5M)&2$%e~wY`@fdhUp1oXkVKQ%CLfHN0bM9jve$$V; z-A?ne+3j@SM$I$7PH{ev@YB(&hdvqk}X^a$Pd<~ulPfls|#fRYKbb2^G<91?!z`gmByT|Ce63a%{s6IyR(;Hx3#gzx!)V>{NC77u?Ba{$wqbV z-{S4QzxULylNsPv^+69~rA(X)KeyGkH9yU?Ot_QA6&fsW`QKFCC7g zTHo{Q#}pa0TWV-WSw`^R?Af#K1XfLWF@H;20rsV+eusioi>X+G|G@&yfZ<>*?PD%x zQX5_(zYSriw24ujh@r_F92zKJwBP?g%gytcv`T3I*?}BxG3q}aDar~zr}tO)_7B+; z7HZXLW$)c}Z0&X}cK6I00PBqBJkWO2{@VFDK??z(bCJTGx_!S}as_hpu?3qoOMe6~ z!Q8WL`*)Z70NgeC>8mWCb_Aq_xaRNKBa5>3DnniH2TCe{>-~G)*XYR2bNDgap5M7g zS%9JMe{Y1t#Y|R+v8~C{OOT-3lMLymd0@Nq;uM(Q=Zje->GwLVoT`BNZa90}6f z>}P&=yseDp6oM5h#sM_n+s(biZ>IO_8OG~)v3Xh{w}Ag`o7~*L`>elDFpj>|vD;4r zCB~VK{ol8U_S?FcZt?H?xyNU)-3Q>ubX(*4U+j5~IrJ>CwJ$cNz1V1N@%%P|ipDCC z@6I>Ns-vb_?vGeLIl}N;hm)*rf&mzx!v3QsfkX;;;Jl^%;SfRfx#s~GkSpesM zlfm_EzZDjGeU9j-CDsO*sGtvqr4FSF)>0L}W8yE{obJf^IC-KH2W6^`LEBgvpZpB# zV}?xeU6j*v#c~)h-yXWU!i_Dfb&o1GW4~si%j(^zF1XJ%NvsmiowjWAoad5uS}l`| zxMt2K{<%?7NLT5rf5M^A^EnI|ZFIFipW^o=`1gE_`3QT$tNH?SOQj85BDcArTVdpB z@z?LcCrFEs-F}&+mWo}_>bEJkYw(EkL;ZhmEO+$GZLa#*1Bu-Yo!?jU?wTf}?OIm# zvCfewQTJ7!_Vbp4?E3=XIW=?%&r@#M{l94NmHa2Zzzhw;Cy( z1h)c1FIDyTKFoN#d+xsrnmvv7smFsOX4xPMy%^DqjjIN>nzuSXLdYzBS}qVQJB(D< zf9);S>}>P=`&ugU*m-cY5JbyXxBGewl9BdW-_Ob22NJR*#P9J?QYX&u0s-l#C91jt z3SI5(ipaLq+tb)fg>^(V4|m|$)(HL-<$cTlb`5oZaroiw;R6UV0{`0jKSpg82!nvd zuOj}_4gR}#zLF_8jj^~o*+A%DxB73po*x@70yQJjKUE! zs_=H-)>t?^6JV~b_F;lbrQfRo?Z&O$pZdIl<3CjvGljCEdvbVOyL!%_@AmQuM1U<7 z3NkgFv;Nk%-G>Qkh^knuFyT|O*ZDD87Y6UX z+}hSO4u13OTas_dZvP<6!gsv3*H^^Z-p4yR+QBu-sbQ6cQ5&}X9H2L8F*ENMW=NGh zxGffE{`bk$KFOhMcm~lh2Vi@A9BO?#q`~0Qucqxry`b7q`+G z-O*bwem#TnJ7ezWjK=$RX~3T@?>`akPRI^-@UCn5#2&vqV=^K)D6dqdEAeU6aNV+sCO z&;v+KDp0@^J(GOzcZ7-GkGF~Y#zY`*y)T=#) z1Ek$9IzVQSTtc%6FJ7FUWd9(&b*S#dbD=@X87<=#EE8MylF^D$#vKwz0Fj z2hs1{R(&7u(HpX??{hFd^Go;D=)Gqa^E&#e6aed6b}xwSN>i6H+)u2+6NI!)a< zmhK<+LGx35Fg=^T?|;-6j!R3usX*3tYYI(2qrr?&kBfJhgQj1I$rUO1&3$v*3DEQgKL*xDXO@ z%d=&(imfwzIG4G0Jf%J073BwWN1`{~f``Krs^Nta{J wY>_tId!-qqw)j}S$WL3iQGJ`s(T{)t1Rwwb2tWV=5P$##AOHafK;VZ3UKAiP82|tP literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/pll_in125_out125_out33_premap.srr b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/pll_in125_out125_out33_premap.srr new file mode 100644 index 0000000..ea5d1e9 --- /dev/null +++ b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/pll_in125_out125_out33_premap.srr @@ -0,0 +1,63 @@ +# Fri May 10 15:07:27 2019 + +Synopsys Lattice Technology Pre-mapping, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + +Reading constraint file: /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.fdc +@L: /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33_scck.rpt +Printing clock summary report in "/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33_scck.rpt" file +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 101MB peak: 103MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 101MB peak: 103MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 114MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 116MB) + +ICG Latch Removal Summary: +Number of ICG latches removed: 0 +Number of ICG latches not removed: 0 +syn_allowed_resources : blockrams=56 set on top level netlist pll_in125_out125_out33 + +Finished netlist restructuring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + + +Clock Summary +****************** + + Start Requested Requested Clock Clock Clock +Level Clock Frequency Period Type Group Load +------------------------------------------------------------------------------------- +0 - System 100.0 MHz 10.000 system system_clkgroup 0 +===================================================================================== + +Finished Pre Mapping Phase. + +Starting constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + + +Finished constraint checker preprocessing (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + +None +None + +Finished constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB) + +Pre-mapping successful! + +At Mapper Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 56MB peak: 143MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime +# Fri May 10 15:07:28 2019 + +###########################################################] diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/pll_in125_out125_out33_premap.srr.db b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/pll_in125_out125_out33_premap.srr.db new file mode 100644 index 0000000000000000000000000000000000000000..e1a8837f299ed545acca0f4cd473ad0ec3834f52 GIT binary patch literal 8192 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 R$D!vRH0s5<12uV);cq~ol6U|B literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_compiler_notes.txt b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_compiler_notes.txt new file mode 100644 index 0000000..ac6999c --- /dev/null +++ b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_compiler_notes.txt @@ -0,0 +1,10 @@ +@N|Running in 64-bit mode +@N|Running in 64-bit mode +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.vhd":12:7:12:28|Top entity is set to pll_in125_out125_out33. +@N: CD630 :"/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.vhd":12:7:12:28|Synthesizing work.pll_in125_out125_out33.structure. +@N: CD630 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":2083:10:2083:16|Synthesizing ecp5um.ehxplll.syn_black_box. +@N: CD630 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":832:10:832:12|Synthesizing ecp5um.vlo.syn_black_box. +@N: CD630 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":825:10:825:12|Synthesizing ecp5um.vhi.syn_black_box. +@N|Running in 64-bit mode + diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_compiler_runstatus.xml b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_compiler_runstatus.xml new file mode 100644 index 0000000..f51b60b --- /dev/null +++ b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_compiler_runstatus.xml @@ -0,0 +1,41 @@ + + + + + + /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/synlog/pll_in125_out125_out33_compiler.srr + Synopsys HDL Compiler + + + Completed + + + + 9 + /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_compiler_notes.txt + + + 1 + /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_compiler_warnings.txt + + + 0 + /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_compiler_errors.txt + + + - + + + 00h:00m:01s + + + - + + + 1557493646 + + + \ No newline at end of file diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_compiler_warnings.txt b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_compiler_warnings.txt new file mode 100644 index 0000000..7ae12f2 --- /dev/null +++ b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_compiler_warnings.txt @@ -0,0 +1,2 @@ +@W: CL168 :"/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.vhd":46:4:46:17|Removing instance scuba_vhi_inst because it does not drive other instances. To preserve this instance, use the syn_noprune synthesis directive. + diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_fpga_mapper_area_report.xml b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_fpga_mapper_area_report.xml new file mode 100644 index 0000000..c6fedcf --- /dev/null +++ b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_fpga_mapper_area_report.xml @@ -0,0 +1,26 @@ + + + + +/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_fpga_mapper_resourceusage.rpt +Resource Usage + + +0 + + +0 + + +0 + + +0 + + +0 + + diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_fpga_mapper_errors.txt b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_fpga_mapper_errors.txt new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_fpga_mapper_notes.txt b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_fpga_mapper_notes.txt new file mode 100644 index 0000000..ad96549 --- /dev/null +++ b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_fpga_mapper_notes.txt @@ -0,0 +1,8 @@ +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) +@N: FX164 |The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute. +@N: FX1056 |Writing EDF file: /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.edn +@N: BW106 |Synplicity Constraint File capacitance units using default value of 1pF +@N: MT320 |This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. +@N: MT322 |Clock constraints include only register-to-register paths associated with each individual clock. +@N: MT286 |System clock period 0.000 stretches to negative invalid value -- ignoring stretching. diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_fpga_mapper_opt_report.xml b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_fpga_mapper_opt_report.xml new file mode 100644 index 0000000..a39ddc1 --- /dev/null +++ b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_fpga_mapper_opt_report.xml @@ -0,0 +1,14 @@ + + + + +0 / 0 + +/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_fpga_mapper_combined_clk.rpt +START OF CLOCK OPTIMIZATION REPORT + + + diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_fpga_mapper_runstatus.xml b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_fpga_mapper_runstatus.xml new file mode 100644 index 0000000..f7bd0c8 --- /dev/null +++ b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_fpga_mapper_runstatus.xml @@ -0,0 +1,46 @@ + + + + +/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/synlog/pll_in125_out125_out33_fpga_mapper.srr +Synopsys Lattice Technology Mapper + + +Completed + + + +8 + +/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_fpga_mapper_notes.txt + + + +1 + +/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_fpga_mapper_warnings.txt + + + +0 + +/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_fpga_mapper_errors.txt + + + +0h:00m:02s + + +0h:00m:02s + + +146MB + + +1557493650 + + + diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_fpga_mapper_timing_report.xml b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_fpga_mapper_timing_report.xml new file mode 100644 index 0000000..b33a877 --- /dev/null +++ b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_fpga_mapper_timing_report.xml @@ -0,0 +1,23 @@ + + + + +/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/synlog/pll_in125_out125_out33_fpga_mapper.srr +START OF TIMING REPORT + + +Clock Name +Req Freq +Est Freq +Slack + + +System +100.0 MHz +NA +10.000 + + diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_fpga_mapper_warnings.txt b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_fpga_mapper_warnings.txt new file mode 100644 index 0000000..61d4bc9 --- /dev/null +++ b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_fpga_mapper_warnings.txt @@ -0,0 +1 @@ +@W: MT246 :"/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.vhd":52:4:52:12|Blackbox EHXPLLL is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_premap_errors.txt b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_premap_errors.txt new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_premap_notes.txt b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_premap_notes.txt new file mode 100644 index 0000000..eed8756 --- /dev/null +++ b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_premap_notes.txt @@ -0,0 +1,2 @@ +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_premap_runstatus.xml b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_premap_runstatus.xml new file mode 100644 index 0000000..503e067 --- /dev/null +++ b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_premap_runstatus.xml @@ -0,0 +1,46 @@ + + + + +/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/synlog/pll_in125_out125_out33_premap.srr +Synopsys Lattice Technology Pre-mapping + + +Completed + + + +2 + +/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_premap_notes.txt + + + +0 + +/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_premap_warnings.txt + + + +0 + +/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_premap_errors.txt + + + +0h:00m:00s + + +0h:00m:00s + + +143MB + + +1557493648 + + + diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_premap_warnings.txt b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/report/pll_in125_out125_out33_premap_warnings.txt new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/syntax_constraint_check.rpt.rptmap b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/syntax_constraint_check.rpt.rptmap new file mode 100644 index 0000000..dd09adb --- /dev/null +++ b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synlog/syntax_constraint_check.rpt.rptmap @@ -0,0 +1 @@ +./pll_in125_out125_out33_scck.rpt,syntax_constraint_check.rpt,Syntax Constraint Check Report diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/syntmp/closed.png b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/syntmp/closed.png new file mode 100644 index 0000000000000000000000000000000000000000..0d78634f322a904e7bd0c9466498c0a42777589f GIT binary patch literal 3672 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 +
    +
    +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug  4 2017
    +@N: :  | Running in 64-bit mode 
    +File /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/synwork/pll_in125_out125_out33_comp.srs changed - recompiling
    +
    +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 67MB peak: 68MB)
    +
    +Process took 0h:00m:01s realtime, 0h:00m:01s cputime
    +
    +Process completed successfully.
    +# Fri May 10 15:07:27 2019
    +
    +###########################################################]
    +
    +
    +
    +
    +# Fri May 10 15:07:27 2019
    +
    +Synopsys Lattice Technology Pre-mapping, Version maplat, Build 1796R, Built Aug  4 2017 09:36:35
    +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited.
    +Product Version M-2017.03L-SP1-1
    +
    +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB)
    +
    +Reading constraint file: /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.fdc
    +Linked File: pll_in125_out125_out33_scck.rpt
    +Printing clock  summary report in "/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33_scck.rpt" file 
    +@N:MF248 :  | Running in 64-bit mode. 
    +@N:MF666 :  | Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) 
    +
    +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 101MB peak: 103MB)
    +
    +
    +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 101MB peak: 103MB)
    +
    +
    +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 114MB)
    +
    +
    +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 116MB)
    +
    +ICG Latch Removal Summary:
    +Number of ICG latches removed:	0
    +Number of ICG latches not removed:	0
    +syn_allowed_resources : blockrams=56  set on top level netlist pll_in125_out125_out33
    +
    +Finished netlist restructuring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB)
    +
    +
    +
    +Clock Summary
    +******************
    +
    +          Start      Requested     Requested     Clock      Clock               Clock
    +Level     Clock      Frequency     Period        Type       Group               Load 
    +-------------------------------------------------------------------------------------
    +0 -       System     100.0 MHz     10.000        system     system_clkgroup     0    
    +=====================================================================================
    +
    +Finished Pre Mapping Phase.
    +
    +Starting constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB)
    +
    +
    +Finished constraint checker preprocessing (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB)
    +
    +None
    +None
    +
    +Finished constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB)
    +
    +Pre-mapping successful!
    +
    +At Mapper Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 56MB peak: 143MB)
    +
    +Process took 0h:00m:01s realtime, 0h:00m:01s cputime
    +# Fri May 10 15:07:28 2019
    +
    +###########################################################]
    +
    +
    +
    +
    +# Fri May 10 15:07:28 2019
    +
    +Synopsys Lattice Technology Mapper, Version maplat, Build 1796R, Built Aug  4 2017 09:36:35
    +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited.
    +Product Version M-2017.03L-SP1-1
    +
    +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB)
    +
    +@N:MF248 :  | Running in 64-bit mode. 
    +@N:MF666 :  | Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) 
    +
    +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB)
    +
    +
    +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB)
    +
    +
    +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 113MB)
    +
    +
    +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 115MB)
    +
    +
    +
    +Starting Optimization and Mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB)
    +
    +
    +Available hyper_sources - for debug and ip models
    +	None Found
    +
    +
    +Finished RTL optimizations (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB)
    +
    +
    +Starting factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB)
    +
    +
    +Finished factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB)
    +
    +
    +Starting gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB)
    +
    +
    +Finished gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB)
    +
    +
    +Finished generic timing optimizations - Pass 1 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB)
    +
    +
    +Starting Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB)
    +
    +
    +Finished Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB)
    +
    +
    +Finished generic timing optimizations - Pass 2 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB)
    +
    +
    +Finished preparing to map (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 143MB)
    +
    +
    +Finished technology mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB)
    +
    +Pass		 CPU time		Worst Slack		Luts / Registers
    +------------------------------------------------------------
    +
    +Finished technology timing optimizations and critical path resynthesis (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB)
    +
    +@N:FX164 :  | The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute.   
    +
    +Finished restoring hierarchy (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB)
    +
    +
    +
    +@S |Clock Optimization Summary
    +
    +
    +#### START OF CLOCK OPTIMIZATION REPORT #####[
    +
    +0 non-gated/non-generated clock tree(s) driving 0 clock pin(s) of sequential element(s)
    +0 gated/generated clock tree(s) driving 0 clock pin(s) of sequential element(s)
    +0 instances converted, 0 sequential instances remain driven by gated/generated clocks
    +
    +
    +
    +##### END OF CLOCK OPTIMIZATION REPORT ######]
    +
    +
    +Start Writing Netlists (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 106MB peak: 143MB)
    +
    +Writing Analyst data base /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/synwork/pll_in125_out125_out33_m.srm
    +
    +Finished Writing Netlist Databases (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 140MB peak: 143MB)
    +
    +Writing EDIF Netlist and constraint files
    +@N:FX1056 :  | Writing EDF file: /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/pll_in125_out125_out33.edn 
    +M-2017.03L-SP1-1
    +@N:BW106 :  | Synplicity Constraint File capacitance units using default value of 1pF  
    +
    +Finished Writing EDIF Netlist and constraint files (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 144MB peak: 146MB)
    +
    +Writing Verilog Simulation files
    +
    +Finished Writing Verilog Simulation files (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 144MB peak: 146MB)
    +
    +Writing VHDL Simulation files
    +
    +Finished Writing VHDL Simulation files (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 145MB peak: 146MB)
    +
    +
    +Start final timing analysis (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:02s; Memory used current: 145MB peak: 146MB)
    +
    +@W:MT246 : pll_in125_out125_out33.vhd(52) | Blackbox EHXPLLL is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) 
    +
    +
    +##### START OF TIMING REPORT #####[
    +# Timing Report written on Fri May 10 15:07:30 2019
    +#
    +
    +
    +Top view:               pll_in125_out125_out33
    +Requested Frequency:    100.0 MHz
    +Wire load mode:         top
    +Paths requested:        5
    +Constraint File(s):    /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.fdc
    +                       
    +@N:MT320 :  | This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. 
    +
    +@N:MT322 :  | Clock constraints include only register-to-register paths associated with each individual clock. 
    +
    +
    +
    +Performance Summary
    +*******************
    +
    +
    +Worst slack in design: 10.000
    +
    +@N:MT286 :  | System clock period 0.000 stretches to negative invalid value -- ignoring stretching. 
    +                   Requested     Estimated     Requested     Estimated                Clock      Clock          
    +Starting Clock     Frequency     Frequency     Period        Period        Slack      Type       Group          
    +----------------------------------------------------------------------------------------------------------------
    +System             100.0 MHz     NA            10.000        0.000         10.000     system     system_clkgroup
    +================================================================================================================
    +Estimated period and frequency reported as NA means no slack depends directly on the clock waveform
    +
    +
    +
    +
    +
    +Clock Relationships
    +*******************
    +
    +Clocks            |    rise  to  rise    |    fall  to  fall   |    rise  to  fall   |    fall  to  rise 
    +---------------------------------------------------------------------------------------------------------
    +Starting  Ending  |  constraint  slack   |  constraint  slack  |  constraint  slack  |  constraint  slack
    +---------------------------------------------------------------------------------------------------------
    +System    System  |  10.000      10.000  |  No paths    -      |  No paths    -      |  No paths    -    
    +=========================================================================================================
    + Note: 'No paths' indicates there are no paths in the design for that pair of clock edges.
    +       'Diff grp' indicates that paths exist but the starting clock and ending clock are in different clock groups.
    +
    +
    +
    +Interface Information 
    +*********************
    +
    +No IO constraint found
    +
    +
    +
    +====================================
    +Detailed Report for Clock: System
    +====================================
    +
    +
    +
    +Starting Points with Worst Slack
    +********************************
    +
    +              Starting                                           Arrival           
    +Instance      Reference     Type        Pin          Net         Time        Slack 
    +              Clock                                                                
    +-----------------------------------------------------------------------------------
    +PLLInst_0     System        EHXPLLL     CLKINTFB     CLKFB_t     0.000       10.000
    +===================================================================================
    +
    +
    +Ending Points with Worst Slack
    +******************************
    +
    +              Starting                                        Required           
    +Instance      Reference     Type        Pin       Net         Time         Slack 
    +              Clock                                                              
    +---------------------------------------------------------------------------------
    +PLLInst_0     System        EHXPLLL     CLKFB     CLKFB_t     10.000       10.000
    +=================================================================================
    +
    +
    +
    +Worst Path Information
    +View Worst Path in Analyst
    +***********************
    +
    +
    +Path information for path number 1: 
    +      Requested Period:                      10.000
    +    - Setup time:                            0.000
    +    + Clock delay at ending point:           0.000 (ideal)
    +    + Estimated clock delay at ending point: 0.000
    +    = Required time:                         10.000
    +
    +    - Propagation time:                      0.000
    +    - Clock delay at starting point:         0.000 (ideal)
    +    - Estimated clock delay at start point:  -0.000
    +    = Slack (critical) :                     10.000
    +
    +    Number of logic level(s):                0
    +    Starting point:                          PLLInst_0 / CLKINTFB
    +    Ending point:                            PLLInst_0 / CLKFB
    +    The start point is clocked by            System [rising]
    +    The end   point is clocked by            System [rising]
    +
    +Instance / Net                 Pin          Pin               Arrival     No. of    
    +Name               Type        Name         Dir     Delay     Time        Fan Out(s)
    +------------------------------------------------------------------------------------
    +PLLInst_0          EHXPLLL     CLKINTFB     Out     0.000     0.000       -         
    +CLKFB_t            Net         -            -       -         -           1         
    +PLLInst_0          EHXPLLL     CLKFB        In      0.000     0.000       -         
    +====================================================================================
    +
    +
    +
    +##### END OF TIMING REPORT #####]
    +
    +Timing exceptions that could not be applied
    +None
    +
    +Finished final timing analysis (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:02s; Memory used current: 146MB peak: 146MB)
    +
    +
    +Finished timing report (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:02s; Memory used current: 146MB peak: 146MB)
    +
    +---------------------------------------
    +Resource Usage Report
    +Part: lfe5um_25f-6
    +
    +Register bits: 0 of 24288 (0%)
    +PIC Latch:       0
    +I/O cells:       0
    +
    +
    +Details:
    +EHXPLLL:        1
    +GSR:            1
    +PUR:            1
    +VHI:            1
    +VLO:            1
    +Mapper successful!
    +
    +At Mapper Exit (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 33MB peak: 146MB)
    +
    +Process took 0h:00m:02s realtime, 0h:00m:02s cputime
    +# Fri May 10 15:07:30 2019
    +
    +###########################################################]
    +
    +
    diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/syntmp/pll_in125_out125_out33_toc.htm b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/syntmp/pll_in125_out125_out33_toc.htm new file mode 100644 index 0000000..0e7c50e --- /dev/null +++ b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/syntmp/pll_in125_out125_out33_toc.htm @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/syntmp/run_option.xml b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/syntmp/run_option.xml new file mode 100644 index 0000000..4eb904e --- /dev/null +++ b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/syntmp/run_option.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/syntmp/statusReport.html b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/syntmp/statusReport.html new file mode 100644 index 0000000..c558da4 --- /dev/null +++ b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/syntmp/statusReport.html @@ -0,0 +1,112 @@ + + + Project Status Summary Page + + + + + + +
    + + + + + + + + + + +
    Project Settings
    Project Name pll_in125_out125_out33 Device Name syn_results: Lattice ECP5UM : LFE5UM_25F
    Implementation Name syn_results Top Module pll_in125_out125_out33
    Pipelining 0 Retiming 0
    Resource Sharing 1 Fanout Guide 50
    Disable I/O Insertion 1 Disable Sequential Optimizations 0
    Clock Conversion 1 FSM Compiler 1

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Run Status
    Job NameStatusCPU TimeReal TimeMemoryDate/Time
    (compiler)Complete910-00m:01s-5/10/19
    3:07 PM
    (premap)Complete2000m:00s0m:00s143MB5/10/19
    3:07 PM
    (fpga_mapper)Complete8100m:02s0m:02s146MB5/10/19
    3:07 PM
    Multi-srs GeneratorComplete5/10/19
    3:07 PM
    +
    + + + + + + + + + + + + + + + + +
    Area Summary
    Register bits 0I/O cells 0
    Block RAMs +(v_ram) 0DSPs +(dsp_used) 0
    ORCA LUTs +(total_luts) 0

    + + + + + + + + +
    Timing Summary
    Clock NameReq FreqEst FreqSlack
    System100.0 MHzNA10.000
    +
    + + + + + + +
    Optimizations Summary
    Combined Clock Conversion 0 / 0

    +
    +
    + \ No newline at end of file diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synwork/.cckTransfer b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synwork/.cckTransfer new file mode 100644 index 0000000000000000000000000000000000000000..85a95944780910aa4adec3aeadb26065b2389336 GIT binary patch literal 457 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synwork/layer0.tlg b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synwork/layer0.tlg new file mode 100644 index 0000000..27d3bb9 --- /dev/null +++ b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synwork/layer0.tlg @@ -0,0 +1,9 @@ +@N: CD630 :"/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.vhd":12:7:12:28|Synthesizing work.pll_in125_out125_out33.structure. +@N: CD630 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":2083:10:2083:16|Synthesizing ecp5um.ehxplll.syn_black_box. +Post processing for ecp5um.ehxplll.syn_black_box +@N: CD630 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":832:10:832:12|Synthesizing ecp5um.vlo.syn_black_box. +Post processing for ecp5um.vlo.syn_black_box +@N: CD630 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":825:10:825:12|Synthesizing ecp5um.vhi.syn_black_box. +Post processing for ecp5um.vhi.syn_black_box +Post processing for work.pll_in125_out125_out33.structure +@W: CL168 :"/home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.vhd":46:4:46:17|Removing instance scuba_vhi_inst because it does not drive other instances. To preserve this instance, use the syn_noprune synthesis directive. diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synwork/layer0.tlg.db b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synwork/layer0.tlg.db new file mode 100644 index 0000000000000000000000000000000000000000..c899ed01a92f4d32baa9cfb169df2a2822b91acc GIT binary patch literal 8192 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 AdjJ3c literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synwork/pll_in125_out125_out33_m.srm b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synwork/pll_in125_out125_out33_m.srm new file mode 100644 index 0000000000000000000000000000000000000000..15fc0b09ae565cc350ee65162593427e15082695 GIT binary patch literal 5576 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 Wa!}v`00030{{sN#>~LuID*yoWvLmbj literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synwork/pll_in125_out125_out33_m_srm/fileinfo.srm b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synwork/pll_in125_out125_out33_m_srm/fileinfo.srm new file mode 100644 index 0000000000000000000000000000000000000000..c1e1fe7c00ee824e29c68bb928f877a82e4d44a8 GIT binary patch literal 318 zcmV-E0m1$siwFP!000001I*OHP6Htj2H<<2f~@J$ou%8Ynm!Dn!0wI$OJLU6x0lA6 zhNu@4BNrz8hshVn%yzqFAuePTeO9Bzh}LXI*1)_t18ErvtRzBZK%;bv*U-1T6K{t- zq_YnvnG9Gw!RxFck#2Ksj_mHzhjkk{GS*@eIkk)*KkjNqtA)ixthwjSH4QQvPhVo= zRXm4GW8LxhFdvebWj?~oR1kSJMADoe_62TN3(l|3L{tT?uLZZdD3lE73f{gJo{UIy zK^tnJtv=!8O*yoOT6FU{m`nFm@E-n*Cv`;WVL}3mry(gI<3jct$oug*??*_JLxf9(c2fB3jjs~doS19%4j Q0RR630A7^lMM4Jv0I2PgUH||9 literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synwork/pll_in125_out125_out33_mult.srs b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synwork/pll_in125_out125_out33_mult.srs new file mode 100644 index 0000000000000000000000000000000000000000..1303ca775c633db2ad38acf6a8e87211d46495f3 GIT binary patch literal 4807 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synwork/pll_in125_out125_out33_mult_srs/fileinfo.srs b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synwork/pll_in125_out125_out33_mult_srs/fileinfo.srs new file mode 100644 index 0000000000000000000000000000000000000000..88e21eb3c8d0908db4921211bf247ee70df68245 GIT binary patch literal 298 zcmV+_0oDE=iwFP!000001I*OHPQx$^2H-nS5f$yoysYa0?O~!Uaa%)@Mv05q+mnfL zh!7V9QZBLbAFNN7?9FB)VpY`3L$Cvku6BX)Os6kow>0X6fxpEV zOuEEE6T8#zVIgKU>+;0csUpf|h-{@i9xB|v6PT_E8d|Mo=(Jb zMH^b7ts&DCuwL3@E4uj-@!CCCyvKjzX`4s~n23SXdB_GBeJoytavxvHeS|!DB8bi@ w3UWWFW#wDx`yb*8|J1^4-D*l-Kof_x-kImW=6wJF0RR630Lt|d4P*uY01dB<761SM literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synwork/pll_in125_out125_out33_mult_srs/skeleton.srs b/gbe/cores/sgmii/pll_in125_out125_out33/syn_results/synwork/pll_in125_out125_out33_mult_srs/skeleton.srs new file mode 100644 index 0000000000000000000000000000000000000000..2fd70369aec7f64c18670f78eb82a82ffbfb7a88 GIT binary patch literal 584 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 Q0RR630OCx$t_Cdt00QcmaR2}S literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/sgmii.sbx b/gbe/cores/sgmii/sgmii.sbx new file mode 100644 index 0000000..c3bcc48 --- /dev/null +++ b/gbe/cores/sgmii/sgmii.sbx @@ -0,0 +1,3805 @@ + + + + LATTICE + LOCAL + sgmii + 1.0 + + + Diamond_Synthesis + synthesis + + ./sgmii.vhd + vhdlSource + + + + Diamond_Simulation + simulation + + ./sgmii.vhd + vhdlSource + + + + + + + + + PCSD_hdinn + PCSD_hdinn + + in + + + + PCSD.hdinn + + + + + PCSD_hdinp + PCSD_hdinp + + in + + + + PCSD.hdinp + + + + + PCSD_hdoutn + PCSD_hdoutn + + out + + + + PCSD.hdoutn + + + + + PCSD_hdoutp + PCSD_hdoutp + + out + + + + PCSD.hdoutp + + + + + pll_in125_out125_out33_CLKI + pll_in125_out125_out33_CLKI + + in + + + + pll_in125_out125_out33.CLKI + + + + + pll_in125_out125_out33_CLKOP + pll_in125_out125_out33_CLKOP + + out + + + + pll_in125_out125_out33.CLKOP + + + + + pll_in125_out125_out33_CLKOS + pll_in125_out125_out33_CLKOS + + out + + + + pll_in125_out125_out33.CLKOS + + + + + pll_in125_out125_out33_LOCK + pll_in125_out125_out33_LOCK + + out + + + + pll_in125_out125_out33.LOCK + + + + + sgmii_ecp5_hdinn + sgmii_ecp5_hdinn + + in + + + + sgmii_ecp5.hdinn + + + + + sgmii_ecp5_hdinp + sgmii_ecp5_hdinp + + in + + + + sgmii_ecp5.hdinp + + + + + sgmii_ecp5_hdoutn + sgmii_ecp5_hdoutn + + out + + + + sgmii_ecp5.hdoutn + + + + + sgmii_ecp5_hdoutp + sgmii_ecp5_hdoutp + + out + + + + sgmii_ecp5.hdoutp + + + + + + + LFE5UM-85F-8BG756C + synplify + 2019-04-24.09:28:38 AM + 2019-05-10.04:50:40 PM + 3.10.3.144 + VHDL + + false + false + false + false + false + false + false + false + false + false + false + + + + + + + + LATTICE + LOCAL + sgmii + 1.0 + + + PCSD + + Lattice Semiconductor Corporation + LEGACY + PCS + 8.2 + + + Diamond_Simulation + simulation + + ./PCSD/PCSD_softlogic.v + verilogSource + + + ./PCSD/PCSD.vhd + vhdlSource + + + + Diamond_Synthesis + synthesis + + ./PCSD/PCSD_softlogic.v + verilogSource + + + ./PCSD/PCSD.vhd + vhdlSource + + + + + + Configuration + none + ${sbp_path}/${instance}/generate_core.tcl + CONFIG + + + CreateNGD + none + ${sbp_path}/${instance}/generate_ngd.tcl + CONFIG + + + Generation + none + ${sbp_path}/${instance}/generate_core.tcl + GENERATE + + + + + + + ctc_del_s + ctc_del_s + + out + + + + ctc_ins_s + ctc_ins_s + + out + + + + ctc_orun_s + ctc_orun_s + + out + + + + ctc_urun_s + ctc_urun_s + + out + + + + hdinn + hdinn + + in + + + + true + + + + + hdinp + hdinp + + in + + + + true + + + + + hdoutn + hdoutn + + out + + + + true + + + + + hdoutp + hdoutp + + out + + + + true + + + + + lsm_status_s + lsm_status_s + + out + + + + pll_lol + pll_lol + + in + + + + pll_refclki + pll_refclki + + in + + + + rsl_disable + rsl_disable + + in + + + + rsl_rst + rsl_rst + + in + + + + rst_dual_c + rst_dual_c + + in + + + + rx_cdr_lol_s + rx_cdr_lol_s + + out + + + + rx_los_low_s + rx_los_low_s + + out + + + + rx_pcs_rst_c + rx_pcs_rst_c + + in + + + + rx_pwrup_c + rx_pwrup_c + + in + + + + rx_serdes_rst_c + rx_serdes_rst_c + + in + + + + rxrefclk + rxrefclk + + in + + + + serdes_pdb + serdes_pdb + + in + + + + serdes_rst_dual_c + serdes_rst_dual_c + + in + + + + signal_detect_c + signal_detect_c + + in + + + + tx_pclk + tx_pclk + + out + + + + tx_pcs_rst_c + tx_pcs_rst_c + + in + + + + tx_pwrup_c + tx_pwrup_c + + in + + + + tx_serdes_rst_c + tx_serdes_rst_c + + in + + + + txi_clk + txi_clk + + in + + + + rx_cv_err + rx_cv_err + + out + + 0 + 0 + + + + + rx_disp_err + rx_disp_err + + out + + 0 + 0 + + + + + rx_k + rx_k + + out + + 0 + 0 + + + + + rxdata + rxdata + + out + + 7 + 0 + + + + + tx_disp_correct + tx_disp_correct + + in + + 0 + 0 + + + + + tx_k + tx_k + + in + + 0 + 0 + + + + + txdata + txdata + + in + + 7 + 0 + + + + + xmit + xmit + + in + + 0 + 0 + + + + + + + synplify + 2019-05-10.04:50:40 PM + + false + false + false + false + false + false + false + false + false + false + LPM + PRIMARY + PRIMARY + false + false + + + + Lane0 + DCUCHANNEL + + true + false + DCUCHANNEL + 6 + + + + + + + Family + ecp5um + + + OperatingCondition + COM + + + Package + CABGA756 + + + PartName + LFE5UM-85F-8BG756C + + + PartType + LFE5UM-85F + + + SpeedGrade + 8 + + + Status + P + + + + CoreName + PCS + + + CoreRevision + 8.2 + + + CoreStatus + Demo + + + CoreType + LPM + + + Date + 04/29/2019 + + + ModuleName + PCSD + + + ParameterFileVersion + 1.0 + + + SourceFormat + vhdl + + + Time + 14:57:43 + + + VendorName + Lattice Semiconductor Corporation + + + + ;ACHARA + 0 00H + + + ;ACHARB + 0 00H + + + ;ACHARM + 0 00H + + + ;RXMCAENABLE + Disabled + + + CDRLOLACTION + Full Recalibration + + + CDRLOLRANGE + 0 + + + CDR_MAX_RATE + 1.25 + + + CDR_MULT + 10X + + + CDR_REF_RATE + 125.0000 + + + CH_MODE + Rx and Tx + + + Destination + Synplicity + + + EDIF + 1 + + + Expression + BusA(0 to 7) + + + IO + 0 + + + IO_TYPE + GbE + + + LEQ + 0 + + + LOOPBACK + Disabled + + + LOSPORT + Enabled + + + NUM_CHS + 1 + + + Order + Big Endian [MSB:LSB] + + + PPORT_RX_RDY + Disabled + + + PPORT_TX_RDY + Disabled + + + PROTOCOL + GbE + + + PWAIT_RX_RDY + 3000 + + + PWAIT_TX_RDY + 3000 + + + RCSRC + Disabled + + + REFCLK_RATE + 125.0000 + + + RSTSEQSEL + Enabled + + + RX8B10B + Enabled + + + RXCOMMAA + 1010000011 + + + RXCOMMAB + 0101111100 + + + RXCOMMAM + 1111111111 + + + RXCOUPLING + AC + + + RXCTC + Enabled + + + RXCTCBYTEN + 0 00H + + + RXCTCBYTEN1 + 0 00H + + + RXCTCBYTEN2 + 1 BCH + + + RXCTCBYTEN3 + 0 50H + + + RXCTCMATCHPATTERN + M2-S2 + + + RXDIFFTERM + 50 ohms + + + RXFIFO_ENABLE + Enabled + + + RXINVPOL + Non-invert + + + RXLDR + Off + + + RXLOSTHRESHOLD + 2 + + + RXLSM + Enabled + + + RXSC + K28P5 + + + RXWA + Barrel Shift + + + RX_DATA_WIDTH + 8/10-Bit + + + RX_FICLK_RATE + 125.0000 + + + RX_LINE_RATE + 1.2500 + + + RX_RATE_DIV + Full Rate + + + SCIPORT + Disabled + + + SOFTLOL + Disabled + + + TX8B10B + Enabled + + + TXAMPLITUDE + 1100 + + + TXDEPOST + Disabled + + + TXDEPRE + Disabled + + + TXDIFFTERM + 50 ohms + + + TXFIFO_ENABLE + Enabled + + + TXINVPOL + Non-invert + + + TXLDR + Off + + + TXPLLLOLTHRESHOLD + 0 + + + TXPLLMULT + 10X + + + TX_DATA_WIDTH + 8/10-Bit + + + TX_FICLK_RATE + 125.0000 + + + TX_LINE_RATE + 1.2500 + + + TX_MAX_RATE + 1.25 + + + TX_RATE_DIV + Full Rate + + + VHDL + 1 + + + Verilog + 0 + + + + PCSD.pp + pp + + + PCSD.sym + sym + + + PCSD.tft + tft + + + PCSD.txt + pcs_module + + + + + DCUCHANNEL + 1 + + true + false + DCUCHANNEL + + Lane0 + + + + + + + pll_in125_out125_out33 + + Lattice Semiconductor Corporation + LEGACY + PLL + 5.8 + + + Diamond_Simulation + simulation + + ./pll_in125_out125_out33/pll_in125_out125_out33.vhd + vhdlSource + + + + Diamond_Synthesis + synthesis + + ./pll_in125_out125_out33/pll_in125_out125_out33.vhd + vhdlSource + + + + + + Configuration + none + ${sbp_path}/${instance}/generate_core.tcl + CONFIG + + + CreateNGD + none + ${sbp_path}/${instance}/generate_ngd.tcl + CONFIG + + + Generation + none + ${sbp_path}/${instance}/generate_core.tcl + GENERATE + + + + + + + CLKI + CLKI + + in + + + + CLKOP + CLKOP + + out + + + + CLKOS + CLKOS + + out + + + + LOCK + LOCK + + out + + + + + + synplify + 2019-05-10.04:50:40 PM + + false + false + false + true + false + false + false + false + false + false + LPM + PRIMARY + PRIMARY + false + false + + + + + + Family + ecp5um + + + OperatingCondition + COM + + + Package + CABGA756 + + + PartName + LFE5UM-85F-8BG756C + + + PartType + LFE5UM-85F + + + SpeedGrade + 8 + + + Status + P + + + + CoreName + PLL + + + CoreRevision + 5.8 + + + CoreStatus + Demo + + + CoreType + LPM + + + Date + 05/10/2019 + + + ModuleName + pll_in125_out125_out33 + + + ParameterFileVersion + 1.0 + + + SourceFormat + vhdl + + + Time + 15:07:09 + + + VendorName + Lattice Semiconductor Corporation + + + + CLKFB_DIV + 4 + + + CLKI_DIV + 15 + + + CLKI_FREQ + 125 + + + CLKOP_ACTUAL_FREQ + 125.000000 + + + CLKOP_APHASE + 0.00 + + + CLKOP_DIV + 1 + + + CLKOP_DPHASE + 0 + + + CLKOP_FREQ + 125 + + + CLKOP_MUXA + ENABLED + + + CLKOP_TOL + 0.0 + + + CLKOP_TRIM_DELAY + 0 + + + CLKOP_TRIM_POL + Rising + + + CLKOS2_ACTUAL_FREQ + + + + CLKOS2_APHASE + 0.00 + + + CLKOS2_DIV + 1 + + + CLKOS2_DPHASE + 0 + + + CLKOS2_Enable + DISABLED + + + CLKOS2_FREQ + 100.00 + + + CLKOS2_MUXC + DISABLED + + + CLKOS2_TOL + 0.0 + + + CLKOS2_TRIM_DELAY + 0 + + + CLKOS2_TRIM_POL + Rising + + + CLKOS3_ACTUAL_FREQ + + + + CLKOS3_APHASE + 0.00 + + + CLKOS3_DIV + 1 + + + CLKOS3_DPHASE + 0 + + + CLKOS3_Enable + DISABLED + + + CLKOS3_FREQ + 100.00 + + + CLKOS3_MUXD + DISABLED + + + CLKOS3_TOL + 0.0 + + + CLKOS3_TRIM_DELAY + 0 + + + CLKOS3_TRIM_POL + Rising + + + CLKOS_ACTUAL_FREQ + 33.333333 + + + CLKOS_APHASE + 0.00 + + + CLKOS_DIV + 18 + + + CLKOS_DPHASE + 0 + + + CLKOS_Enable + ENABLED + + + CLKOS_FREQ + 33.3333333333 + + + CLKOS_MUXB + DISABLED + + + CLKOS_TOL + 0.1 + + + CLKOS_TRIM_DELAY + 0 + + + CLKOS_TRIM_POL + Rising + + + CLKSEL_ENA + DISABLED + + + DPHASE_SOURCE + STATIC + + + Destination + Synplicity + + + EDIF + 1 + + + ENABLE_CLKOP + DISABLED + + + ENABLE_CLKOS + DISABLED + + + ENABLE_CLKOS2 + DISABLED + + + ENABLE_CLKOS3 + DISABLED + + + ENABLE_HBW + DISABLED + + + Expression + BusA(0 to 7) + + + FEEDBK_PATH + INT_OS + + + FRACN_DIV + + + + FRACN_ENABLE + DISABLED + + + IO + 0 + + + IOBUF + LVDS + + + Order + Big Endian [MSB:LSB] + + + PLLRST_ENA + DISABLED + + + PLL_BW + 0.955 + + + PLL_LOCK_MODE + ENABLED + + + PLL_LOCK_STK + DISABLED + + + PLL_USE_SMI + DISABLED + + + REFERENCE + 0 + + + STDBY_ENABLE + DISABLED + + + VCO_RATE + 600.000 + + + VHDL + 1 + + + Verilog + 0 + + + + cmd_line + -w -n pll_in125_out125_out33 -lang vhdl -synth synplify -bus_exp 7 -bb -arch sa5p00m -type pll -fin 125 -bypassp -fclkos 33.3333333333 -fclkos_tol 0.1 -phase_cntl STATIC -lock -fb_mode 6 + + + + + + + + sgmii_channel_smi + + Lattice Semiconductor Corporation + LEGACY + SGMII/Gb Ethernet PCS + 4.1 + + + Diamond_Simulation + simulation + + ./sgmii_channel_smi/sgmii_channel_smi.v + verilogSource + + + ./sgmii_channel_smi/sgmii_channel_smi.vhd + vhdlSource + + + ./sgmii_channel_smi/sgmii_channel_smi_core_bb.v + verilogSource + + + ./sgmii_channel_smi/sgmii_channel_smi_pcs_bb.v + verilogSource + + + ./sgmii_channel_smi/sgmii_channel_smi.v + verilogSource + + + ./sgmii_channel_smi/sgmii_channel_smi.vhd + vhdlSource + + + ./sgmii_channel_smi/sgmii_channel_smi_core_bb.v + verilogSource + + + ./sgmii_channel_smi/sgmii_channel_smi_pcs_bb.v + verilogSource + + + + Diamond_Synthesis + synthesis + + ./sgmii_channel_smi/sgmii_channel_smi.v + verilogSource + + + ./sgmii_channel_smi/sgmii_channel_smi.vhd + vhdlSource + + + ./sgmii_channel_smi/sgmii_channel_smi_core_bb.v + verilogSource + + + ./sgmii_channel_smi/sgmii_pcs_eval/models/ecp5um/pcs_serdes/sgmii_channel_smi_pcs_softlogic.v + verilogSource + + + ./sgmii_channel_smi/sgmii_pcs_eval/models/ecp5um/pcs_serdes/sgmii_channel_smi_pcs.v + verilogSource + + + ./sgmii_channel_smi/sgmii_channel_smi_core.ngo + NGO + + + ./sgmii_channel_smi/sgmii_channel_smi.v + verilogSource + + + ./sgmii_channel_smi/sgmii_channel_smi.vhd + vhdlSource + + + ./sgmii_channel_smi/sgmii_channel_smi_core_bb.v + verilogSource + + + ./sgmii_channel_smi/sgmii_pcs_eval/models/ecp5um/pcs_serdes/sgmii_channel_smi_pcs_softlogic.v + verilogSource + + + ./sgmii_channel_smi/sgmii_pcs_eval/models/ecp5um/pcs_serdes/sgmii_channel_smi_pcs.v + verilogSource + + + ./sgmii_channel_smi/sgmii_channel_smi_core.ngo + NGO + + + + + + Configuration + none + ${sbp_path}/${instance}/generate_core.tcl + CONFIG + + + CreateNGD + none + ${sbp_path}/${instance}/generate_ngd.tcl + CONFIG + + + Generation + none + ${sbp_path}/${instance}/generate_core.tcl + GENERATE + + + NGDGeneration + none + ${sbp_path}/${instance}/generate_ngd.tcl + GENERATE + + + + + + + an_link_ok + an_link_ok + + out + + + + col + col + + out + + + + crs + crs + + out + + + + cyawstn + cyawstn + + in + + + + debug_link_timer_short + debug_link_timer_short + + in + + + + force_isolate + force_isolate + + in + + + + force_loopback + force_loopback + + in + + + + force_unidir + force_unidir + + in + + + + gbe_mode + gbe_mode + + in + + + + hdinn + hdinn + + in + + + + hdinp + hdinp + + in + + + + hdoutn + hdoutn + + out + + + + hdoutp + hdoutp + + out + + + + mr_an_complete + mr_an_complete + + out + + + + mr_an_enable + mr_an_enable + + in + + + + mr_main_reset + mr_main_reset + + in + + + + mr_page_rx + mr_page_rx + + out + + + + mr_power_down + mr_power_down + + in + + + + mr_restart_an + mr_restart_an + + in + + + + pll_lol + pll_lol + + out + + + + pll_refclki + pll_refclki + + in + + + + rst_dual_c + rst_dual_c + + in + + + + rst_n + rst_n + + in + + + + rx_cdr_lol_s + rx_cdr_lol_s + + out + + + + rx_clk_125 + rx_clk_125 + + in + + + + rx_clock_enable_sink + rx_clock_enable_sink + + in + + + + rx_clock_enable_source + rx_clock_enable_source + + out + + + + rx_dv + rx_dv + + out + + + + rx_er + rx_er + + out + + + + rx_pcs_rst_c + rx_pcs_rst_c + + in + + + + rx_serdes_rst_c + rx_serdes_rst_c + + in + + + + rxrefclk + rxrefclk + + in + + + + sci_en + sci_en + + in + + + + sci_en_dual + sci_en_dual + + in + + + + sci_int + sci_int + + out + + + + sci_rd + sci_rd + + in + + + + sci_sel + sci_sel + + in + + + + sci_sel_dual + sci_sel_dual + + in + + + + sci_wrn + sci_wrn + + in + + + + serdes_pdb + serdes_pdb + + out + + + + serdes_rst_dual_c + serdes_rst_dual_c + + out + + + + sgmii_mode + sgmii_mode + + in + + + + sli_rst + sli_rst + + in + + + + true + + + + + tx_clk_125 + tx_clk_125 + + in + + + + tx_clock_enable_sink + tx_clock_enable_sink + + in + + + + tx_clock_enable_source + tx_clock_enable_source + + out + + + + tx_en + tx_en + + in + + + + tx_er + tx_er + + in + + + + tx_pcs_rst_c + tx_pcs_rst_c + + in + + + + tx_pwrup_c + tx_pwrup_c + + out + + + + tx_serdes_rst_c + tx_serdes_rst_c + + out + + + + mr_adv_ability + mr_adv_ability + + in + + 15 + 0 + + + + + mr_lp_adv_ability + mr_lp_adv_ability + + out + + 15 + 0 + + + + + operational_rate + operational_rate + + in + + 1 + 0 + + + + + rx_d + rx_d + + out + + 7 + 0 + + + + + sci_addr + sci_addr + + in + + 5 + 0 + + + + + sci_rddata + sci_rddata + + out + + 7 + 0 + + + + + sci_wrdata + sci_wrdata + + in + + 7 + 0 + + + + + tx_d + tx_d + + in + + 7 + 0 + + + + + + + synplify + 2013-09-22.14:14:33 + 2019-05-10.04:50:40 PM + + false + false + false + false + false + false + false + false + false + IPCFG + PRIMARY + PRIMARY + false + false + + + + + Lane0 + DCUCHANNEL + + true + false + DCUCHANNEL + 5 + + + + + + + Family + sa5p00m + + + OperatingCondition + COM + + + Package + CABGA756 + + + PartName + LFE5UM-85F-8BG756C + + + PartType + LFE5UM-85F + + + SpeedGrade + 8 + + + Status + P + + + + CoreName + SGMII/Gb Ethernet PCS + + + CoreRevision + 4.1 + + + CoreStatus + Demo + + + CoreType + IPCFG + + + Date + 04/29/2019 + + + ModuleName + sgmii_channel_smi + + + ParameterFileVersion + 1.0 + + + SourceFormat + vhdl + + + Time + 14:09:14 + + + VendorName + Lattice Semiconductor Corporation + + + + CH_MODE + Rx and Tx + + + CORE_SYNP + 1 + + + Channel + CH0 + + + DCUA + DCU0 + + + EasyConnect + 1 + + + MAX_RATE + 1.250 + + + NUM_CHS + 1 + + + PROTOCOL + SGMII + + + REFCLK_RATE + 125.0000 + + + RX_CTC + 2 + + + RX_CTC_HIGH + 32 + + + RX_CTC_LOW + 16 + + + SBP + 1 + + + TX_MAX_RATE + 2.5 + + + + + DCUCHANNEL + 1 + + true + false + DCUCHANNEL + + Lane0 + + + + + + + sgmii_ecp5 + + Lattice Semiconductor Corporation + LEGACY + PCS + 8.2 + + + Diamond_Simulation + simulation + + ./sgmii_ecp5/sgmii_ecp5_softlogic.v + verilogSource + + + ./sgmii_ecp5/sgmii_ecp5.vhd + vhdlSource + + + + Diamond_Synthesis + synthesis + + ./sgmii_ecp5/sgmii_ecp5_softlogic.v + verilogSource + + + ./sgmii_ecp5/sgmii_ecp5.vhd + vhdlSource + + + + + + Configuration + none + ${sbp_path}/${instance}/generate_core.tcl + CONFIG + + + CreateNGD + none + ${sbp_path}/${instance}/generate_ngd.tcl + CONFIG + + + Generation + none + ${sbp_path}/${instance}/generate_core.tcl + GENERATE + + + + + + + ctc_del_s + ctc_del_s + + out + + + + ctc_ins_s + ctc_ins_s + + out + + + + ctc_orun_s + ctc_orun_s + + out + + + + ctc_urun_s + ctc_urun_s + + out + + + + cyawstn + cyawstn + + in + + + + hdinn + hdinn + + in + + + + true + + + + + hdinp + hdinp + + in + + + + true + + + + + hdoutn + hdoutn + + out + + + + true + + + + + hdoutp + hdoutp + + out + + + + true + + + + + lsm_status_s + lsm_status_s + + out + + + + pll_lol + pll_lol + + out + + + + pll_refclki + pll_refclki + + in + + + + rsl_disable + rsl_disable + + in + + + + rsl_rst + rsl_rst + + in + + + + rsl_rx_rdy + rsl_rx_rdy + + out + + + + rsl_tx_rdy + rsl_tx_rdy + + out + + + + rst_dual_c + rst_dual_c + + in + + + + rx_cdr_lol_s + rx_cdr_lol_s + + out + + + + rx_los_low_s + rx_los_low_s + + out + + + + rx_pcs_rst_c + rx_pcs_rst_c + + in + + + + rx_pwrup_c + rx_pwrup_c + + in + + + + rx_serdes_rst_c + rx_serdes_rst_c + + in + + + + rxrefclk + rxrefclk + + in + + + + sci_en + sci_en + + in + + + + sci_en_dual + sci_en_dual + + in + + + + sci_int + sci_int + + out + + + + sci_rd + sci_rd + + in + + + + sci_sel + sci_sel + + in + + + + sci_sel_dual + sci_sel_dual + + in + + + + sci_wrn + sci_wrn + + in + + + + serdes_pdb + serdes_pdb + + in + + + + serdes_rst_dual_c + serdes_rst_dual_c + + in + + + + signal_detect_c + signal_detect_c + + in + + + + sli_rst + sli_rst + + in + + + + true + + + + + tx_pclk + tx_pclk + + out + + + + tx_pcs_rst_c + tx_pcs_rst_c + + in + + + + tx_pwrup_c + tx_pwrup_c + + in + + + + tx_serdes_rst_c + tx_serdes_rst_c + + in + + + + txi_clk + txi_clk + + in + + + + rx_cv_err + rx_cv_err + + out + + 0 + 0 + + + + + rx_disp_err + rx_disp_err + + out + + 0 + 0 + + + + + rx_k + rx_k + + out + + 0 + 0 + + + + + rxdata + rxdata + + out + + 7 + 0 + + + + + sci_addr + sci_addr + + in + + 5 + 0 + + + + + sci_rddata + sci_rddata + + out + + 7 + 0 + + + + + sci_wrdata + sci_wrdata + + in + + 7 + 0 + + + + + tx_disp_correct + tx_disp_correct + + in + + 0 + 0 + + + + + tx_k + tx_k + + in + + 0 + 0 + + + + + txdata + txdata + + in + + 7 + 0 + + + + + xmit + xmit + + in + + 0 + 0 + + + + + + + synplify + 2019-05-10.04:50:40 PM + + false + false + false + false + false + false + false + false + false + false + LPM + PRIMARY + PRIMARY + false + false + + + + Lane0 + DCUCHANNEL + + true + false + DCUCHANNEL + 9 + + + + + + + Family + ecp5um + + + OperatingCondition + COM + + + Package + CABGA756 + + + PartName + LFE5UM-85F-8BG756C + + + PartType + LFE5UM-85F + + + SpeedGrade + 8 + + + Status + P + + + + CoreName + PCS + + + CoreRevision + 8.2 + + + CoreStatus + Demo + + + CoreType + LPM + + + Date + 05/10/2019 + + + ModuleName + sgmii_ecp5 + + + ParameterFileVersion + 1.0 + + + SourceFormat + vhdl + + + Time + 09:02:05 + + + VendorName + Lattice Semiconductor Corporation + + + + ;ACHARA + 0 00H + + + ;ACHARB + 0 00H + + + ;ACHARM + 0 00H + + + ;RXMCAENABLE + Disabled + + + CDRLOLACTION + Full Recalibration + + + CDRLOLRANGE + 0 + + + CDR_MAX_RATE + 1.25 + + + CDR_MULT + 10X + + + CDR_REF_RATE + 125.0000 + + + CH_MODE + Rx and Tx + + + Destination + Synplicity + + + EDIF + 1 + + + Expression + BusA(0 to 7) + + + IO + 0 + + + IO_TYPE + GbE + + + LEQ + 0 + + + LOOPBACK + Disabled + + + LOSPORT + Enabled + + + NUM_CHS + 1 + + + Order + Big Endian [MSB:LSB] + + + PPORT_RX_RDY + Enabled + + + PPORT_TX_RDY + Enabled + + + PROTOCOL + GbE + + + PWAIT_RX_RDY + 3000 + + + PWAIT_TX_RDY + 3000 + + + RCSRC + Disabled + + + REFCLK_RATE + 125.0000 + + + RSTSEQSEL + Enabled + + + RX8B10B + Enabled + + + RXCOMMAA + 1010000011 + + + RXCOMMAB + 0101111100 + + + RXCOMMAM + 1111111111 + + + RXCOUPLING + AC + + + RXCTC + Enabled + + + RXCTCBYTEN + 0 00H + + + RXCTCBYTEN1 + 0 00H + + + RXCTCBYTEN2 + 1 BCH + + + RXCTCBYTEN3 + 0 50H + + + RXCTCMATCHPATTERN + M2-S2 + + + RXDIFFTERM + 50 ohms + + + RXFIFO_ENABLE + Enabled + + + RXINVPOL + Non-invert + + + RXLDR + Off + + + RXLOSTHRESHOLD + 2 + + + RXLSM + Enabled + + + RXSC + K28P5 + + + RXWA + Barrel Shift + + + RX_DATA_WIDTH + 8/10-Bit + + + RX_FICLK_RATE + 125.0000 + + + RX_LINE_RATE + 1.2500 + + + RX_RATE_DIV + Full Rate + + + SCIPORT + Enabled + + + SOFTLOL + Enabled + + + TX8B10B + Enabled + + + TXAMPLITUDE + 1100 + + + TXDEPOST + Disabled + + + TXDEPRE + Disabled + + + TXDIFFTERM + 50 ohms + + + TXFIFO_ENABLE + Enabled + + + TXINVPOL + Non-invert + + + TXLDR + Off + + + TXPLLLOLTHRESHOLD + 0 + + + TXPLLMULT + 10X + + + TX_DATA_WIDTH + 8/10-Bit + + + TX_FICLK_RATE + 125.0000 + + + TX_LINE_RATE + 1.2500 + + + TX_MAX_RATE + 1.25 + + + TX_RATE_DIV + Full Rate + + + VHDL + 1 + + + Verilog + 0 + + + + sgmii_ecp5.pp + pp + + + sgmii_ecp5.sym + sym + + + sgmii_ecp5.tft + tft + + + sgmii_ecp5.txt + pcs_module + + + + + DCUCHANNEL + 1 + + true + false + DCUCHANNEL + + Lane0 + + + + + + + tsmac + + Lattice Semiconductor Corporation + LEGACY + Tri-Speed Ethernet MAC + 4.1 + + + Diamond_Simulation + simulation + + ./tsmac/tsmac_beh.v + verilogSource + + + ./tsmac/tsmac_beh.v + verilogSource + + + + Diamond_Synthesis + synthesis + + ./tsmac/tsmac_bb.v + verilogSource + + + ./tsmac/tsmac.ngo + NGO + + + ./tsmac/tsmac_bb.v + verilogSource + + + ./tsmac/tsmac.ngo + NGO + + + + + + Configuration + none + ${sbp_path}/${instance}/generate_core.tcl + CONFIG + + + CreateNGD + none + ${sbp_path}/${instance}/generate_ngd.tcl + CONFIG + + + + + + + col + col + + in + + + + cpu_if_gbit_en + cpu_if_gbit_en + + out + + + + crs + crs + + in + + + + hclk + hclk + + in + + + + hcs_n + hcs_n + + in + + + + hdataout_en_n + hdataout_en_n + + out + + + + hread_n + hread_n + + in + + + + hready_n + hready_n + + out + + + + hwrite_n + hwrite_n + + in + + + + ignore_pkt + ignore_pkt + + in + + + + reset_n + reset_n + + in + + + + rx_dv + rx_dv + + in + + + + rx_eof + rx_eof + + out + + + + rx_er + rx_er + + in + + + + rx_error + rx_error + + out + + + + rx_fifo_error + rx_fifo_error + + out + + + + rx_fifo_full + rx_fifo_full + + in + + + + rx_stat_en + rx_stat_en + + out + + + + rx_write + rx_write + + out + + + + rxmac_clk + rxmac_clk + + in + + + + rxmac_clk_en + rxmac_clk_en + + in + + + + tx_discfrm + tx_discfrm + + out + + + + tx_done + tx_done + + out + + + + tx_en + tx_en + + out + + + + tx_er + tx_er + + out + + + + tx_fifoavail + tx_fifoavail + + in + + + + tx_fifoctrl + tx_fifoctrl + + in + + + + tx_fifoempty + tx_fifoempty + + in + + + + tx_fifoeof + tx_fifoeof + + in + + + + tx_macread + tx_macread + + out + + + + tx_sndpausreq + tx_sndpausreq + + in + + + + tx_staten + tx_staten + + out + + + + txmac_clk + txmac_clk + + in + + + + txmac_clk_en + txmac_clk_en + + in + + + + haddr + haddr + + in + + 7 + 0 + + + + + hdatain + hdatain + + in + + 7 + 0 + + + + + hdataout + hdataout + + out + + 7 + 0 + + + + + rx_dbout + rx_dbout + + out + + 7 + 0 + + + + + rx_stat_vector + rx_stat_vector + + out + + 31 + 0 + + + + + rxd + rxd + + in + + 7 + 0 + + + + + tx_fifodata + tx_fifodata + + in + + 7 + 0 + + + + + tx_sndpaustim + tx_sndpaustim + + in + + 15 + 0 + + + + + tx_statvec + tx_statvec + + out + + 30 + 0 + + + + + txd + txd + + out + + 7 + 0 + + + + + + + synplify + 2013-08-08.14:14:33 + 2019-05-10.04:50:40 PM + + false + false + false + false + false + false + false + false + false + IPCFG + PRIMARY + PRIMARY + false + false + + + + + + Family + sa5p00m + + + OperatingCondition + COM + + + Package + CABGA756 + + + PartName + LFE5UM-85F-8BG756C + + + PartType + LFE5UM-85F + + + SpeedGrade + 8 + + + Status + P + + + + CoreName + Tri-Speed Ethernet MAC + + + CoreRevision + 4.1 + + + CoreStatus + Demo + + + CoreType + IPCFG + + + Date + 04/29/2019 + + + ModuleName + tsmac + + + ParameterFileVersion + 1.0 + + + SourceFormat + vhdl + + + Time + 13:44:50 + + + VendorName + Lattice Semiconductor Corporation + + + + ALDC_TOOL + 0 + + + CORE_SYNP + 1 + + + LOOPBACK + NO + + + MIIM + No + + + MODE + SGMII easy connect + + + MODS_TOOL + 1 + + + MULT_WB + NO + + + STAT_REGS + NO + + + + Logical + + + + Misc + + + + Physical + + + + Simulation + + + + Synthesis + + + + + + + + + + + PCSD_sgmii_channel_smi_pll_lol + PCSD_sgmii_channel_smi_pll_lol + PCSD_sgmii_channel_smi_pll_lol + + + pll_lol + DCU + short + + + + + + + PCSD_sgmii_channel_smi_pll_refclki + PCSD_sgmii_channel_smi_pll_refclki + PCSD_sgmii_channel_smi_pll_refclki + + + pll_refclki + DCU + short + + + + + + + PCSD_sgmii_channel_smi_serdes_pdb + PCSD_sgmii_channel_smi_serdes_pdb + PCSD_sgmii_channel_smi_serdes_pdb + + + serdes_pdb + DCU + short + + + + + + + PCSD_hdinn + PCSD_hdinn + + + sys_yes + + + + + + + PCSD_hdinp + PCSD_hdinp + + + sys_yes + + + + + + + PCSD_hdoutn + PCSD_hdoutn + + + sys_yes + + + + + + + PCSD_hdoutp + PCSD_hdoutp + + + sys_yes + + + + + + + pll_in125_out125_out33_CLKI + pll_in125_out125_out33_CLKI + + + + + pll_in125_out125_out33_CLKOP + pll_in125_out125_out33_CLKOP + + + + + pll_in125_out125_out33_CLKOS + pll_in125_out125_out33_CLKOS + + + + + pll_in125_out125_out33_LOCK + pll_in125_out125_out33_LOCK + + + + + sgmii_ecp5_hdinn + sgmii_ecp5_hdinn + + + sys_yes + + + + + + + sgmii_ecp5_hdinp + sgmii_ecp5_hdinp + + + sys_yes + + + + + + + sgmii_ecp5_hdoutn + sgmii_ecp5_hdoutn + + + sys_yes + + + + + + + sgmii_ecp5_hdoutp + sgmii_ecp5_hdoutp + + + sys_yes + + + + + + + + diff --git a/gbe/cores/sgmii/sgmii.vhd b/gbe/cores/sgmii/sgmii.vhd new file mode 100644 index 0000000..e2b5bac --- /dev/null +++ b/gbe/cores/sgmii/sgmii.vhd @@ -0,0 +1,336 @@ + + + + + + + +-- +-- Verific VHDL Description of module sgmii +-- + +library ieee ; +use ieee.std_logic_1164.all ; + +entity sgmii is + port (PCSD_hdinn: in std_logic; + PCSD_hdinp: in std_logic; + PCSD_hdoutn: out std_logic; + PCSD_hdoutp: out std_logic; + pll_in125_out125_out33_CLKI: in std_logic; + pll_in125_out125_out33_CLKOP: out std_logic; + pll_in125_out125_out33_CLKOS: out std_logic; + pll_in125_out125_out33_LOCK: out std_logic; + sgmii_ecp5_hdinn: in std_logic; + sgmii_ecp5_hdinp: in std_logic; + sgmii_ecp5_hdoutn: out std_logic; + sgmii_ecp5_hdoutp: out std_logic + ); + +end entity sgmii; -- sbp_module=true + +architecture sgmii of sgmii is + component PCSD is + port (rx_cv_err: out std_logic_vector(0 downto 0); + rx_disp_err: out std_logic_vector(0 downto 0); + rx_k: out std_logic_vector(0 downto 0); + rxdata: out std_logic_vector(7 downto 0); + tx_disp_correct: in std_logic_vector(0 downto 0); + tx_k: in std_logic_vector(0 downto 0); + txdata: in std_logic_vector(7 downto 0); + xmit: in std_logic_vector(0 downto 0); + ctc_del_s: out std_logic; + ctc_ins_s: out std_logic; + ctc_orun_s: out std_logic; + ctc_urun_s: out std_logic; + hdinn: in std_logic; + hdinp: in std_logic; + hdoutn: out std_logic; + hdoutp: out std_logic; + lsm_status_s: out std_logic; + pll_lol: in std_logic; + pll_refclki: in std_logic; + rsl_disable: in std_logic; + rsl_rst: in std_logic; + rst_dual_c: in std_logic; + rx_cdr_lol_s: out std_logic; + rx_los_low_s: out std_logic; + rx_pcs_rst_c: in std_logic; + rx_pwrup_c: in std_logic; + rx_serdes_rst_c: in std_logic; + rxrefclk: in std_logic; + serdes_pdb: in std_logic; + serdes_rst_dual_c: in std_logic; + signal_detect_c: in std_logic; + tx_pclk: out std_logic; + tx_pcs_rst_c: in std_logic; + tx_pwrup_c: in std_logic; + tx_serdes_rst_c: in std_logic; + txi_clk: in std_logic + ); + + end component PCSD; -- not_need_bbox=true + + + component pll_in125_out125_out33 is + port (CLKI: in std_logic; + CLKOP: out std_logic; + CLKOS: out std_logic; + LOCK: out std_logic + ); + + end component pll_in125_out125_out33; -- not_need_bbox=true + + + component sgmii_channel_smi is + port (mr_adv_ability: in std_logic_vector(15 downto 0); + mr_lp_adv_ability: out std_logic_vector(15 downto 0); + operational_rate: in std_logic_vector(1 downto 0); + rx_d: out std_logic_vector(7 downto 0); + sci_addr: in std_logic_vector(5 downto 0); + sci_rddata: out std_logic_vector(7 downto 0); + sci_wrdata: in std_logic_vector(7 downto 0); + tx_d: in std_logic_vector(7 downto 0); + an_link_ok: out std_logic; + col: out std_logic; + crs: out std_logic; + cyawstn: in std_logic; + debug_link_timer_short: in std_logic; + force_isolate: in std_logic; + force_loopback: in std_logic; + force_unidir: in std_logic; + gbe_mode: in std_logic; + hdinn: in std_logic; + hdinp: in std_logic; + hdoutn: out std_logic; + hdoutp: out std_logic; + mr_an_complete: out std_logic; + mr_an_enable: in std_logic; + mr_main_reset: in std_logic; + mr_page_rx: out std_logic; + mr_power_down: in std_logic; + mr_restart_an: in std_logic; + pll_lol: out std_logic; + pll_refclki: in std_logic; + rst_dual_c: in std_logic; + rst_n: in std_logic; + rx_cdr_lol_s: out std_logic; + rx_clk_125: in std_logic; + rx_clock_enable_sink: in std_logic; + rx_clock_enable_source: out std_logic; + rx_dv: out std_logic; + rx_er: out std_logic; + rx_pcs_rst_c: in std_logic; + rx_serdes_rst_c: in std_logic; + rxrefclk: in std_logic; + sci_en: in std_logic; + sci_en_dual: in std_logic; + sci_int: out std_logic; + sci_rd: in std_logic; + sci_sel: in std_logic; + sci_sel_dual: in std_logic; + sci_wrn: in std_logic; + serdes_pdb: out std_logic; + serdes_rst_dual_c: out std_logic; + sgmii_mode: in std_logic; + sli_rst: in std_logic; + tx_clk_125: in std_logic; + tx_clock_enable_sink: in std_logic; + tx_clock_enable_source: out std_logic; + tx_en: in std_logic; + tx_er: in std_logic; + tx_pcs_rst_c: in std_logic; + tx_pwrup_c: out std_logic; + tx_serdes_rst_c: out std_logic + ); + + end component sgmii_channel_smi; -- not_need_bbox=true + + + component sgmii_ecp5 is + port (rx_cv_err: out std_logic_vector(0 downto 0); + rx_disp_err: out std_logic_vector(0 downto 0); + rx_k: out std_logic_vector(0 downto 0); + rxdata: out std_logic_vector(7 downto 0); + sci_addr: in std_logic_vector(5 downto 0); + sci_rddata: out std_logic_vector(7 downto 0); + sci_wrdata: in std_logic_vector(7 downto 0); + tx_disp_correct: in std_logic_vector(0 downto 0); + tx_k: in std_logic_vector(0 downto 0); + txdata: in std_logic_vector(7 downto 0); + xmit: in std_logic_vector(0 downto 0); + ctc_del_s: out std_logic; + ctc_ins_s: out std_logic; + ctc_orun_s: out std_logic; + ctc_urun_s: out std_logic; + cyawstn: in std_logic; + hdinn: in std_logic; + hdinp: in std_logic; + hdoutn: out std_logic; + hdoutp: out std_logic; + lsm_status_s: out std_logic; + pll_lol: out std_logic; + pll_refclki: in std_logic; + rsl_disable: in std_logic; + rsl_rst: in std_logic; + rsl_rx_rdy: out std_logic; + rsl_tx_rdy: out std_logic; + rst_dual_c: in std_logic; + rx_cdr_lol_s: out std_logic; + rx_los_low_s: out std_logic; + rx_pcs_rst_c: in std_logic; + rx_pwrup_c: in std_logic; + rx_serdes_rst_c: in std_logic; + rxrefclk: in std_logic; + sci_en: in std_logic; + sci_en_dual: in std_logic; + sci_int: out std_logic; + sci_rd: in std_logic; + sci_sel: in std_logic; + sci_sel_dual: in std_logic; + sci_wrn: in std_logic; + serdes_pdb: in std_logic; + serdes_rst_dual_c: in std_logic; + signal_detect_c: in std_logic; + sli_rst: in std_logic; + tx_pclk: out std_logic; + tx_pcs_rst_c: in std_logic; + tx_pwrup_c: in std_logic; + tx_serdes_rst_c: in std_logic; + txi_clk: in std_logic + ); + + end component sgmii_ecp5; -- not_need_bbox=true + + + component tsmac is + port (haddr: in std_logic_vector(7 downto 0); + hdatain: in std_logic_vector(7 downto 0); + hdataout: out std_logic_vector(7 downto 0); + rx_dbout: out std_logic_vector(7 downto 0); + rx_stat_vector: out std_logic_vector(31 downto 0); + rxd: in std_logic_vector(7 downto 0); + tx_fifodata: in std_logic_vector(7 downto 0); + tx_sndpaustim: in std_logic_vector(15 downto 0); + tx_statvec: out std_logic_vector(30 downto 0); + txd: out std_logic_vector(7 downto 0); + col: in std_logic; + cpu_if_gbit_en: out std_logic; + crs: in std_logic; + hclk: in std_logic; + hcs_n: in std_logic; + hdataout_en_n: out std_logic; + hread_n: in std_logic; + hready_n: out std_logic; + hwrite_n: in std_logic; + ignore_pkt: in std_logic; + reset_n: in std_logic; + rx_dv: in std_logic; + rx_eof: out std_logic; + rx_er: in std_logic; + rx_error: out std_logic; + rx_fifo_error: out std_logic; + rx_fifo_full: in std_logic; + rx_stat_en: out std_logic; + rx_write: out std_logic; + rxmac_clk: in std_logic; + rxmac_clk_en: in std_logic; + tx_discfrm: out std_logic; + tx_done: out std_logic; + tx_en: out std_logic; + tx_er: out std_logic; + tx_fifoavail: in std_logic; + tx_fifoctrl: in std_logic; + tx_fifoempty: in std_logic; + tx_fifoeof: in std_logic; + tx_macread: out std_logic; + tx_sndpausreq: in std_logic; + tx_staten: out std_logic; + txmac_clk: in std_logic; + txmac_clk_en: in std_logic + ); + + end component tsmac; -- not_need_bbox=true + + + component PCSCLKDIV is + port (CLKI: in std_logic; + RST: in std_logic; + SEL2: in std_logic; + SEL1: in std_logic; + SEL0: in std_logic; + CDIV1: out std_logic; + CDIVX: out std_logic + ); + + end component PCSCLKDIV; -- not_need_bbox=true + + + signal PCSD_pll_lol,PCSD_pll_refclki,PCSD_serdes_pdb,sli_rst_wire1,sgmii_channel_smi_inst_serdes_rst_dual_c_sig, + sgmii_channel_smi_inst_tx_serdes_rst_c_sig,sgmii_channel_smi_inst_tx_pwrup_c_sig, + sli_rst_wire2,n1,pwr,pcs_clkdiv0_CDIV1_sig,pcs_clkdiv0_CDIVX_sig, + pcs_clkdiv0_CLKI_sig,pcs_clkdiv0_RST_sig,gnd : std_logic; +begin + sli_rst_wire1 <= sgmii_channel_smi_inst_serdes_rst_dual_c_sig OR sgmii_channel_smi_inst_tx_serdes_rst_c_sig OR (NOT PCSD_serdes_pdb) OR (NOT sgmii_channel_smi_inst_tx_pwrup_c_sig); + PCSD_inst: component PCSD port map (rx_cv_err=>open,rx_disp_err=>open, + rx_k=>open,rxdata=>open,tx_disp_correct=>"0",tx_k=>"0",txdata=>"00000000", + xmit=>"0",ctc_del_s=>open,ctc_ins_s=>open,ctc_orun_s=>open,ctc_urun_s=>open, + hdinn=>PCSD_hdinn,hdinp=>PCSD_hdinp,hdoutn=>PCSD_hdoutn,hdoutp=>PCSD_hdoutp, + lsm_status_s=>open,pll_lol=>PCSD_pll_lol,pll_refclki=>PCSD_pll_refclki, + rsl_disable=>'0',rsl_rst=>'0',rst_dual_c=>'0',rx_cdr_lol_s=>open, + rx_los_low_s=>open,rx_pcs_rst_c=>'0',rx_pwrup_c=>'0',rx_serdes_rst_c=>'0', + rxrefclk=>'0',serdes_pdb=>PCSD_serdes_pdb,serdes_rst_dual_c=>'0', + signal_detect_c=>'0',tx_pclk=>open,tx_pcs_rst_c=>'0',tx_pwrup_c=>'0', + tx_serdes_rst_c=>'0',txi_clk=>'0'); + pll_in125_out125_out33_inst: component pll_in125_out125_out33 port map (CLKI=>pll_in125_out125_out33_CLKI, + CLKOP=>pll_in125_out125_out33_CLKOP,CLKOS=>pll_in125_out125_out33_CLKOS, + LOCK=>pll_in125_out125_out33_LOCK); + sgmii_channel_smi_inst: component sgmii_channel_smi port map (mr_adv_ability=>"0000000000000000", + mr_lp_adv_ability=>open,operational_rate=>"00",rx_d=>open,sci_addr=>"000000", + sci_rddata=>open,sci_wrdata=>"00000000",tx_d=>"00000000",an_link_ok=>open, + col=>open,crs=>open,cyawstn=>'0',debug_link_timer_short=>'0', + force_isolate=>'0',force_loopback=>'0',force_unidir=>'0',gbe_mode=>'0', + hdinn=>'0',hdinp=>'0',hdoutn=>open,hdoutp=>open,mr_an_complete=>open, + mr_an_enable=>'0',mr_main_reset=>'0',mr_page_rx=>open,mr_power_down=>'0', + mr_restart_an=>'0',pll_lol=>PCSD_pll_lol,pll_refclki=>PCSD_pll_refclki, + rst_dual_c=>'0',rst_n=>'0',rx_cdr_lol_s=>open,rx_clk_125=>'0', + rx_clock_enable_sink=>'0',rx_clock_enable_source=>open,rx_dv=>open, + rx_er=>open,rx_pcs_rst_c=>'0',rx_serdes_rst_c=>'0',rxrefclk=>'0', + sci_en=>'0',sci_en_dual=>'0',sci_int=>open,sci_rd=>'0',sci_sel=>'0', + sci_sel_dual=>'0',sci_wrn=>'0',serdes_pdb=>PCSD_serdes_pdb,serdes_rst_dual_c=>sgmii_channel_smi_inst_serdes_rst_dual_c_sig, + sgmii_mode=>'0',sli_rst=>sli_rst_wire1,tx_clk_125=>'0',tx_clock_enable_sink=>'0', + tx_clock_enable_source=>open,tx_en=>'0',tx_er=>'0',tx_pcs_rst_c=>'0', + tx_pwrup_c=>sgmii_channel_smi_inst_tx_pwrup_c_sig,tx_serdes_rst_c=>sgmii_channel_smi_inst_tx_serdes_rst_c_sig); + sgmii_ecp5_inst: component sgmii_ecp5 port map (rx_cv_err=>open,rx_disp_err=>open, + rx_k=>open,rxdata=>open,sci_addr=>"000000",sci_rddata=>open, + sci_wrdata=>"00000000",tx_disp_correct=>"0",tx_k=>"0",txdata=>"00000000", + xmit=>"0",ctc_del_s=>open,ctc_ins_s=>open,ctc_orun_s=>open,ctc_urun_s=>open, + cyawstn=>'0',hdinn=>sgmii_ecp5_hdinn,hdinp=>sgmii_ecp5_hdinp, + hdoutn=>sgmii_ecp5_hdoutn,hdoutp=>sgmii_ecp5_hdoutp,lsm_status_s=>open, + pll_lol=>open,pll_refclki=>'0',rsl_disable=>'0',rsl_rst=>'0', + rsl_rx_rdy=>open,rsl_tx_rdy=>open,rst_dual_c=>'0',rx_cdr_lol_s=>open, + rx_los_low_s=>open,rx_pcs_rst_c=>'0',rx_pwrup_c=>'0',rx_serdes_rst_c=>'0', + rxrefclk=>'0',sci_en=>'0',sci_en_dual=>'0',sci_int=>open,sci_rd=>'0', + sci_sel=>'0',sci_sel_dual=>'0',sci_wrn=>'0',serdes_pdb=>'0', + serdes_rst_dual_c=>'0',signal_detect_c=>'0',sli_rst=>sli_rst_wire2, + tx_pclk=>open,tx_pcs_rst_c=>'0',tx_pwrup_c=>'0',tx_serdes_rst_c=>'0', + txi_clk=>'0'); + tsmac_inst: component tsmac port map (haddr=>"00000000",hdatain=>"00000000", + hdataout=>open,rx_dbout=>open,rx_stat_vector=>open,rxd=>"00000000", + tx_fifodata=>"00000000",tx_sndpaustim=>"0000000000000000",tx_statvec=>open, + txd=>open,col=>'0',cpu_if_gbit_en=>open,crs=>'0',hclk=>'0', + hcs_n=>'0',hdataout_en_n=>open,hread_n=>'0',hready_n=>open,hwrite_n=>'0', + ignore_pkt=>'0',reset_n=>'0',rx_dv=>'0',rx_eof=>open,rx_er=>'0', + rx_error=>open,rx_fifo_error=>open,rx_fifo_full=>'0',rx_stat_en=>open, + rx_write=>open,rxmac_clk=>'0',rxmac_clk_en=>'0',tx_discfrm=>open, + tx_done=>open,tx_en=>open,tx_er=>open,tx_fifoavail=>'0',tx_fifoctrl=>'0', + tx_fifoempty=>'0',tx_fifoeof=>'0',tx_macread=>open,tx_sndpausreq=>'0', + tx_staten=>open,txmac_clk=>'0',txmac_clk_en=>'0'); + pcs_clkdiv0: component PCSCLKDIV port map (CLKI=>pcs_clkdiv0_CLKI_sig,RST=>pcs_clkdiv0_RST_sig, + SEL2=>n1,SEL1=>pwr,SEL0=>n1,CDIV1=>pcs_clkdiv0_CDIV1_sig,CDIVX=>pcs_clkdiv0_CDIVX_sig); + n1 <= '0' ; + pwr <= '1' ; + gnd <= '0' ; + +end architecture sgmii; -- sbp_module=true + diff --git a/gbe/cores/sgmii/sgmii_channel_smi/pmi_fifo_dcEEan163201024102410241818p12701671.ngo b/gbe/cores/sgmii/sgmii_channel_smi/pmi_fifo_dcEEan163201024102410241818p12701671.ngo new file mode 100644 index 0000000000000000000000000000000000000000..8c109a51fe665c64c907e860f2d050db1bca47c3 GIT binary patch literal 73162 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 H;kW-6hT^8! literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/sgmii_channel_smi/pmi_fifo_dcLEan1308881212p11aac711.ngo b/gbe/cores/sgmii/sgmii_channel_smi/pmi_fifo_dcLEan1308881212p11aac711.ngo new file mode 100644 index 0000000000000000000000000000000000000000..1dacf6ad820ff8f4a7a75e5e2d97b4bdaf0fe932 GIT binary patch literal 35528 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi.cmd b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi.cmd new file mode 100644 index 0000000..8529e92 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi.cmd @@ -0,0 +1,23 @@ +PROJECT: sgmii_channel_smi +working_path: "syn_results" +module: sgmii_channel_smi +verilog_file_list: "/home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/sgmii_pcs_eval/models/ecp5um/pcs_serdes/sgmii_channel_smi_pcs_softlogic.v" +verilog_file_list: "/home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/sgmii_pcs_eval/models/ecp5um/pcs_serdes/sgmii_channel_smi_pcs.v" +vhdl_file_list: "/home/soft/lattice/diamond/3.10_x64/cae_library/synthesis/vhdl/ecp5um.vhd" +vhdl_file_list: "../sgmii_channel_smi.vhd" +resource_sharing: false +write_verilog: false +write_vhdl: true +suffix_name: edi +output_file_name: sgmii_channel_smi +write_prf: false +vlog_std_v2001: true +disable_io_insertion: true +force_gsr: false +speed_grade: 8 +frequency: 125.000 +fanout_limit: 100 +retiming: false +pipe: false +fixgatedclocks: 0 +fixgeneratedclocks: 0 diff --git a/gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi.fdc b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi.fdc new file mode 100644 index 0000000..292bc0f --- /dev/null +++ b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi.fdc @@ -0,0 +1,3 @@ +###==== Start Generation + +define_attribute {i:Lane0} {loc} {DCU0_CH0} diff --git a/gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi.lpc b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi.lpc new file mode 100644 index 0000000..34c1f1a --- /dev/null +++ b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi.lpc @@ -0,0 +1,37 @@ +[Device] +Family=sa5p00m +OperatingCondition=COM +Package=CABGA756 +PartName=LFE5UM-85F-8BG756C +PartType=LFE5UM-85F +SpeedGrade=8 +Status=P +[IP] +CoreName=SGMII/Gb Ethernet PCS +CoreRevision=4.1 +CoreStatus=Demo +CoreType=IPCFG +Date=04/29/2019 +ModuleName=sgmii_channel_smi +ParameterFileVersion=1.0 +SourceFormat=vhdl +Time=14:09:14 +VendorName=Lattice Semiconductor Corporation +[Parameters] +CH_MODE=Rx and Tx +CORE_SYNP=1 +Channel=CH0 +DCUA=DCU0 +EasyConnect=1 +MAX_RATE=1.250 +NUM_CHS=1 +PROTOCOL=SGMII +REFCLK_RATE=125.0000 +RX_CTC=2 +RX_CTC_HIGH=32 +RX_CTC_LOW=16 +SBP=1 +SOFTLOL=Enabled +TX_MAX_RATE=2.5 +[SYSTEMPNR] +LN0=DCU0_CH0 diff --git a/gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi.ngd b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi.ngd new file mode 100644 index 0000000000000000000000000000000000000000..1492a282f987dd652bbefef28f9107dc6f41ce90 GIT binary patch literal 1244034 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 DadFKVp2Gjapouh-_Oc2A1gT=P0Dt&TZ2 zc(M*#_2(e4<|r|sD6a$2uT>$zTGvEpt=mUut!oNaTMzS90)ACw(U{1?x zT`OGY;7S)uW4$j!3AnI~8tcrXPUH7X>)?^UsIeZH6E@MWxCn-KW^-ko7EpP;&NHv~ zP8j|$ShrB(qCnwn8XEDfs18Wh_Gz89gQ2q?it}My>0)WD_opZU7nV_Dt-4@9l;;&5 z`HLEB2SeBdD=vcT4vjFID=RKK?Pln#-6J|{kC1hxi-PP|4x1#Jn|Pc z*6tBu6RfxhuImwEHdoe%>>9q_vxYz2cl;+{{gx8Li}HGz3D&4&?d4!S-ND)$tWg$_ z&T0fH0T-50V|{bY2mI-xb@0ev)L2iC2%BJyqF;N5n9Y?nX{t}+_xfdnJ{^8J0f^sG zVnk6oN22+Rv_uSL^mLwsFB^mmaS>8?Zj?%{W^w3?V7x|gZ74eDx zK0`ZXu)m`pHEI9?49pR1Gm{-I0$-Mj;6oM)Gdd!OJuIdHW|D(iJ zMd^&7)ux3c>s5Ixo&4|A>LOV>e}GT2j>}N&DJvpv08PtKA`&WMz2@QmS)NXKm95&I9Mlv zb*6|?<#lF+65|6hbajHC2$lEdtni41ylSjB6tF%WqPj`{!D{Dqp=VxOe{*9!ShrH* z8l#Z)T9aZ=XC&)w0X?s``}Dj{2kSE_9=T$DCP0a6O^Kse2d;da|4dsQJYqRnZ)YaU z#`F5DkLsp-vsT)yi#+ps^pw$)!McqS6N~!wx-`X}RR@+wB0B4%__B{(!>KUEW`%i_ ziuGBXNne+ip)1zc?%H`5&nrA)IawbKNgHRKWl~+r^6Xl}H8$((o~-p}hlhf7J0)%? z>eorgG`f)ARH_3tyMZS9byiqsogJju>>!U)vX;!mY?@@q&=qUlwp}ARD?DO3S*2p~ z2HNa2)p5_RtkpK_bDpf{-SNnCVBJB9$?3ux#)lQL=M?M94%Sy3tgnLgxjc_tvc{e> zC}Dptp;#y1aAS(I!ebHZD`9EldHr96>Rt^pn=5NgRL!QDl69|#)usP@*a56RQQ~G~ z@whCU%C9LVqUhKEWo2IHr>(s5<3rs7L(l755sE#Z;ZZ8q=R*V++-NyL266M@$2)fN zpU$g;M=V&y$q}2w3k+csCr2*?sP3%@v$?WX*{riAYZ$>49diaH-hKplINDDM6tdnL zp%Oc<6FK4Rf=LSq~RYvA@DX(FX*LNH>ybLugZ(mE+ z=?4WVaR-as!cnXvm%TTY*DyTt7qz^;6P6nY)*RI>3o@H4Yqg!%S(0_Hd3`1H?Y>~$ zNr^j)@_HBMFmASs*|aLB=k-HV&+BTuliz~Z&Lv(nDREa?hOSuet6qFOXN5;BXI?)v zrH!+`gt}gxW;Rz=NG2~*%O&ex`*ql|_e#L}3nlLH73THc5KV8Z^16<*ioC9OuxN(tni5C?AP_Cu!(+s*`T@&X=Za}t+#78(>Tubch)Y}%aH^SUJq);y0=u^#NF#QiyL)L5@s@Kunr!XuWG zb+hmyk2$YIsBTM^z0Z}kQOm1j-D?e>bwDR}%=wKH4;JOs2vO{ntYqC9(rb8IKxf_V zqu8q%9=T+Vy^1+(gt$>-T^}>}H>K;~5zAS_+XB+YYxuPQ)oo`ccUDu&tE}O@vM%g> z-Y;PNof1=Xg?XJ8pxA3FufI9^^>;@NvoBb_9_3Lg*4KTMm=@qhjdh3rHc`Xyh~;Gc z-IO-Y`g)G){zx;MYhD}dyk#fyEgEwSqy_?0%!`X+2m{LJRcYTB%eJy{cn z#6AM+E=tUZ6tc#UtvPt1J5>;B7!fps?}%0h*#af4!WWxv)RVra9ezHLO$ zYr7D|=4A?4=b>NYh74UDbFLlz_H@n)k64b`1i!*2=J5Og)wc^Vn`>Sx?Yu7ZWSu{9 z%OPOhLy1IDzdjP6*nHWq^+#oN)}vE8YamLo1yLTQ%IgC3>mvbf)bcuUo{xVyjd{d! zvL2n18}Pg?$WeX3^6bi5XXo{8$-39s^u{yue*){Dlz7xE%WC2sJu=YzM_oh6&}TleXuR>*Dk_~JmzH3uU-A@eXgwac3$81 z?AKXy);9&~UzB*fs9&GRQEZ{=*HcV=Hl3Q*^Lm1R*HHnQ_Jt`bt$wtRX2^<^d7aS}d3`p* z!eltAhL85I-*KsjNB*KnXCh7TD>tx8cSaZ3ZuT>qE8^$> zfp}fzTL%M?DDi?(Sg|kqC{`Vjh<7>=?*gK_^Id;8rfyA$2d5CLvy^y|*_?aB899k zqYi5Wl69(~SL{PLbLfv$TcX!b3sI~t$0E`ywl+nHm($#+RcyPU_*#2CJYuPejnze| z{-KDliHfbqB$^gtHdofiY}ToU*PZY0kBv=d@1+DTLJB6)YX-&YQJ%azaEC7Ep%51Kz z*BUCXm&zZ}-s>c~DmJefSesH}E*3MbLf%PZd7Wtro5*Wpmg=8QGn*@G!p`dqnb*CtcDrC< zHQw8d67%zgtZxM=wiLPJtZ7FLzla*P^ZF8MqVO(6Y-xrPZv|PHj=VN)lE07lD?IWS zdB4V3USEs|8)q$f1*|WHn9ZHl&g(RvSHJ%8&oOK^?MsPFxR7;WmSXP&B$@*@6yOo?39{GzJ>)eR2iM%dDuIGiA&6Rbco!4Qe7wel% zf5%t&o9#!5w}XYOi=$N1L!JFD=Kad!s%L++-XHbNXA}FQ^<_C0kzKZWsTXa(>!Z<=07dQ<9d+Xs53sxkyDS?xk0@f;I>wV;o_v;Er4X;EE_g8uS z05!Zk!XmQs8hanJ33uQvqn6jU%LntH8>xp!{-R)IvuR~S*aYkHEY*JyVm4RSxXpU0 zXAS3KU3cTX2T-EMU&vY;rr3&*Wc}3CkFRUedS2HWRMIWOqf~iaf!S0W=0=TmdgT52 zykFrF%bC|TX<_56CEWv5zt&(jSJpC{)$n=cb@2nSxp;32NL_wlW}DzYOZE zU-@;`ukzMU-y$L{uPZT|aHrNXYODkAJB0s^Mm;?87quGx$}czI$JeenHT=qQ;?8QQ z8h+4|_0-JEaMG+LCCqRkYh#LHANVBe4-uX9|3W(Jj{zzI z^~PZ251v@A?Z7-$UT5Oo{lHqfP%toAwLIL(M-1#Xd~);8Z$43{v7f zD>?___>!{*b3}N=veSv5fT{mGEo=gDwV&$$F__I2F%$GgJaBpEAP`$q0z_N}aj zgCi9CIKYEbSV`aBU5;1js>D+@slVeRzsbFEcSY1*dmSykNia~ zi$|ypcoshmQ^S!d_C8m{U;hK~yHM@^Ks<;N*`i+jI7~4d)}T!gL)QwBj561 zr?R*vNQsZbg2FD;!^Y04=ZNr#<;>#gLAe1(TluU#E_vQo)gg#&&3(gx(E+WA+F6+VvUMe73zXzcVEL1;StM;cuqvvM4_%j zFPHaEl}t^Xs7`+j-&Z$LbR5^J-Cg}NTOS+9C=P+mtIoYf|3!;lQcHUwB8TA{8- zFRr%|017*cn?_$TizC9LwS_!rV4^k*&I+4A+yL8<470f+9v_w`14BB8y$+Dc6T0G~ zreesUN`cTV8&jR z((@XL>a63!cxR49WV6OLVgP;a=SD5BW2?jb7v7miYYUw<5|tb9?%WinhH+tLb7jRD zm$*t%A{3c4V9rAuc!vl`eeGsLqPVyQI z$kS5{|@Q7unlZ~VYqr%41SrUv8yfd3CVjnx5ZTw!P+i%R@ zIj|l^iEp!otlx(z_ES)%Gv;6|1?$;9Ig-lo&U_*3PiabgZ-wbd=h|TCKrhngd9e>1Z13Y3mS)WJ?n_&GVKn+hC%;w5^x;>J5 zda|Zlt2uf^C6|!#2QtTJirs;q_e(|}5#`-EUb=G-)iv1pB5ow2--_Wl=2?4b6JM^^+(!7S@(b_^DY8dNW;YD;u?DsS^%=5GN zxw4*a*Kk+Qyxuio{?%YTiV{Ej3t4xDDfWk7*6?CS4KH!ja5-xDk35fD<@FDP5<4Z1 zeG2jPb#LCnS>X}OS;I@x!X|2XSA-hM4Q6v?J;lyz56`?(kHj9Z9!-f~GKH+a1u3>m z^=m^=&nxb&Yc*`ZK(RlgJW9p-r;if5ROo6p zWzzTZKW%G(M=U4n%8;;$y#AS^h7SVF=E{1iUBlfyYxuJRp6m$Lj+EFPEo9x3q1a!l zUq5vmbJjSHIcvid`#Z>^RIGoQl-QHuMlG*Pb{;m7*DyR{Ia$|4AKDDhWOzy1w^e^kHXI}G+ucr<+J=-02%um9wEl!_I1krIDfVFJhQ z*XQs0rGc};BbJl(%e1hGy#9-R{mNiASJu#?)(Wy@yAP~x9_L0*%-AjSSw z{rZEWU%zu4b9Sew)R*B=O4d?eh~R=7HP$hs-@1{r!XuWG^*d%_HqKf~=-1sTW^-lj zW9Ri`Pu5#&1Mt-BSV~f=kaZtFm6GgNvq?_NtGSP<^{d%5O{GnuJW9pd#7D_}{M@Lq ze*VgxS6ZyhBbI{|euYi2HpvmZGn*^xnRZ@#c-C<8h^~Xd+L@9~Gli_p@>IHy>{s(Z zzs`DKUT1BUrP8KB9;IT19LZ*RZq!)o{%ZCRXN5;BC+mS~1FK(4p`zI;%iib8dWy|@ zk|*ni1(&hUr;elKe&Isa=BUhOvR}>iA)U2DKxaMFhj)r76>BqtlFd^B$L`k!zi#}T zv%({mleI%Y*hF6UjgWaLGr6;#p|N__@Rmq*Q?MRS$^DD^wMCFh_m%x>c8uz*ox(cn zF?i>G86Kr#-4FfRBFK$eUUx6p|9Z{}k62FDPGPwL&ujAlna5a8T=Ux7X6@<8+NO5S zP_Ujr$(Gr|yteXFDH6j{;v=)GqhGr@`n5ayb$=1LV%;D8+R86OSI5_q_qHwPtni5C zWbI}Oo5<__IWoJana!OwtFCi`o;7@Sv`;lyPo!k)Xd$aVPo)Q_e#NDeeatc0jZt-- zW8%hWsZ60_Jpldc&&$vi>wdxP6wV5dSWec08>6Ky(gg49eXgv7RbB_b7ZKO5;ox5W zI_f>&t8aj{3ndRq304_w@(@&JOZ01J1We{R2L3NEvwUtuCqFMl=l3b){rmvrvup5h`t!k!oC&)72Pi>S|n^*3}5(+~emgk6EeF zIzY+x5pLAgxF{!Wsy0eiFB!(wz+SMNYFwNaHlYSCq|LCwY_4itX!pTc-fA2%?pCPL zjglQ?AE??m4AtE_CDj;(zP4*)w4tkUMMPI)Ovt)+Mtt@!{g?VN0S@!CpaI9r&8m%2 zX=zhxbX%~R|BbVWy>Qk*NQ19@OYg$-^Us zwQ;16O8rr(#Z?8;!tCXLycRZ#vg)1bxIqPl1D2LYZO_vaZ6CbDK+|C*y&cT2KIvGtc@wk30DJ` z>*lRl_C8lN`fIh}*(rS&_5K}d^rU1*U!fYE&>IH@r5g7;)Of(5#sdyD9)udZtoXFr zI4DiYPH7gjvs3O5N}E!n>*qsn=4xOsd;_gE9>~iLxEi}LHy*V1=Bma8wi;)6*2dTU zGcQApASI6t7OK%XOQi?I^iE0mtZR6SL)FH?1|>UNK|9qbjYv49 z#+ki4^1neau@@|7ZNvk@Cguh%`OO3~x!1<|cBl09RAcMdbFYIMCsFdaT%j5#7*GR~ zf*)a@3g~Lg^yzBM%;{=8ZCY3Ph)=7HLn4$s!C*l<)p#l(ZAy)u$1S{y*9P{2V>djngQ3a=NfKP7P6M`>0f7 ztz&MibIgr(j=8bkwC*-o9JU%cN}d{GK|ANh+JLkvHLmK`YXVmTd%<$n#=4xa@wrjD z59Y>tli6I==x?jh&$BlArk}qZYV@MyY2iXOdZ8LRgryp}oL(E7O}#d@IOfLJhIKyz z@oAmX!K7p_RR`8!w&q4I$3U1uN{x}5?!J_(fxYk-wIl47w6F;^aQnji+F&+UH3r#g zggk3w{p6BzsBt-Us}x{Uu$A7d;?959YMJPpBuQrVgBT2Hdi$U+G_OkRO7VKP1xrgy(!rz zU#LdkES2KYLL6atIn>zgP-BlnjX$A=yxF8WiH~OLC56cTR8k_2BG&a-K zXxvvg z%RlD#BOBon%gJhA(sNea^k_u&VY#x7w5xomC+j)oqwol;W_>Anfjl0lybefFX{U(H z>oHlK_1KKg+8OU`o#K%z)=pVU4iH9d+JA6D@BOWgZiGiHC+o2pVH49Hw=^0%TTWbA zN7$@k+0lEg;e+#CE(hybl)SJguY-bAdWzIV(I`TgWqFR>M6qas!@Me~ub^rkKr@b);Rx7kjcUU-kYVu%1oH!9{r;0)ox~ z$=ch|uV*;=wGULm9SAI~UyPwS~@lhVUXk18ZYaW1k>< zpDXKdJFgde*6^`JC0_P0E{vR-bp4)SDu@}<)+1}jEpxG1leAg?E=ybek0 z{d$q1_v_Gzb@#xET-ERi$m=C38M>p7GhmM@&c!;!5M4Ozn@LOScnfX+I~XWbh>L|R@?%u{l>l@dn{ z?{`O8BhM>5T3hI>BLl)FSPzL%<0xkGV72o)#51oSHW~W}SkI;8Wkq?tJWHira*}nN zgY_0uXPuI^uKW>^#@aPZNz|8R)N1&<*h%7;1CRVgah}O$(=Dd33D&kDYMhd0HrKpf zZs+wP&%8eQ+~`ZddLAW56y$#dA;ASv)-S#uImwz#@a1I$x+35ZSu)F zeudEpkJc7?Uhnq{n_z7R{`>RH=E{17o!4QWd0ia-@K3Pzr{w6Oyk3!_((Wp+4?9?A zI9O+Z6<6(88fy>a^$KCs^4e<5@^g6&!=tr@&N{;{Y=X7Dj~Zv>na!1TjGfm@J@dM2 z*nJ;@^?XW>Daz|uk zEp*n$Lc%6lbJX~FfZ1GGhuf@S&%E|;x1|cK7f|x5RN-ujWT`ZmmNh)vr?bw^>8#J0 z))hA*((;O1G|5Poh3S}0<1SCN=Xr%k{-V~evva~GSaJE?_?*dXuB@YN)?uD`y)9DP z53BR^4&a0{j*rUF)iI~dl>PVNtni5CJV$&r zCv1ZC&@?r^W-^;A>nNM`5>M7&9(lV2tQS)9nxed3i@cr^k*sf}^}J>bJ+BKR*3~j1 z((-yrmXg;N=k@D-ci+HS;nCVcui=a#Y=RY+&W#Hr%;wITRadx|c-HXo3x0e6tOF@I zp(wA{pk&{e;_{m1O5T($WQ~TYv`GIaxQV4fwe~E`l33d9zNmS+DZ!*M29Az6q=sQSz3eyiP%0 z&s2HEJyY$z1n$pjdHn|ciYr|!a>d#gd7YBsMy+2nmrv`*^Q!K`ienDTE58d1evwyP z1UG&YVNTrhYS-{sPu8=JYcn6LLn(P{QC@HNQ|U!vnb++hopnb*XZ^`%UFjkstzR!P zDS5k}g~>u!c|G{@g)z9r z8+S94JL?3Sb+l(*Hw^jT6JSNT-R&=Ay(dhiVZUHqN;xgBOPiQlUYG8Zwyty$k;WP} zD0xqqh3Uv^^*8_iY2}r9w#cB(O?m2te4~{d0(CzwY>g1?_+*Gyc8a-EwsEYZD|UdV8uo7 z(gV}X=FV#8b&MzLn@bOS7p%i5`9M)#A4Fa+Re5da*YnygujjRW*1FO~L>lX*$m@f} zd0nvlrWHJ|@MvwJv$j*>@Hvc&;HB-e?0v4R6STZ~_Un0>tKSFfrIa*^@;Ws`rNdQT z0~wvQV@hZ36t%8&t;p3J9*(?D&9E>XHT*-M5C2u#rSQmK)M~h6N^ZbeaS^<zFZw$St1wSW~D!ArY&vre}2dbMW_mz=Qa1h8I4$?2Iw)`#;{IwB}pPYdgL z?G@DXdOB3Wm97=J%Ik+<@m57r{$U_cNPoUazrP zBc6HPx@ON;V7;7@v7&x0O;PE{lw|GaV7)l2vxYO)m97=JV#N)&WNAuUkag z|D>G>m>kpk|NBKOmrGyUb#ZCSwIo6(B4Tf35lKelTCNBs$wh4GL>Ad-B)V&uo+k zI^*}MuGZj87av~?p9QYh7g_XiopJbj{^f#t)TsCHdp%40^43j#V^lxVQRO!1b)4tb zs^~TMegECz^-QX%>B2P?B^$@#@9FBt#{6FY9rb%XKdjGmb<16@XM<}hs+w6cHmxt7 zx;e)%YUDrq#wJXbW(Veqli>RE!%Ew**SvfFdS1mCo_ydJ3*hx%R8t!(&sQfy_Sr@8 zdRd9r@g-hk@QO2Ce0*F-Syba>SoCq-d!OCDX0NDG@8Rb$ISs>$D;b8i2p)-mjmY*JrvVUXy18spe*p5AfpH`F|m@7_#QM=MM$aSjc_40~b4_P+(9e5o{HFLY<>-;b!&$Ptr zwIyD!E%7=VUU8<2kHp95R1rCco zuLm9e!olnnHR6Lo+Kj_0hVL!P4(t^t!SxICO532C0HYj2M?GrfKl)<$1-ElJ zhH(;HUmsKDHt2P-$MuqmUT;5pBXwl1FGRjR5>?GCiQyv_EH-O@)X0DI#c&}nJ8%r+B)I>&w4@T8|p_9{w2q zJa06^6(_;<|H&wAgI=e2Tw@ivUXeQWA$UEXY97m%=j-D^N?z>d>vthP*L49u*L4Mb zrmI`-=IbTM*T;j>bT@{-z2et5IfhZA-ox*8osx7QFjt%e*RLxmZG&E?dt4_}twILAHXS!&SkL#t#*Ck=q%#s+c+HnovgItdq z`H#LB{@vYyz2YPowX1R)^g7M+8ms7a)QYc1!Rv)o^OW3??cR^L49};Gmwav5+#kaY zTlizR;ZKO+kq)=qQ13v4ELM(Grzk*)re2Y*o1nGW?~p8!Khtn8}{nO@Pvvn zydwATKJYq@YL?5B39i=_1xn(#*LjWDu$|@O+OU1Z&vl28KGW4LcfC$PzOE>!W|nYG z&pvfO9mA?d{-ehg^%~81#Yu3(4k4v&$m_7n@tS@-7X1&rL;K(I{^7$jP)-O_)x)uk z1B+fy2Nt~;e{`<17*;Q$n!11q;U0mydFV)LI4Dl`xv@aq+%UFkR>a80-4As)>8+I* zqTd4Yd1|X+yS#o~_)2wglNz2v7qvxH^He}{W%juRRUwO}O8dNss#Y{zaq=w$!^)`9 zxcX#EP#r=veUM~ZMjc3L=mQ!yIqv$ssEgkRi>}|j4&O^%Ub~oT@W2tj*;Sg@a81K~&veix* z8k+P0SFe7Nx*?o3<@g}UoI?$2v=P4^-*NKJ<^RQZ(`%~sh2Kl4=J`Uo-^G^S?_)^K zF+uTrZAibI&iI|<=+{ddzcms4s%A8$%J5e(%`S#F+GW{*u%!}Vd)X5$yX1dVD%W5504gvyP^esw%Q z92brKHixO<5nZ45du-N?=i?&g{RW0_pe}<%Hu*cC|5Wug`(;$q6fgICIx_bBjQBk* zO|$#Jy>3>+Kl6URr=a8o`GDa&9e$t7a`Rlj7lf$c^q6Tg`<>kfeQ;V@G>`8;^G0L8 z_Jt8@I7Rj~@%%jeP7kYc%5POK*KgH2XC{oEJ{3Il!d0-?B;LsW#r{d zDaX|(ssq$;Mw#Dyh8iA-s`@nFeIqX4{mS@K)$+9K_ts5*KNNmrRMQTA+V3VZKHm(# zDuQ*gHC%~!_xNs~VZJ)J8Xn?I$H9FWtD^O0X}OQ+m5yqq>rlN-vSIs-(X>PLZ~34c zccUKRAF`CL91dL-6Nf|J!uY##uOfat8-c55ptR*W{JCFnE*wsvniqrRL>J`AzBnch z7Xlz9+&H6uA`4CN`MtP64GZ$BeeMXA*dKkcKuMn8 zNil=>}BjJYySHf{7$5r ze74;0VG%#k0ePDJG2C;;4zTpk1sT707JM^M<2FJ4<1}cB&#&TpSVXnY^*j4CXan3n z;EY`ygJzj>T)m!w?ktF=J5~LJ4GyF z>_>{|E9n=*x51%?)djV$@>_L8K=@X<&%?X%JT2(@y<_;<*TC;2s(C$K?spBw*-P>g z&+lew&W?`oeJ!rv+HCmV2KTE963<&<#$Baa;`e)Lgc{bwSTt46=@F!cceA2tzv`vU z4X?$G#?>d^j#9&IZXYn;RWWMZDx%6Mzawrair*3OSSjB?-927BAGGMl9`HMvYOr)G z8Oi^QI*hXuGvaq8JYAj_zboVVXDf`~pY!@hXSgX1ogqqGA5~59`Mo?u4Rsca zrb>HKgc??g4^EWiDH&*SQ_k>hg}0ycqG`T~>(K|DA*Ct5!-jh^(D9K{zk#|=^njUh zzni$}qwqVGYSt8u-;K=-)VNuY>`5-)mJH3V$_m3)OaJH_4(IbU*&^(u+Te{zC#9*O zB_o<*=>JHLmTMfd&p6c3YN@|zPbYewhGa`UQPpJy*VCT|&s`5sS5VFSU2?QNs>dBO ztL6}i&1qqni}5;GPYMlndB5K&0sUiWXo}}ok2UR4)jrp+Uj5|?qUo5OtyaLfn9-Qw zY}GGydC}N!wnz^J`CuQ^UVAs(qf{FGAEX*44D%@GOfO)`nDzT%z`saccNb zTFzD3R~66`X;V%+RR5Nb>(Is;8V6Dz<#6~aZ`6G~Q|gea?(iJ8_upw69L}VgFS}&y zXQ1Yt=X?sHli-&feu`{<7BR~iyVlV^;l_TOD6hw7G{r|$o#%Weq&O*Tj9Lw!W>uS2 zA8-UehiLs&%5n9{CTMFNQ;rX!Mr<5NX*z7ebYL)o4rP}B5y*fY*#iD51uRaSX z#*JqDs+s5WkZAfK>Rhk!wusWS-OTF z>q0$3H4eg<tTUV~4%c)bNdxR8MR; zf|I)!sd22PtRwjCj1V3EMwbYlSa2P7oW1YcaCjBftjm;*!HrdU-<;D}W%(R7jwt%( zoW{Xf{X?3@uZ2j!dP6r^h^jdU6&fEL!P;+?B^vw1oP)}ZW{AF!M_*+{W1^RbsL`^N zriu3SB6$C@2&Sqh)2`n>zqQ;5zj3Ph!7BHA2B__yH!vDc2enfoCW0GJ$6BbTjKPhV z1ZVfn2;alP`Wh9Q;^V7)oS~YhxEa5QOjIkH_M7OLh88j!`&H*TID}~I7gwzs4+|?z z`K>zIjo_+d;^iY$ZNT+A;Ii3k;P+~(`MEq}8;``8*m zOm2f#{*q-;9R8^Yt<+)Stt>SjC0d1y{j)=ji$khDMRd>%{Q6+Iu_fMA^ZMH-Uk_u~ zQqAv3Jw2I9ZZ$4J<9lIp;h`u~(7*J`GeTn~#up9sRMYrtSpU+ZNz}a@O7tzVBdIKL zfJLZ~MN_5viPy$VK{N)b2CGcWXeMxbhX{udO@mAvjQaL+l%^B)bF17YRoxeJ<8|TL zJ(93Fn^GGg$4YH3i<5nIMrN(Wdd@9W&5Zhb=(pZ2Sn*&ht71aPAP5T-&by=K6 zp^4eEaam9_wyDORr_x3<@rv`9#wA(NI9^|gQR4u;ueNz;M8@A?1GUvFgodGH7-YVS7pWFb(lkO%?%%4yy6;Q<8w-bXdK$t zMyT;wM>JiPTG69Aqir}|ZOqAy*F{u0<#2>u6o(_`fS*4jscKosbvW*!V>X7v>nOE( zmyEQrN|+rMqIR5;xSC=dJ{P0eXT-%}ElTpuk)A_)Hd>Bm;Nv<>KCHC3XzcJ`5%fgN zXcZjd9KEqt*QXs;$6SZk6-ylk>KekX!}Xs|!A?CAl-d&MRT{H%F*nR{#No|pvaidC z!<)mDywx$Qz{YAsa0WAs4yVT5GWyDcwkD}*Ul*W8mE%6Yb|OTLH>XA8n7s|$i>iPo?r1n*QtNNtHZ`A>1FCX<8S!*_$DLNxV_RmzP4>q<93c{+HYbUylodU8dsmV z80FM~^uETgDtBc>X*x#_@YW2y%luN+5)e15z=Jw|ya#@5O8rH0RFE`Y4dPhonH-I0 zc?F@H)fmUH?5!Dg2>90wUl+)(4yvYje$}^bsE|cdr8)<1jAun-zdcbd9yJ>K)oX?w zl%)E~_^pmp3AOJW$dIb89Tvp{l1vnDgnRMl-gc0*7f@x_+F0)=Bege^v7rn zF6?)gAZIM|y#}`v1f!-YO?aV5a%o;Q#q(?55TeHKl;-iBeG|sfZ^au|JX_`OE2`TYJPcRP0JaXqE}8Y_?IUKn?7aO1fb`or_v ztHkf#alhXaLX^C(+;0uqjCmR#cf8Vmd&Nc59jX2H`X7GxmU7HDc|XqLP6(-ewcnZE zcs04A-@vR^_`QKrJBP~rHVwykRfCMxe4B>h@1EZS;9iZ$ns38-e!q>gFnZk+RZa2n zO<9BrS(JDNUsNla=l6iP(LBC5glNq7o-E-&N>hG^{xe*@lnB&48Fs_?&P$$r9X4wy zwQJtkbT1K3i26_74$AsZNT&hasUdX~&x$@>n_&DIE9w$w<3U+2$T^_?EgzMJJOGKJ zu^V)!Vsf4qQh(7_-idX!^0a3q%B{?Z@%K-hkrUB)_5BmiBA;R9BNt&M zh1Iu9jWc5E&~6l}Zp4x}{g zw|Cz4>;CMM`(={P?**59atr+4NU426taQQia?I~HZ~6Vch6T@=mMj1|92)p>NG6Eo z2;)O^*L!@m-adO4Bz8X?i?lg{2mvfrl-P6W4~Vh?h~!x_qhDEOW}7er4CA$ z`^E6;As$1&v#x-H1>OTl$z#RMl*g7w+M$2jr|@L zCmcv=+V9bx-+e3btzY)(Ecl&IsebWtzbBRWt;+cQ-WuR1G&r7@rD@==Md6E!XNjYu z+`JOMC&gLx`>o1|#(vL3{@$u29lN^v#4%}VT9y`#{T`jACcdb~e7*eLw^IJ@baazoWC_%^RObM@3`5mjtQlyn@k8Jf9V&rejQnrc)C` zBZLE~a?0eY54`)l+GA4dtA&g}S728>NnPj9>X$qUnOPz6I9IN0)(iCuS$z ztfqgWG*%xxIW*N|^sS^gxNk&$3z2z2TD8bsVI*IKo6F*&>8kXo^-srW+M)WleB2pG z-CT+TDP21p;awIRQRXmEw}TQk4oV%HDJNQIam=#cm2lrHEPm(UZ}`f>5Y52h z`5A7I#H=P&XR#<_l5(@MC>lFdZsth23PdjmQB%fq81aZk%7{|cg&~*d!D}Pq;cx+^ z28PNVF2%U>R>(B2X{qIp*}A+xX6w`XYelr&W2kPEYnDrVc4Rk=BR2>X_PhA%d@g?z(3CRfnWDLrzs4-ms+xJXfDv8E!>!W4D0^0(%fY6tJlGOmFD@? z^!m7cp#3HgU>*GDpycSf3?)WIR8xErtVWzgSr#Qn)jIglylCtfmo1w5 zie~&`(Tzixa%SB>Dnm`{GD=f^haMM~^PHhaAS3;k>H~Ev!)^rk8hzjd_)Sx)3ge1i z7rOJxddGLgr0IL(UN@_$f0`0Ehs9wCf7>ms4(>Tr*H4<(qcfFg9BRtnXGPOhC2md= zsx#V#BRIKxkeWhzU+oZKX&x*YdU(2m!-jnlXT#w=lsY+B?r@Ko-{H9UfN6;l*{o z428pcDRpYL++lmj@9^&-zr!yOmk%RHd9M7@qU2r$Ze)qW_7IDHhJSZ8cKC3fn!d=G zaupoz9i^r(EmclCJT~MyJiJnrUbl3y`X+QCrA`l*JA4(M7vcH}&y}y1Fl;YU;?aS8d`EckY9O(!NT|+~tKhI#l$sC9sB+rjF&@K1V-*;l+kB;3?>s;$Tn8x|OL4oK zFG_QWL~jMV8d16;A`S-yD0x7d8(ETv-i>a&-cd71F3ttb;xMryLrts2bp?mL5v7CF zuI%vmxXZAAC5Nj<-}XBkK1eC6Smv;K4`imBhs|n6@EoqiNYh#nhq#QB98pjQFJ*`- zSoASOMWXRY(-x(swVDlPl?o24!0`Bx+E+6?F5o&mvQm`3eBZby;qW0!jdjW$?hmS- z!~Gne!{$8-zMDy!|Ajmpt`A=3aDUYx*!DZz&k>CszLh0ZXS50qhdYD=sdCz3#LL6O zDvhNJH|jGQ4j-n}g&}oH6K|}4RO&W5QwNqG;Pdw(uC@aR>9ad*ta&K z$|+;R-^oaD4u3P#Wq^TVPB)hAcIq-Xe3Vk-0jd<;*;&4qOOFlBxVon9rmadg^EPe4wE|tsoA~MQ^DbX5yVq7YG3VemFMuS za0Q3gP5Npn94?~N<>_*VCq(sgDLm0P4*}6t1#vhk?00xWkdkjkxZ&bZJ$=%Ag6oEd z(6_;1NP!EQs5vA@l*!=Gh zB^um3yfjY9gVXBZ-bkYvPKvVVcX)Y0GHcz0)s^ zhQkb{uCdA-HvR5r*z|h|!}Ft*c+L`r7sn{sr=SjA>JU}1=yQmQL}Q1~<*E66>4^#s z`$nnx;+Wc3I~*K#^YG|OQMzL3ZD+yZ5=vc%tScQ$H_P}LZiYzo7zV(wt{@IqrYRXV z4KIn(%`)P~U92^477>jdK8=ETvR+ zmpt6Y&#-x$5{8>wlvwOW=@S@*4z$$4OBptA)0H7A;)1dqeLP6bn_EV!!0^C4H9wJ8 z<&?w01B2pla4*d7{)-nSU&0SrJL~~Ce1cM`fMF;QnwL9FjpxJV=z#;|OZetx7(K^< zq5cw}IT)frn??=MmZLJ17!u?rOJ(Y$9u*oNJhG~bQ_agmqG_VZi=u?ejmFg{POu1v z5RETR4T%#Dq%`gKSkLc%mHaMSeDCM*`y{1q%$EDTrNr+oC4T3_@43iI_UnXc;4k90 zc?mN1NMo(U?=Ans?=9kk7Z%BL!EJt--=i?5VmXBmRubmo)KLM#ft1F69hdKZ(F%N1 zXYQyjuRcYodF6gvj*R;Fwj2@n@ohOAen%mKwcn;foCf}sk&Io0dGzo+H_z`E6|!i? zB*hoiigptmQSzK1p>m@czDMGsT|vqjzehx<8Ea*HwBO!Q*Ke;%e)l-@f;#wJMycD% z{Wjkl^!aVRC*bqjoJL<<7!tmB;3k?)#BWP)%&LQoHNRg}sM_bQ_H;boqa>}d-wPc= zCdKRpJ^jX}+i zpt~F8JgNC^5IrR#3_p$p+V0SY^TwoPV~ntqX_s03oRT5zDw^`-|ETy>A>#jdG1~_| zaUguOr|*O1w`<|`2pE3N(){JiPMrcPD=4MVlujqlq$yD=SE!nw36p)JV@Al9191mI z&`rj*aZ0`(SI6{>C7cj7Ka*zB1gCvd0Ge*P0;plByP!~=DYs!`$=8e2yf&`N>EL|c z>1xdPHPznM*AW<7NvZoVE0!9okKitQtigGVeIZZDmn_qo=4TPFPrJlEz$jA_RLAs; zC2_5;xjq8Ti^Akfd1`(kFB(VT)1dgQ*|`$2nm9Fo5LNpsV^v4HQCM|USrk&0dPlNB zciZ&0<8W9zcm6%Cqzpx?6;%CHYDrx8Aw}^ zMOpc%Gmth*H1@kAv{os{S(n^8hQ7+1a(oc=j6DvdH05{Dj6heA&%?N}Iq>`4zk4}nh8v0{dZx{ftjpBxj;yj)BFyP$n-bth-~?Ekj=P$ zXGYI{9e$sq)G`4nO>7BZSvI#Qe%Hh)QJ3+>YwfQ$Vm8p7yZ9d+x3h2>DZ$sWE%3>^c=W{!0r9(co)S-I#qUn=JHud;uLr5+ zSXa{>nfx2dZId_U*l+SLMR=2P97O67xt1{*RZjUGVaFtYMLh?@92q zpeTH+uywa1e21jrHz0p>DM@P_&zGUTQ8A@yzt{WxR^r?I+)0z*w~10Ockz1$Jl!4@zo%mh=R_ud zhs7v)e@6WN6MmO~Hjh`&<8G$$y6b&@Z_iT88EMr%kMA96YB}B2*zW@&Y8j?|cz&0{ z+dtK=KELDR)bhOEm;DyKc&^0vu-m5|48P5kdOcbm&v%39yrB5KD@)1wdGUK!l#=&` z#V@|UPA-Cb_M5|abzO#==f?9qwD0b)X|v&bON3hP%8JH*?@dFC8qM&1EJQ75rbT1E z323>Z(v;t-ej)K&6;4-(=i?@B`6u{oq138ix!;B?B`(j1-v*4xlVjqyzCekouHST+ z5?8o(5{k{~W#3ioZ7t@ru%=P;s9L8L~jp&&PuHW~g`ZX?S ziqG$*A!>OksM_bobK~~HYnq@S@H(^mrJ}4UVwV}<|^|9Zy7tfXW9(&5M5%|qfYHb(4 zx5X(j-Sztp+|P9Vz89gym9F1s;QlJt@6GUgRg9Y_`J0##qL$m@rp;!(F|$A|@8~uw z=Ir;%G_|~kCh0gZe&g`=j3pZTy$bu@?D`!666UM45!1`YE2>(79x!LLv$x;!I{0m; z)TdDs&vHiFay!<+H@SXS;2d_eG^^$2knb_`*6l)+e9Ykni9;JjP=#qFJ5-NtwyaQ+ zj%w{tJ+_JJjHVr`f6GUW(%NBiae#0jr7NN%uJ#;WQOV(R)@zT$VF#tYDwI1+Vr0EJ zFC$bk?sqsh<9E0<#_mV+>fm0?+H=uz31m}=c9@KFLBmixoGV-_I9wE=)~&;8U+wTp z&*79}>6k=SD?NtqEIxb*9ClLb+ibZ*q=7xRC=PGP`yE~z_Bm`pvLzP;x#2EDb(Uva zEczYZV7kKZ@LJt+nN`(3^6?lhh!YN^bnOsXAyGQDlEXf;-|Y>DFH&lKy4>NEJlXSu z;xGzNUX)&i(r38q;5g>k+hXeAK8EwrqA9K$eHBhKjEWo1L(TB2H1EvQwEDMvJcqXx zs3jg%Iy)@74ySdAQXj*$_l|l74qu|w&s`YeW&`_{m^hpf@i}bWGVXKOx)q}ImW(>M z&*3d-5#L6DR{HXAMuZFc7@|6(Rfy7CLxcmVa@yfF9>ZCc9NuE>`z0LaDfK(3?32g- z?nv`lgzQ@#arkM>=dk5tf0VWkEMg5+cG;gH&Shu`#l+L#Z z2U7bgheJ>8a#1i)_e|IwLQlKP`3c5errJ#c#+Y1zZ}~cmtL&B-`#czEds4=;*3GfV zi^jQyu9e$Eq;|r`g=OCnp%(0FG-bvAsca=$BpgVUS5}6P$alS3=6hiJiCu3~SIb_Z z+RgIiR@P&zyu%$yzD|>UXVeVMt(!&3-b#0vFYXpt)Uw`)rU&dhv#_U|qwICdiv4F$ z*(@qnMqKG-*3`1ND|zMRu>;>908g({?UoXEf~WPE7}2<2bbsZibTu%E1$WCX()7B-Pc8E~&0n>cf(>)<-MI__nrjZ)KTemKV);&)T zqK|fnsC~7kYdufXD|x!A|K%ZgdV^~J8Y=g+6Fl9M7f*k6{G86TDEW{M3t#Nri}vrN zno#EHuP(dpd3q>It!G-QKIY`b-i$8!KaL^fo2afbp2nsL2U7cLPf^d)$&qqTzSm4| zn%igwJguf$d<|JTMzo%n=NCjWr;&)gs;sOdt`AYNC9V$Vc~b9-!A>knKAnVijm(JF zEl#ukmV6DO0eU<6h!J)VHAMdiuP9B&;L@O#2klvrz;?|OO|`E+-rtEX{F>V7^Y zJ_=Cl!nE2~bNbZdRH(%1o7Mk$6rKuHdt{f`n-3O`hGZH_*1EaPcrNj|+Cqr}f?bvPfVWf-UGl&0g%%cq&TuNAxQdHN+ttuMz^eay-8 zw7Qa~MBlGg!_$XUJH#p=}Ae1+DN59b_7*@+S7l$*n7WH?45k#^7r6rE!7U|5_`D6L_KF^JYARdduqnId`pX)@5WwR zlv-abvgr48T~@SiaY}9pPtBIvS9|*0ysQb|5N z5vJr8X>~Xsr?-&Ptr-^mo^WrPF4)c3Oa3WHtxts2zS`5L9;f#zaq9Woz=PoFW2!x+ z3#SJ$4lHsxwT1kg9!FgMSWt)ad3p?-9?Y`n_tX{=ty`QDKcPNe{3}l*mPTZL8nMJF zou5kHoH>X zz8Je6(tX|Se6lYt5Duj3)0{r`V(;B9vFAG{EbiBO0X%(5wg0lp$A~wh`W8RqX-UAx zscnk_B?_jgl26GU(XVetOFZfM3D>ys>9(gtAx$`t+L!ami@gsj#a?K@yJO(#GpZd` z9(!$@1oeYN#?zbrF`{j+03|omhx2iI1#Q?QsM?^~?~UbeW<~2(>?Jpk5)Pz3+S3=F zr}w*X@~z8%x@O3x@bo#=T7_~>|BdKJhq!TVo5cN`b}mwK(~vrx&r^#-t^bX%=<|eK zMeClYO&x06xv2Klp8n&--iMVqC4Zw4@bn+59a|oIZM%i_!$OABfBkEtwthiMZenp$ zCH4}HLBdWf`aHG%HzQj2JZ+LE97yfUoIFn-RN^!=K7JTHeL=Msbm6oPoSw5xuqg=Li#28IEptks3-8S zlRC6J+|7QZNNxKlNo(B-IrVaV97ye}t(+b2`YlGMcSYstQy%IMD@CfEf`*rz)wXSg z3_01&o^4?DVSH<^zhG{=8mqfkv+5|GmE_5JSV^;JdO%y*rXX6ktR!Cx6Aq;IRaUBw z4almYDiSDNHI!WOe>E6E=k@rSYNut(J#8D(>jX1$pHMn-Tlz=pa5&GCS|PM;8&Yj> z@u(TL?S!~!-ST8#8o|hIseP5FVP9MS15en!;Pv&DXB`JC-%#zWc)6ASmhXaB8*b_J zZo6)~BCLPM07vmz!3D3j{`%0al_YMb#;&S4O6#7LYeIwrseP4|5!K#>$vMSRJXH09 z7jof^j%$UdZ>ct(FZVPfM#%@|VryIfJT8N~i#iJz@#dJO%0Q5O5GZEEr2TquOFnAB zXI`}KdAcq@ZB|e`RrO7~A=f)y!PB;(#%tl}JF1->E%!7gN{P{N84+d_C~-kd(&$V_ zzsnxS^Ef5WN577VO8d2^#0AP{LA369N=B&dOh@gjI1PU%ES`qH1uCUaJKkMzV{f|? zjtarkI;u?wC+YUKv$Oh{ev?Kci~5ZQ{Oy0+m@L11V_q0XYdaq$w~C10(?gW($f~Az zev|*r5-McTbd!3sLEFfpXv#0CHz1&Lqw(!M>P-naglKwfN_K{+?evh+l;0{OkhyW9 zDiSaE`>(9)ck`va)rF()srLFVevb-La+|C$#DyjGdvM0@kzt;$*zYI|Io^rLa{>MP zH)x8_ZxHP}DyZ7$(|+|Zb0nPWa_m7eR0c(U@<0jM~1{{de*`dw3{jyzJR|?WkHMd01p=>c6LI_F`)x-L zM}Pc4wKog@tvAkfY$s6X=&ean{kN4|a&nkUax_dq?yHix z;EnypBlj&t(T#dP+^VALT*)SC`SJs*^WN|70A>Pydahi}OJLN2*-_5_%yd-P!g&Ml?l{ z>3@*sFVC3%hjBf+8~ST8C#yKo-PZO|#83a@5bvkEs_l~i&jU>V6J!|nGxR^rYTkza zXKAwQT>78qDREv}=zoD)&Ud(TrMa5c`&kxEqtzF9Z6BmX(@od&%!hHK`RK2;q@1>) z>-#7onhs@M-^U@*v?V=9eWE0l=N#5LB0edIrs-?apJqj4`cH%YXKAIm^b@0l)b@E^ zG^T$6qWB9X>9KC`4Icejq0-#%7X61$Irk{g|A}g`NGhZMiOF`R|COQ0^o!{KameAh z2uNxxGDSoG2K>#-{TmAUYgLo`HCg^;8m6C0`{~!lHE%=T!PYY&$^9FV?H5Lc{!Inc z5>%bx<-Vr%NsL85{jWlzG5v9AG+0TRmNuYi6$?gV8@j$5l%&dW?yIkF+ioa`#`G_? zsI4YzG#~v`S~RAwNY}qANR9q(a^UaM6WF~1KOd#Gbz1Z2kIz!u_d!+8qdy@| zZRN@7KW|=eeG)Y)mF-xM-aFlR|{%8_lB+6H?AcKO&k(|GTVcOn-8LV9RJ; z?!%mDOdq6SQ8cEXEfS2Xk4OLV2*Ivsocogl1k*;N!H$>v_8+1D^FGh?0sY^ow#g}@ zpX=%P>Gz8HazA%Klpo2O3p_rksy{@38Fa z(uWn%n7)dp1B;?D{b?4#mel9wKFo>6^cCqoj%ZB33H9}jDb1rlB}=d?8q>c5<@%+K zhBH2oes!0T|0HX}xo?%`{vmHIn-2QFQ*CFl3w=XTr%~=$aGRbnU6?zLxtZKQ-tp5P z2vY8TBqG|eSo<{SH=A(bSsnDFdsF6Q6Fedx*yg#!*FeI9`r0W|Tmij#U zLxQ3)eMNdmQ8cFCjQUQ{nn!d^G5!e0m==F8V$Mcjr_@O(Jz$JAAA1hp9KOK zxoh75iIP=c?pXA(qR8~m4Cn{e%*cOcfhltC|10aKe-<*+qdzk4JLAipZSjL{ocp69 ze){KNod@2A{<+v{0dIZ2pR>@GS#Iv17e_6ob4%zSt9!_!e`T6-XR1!~R(+b*ndkxfpS=y zs0TSs?qeb4&HFhlQGE2VDAEska_(bNQzcFAV+!_GeK|~SinpOZ1zT+>$@HfNC=t(_ zC2$Vc^%K`PsxwMQel(dy6SA7tWd+f6(-XK}kLDZAM?aR9a`VEdSm*wPxM-aF*A^%@ z(Gtze{mUap^UCA(vy{>B5@_tZ%b1SFR;SLqklEZO?5RM`L7KSOq+6`?~VL+ zcXGd~P)dJH&wUnx{zg>$u~SArhb#EL+@FIUpM!Nh)1Odeik$ls^M3l196$Z}$l=JgGQRv?q@YBByGd*}4`nMOz&Ve`6Ux2pEjtc#|R4oQ{N$#TvK3?w6LGPl` zM)OAg2}Ps%=ugZ`Igh?9E#-V)&HM91QclxPBrJk0qxtCH>S|11k-jY^<(PhZgmSkR zl;+W&ou%A@sAx?8x;W+TQj#i1gC@lTo0VSVsc?ZeP`4mc3jNl_lZONP##D>D8%k3? z_h^h!@_@f6s_z~*&>su?p)U^lp)W4-dkS=xsCiHy&dbnTTK5+rYCQSP!3P%;^RSAkm}Q-dC(i;M)N^$w4|K2k-QD2 zn69^lm_3ddat|0KEs*{)Vh8ncQ=40s8GxS=y~KU>W+`5r)Um-w82T-CMcU0e-$VWavw>c)$bJc!d3b*xTl0eg{R6ahr0N1+rYCRD5}M4S zOzsN$DoZpE`r8qs`JlfOl5!0Fjx@oFXdd*{1<^d{?`DnWgT5v$8beor-;0aJ(DMPx z6)dHB(C5b~_r9xX=(EqxQtkuCltZTfG3cxA{q8D2-;|t9`-x&Hg4!>53q2t?4z1q_~l>08q`*Eh@TAgo2_kB=fHqddc&dwJF`VZKe zi!I#;xgR6?v08M3H@qkBw2;-RU&=E5E1e-K`#tEzyea2{{&hz7)i%@%opRskj#m46 z(7%mIIc-U2`gc*O&l}#?g+*iN3h?(q(HQ#6X!ClldC=!U`@z*X)9)$}OsjoSjs}hW zW5fFwPrmdNpl?Rb)&NkF>Fqu8=B-c}9H@QM48zks*S?v<@HF)H&13vG-CMbDLj3kD zhF-MzZ@P!tcPjFJx^LS5me*T6ytnTX(wG@~`>qbzuOPQ|rnm1FpxN&5-oAT=X3KS2 zcX&^ukv;OJQ#n!<5Hwsg7do16G!HsVNI7joy|D{cMDw5*Ezz_keT=1@b1Mr zKriIl4@9?Tu*J|1EHFHVeo&VGrhBVBoYpT5{r7Ay+5{UB-7gu#eE{X7gQhkGX35(wf7FO=o{YAaM3*I2NsOxgMLs}$}#kX z01{4%=0b-d(LCsVEu;CM9~=>lp)0`sLZUJBSJCD}l;lCT@l;&OjgNFg%7nD8}#@`rs)4jiC<->o=zv=qCjE zZwwum;8f^v-?R_S>n#KQ#Eiylpbx{=Yf*td9CzgY4g2XnXdh7^`v#LpZl>RdVezY| z>X?#+T>C&rG!Ocqn9+RD2fO<+^an!JJ|ryrdeBb@isnJ*3vML~Ihd1UFmwg@#EfVR z{k1H$57U~P>2tOUQu}aMz-*vT!`2&lfj%8u3*Ahg5!Ua=LMQm3<5tx6)jiD>RS13uf&s>^&6ELS~&4a!$ zP3`!q1Rtd_^tmWEBWyGpbnzd{^miZG`YS-+ikw3LpfuAHS^Wx6GrT9$43DAPafZjx zt1bQ;L%%*kNetlz`VFX8Z87wTQQnWCFW@>2^gEHiz-*x3<&gbmQJ|**9V3p(^m{V; zg%{`qAN0lO)I?TwOeyqaS~L&39XFZ}dbK6x71EjV&_SmG`qtzO%$7rM$}ldT z)0-XM;!JOeF}%5G9ksVc`ELxp4bZ>I2=rW#l3(W~({q?IibYw-wdX1MRoL8V+1`Qs zY!9{sdZ$D7+hKwJBDUUf1o}%^vR4;XA9&DpM>pxtDuv$ca6v!xmYC6e&|9NYj-h{x zj&2K!rlBXliBNkkD4K?z{Mv$6l=?LE*-i7{wg{`1K|1hF4 zn@nGetu;Y`{t>p`!|`+v>bT$fc17fr`&^1A}HuThdJ z$Iz4C!Qh&L(Rjd0{uClu5sjhas!)3&EgD1r!J_u}<3{7*J-I$k?H^d8ai%N4A4WuD z=xb1Jt=2r~?-i*1BUfYS?*|B`)xJ8@ukMoR-GV;g=s8~kdXSvcta9k;%G$4CfsQL{ z$zP%Z9aq+pKfBOzWi9!WBhb~AwLnIoe_y2J?|Ff~K2OQtTB<2B~SKR-3LDCzoJvWF_B;zo%|(B?cbV$rs>I_(W&1>RR?;|e@3US z3mc80+Z3Yq?}MUg=yo6ittc8p|J|bY^?9Qi=)c9O{fCTb3|#^K(GiWIe-NVfpJGb$ zpnsU9_Mg+DG4!A8+S0m4QCy<^Kb+2k1L9a~|)%`yW0#}L_@<_+|YT?=IQ5a=C$&tglUckGtdm>GJ< z?g0CdW1x5J5h43y?5F#nW6vVlp9WRGc+l-l(&&7PMbl_|<1C@!qUlVxH!2XCZ#2$y zd!qosgp`{XM#c8#A%Ydr82V-rfD4JHq1&5U1Y1U9=ys1d!JKFe9e`m`G=~0hfM8T< z9`sL8-yRXs82YEEZ_lF9XwaMr(A{TeWO(oTE!!ezw_N~zTXOy#DTlr~PWF~zfgT2g zKSc$4pA6YsxX}AL=p#p*x=Zz-*u& zimlIZgneTm&@lj8pF0Bm@R0s#EOdeo`j&vcI<7hf8O(E%{iiH-gmtGXjiGN*ppHHn zQ_eu&0*C19$i5o7S|fBEjDvH18oJi{MMcw=w020?XlzVt{ez-0bOpG7Q8b4B8QOBF z);#F{LAe30#?Wtqc6dnbt26zcNY}4cyRnc9F1uwppl?UcCB-u69fLExJi95Qx_yYl zTe{~uPKYtQx%zKIqx?7BTOB8c$=*6+GQDG1kn90i%j+KM7zTJ-1qJ%>JlXxRbW7=4 zMqnY=HzLrh9J2qD5$Gpj>r3p%nI6rO{ogS6pInjC9X%Ko`JiiUh$EVAy4FsJ8O>YB zbqtM4Ic>wz?pu2fb3#XpkELs`cLTT#&%`bi<`I4>+3L;p*bIz|VLW`_3>N-K)SnXUkj$&1F&ivj8wt2GZg z&IUTpSH*N7F!XQY)Nw)BXf$YAh2h;jWs~8(>nYpy&cdeveFt)8A(Kny^o~*J+U<%0 zeG-P$lMw<8eKH_y7Zm7|3uH%w0)0xB>>Yqv_fyBzG}-^eehmGJIN96h1^P6L>{H!2 zeR@P=Hqd8a>)WtEpBW?jJ4c|;N|U|L^r>XJy*)Z>l(&&#{MVjo0=Alq3;l(jw|9uGtf^(ebX$_7`g&HJt7)I z|29n>GqmPGUx#utW2&6e82a}Xb<9c|jRxJ7Eg#;ywR&HE?-c_9eMfTU#LJ;yj;{SH zaPjb7?T~#&SfF1I2s;7-XZj6MvQNtk^qMf)e?v*#PaUZs*=J#kp{I&u?-Uj2wRy77 z#4Mi5fIx?n(U=YNd+@jQL4kfR{`Nympf7aDmW8kj{jUY;xLkLP2mOpRbyPd5vpnd3 z#i6d(o$5h9JwhEfM5WxkFv{D1!@f267w^l^&w`c;ipJ1)%0ep|%|QQGfI4dPqA_#@ zSY?c^&s>JZsa?lCx||37hXQrntIK)Ne?ol=9knks8gx$u=>KCOcS^DJ;>_h2ZG9=A z|CO8?%+jTqz68#9E(-J|1+ve^7H9g>EdB;04E>2T*&`i+{v^UD1I!HlDNGw`i=i)z z@LJ%eFdE;nJfyb_^c6TBFdOJAaJ-)~0(~X6e!=l{;CDP7)NfeV{pUj8#iEWSs$Vo< z9jW#xr4>ZeO}BTBQ^(S*(M+bFjmA8YmU0@pp8KDSi>A$J?I}w%ZAoj(B1ZEqP~L7EPmVwUAp=6pb@|&pdU!mp7WpbhVHxWTYHJ-xu}0 z?}*0G)k5xrm}m_B9}abV7?t`Mx?0Gs4U5K^t^j`&6iq{~rU1(>N>*5uEx+e z2~fwUAybY9r6Yf6PXDMtGXZ^PavlhjL;nCn>i%(oz79xEj>+)8u1NNNfXA8secr#2 zTc08O0IcO1`VWqOA@^g9?4AXI{!`Syko!5TF&pT=U~7|%K>yXE>P>?J{WpiIH#2?e z4)6OH0i>WhM$O+myq}B?TqhlER`2@((mLI#-kh!$a^L4=Uxt1_hC0?~MAK&ULhc7g zG=|7O?-8PoU$o{y-xO{6)l%h@#?UuQQwIh*)@ab9 ze++t6sNs4*--VpVFhrLQ@81E}L4c?GuTx!ha~E=*>Z)6Bz|+t>{~Ylx~PvZ?+j*r3%Sm}q%~%S-nlKdHg^p4&h7G4y+zUVLFWzus+QZ$ zT<8Y@5*GOQc+jzs>-4U)ai$*_rB3%so5}RkBh>lli0sSI`^Knq>yT&+9Sgb6ZIq;s z!O;5zp%skgE#zQMG=>hquqYZs$3-C+RhkF=PZq(hXbgQ9hhW-hG-y$U;r;)xkPBWk z9%*9|A~Q>W=ZC zVFD>;xdG7sPR_Gk z=JXZ=k28HJhW`v!;kxHKhayCZ zI%@@^u>q}}m^B)orzhq|2v$VXW)f==2*cx|Y3SAORVYR${^kVBm(yBcTu9vSL9C93vCIU00&yc~MB7IIUHy&eMe-NxW41G+1Ul`5M#}p{>Q&yml&FUA<8|eQ|X$7fkoAO;s|;n*Lfkfu&6YdJ`P)04&viMSFhVglUX#4PJ99&mL-~w*Tlnl z>O3!EG&YdldofM?}JW9a*2 zsPjs#dC>R6zE`;#L*GA4opI4<&}n}R`jWZM)qox%=Z#P~^i+hBJ%E{^*M|6I&OE$3 z0ZMM{LU)kO&shTf#w;Z_ccI^eY<>kJ1Vg_$j@NU$(C1qErPl`fyoknZpwACc_5KBc zeoKI=dqo8LLs6(l<)Iaf z#sgMzi!gQGm=%qozk-qDrnG1beX|&K-W)fY$#l$&opUYG7`g&HFCrR4?-`}e`5~ow z(0ifWElScFLq8x-oexEgMuSFnfnMRMRjN8YTzW2+b=V(3o?c|TsrJzdmW2KqC|Utl)SpUqHp@3=sJ z4ogJ`YY5#3ozLTM2c}gYc$u!}<)?Hu0H$wFUzXv5W{}e5mODmc=vrG5lXCOIs90+& zqoQduTC2lfb--{OYwhWv(HJ^wMbQ|#0{l!~G=|>0NS)7Sl;%RW9R${MuEx+03KC44 zay0nW7#=jnP@18tp#}4gFMLPbj zAdKu!gV#s#|HRuEcb|{Y;LnR{>s4&M8l=HXRGGv(c^deFMMHa~)z-TXC01u>L_f5M zl6xb`_rlwTw}}J@2l_{hhHaKzxB3d)A=3+g>Z$&el|P;Mdt|qXS6@oWen|hmSsJ#r z`=?<&BD;=#V|z+gVXqO`Yb)e;5%Srk1WgFiH+*DbZTmAUJg-4tzyq;?@1{(oUse^`K` z2c>Ap4j-R&Kw1Z+o#E%Rjz~K^L&HxMIXl@D?G&J4`?)Gx*!_3>6sIUw9?{M=4KEkP zjzlpZik%{gb%Dw*P&p{YD!U=AYlg~ybCi^?vq$va_#j2QLx1-GmH+G}eQVv({_#&J zdQ=jBei~LAWF5US_ygPO44)kx!XMgaqd4n>v_7cK61Cw%J9QXRBKgb+4L?z29E4(nP^?r`Fc>NaBZ4-ESjiBi z4GB?c=b)pcL-2>0Z_lM@8T6N;ftF@DV>ybI!;+hYU1vcuEJ8y+6-tI9ZMes?>@rN( zqC0q&UY|UB`ihPez060^(J9Z{zln^Odpw^#6QZ&c!>sa(G)-yir$K{sF&b3r-<)WN zVq+|dUYVvrX9TpyWtT?mo_Bmt(W{_wY>Eb*6w($CI?4B5_^lL0uR+q)DH^!ZQ8;jY z)s3e-C;lT)JoD!tyn>2Gd<8Ks-EtpXho7rUokSK5BTAMTPZptNhMFh-6KUiJ`twLKZj|^Pa#Ho62)dF zX~>URK6@&RKTJj2l6>}zpGw|G&R@mZvq>7<3jpT@Iqf+w4en=C*)XB=`7ljs5uzc# zr*)GL`6K<<%e$sf^aYT<040Aqb`AM6eTMIwGbs8p>V64z?{Z816AF9_%I^7+iJM@0}?6CX(hOsjZvTI{3hO`?jX& z+emr~Ne8(}2WBGHJcQXhNLs+9GEQBsGZWrBXeUJ%hVbV>DL2U*^qpq!qUd5IEk;rs zSK&VXLq0kBA&M?R(h?-Kb4wkNId@~pK#G2Vqz{m^pPSSw(|gO2h@=mZ^dXYky9< z_FYbEpyNiDs1JSyw9G$ zDEb+aK10&sZmC0p?NYa1NzpHm^aZ-{2-^c+uE0ukuN0LY;p#X%c>gDhFcnvY@#n?x z>+0x`>2~_Z11MS@q-Yx5prc#rkj(q1?|zt~wMeQ#QYW|6VVQ-aN@EnQM^YV^a+3}X z?md0zQxsjDrszsPO1TOT3;tFz={$gFo+1#g~`=}plsNZP_lZYf`8 z@HM|bO3|%0{sL6m$1UXveADfs!zh|XQZ@jGSso8Xx7##@vQ&DktD|@D`s~;rDY_#- z(O)xE+Sg6$6>K*qavVi}_fzyY8>L+Jy)wOeRKGycov?YQ2Q|B;dSo7cZ~eU#Yn{TM z1%+;@o|(h?C(ff-8zi+s(lKt*QNcc)+fJfbTO_sRBv)b2VB6Ub&8L_bNnRw44>&D) zRiNvxp}$k?Kn$O6z?T8`WvqRcCU5gl>2*fN^j@vU?oF|SF(A*+Q0X`~X>|IlKJULs zu|qNXzZIs^8{DL^fojhKpHQp=k{0-=^v1MP^O(S+LCkKkju?;MMO`--N$KzV)AtnX zjHHE0lyVhb8MtUy@24r|L(*c4O0RZHU76lF;S?Xmx*+Mj43(Y34vTe5(&Vg<%KBz? z&1DDLlNXE`OR*jyDp_h%Sr^+$>TEsRdPYZz^$bwSvLuytwRBSHU-pja%a5a2ZzQ2_ zm*K{*THu%dVqIh3b1udDAnEfAl^y9O?Xu>~zvnlK^+nQ`VI;W<|FjO8-B3+2e}qaZ zeN=XYkz_~4bqi3eACdrA=5rPPZeMZlTh~#nKa#4^Ht&QTGvMv43!=2HdH6O`o#HBik*g}hA@>K<0f^m z#td9=J;hE((yAbp^$BS+$~swZO?-a<#VjPP_8`eE)zSWTpShbUHV{c)C!x?S)xrK_ z^q3DQHrPugYb~_AV|-ah>wpo{uc25elGbIYY);Yx#}4&UtSm{x&-U|Kc@lq^`R0nW zvye6n`p**4Jlv+iR+!4>iL|r*RPtSr%C5AyTmbXoIpd^Qp_toKpbYa-{lVJgYk zH1v26r=9Po*m=k~(&n=Z5LR1pVcJ)uU5Ii?9}Qi`tBBY|Vf=Y%=*Qx0RF-0+!Zh@A zadt_PVwd6k@Jcm#V*fM`3d4| z4EU~0dfx4)o7VI0f!V*-;M*;SiL0{q zPO)LF?Ad)v)>7B?iW_wlcd-^eq786C6i&}y*3T+E7GPQZ3@zk6>0ZF<$W0% z?)7p7Q=w%luI&!AG|jMmtcjby98IwYpkx}9^cI#poxeAo~ zTAa;5xfv+8PLz8kM6p*qG;EVdo0Fl~oDdEBNu1;0Bn=op8nz+G zwS9!zK7y6siL_5p!N*CQiL|9Cw-n{-#o4FO`6+bPi=4|*ZaKVsrr`M;wQ1S&(%LM9*AjQ7S((uzfTzMr_Rs#G~ah8V4G{Ea!CG~b@#L#0XRs;PQ z!prMy2fWrQId9uD6sv`fTA1~XFsmMC^*Cz?vi_A}{GslCVLtoHPq9^quw%v9YSgwG z07C`98dQK`cK9%1~9hl zX20*CrWWKU~zk8A`B5 z8-A8J+k)DDf|X~9x_?I6&*umo|5h~YNKtGXie*vkBvJQvRInY* zywQ{ z$!YDv_``*7gDBS?<=W$#wL$1SI7sn>;PUbm=R6eU4neukZKqj2x2`+!m@g=P7?d0a zClB&-#=}vpLzc?FvYd>o>^3C_j-hx*=6~4xCWu;H**tX^mDC4#nW%Givzy4d&oR43 zO~V>9#cNHSvwKrI_ue|BW;vDAczG?Wb9QSgXUnfjPWTWD;Seu~bzv)2va|W67Y6Ugl03^xbDgtCQ#tpler?%fRPsfD*Y`T-flbxk?9ss5UvY7e z;)?{G^XR60L|<+9{7EIty?mvibM|h^N1n^Oz56zmeCp@R6_vB}>VR(f((BSXKKFh; z+h-z`EPNrgFCU{eoF{QVGw{o!y*G)!zKF z^s`^!LN3G?bf{d^er;1Z_d0aF|2$j`M);~w=j@$n!p>%oByQh?OUf)?TI!tFH)SVf z#x0Ie$(sSbK6P?7RlBEQTqWA`jWl2K>YTG(opasxeDuQC-=vbKynM@$bE3bO&USUW zIa@ZLxaBU~eZ-Y~T{c$;YVu zIv?vKJSDeM`2XPkDZ-4$GPJRr9S0wSp?~i%%b-zSz)b!n#TPM3CNHQ4A06V0Dwgrc zEiSnR5A^e8m&~Uw$_DXxhzm0u&?hhON|F(ZU8rU95^(a?G+zd)eDad9-|i5oVPw}tqojh2nzd{deQ`F53-iJNp&_Od9NNo&~%q~aE_kMBcj+1VD$THsdK zys(nV`_3gcJU7Ry^9_^vG8BDY=aVhV3lBZMrK!jz@JnAvapjCc~-V#>%Z&FZL1mQSAy``{41nM}9VP#d|@1{H?w^T6u(zAAd_zv@(8{4uw*vRPqybsMRu| zn4hadxspls{B#{vXjzvK4B%(%sEB1~XFSw)dFSWxdKTFLpIe{w%&iRnHyf)2Zx4!} z;m_x7u=v@$=B>xm`hM7{BYEqQHXNP3LeQ_s@I!aa+sn@n-PsiPE1dkGe?@~Og-YeL z{$W~CpVBg+m>=!0z!ew{9!rG!X%l_4Vns&FB=4j!RrW&Vn%DWtDjwqJ`}dNN!@Fs9 zi~GTQ6va#Oc`Lhxd3%5|uCgn3BF~H{-pZ~))4wadrhm`3dAEQxPy3hm8bF~GYX5fg z64Yv$<6kIOGQ+%Cc}qg&`8LbgzeB3C`5$hk5ihxzZ5J#b3e27qFH7aQwepw< zZ)eb$$M|>$gU0NGUf9Z3?OxeE!21-mTlej*W;Q<*!MJyJCuepJn%s*!(3rFr*_<{bt9`W)VivLc?P11e7ln(=&t#XEDPc@FOp zeySXmRyHpZ@f6@e_1D70+GJem7X0Pw=jBdDk}LebJ5Q zze}cV1Me{uzpRme$6^BEsYV!AImVXLt}v@|Ou*#57%kH^qerO!!oPYz(Y!p#RF3tt zecV@N|7DIbwwAfPV**O1MyPIRmy2~xp`J{g>r~iIy=a0xUQcgUN8M4;~@E%L?s~hn)%kus%?cZkj(TzLN zQh;}RY2N)n*e9g@yB%l8WY`pAyy}&q%4QCm^e<1e&3rPWYDnHjR!IRRQ@njpcE6;S z$^P3HKHn~6f_J0q-%XADdx6W_>vyXHync$0kL3Ax1@13lUz*}wu@=4ZIE12b!-_R& zbG$0|nB&!4FYj5C=4t=(CO0TlHmm-7TnI8t%cOrXK0~>ZNnTz!R+h6!%u$lJAKGB9 zmt}%C6?XhPC!FhF&!UfA-i4=s{||VNqxdb}eBKQq-d(48H+XnMo#y>6!h7hHe^;#Y z@wPebUtFhQ+nhAd;q4!w6&sXLspLI+D-c~cocWhG=dJiIqGZayr(_6KXqn{2-n`1K zX_g7z)vkYkYZTAM3gd&CC)p?Dx^>o4uD60@@kpzDDNCx@jZ)#_jqY+9_|Xmg1%ioPGiC$YeL$iLsG$9 zkJ5B>Y)Z+LM+ZUnQ&!8QM+c*4|CnSM^A6h*Y`iqS9^mSV z=jQ(XE&^tMirrr_MEdc<-dfoQ0gY8p2^<4nd%8 z(WWZQG7K(T!ZM@AEQhOirj<-#o`ojbZfTjs91hG`VU{r_Z@6p$Z*~vyhD+tvVJWeB zAHRp11(5=-^8UnY;}a-86{Cxod73MX_yZo|ot+D3q99e?Ve`&T&!Tffe1<2n*x8Bw z^;tf<8#%8`ON&~l;=C~wDx^>-K@iptOD^rP06PaSml~1EomA-L-J;N|3kc1;O%&Ss z0N1wO8Szi&KZ5n7ki&YCuNZ4~PVHK-o=EYBeEF;oXL!%4X1yzoM|1(ndX0}Nr-oQofK}|jm44;@x5Zc&HaqwP zu%1NmN9}yp2yRDwl+>(|h{+la@xEE@*H}PAfUw+Qy$-CAFq_Gv3W7uWmHH0Hjzsn= zG|EKf*BgRV85LYyK(Zn@Dq{i8SAbRQ3|6ez8C;C@jX47j2kXfcj|KBt6F%PTt68y< zFk<-09M-46IyNOOcUW)4GpB@43Jun&Wv^|Mtk8(VjbUbeGLIF(QTbF+R^D&S7e0LB zsmX5oX`2&w0`U}zSLD01@}(s2U{;9n899h^ZNh$L?aq0~IUy(wb`Zy-*S(aKLIbfr z(feG1$Qp6Dh&KUouB{75cTRv3zWrI)oxI(;DB`JW{&^UPr&9chRK6FVw0P^a_Tt+a z(~Apo5Z{rF0Yi-5c}tk$P$7f{;&ngl=pelajWSV1EF&(kl}tq}x6?aGmKBOv-uo9NAaii0Hoazf7Z+U$uVSSVS43)wkz+&uUrw|6JY=rN#9yR|C`8r#y zWB(kk_#awh0L5R@A>quwFK5L1NX@^ia`?Zp_=f|!W3L8(L|9}*Jyt&Pmosc8aNKcv zdC9syk`)?dqKf)E5g}h$N~T!vg2Pw)SXPkrM`!*W@_ncn>$Mk@-VWB&DLy-Y5R1=2 z7>6-X!6gXAZ*zM1dfR0EF3CT4V2cdaaEhQp3JuoBwsaXKS)mb!>sMx7Z!4K%y%)jp zU6N%5S$}X@Hxy;PG!^X#)-xzRH<>@0y%yx3XlT}*AtSD<_Q6ha$FEhbaQzpz*dl{< zN|55O1*Onn4V}3EC6W~yMG3vu04wzB0&>8n7K)-xl?2d|WT~>p+UX z)2P2L4D)Y&v|o=(n||$?GX2^s!ax0CiwxFBF+nX1OQGS{OUK=Y-;7`~s)9yQ!es3! zeCYZW>)5JZ5zbeTb)(CgDav}@savLlbr8iDH|noTlKgWe&Dzgnvf>7b5yQvZ{Oct? z3|1^k<4clKXs{l#VezTrc18ey9@=2UGmxVE&NwNmg9P%c-VnNKQ8`#j@gOgtaiF zs>~;DuL^^mA!$g4;-3iXI1-&D#G>TJgC!y~iV_;}3502>rDRewKg@-8mK8>H*HKL( zzVmqbqd*)&@lVtFh|7cg132x)b8;f~94sGQ#F4gW3>ac~@kw}bd62EkLEI;FP?5mw{MH@y|W^h+jnbSA81s;vB?_a}X~9 zA{qmSf%sII;$K9h(C}in7hm~KB0{4mVS4f6jFKrtv{Th3Hp>bk{`fC}8tS%w8xYGV zzQUi6SmoiLDr&^BIeqae^hM|XOVw2fX*3271MwL@#j9AB>&4T1JcFN#@wfwxGEsRE z_g|{6Qd;!fiFSf^&Q}m|hp%{FoLIN}10W8icsiMnSmWp4Uuwh&5p%e?8JFj7pxzP? zkM)GXPG5XBN%0y@;r7M7x3(T65us6(FuizlNXe8J@r@Ke^AV*ZR6ST9eAmT6X?D1Qm*ed><9W##u>oAJ14Ck}rssz7_)vQyKraPyF zO?P5V#?P^E7_2X3DgKob8m!)3)+WgcjiQ8R<#A_PSjl87@}u^u2ZAgs$ohN0qp!|( z7G=F>;=8qAJ&WRB`|?@WWcY`^niW?h?wzHoSPpAEC|U&;8LThEuWK@p<@U}_qxRtE zl-xU^Q6?H=Y%Hu~Ds<6cRq-Ip3bO7@JFL5kvi8ib+zr;@6kliOvt}@a&T?3vOq;Av zrA)s*jbZtvBwJ*#&IW77mO{g?8_F}&Br7zE5~g3DO6dYJhS6YEPe)i*ko7m0^{;fX z81C}mmc?KlLGks7!`!>x8?ZLFecG>>e+<9AoH1Ev$yO1TJ44bOux{|NnK^UkZ|OZJ zN>*r;iH2Wa&M2AkD;lh7md&z4to%+06~lNZL^0N}!49{A^=yi7^yIT{0>P_(&6>&? zo8G|K)I6fcrZ+Id;294N!>_Mm_}yenq2brrht}hz7ndW3p;463ew~N@`i55*kbcDj zpQ<;qEGx*mf6!swS3jg`a!vI2RU0j^1}KhaOL>0%3BB;OjAmVw6T^#BChL2M;gro5 z8LY2E=}$o^G+1xxa?7cb6&ghelXY=Q7m%!P_^Il>2+Inxwsl!s7iC?)=Z*uxdJe^Z zw(?nj@$fJFHR~ritV?rPKLzVswzSfT;Wzyh|Al3_F?`n@txlJ$&?pmC46|RC=CQsF z)=&S1)s5lSnPM^g?KtB8I+EhqOg`)O48NB^vtq$x^w%m}ow+fbMzk+v!%e@w1J>;s zDKz{#dBO2lN>*nHWw2H`1*BgWhNvoSvyy^-ZR7fNAAd2{C$}W#gY{gB@38Y(e-HE9 z6f`T=mImwQw8{EYieIk4hY`bzLlpl#EQJQ^E#;l?Vg>H6&?rinF}yjg3rN-_VErk@ zvVyGpxqfX`)UU&*M0tUK9>sSy>aV+k{0<1s`fCpBjvUtC!1^H@WU_t$)?GmR!mQ9JN|>xW@>o9v>u<$b+qkUzq>B0V+UNiI4y@->e0MnCuX`+hbA@Kz6EXez zPss3V+7sXxSxC#B{`zr>;(L_PV7*}X!^cQgXv9IzlUDAp|AdrG%{dqspq*uf{p!YW ztD-Ty<(acqfb{}Oczk)R3Ci&MHWX`mACooRDu=Z-SU*4D*Y4|V;zf6*AedSJgh!1^Cb?3LeN6D@3hONeGY&^G*M*Ek9kG1LL&~Bbw!q-SILxLF-b!^%L@9{_B> z|AiNYpueV}QIydAm03Hbbph#DOw#GjDV7yvJ=l%m1B}%!6@P3H3 z(u`(3%4hnur^jUNnGrKFEHYTj0+iT~tz_4^m#xir{du%xg+`gE<{W12$s$oevSN}> z_sp=YAnQQ}Ytb0KsN*!Ab4F33Z7`qJ>*Kf7Xx8I$Vz^&U3?CmBGqJGJiQ(!XCA>a1 zGl#X$qrdGVS)oxT8m#@2N~U5MlXUv{Fv|+Fy8YE#)UTb!B)8IECS6eY|U9^lmlq+c;fr;FeH zx6B{9+^>!-1gb z*K;h>uOrbaA6smZ;n&q^N_4QL&|vL3qQiZX6&i6Mz>OF_$5JvC!&2K~-59`#AzeVmFed5rB>|QdWIfzvJ)|h>_k9y>zcM0Va>Tin!XA# z+$^o*bUm*CbRDZ=Joxa`2vcjxx40p&B zTl-Hv@5ZCSdIcqVH}Y#A_;sVhIytAmPCM23&O){ZXgp+);^uTjl^1?yN!oY2UxC&8~<9M{sD>hK*vFWg)tna-1$!f4( zMTwIe`SsK!zhh93O>@(xU+1MvzrGJv%)~eh)~z-rPEAUo;n$g4pQ@LBg+@`r?631u zx`2#fOw#H1gDfk^dX($egNw%Sg&Vg(Nz1D#aatq4o({ie9agLrjP>wxAHPCT&##{$ z=Q?4L!I}l@>1<`LUuW9WC8H))vfGSOgNlhp+z>xM9;*QQxkkQM6{-Cw&D?XP#%ojC}s z*HL0fCZDw|$#3S=te9zy7~Yt}x(TdE$6@$&XNVGINhvh?>jxbk`bx6u5@rlz+mX0T`1X<&8bt|{bz4LikbcD^o!%Z|SwX*cby<%r>emn6dj%2J@&-x_ zZ{*jr@xHD$4(qNQ*1vLCcY_r(F%H+S{OZ-j*-0rh{2E&S;~|n28bt|{^{+fuOw#Gy z#aX+#G3+bKI&a5kCxi7yN}OZo$MCs$8(CY;THQQj__Z4M7+t?sw?wpKCKi@Eer*fZ zbHh?-u+Eq{cBWuujX2!31jZ)lRWdcdVv>e-mKF4CH`lMeqA~pFf&Cr;>o`iB@5^Vs zAj5CBRWV$>f7oR822IujFp6O&#$ou?3)TxVQfRO?8@CZJs>XE=Ys8Vu>J2KHV#Op~ zeSpQXf~;6`>#@mG^!aP&hoAO?bvz|54Ck|sviNnqn)R?8)($~_d9NBlst*S%W?~!$ z>w#HHjIyNAU>%?6FQ30wLn97{m0t*4-65!CiWQSIw6m-r>#?q1dl!x2<7S@m0$4+o zxTKL^N8`Er{ETMpYWCOaZV{8UJNheTVjKqR!B``X_DP|^`o*eGUY34^Mo~ibSHapX zq6^5e36pen_Ylhpvi5aZdlh93oHgKCu--(8%Nq69%ftK%WzBj_PJiudo26=9wj>ytu*^`hO+?oaU-4(mbl?;Ign zp;0Cptiy#5xq$F1Ptw&R(AGs*k8xR#D%xN7KW*L!u-;0E8yop`yv?s6*R22XnXDIj zOx6oAJ7FfqVX*qZI^LE-!>{Xqc=~L~3XM2&`|E`)5{)BSF-ccnm|w6i^dU?QPy~1y@Ug;Gxv9QvK;Vxjk*~ez)_;t#VJ#xQ9 zH8jdZ!>?EPbpgqWNxJ$FWD5y*W^CMNo2@ZDCpKmvHa@eY&CU-lvDqncH_O=7Ql)5( zDH$zuV&k0bV)@&pYSe-wH#VkQN~U6?H(Fzck7Wg0qq7qm_<}*P*7$A5t6R_-lPH0o z%gNE+iH*r#u{TP!1~wfVJ>|KavHy9D{ccZr0l(V%Jj3=Gv9S;fz{y@IG+X02N9MG~ zr6aGXm9c?ZgcdV4o=9)qMqODO=((h)p#_g22uhFn4L{CNmzvlAQGFqN3HXg#b@uAZi3(?Wt zQFLL(Y>h>>*&6sI6~2feZFX7%TdEQd`K8cojfE@{y~l}-&ReIxEn5S%$V8(x7THRs zdWt_n)r*rXE7%%G7_Cus+!#5IR-!fTq{Jh>{GRfdC3aw`p7Ke=Y>lNMvo$^qn60tQ z&mRHd!{{m4bd`9_l0vgJK5<;_v_|*l{YqtPpcbLU>?xlHv=SK`{m>fA{46Wj8a}tD z{9d#*HuZhwEVRa5l!#>WTO*Ef1EZm8jkImHMs?C`jhe988h8qW@197To!G#(tVG-^ zg=TA{Z7p+J!$0TRcV%m6EoN)fgmnSg8vW54wLz8@Y>gw_*4SCJr##*B$^=^DZb~HV z{MNwSz`LYXYpesns@FKKc3Pv; z>hx^c8mL8RF zHGa%#jm3bIKPSXdur-c$*P@+@w#L?pFONlQ+(U_{8;u*!V%%`o8#}^gZ2Xq97X3YEz3~Uu z8x3J;v(r;}z45Fig(}=cYwS=Njn=qm_lE0aYoHb!x$BMJEhST<=xJz;KYT1J*c!*U ztiYETP~oY<&o%OaMk*s#zVZ8Iz@+!}6dbS&CaZvXQ8ZfK1ul$f2)kBwK&^+wGh zX|pvBO_{B6Sj23N4k7*=729XT2Cp|>^-H1I8izQpc3R`dt(EvHAMO#?pcbLUjE%!0 zT8WH}foP2mA(j1Fdl%CFV66H(oc_8#P^XTBBP|Yjn?P4O~^? z3tZA>CpLJ!@wyV4tBtks;3=Ijw>v)m5CA7D$oBZ#@Di>qP&3>(zS zjK);b!~4gfvJp^=(4smBUiMBk0|L5$=pg*|XVl2Df{ifGZG>T|ChqNQ88hiVG{Q7W zEY$r%za1yBD8(O#)7byP;;arW?*-z6l(54plpVy6aHru`OMCHpkBNvo&<5fSHh;!X8mAHYg3+NBqB755+-6erDZZu(M~n@L|9f3@#BAa z-^5QlkHTG_mXA>4^G1E~%OK%vkQ(uUoWA%V5PuG9FFpjsQDJGE=NaL&Xt4`n%Mi?w0?Qm6LfGqNwr0lwy0FMqdFd+}LJAxE4b|VA~ecGHECQHCg{}#WS|D&#b>iDD}>0O2i3z(lZZ1cVvG`N z?0m#^0si8vM#QLO^u;APeer$t#nY9;94}rCFRlw{iybdMe_>Xw>7fxv?r^gtqhzWt zo}Qta_idIHM7-f&`eL_JD{cg0oD$zO>WkmPH`id)gmoUOS(eimmt$UZN7Ut6@zQJ< zVtDbIEG51b)`5bR$Vp>pkE_)}9U4Um9jLrUUG7yfg*YGtS(asm5QiP)T(*?&(HC(| zcFGA8LP4-5D6uh;?@qq?b*YPqlgHHL26S1{E@yQifWUyWbcQ$dOD;gUuf0R=L zjiQ8N1#yyF8K!CFCy&7pkOEq?yA zu=eZM5p%t>CSnDWc9kNd+W>5CjGjo^X?&Folc3Z-h9?y()@K~&AKrshBqOGUB7NZ47XEOI^Fap z#PBa^ZTd_d!|N7U2T4|F#Nl*P;nz)GT|lt%_g88*Wm#5`b$^3Z`?X2d!*_msCs=1t zVp}7>{)*c&XJj;MHivav4(qn8_+*8!T(d^40409aIBtKPA6js%WQ9gi!i?c!~l*@Wlk`lj1 z6pqV!Q(*Q)$qJ2)SpQ1t0>ZES{J3VfP*TvZZ5-BNEsL_Y@jd%GSf8N8PJez3|B1-# zuGd7h%}v(Y7A9*g794!BCM&2t2;cSpOHr*Vi z#NWcqoH=LzvIh^Btk5V*n5_F}luVAp{1G!~XIVkk{oMZAqG*5J_U?rtus%tNfAalW z;mPvX*){87Nh5}9JA_Tv!-L{J11vJe;amL#6>Me>>$ZEx$R$KAG|EJ^*2Opsy-KF$ z*CYH?dw7s#g;`y{?p4&U%hQt&0_#&$(Ja5eRy4;iytGos zFn_HcDx^>-k!y*MrU$o5zd|F9oN>6ee_9t1G0fk!uRS5fvVyE_UB5Oj>en{Am;N7E zpQehIjr_WgpJJ1o7(P8>vYrt#Suy1D2UKtvew`GiihcZ2Xt191`?3y_6&gheGltJl zTGYBadP;_BtpMjM$a;Xwx^Gdxei-(@2G(b&qE&u>t=Kn0u{#{rvK-c-IjrSi-CtSm z`1KC3?yGU!ad>b4TKV$4T4-#-T? zsrFhQ%L=j{;QF;?QNLz){JH|H&r`*r-h97yfM2ILex2YkV|YTwjNzMY@tGi4WcYOo z{Mw-T-hHti6R*(^FA{d(5v_xA+r3siAm50)*luX7CGG@kD`AnrdO!MWr^bFAvg)AyB`Y-I$o1# z>wzxoK1Equo!)93SYM=yBO>{JJu*PCsR2E|-tRa4I@N2kPR&wmny|=VooZ9XkpVU{ zr@!91`(XL_xfU8_qS0TcdUXLgzdiugsacj4W_4qDpQ15bIeXb}V10=yy8823yMf@r zq-KqzP1b12WQ|2A_OP8}rYsiK=OGlzBUd6C}Iuh57i*RRo(l1abD9!7tSMOapl zb$PJ(-KCw+Z9pWh;Xn_dfzI9$XFfb(Q7B7XxH+BsiA#M*yBe5MX&?plP#6@g@C?Lk2solI( zyEx6Vf{0)LOQ8PNt-Lc3=TJreKtAFL8H!anf%-|7>Lsms3&Bk z&x1rc$>yyzo|^pM#<0`XOVe2R>nlf%r;@Do%;8bvYyI1);Cx>z7!gOjNT64>wgoB~yLz z=n&PWEtVBT-1sku^Dp>vJP_wn#s4*$GzOqA&IxJ6RVmYpUqwvB)gkfKQW#<&&dE^4 z05&cc@t61SAsML9C=(6Dubeg!fg0_D;bwJ+^A$w=>0b~NV^*{S;ykLr&Huc)ieQ^`U-d8hhh>I8<4li25x*RVa(EE|SB_cG65^8P7Pe5xoW|d3@>f8X; zZc4MPAYyf<@fRMi%s3xBeB<%EszCS}RSeW!v4#2=cIU0lIu+JyWwAFfGHypQH-i3fCw`|0wOSTqRne+2WEmw> z-|wmpaur%8Dv4pzMMW$FIt^RZ1m?pY2lIaoXX6o1%h#!5h#pk6WpyWD9C0w~xVrWXmtG29e0L-25S504c8e;Ozr24F8-DyDsv+hL8 z#2l3sD+gF$V9tkG1B6))X6!95K`oogG8gl-ppvUsa=z{eX z^HNLYGcX7GwM=4ScB;F;W|_eBSYi_C9-?w*TluLeJZLKO(}G-wspVupry# zx^+R8>dGTpCU|4-!u{C&A@fP~u|;tI(5#k8UR>0nB9;l><_536_HuY{bqA&60!MZP z@0(O{K{}te1N`Lj9tI|tcO=g44rty$ieihyn)ea#;&u{_Jl+nr6l(u6?_rulhB4m< zsvD_gigz*c1yZW4{N8yCH=XJpu~;T}ziuLo-*v-y>Bx97Oh{`(Ib8&FYBzk&nE&NbsAtxvM3a0LtICGfC=O;ua?Qc#joO_ zPRRtAI8pyWSp~-Z{XQRy1=xm0U^F7)j<(70qKN=|n<_>(>Yon;DQ4R`UZzkHW*Xn;e%ih zmnyFJ=kt!qh_9~8Zdo@bM6u73I(o-==z*CLJ^Hjo%Y5NP?_J1wk6)UnXXNPrA=<`d zq)?AOpCeMogtScX@)cLz7#4B6DBdsN{HQH8Yscvjavx#03!`&`ap=FX6x6x1$%Y=XTxU57ca#ddUNrqypoJr>s(Bqk>;{C)U?z~Hb>XumYXKBKe`ewMso2<-p z!uTujev)DPT({l^n?G^dK=4L!-FT_{*$0Of8Mj)NTlB$$M;CJez?ju7AZa zwIa>-xxA~BRJS6iWr9}>Qy42`KFK?^JAA%0qGh6z7@pwNA1m|;UUGT=%;UwijoWR< zeYtQqc;BarDUEpR5wl-oAQr2ox_TeQ);j*J!$lhgE#+Tq^X1*hs@wi)i~UN%WXHd2 zU~|2;S;g~O__yAtIAq{NdFZN3X*M}b;bN(-($X@?dlO`T+AL$<^4%`)?^b?1zk&!? ztBc3iZ2bYeA5g_KJ3pTP4p3|zdaUH#ouTMKDIL$d5wiz`G;f24Vi~{oZy&$d0|8T9 z|HjtAzP|%(pX1-?VPM;x(J~p&2V@`%DVc1}SO#&>z#=Xy8#Q(-{M*ORGQqpecBb8* z^ZZLA-b^~YBiCEa!Hc`Fk9hKVe}PB8b^N;(9z8aod3R!TTa(hfdwf*#VNm<`b+ps9 zSvJMsUGJs3Uwl%invnNd*KJK{nT+SP5vtoMIG9cNck0(^s@tQ>D&FgYRQGy-%L?A@ zF7K8`{=FCy<=K+qpc!ZCgXWhm{1YRn0MIP z;?vMxdtQD5m>*F^MLuSI*DytgMHFUzS1-jjWR+X%yCmf|C4?PyZ=wl?AgF}}^&OJp z2CA@BciZS$9)dzP%fXC&kD;}zSIcA=mjwvQl}x%dIwV7=Ldzs3ZnL5ymPxm|-S+E7 zZVhD|x3-+~**W0-m@1wK8msvyKMuCsgq?rjj;UDAg{h+W?BqULD5sG8Fp>omleD3sLN61g`Y& zH%QwW*1SIj#gwA11+o8tO6whi{p_DZ2rDek+>N@|(p-44Ia@++C*-GQ>-`?O5@cQM-FCDDG& zJLDU8S+yFI&cd!)Y#@eP#l5GeT>rlE-rdiE_fx8v<<0kRB0$kWABi#j+|MQZmUK=T3O1ZTX`CKAfRLl6Vni?&@vG_v5SB?MKqCc>-r{U+Xa5dn`54jt_J4kRIwnL z7rpiOSSDr|9>XIhIU3i8gC^$tUK4XVFmbVn!}X@XyvLG46(Iat=lZbrlA3)OGaOX; z49xevS|%}Z5m`Uo!7ShEj>f;_%|0|@Owi$d;iKKX!TSYOEXwBd;(=N8I5<*9?-O9^ zn$f(ECn>hmR^e6uXi6+7Rd4+UX;@O>FnEuH3!expo25#=0H}XLb4cFUpWt{rsq!ga zEG|)nmPuYLtm?lJ`Gi~71&c=SJ*&Rk1k5j~;{8UL%QD6-xcX&q)~=++T;>svKcpS? zGXut*#`bA5K#Jbs3dU^2T;Uwp`~^gVG|j%NPY6=%pQOgTAwqEqXv|4IaYr2% z7;fDI%$qGX%faMZG*GK$!mV)+%%2ccGKm={o9b_fXqj~DM?jzCW0}DGt~lm54`)9G zW))R@(P->_9w;v6b6JWvvvu@7hmX=Xcf5Ivm*On|Exq|>SUenn1$mgy2O)DY<9qq3 z{<*A{NzCRj|GBV|Da@8Yzs0L%5_2h_7A?Rp`TIDX^aYFJ`{=Q#?g>9dZwqS7H$pVHza_2GK^wgto|~0YrpmD> zzBf!=kkK-U*$U_{SW2ck>1}C36ye_?fSxptS zjmDxA;7#1|R6}lmY?j05tfrXPee&%MVgXz~3*OvUd$XZgQoOSR78u?f56lySY?c$W z{DY_Z{t+z`nEYOc`qzC*ro7q4izf1Fne=9Pl28%Lgg0v&Ef{Eof%(_CwaD4BhALJz z>YLx$a^)vymhUhG?H|#Y>oa20vb3ZA#3V)AdbBtHhHq~Tvjqkw)_nEf*;1%yQm+TH zfR;(jli(%H{y5Ma%A0LNgetU5U`B66v;FO7nZR7*uJc!7fX!X!zvK?NKTVoe3*K6) z_&Sg`x;Llk{5EzNVH_mm7lp|V-c zq$j|w|Ae(n@baF|`X5wb&ASA=mpC%X`;bMbh|4nXux}cTMKt2YkQ2RAdXFCj%sQ&T z#dz-JYW?L|Id@98UXFOpI+#BK<=2cJa_45`2MB}(4Lw3)41)!RTY1*JJgbp}%4imt zm;1C#x^+i@>VFjGJ8q4&O;P>ajLN5G77XF2h-HjfzR_JE{b=R7)w5`^-{CFodZt;ODS7u&dsXVU`Nh3Z)myIseVNlE_XX3pNoj(1T?}_OQAi3^sPg-A>aTD(naMmf zQ@%_zTnu;O8uoRW=7pV0mRX)$CK_?QI|6Op&~hf28mMApFwch#EkNDzS5n31M!fq+B%v^_VSk^vHz>Pi1H#Dd znhh;&W0Bk73yO^sFvaDKG8;xRAyiGscLkwV%bczWdW_Ud&K2BJ;OBM$>_BICAEJsYDPQTx{v;B8F#)L zItRq#I+)_}@}2L7_93>wrNua4enl1Abl229t>JKls(VQ~01Ki05Y)n&`T>|a+lG}L4F{!+YqbVE zzl>etmsV+Ie60qB%2c&p*e^`=1HxJ+6vx}5dk+wt4kq6jMHMQa!n`C&sEB34tv5GX zFL)Mx?2bUo_MCqbFjrFrE)eoY-19>w=J_6qd;J>oJVbVtS9@~=e4EayiL~KHU|u6E zaJ?xmNzV_lS&ld3UU=zz773a3W);xSizu0jUhFWeAEEOp%xmDy8^bIVm=l`7H1?#? z<3k&O`88GSvhpw+MrSB~0K!yuQp}3+cG{Z_qXFh(UXX)%E;{K|S+>B%j34MFD3n5_ zGTshBE9XE)cQBz`As@S8K33|^` z!v#Ky`Z5~x{1nC8hjrh)3}**9{<|8!{a>2vbitxW1_&yoP=mFH56(|%nE;C)41+Jz zG6BZv`ryzNV9`kyHC!EGx$s}woiRUaH2PfW#_Oq*Rw94PwKTn1BS&7JHVLoC!u=4q zRhZRq9nzf9r{RJ$#ScUD3R4<}`^ED~n3BhPy=nx_dnlZHy~Q@Wj^xqjI-O5CGJY5w zet{#Cj$DJX!~I-V@V@TOF0Wv0&0YAt<#R^c?kzj)1KxEsy``-J*YW64=x3jSPzG+h zlz4Kic!y$kiD9&rgyjg;$}m^%62?AJ(8``C0M%8q&I0%PoSz(XHDzns3 z9^|ruu-^4(y`4{J+)Y@ve9&;6gEh#pGz!aA^emEl2uQ_C+P2>5*?_--?kG9KD!?8M_@@Pk}1(GVCtRz;0wt7v- z1aE`OyRuOP$K3V8xOLBT0&j+JRu(I;i^rG^HG-ju0RvPJe^pp%W{BBF3BIE~5 zP^4voFuF7aYE@V^AgAjCts{GEG!`UO#BwGa_H8ErR*GlQ3cmwpA9|_(DY+M`9n=MXgvLG_yvS~PfWCa!+c9V{S}or#Np&swlqjb zMRZVx8nQuUrED~QZwM4=nG9SWe&$xRd3Zo_xZW!92HK{6uKe zfv=4R;g2-^xcrXVFarVjwpT@2!wj$3(W?ljC(WA)*|d2xA?Xvlgkg&7Q4zQ^!fc;A zc{~7{XLz+t@bZ1WhUrNqQyx7QZIDfCne^z2AT=a?EMwkb-!w6_8hi66-uA<*z}!sJ zPiTZ$AEtO02eaNQKK-gN>(C=Ndv)MG?w238mTrA0Bp$-R0v9vhB}@(VVK&RbjQ+r~ zT+HZZ$m)_RpTgW~Q^VtaEt8n_=*JI*SSH;1nY$)fX6L#!=VrprlGmq$_a~ZuiZ6f7 z_n3#`U6b0akIJ`JDc(onI=%}g#-j#Q?v6(dz~JrAI1FB1zdyz@mzQ5V-0)~b%cNU* zJbKipWQv#9K=oNIlf3C9p(2(E-XC4w@A7!@6BBn}I`-jyAA)xaO&^fV=Y0Ud>8^1% zXN_$d4Ub_oc6e9b1OK|?@4XSRAq%Fsykd>}K$`7y{L8O4YS^qfWJ8Ma_c5K%+d z(ex|tK+f&TJZG5VHSUCzvRSS9X4sHfS|eE5g%zbo$!8ds$&??MFk3h8*h8PR=rKuWCkzpe&IlDDF0&HR>S>amND<(peKI? znDaPd#;1#C1M?S}J~Wsg#&;k%-Pp@WJ6D>ecGB8tW?h#1+0ZGf?hB1T0; zMU4oGiaJshK`{%sNw(mK*bp=#AVo3Q`!6;&*rQ+)Z5@2YWWEmPHaBdWx37O85y$>zJc0pEAM*=pQ%$1VJ* z;!i5`XL9-8;#K3TOm?bo2E!-4dRlxl;%j$PcLbf?)Yy!iT|rSCd=aYMAwmzQeQcLXgvs~Ycuzp)vXNqjfh&2~eBX6yJl`Jf#gjsV{+RCZY` zmv5)Ev)OhEI-6}Lm!sKMkMKIT9?Cp&7FKBJ`Yg@1Q<}?{tY}{ z)e}vbEvo`mW69(ghEhJ+XhKo!_|D)iX_CR^%kt%+32wDa;>&YpIJacVy~MY(U(1B= z3~V=5gCst}_fMN|CZ|5r;JaMou$0 zJDU@4EC8g07N^pcK>}3En3MB^SPQ3InPgHr4V;FVtP@VF?I-<7OdOnRoO+Lh^M{^X z15P`rYPrwAUa2WgLlK#C zvi6{yUi-_XHHa-r9 z2L`FSk5>t;+r+=OtUfQUWx`O#lS@rYwjYLA=~jQ6W;==D*LL6Xzj$s89Sl=_K9~W9 zyQu6QJr~m3eATNEwd24^#c&lyPE6}8hJE7B-gAIke*A^Z9SrdZ1unQm*%yWMV^sQ0Mpw>{(WQKcl-%L!r~yx>YcDG32~k_ zvC?k?RQ+*G2`wk3-?Pl8WvX)4B?#^;*}f|$KL4+62jscd{K zw@&_)rs-{bn%GaMg$E*~h^3)(BVuYJ^OFFTR$|*k2Bzeph8#&o32d6v+r+5)r!*JK zZi5H1%&%qQc)A<1w6?SAWTipXp9CyBYliwxhL91`xbUzW!m*{D;aO zYtZyIgs2qjQmb>>;E@ON7R}!fu|!7GT!R$ah84}NAYIG_aL_FM9L3)dQbHZg|DpIB zJX)rr`86W^Tg;MKG;0!6y(TMDgM4w2s<#H%PNMmJV87M$z=da-p!qMAVG|^0l-S{R zZo~f$(p%Fynjg9x8}CWCPu|>sJni`L;kD`=ZZ1eRex=*|RQ-EM%T)ZZ$zJ^-i`Z`8 z)pYtth#x8tK1{55quqzDZ_tO{VE3WJW}S|Wy_PO2d#XVo{|-8ipH}ZRWeueQnQV{H zaj&WB>*j!S1{(9q@6@Eox(}UxSB9$p4s!Xje0h@xZnaDW5@QCOTQcRISCG}416n45 z6e*0iekrCRt^i&T)z5z-!Qc-%NNcqnS<|M7D>#7?+nb~krB(7Z~yy@+=@$s z=VQWSP2fu2Yj!MXHlea-a%m=8yB!Z2su%j?sk{}|CWhMKk+3EoL8b3z=x*pyETj%F zxdb*%UPQp566*Ge=kai>WvUuudXQ{lSTc(yhCyVZWs2s3Zc0AtW0{2Y&Fs)v{7Hkb z#_ejn?8Rq0fNxVOi-dB!-72428mq8YCS+-B^+%NfC*L;K#6XIY9D=ZVysCJ*j>uG? zO3IfFt1OBuH4o)jrbCqh1-4oVPxz8;{92~?;#n^;Vwvy_dK!k+F{g{1a^E7*Y({03 znr3!RH^=SlcAqz$!)6s)Yj)U7J`j@gQ^?Z}q;#}%+*aXK-z~%D^QM-m`pUy*Rm_q} zAo;uga37_JwMQTy2(es<-EB4`<`_@TD6V@F#F|r?*`U5+f1$JhU8}?|`4Af7H+nvh zdh&B$ z%M{H+3_?aMW10h2HFDg`QBCJed!-X-wxF`-b^LV6l6Rmgj&*CAS0Z8uhph1=d8N;B z3cmW~jJ)vKnjK(^V#c9XskAfRQinq>mQB;`qU4n^EmJhH@`7_qX3=cpC1jyxiY5+@ zB?re@rf4=YJ8<+qEwA1(7c^T^*-L?()|mAB9KBESB0N3eX{(ebISTPR%Wp+9`LW^b zeLnTbi8qwMuC&to_MQ&#W12;uHmI~Tc!VcAmb}%c zpn9(`T5#k^H-ljtDqGMXkdrYD zxXaKCC%YX_zmktbhlR7c)5(=c@v>3{vK+ln2R9eR=F5|yl%dh?Sv(>>gz^O zdLpQ0il)m=$pJBzDVpj1((KlK%Ke~uAeAk15=52CUa?%ZaX51KdzWYH`^YAqV6>V2Aq`^P2Y;iPXwjB+5Uz} zq!vzoph zRBcnm?=^HY*f&t+NIqvet7&hq{HPNpuxUy)jm4~@Dw@1|kbGT=YFATkp|6>iouisQ zmzAk%+QLoA-d?s7n%^~uCJnyAo|zB$tY25qbW_2dDN_ zme2!#mQxqQv8YO(V>q5LCfB&-Jr~H%4i7J!l3fhQ?C|iDLqN6cKXKysUmzpK3a9xt zr+G#$r{#8aJZ;VocZ1U*RQ8=OH%>hene483vI~X-er7DSA-Ua@=jX`I=EOghP4>vf zL^=@O(*X4U#EGA%BO}HNr`PPo?+ZC`qQNU5u@?I$P8q%#oDQY3q^kiZ^ba>C^hl8Q zI8F{G(+N2tfb1NchWo%t%3wF65gtmWJ+PD5{kJ&bIm>(74M6F(_N zMrniE1W*@W&6Fw z`-{`;O=AIRc_fwnn#(EG#pif7nA{a~ti)5Nr{%mSur{aC1A_z*WHzT#tgr#qvj4=1 z&w(N%#tNqw?7H`SPMqrX<<~8{yd^kwpfb#6)TB!H<*A;2di-6VRf$qvV)Xd8dVZfe z4|9(iuPUk@pB}Ht5I{<3!5;q>vMw<#`){0TOhQJCWlsGcG8)eB9mCS|H+#l`%28Cd zsX=(oO3RT(RM zt>UVLx`Is~?xs|MPYEqp>8J#yF7RmCe~QYC)?PwJjOD15tZ8Is?l`4#ZcW)ApmHpg z?ZikU3y^GE@uT1RA)u)gAVyeOSy35=*>`8RDxs#r3yPHA5^5@IQArA7%J4sqJ$yhq zHO!l(@^gdPcfDz8w~edu@Tlc+RJNx}u z7h6>@EZ0+hL(BeCRHlD`DBr?R)s_7n&vwsykS~6=zfyY?LLd#^#o6+5*)FQEyTIjO*?()^=TklQ19XBKwfUk$bP2IVC zn}7wTJ5~${ZK<1~`4Xz*acF0X?~MszXjN6-?wMk$;^~{m)0$KhU1sHyk1C|dGPE4e zI4%L1S925h!VU9Ge0b_4e5X%!Q%Y?E3E%GG_XN#O6vkq){Q%*{;o=R1vwM+uZ>n^ynWcyxE zO|Ld6HDAawvEnuMykc#GitE@&oih2f^r(UG2V(126YzJEm-C)={t{Y=(m&_t9zMuM~p`s`@Uw(yhs-2I^mz|jK z7I4a)y$6bK8${IYvFub^mpNx^7BN<3B8~P_Kg)#gVk6txe%yd>mAwZr{^U7aXS-7P zum*g2`vzU8)hdq)I3BE~I%L$;OLac&QD;xqoo&q#hP-4>ikEGp++pT!-<-&@0GHX0 zFHg=oWGtD*mnU)U^?gx%OV9KZGGaUCTllJ{;Y7@FEMVo9ew#tF8-=l@UVqOqwG33U z+XAU&KDD5hyPsN$TX0KEhxKSvs<;)_KhTH^O)h~WtlR*X>Ec^m5m(t|K4qw@F<0%S z2}`DEN)tHR)H2n_7P%?)hlgcMv!sb#jrZh)wcePrw8`)^_?|%FV|8b%Baw<{X!7xB zPpTTn4fWDe#W(Jj(5V8YmYZ_G)8f0!FMpjEMX~u#?h+?BNfi3mM|rdO zeqKezvw(z2SNvV9h|#O}hXbiJ5TeJwOHj$LY3NEHG^lj6n+ALs=hU-aDy@oB(Mcw! zUNNb3wwsE_+fE*Gov>~#jM4!r{nDU8R|KG&j)nU4L4Mc#QS4;;mH2z1-=c6^J)8;{ zl>eGRMgMYY2D+^NM}?^9;0#iw55vnH1{Kdn!Ybu-SMsR9N-CY4q0&jnps&GB+8b0F z_EPawBWw7C@!)a)wxa3Bcxifv3>6LZW>pba-^Yf|rs>^)> zWN?uG1SJ)g_}Hc2Llc|hP0(++IdyS}+Y=4=Ky;Tva!H5=yeFy4f)u_C_4tE0TV9^V z6?DxnmDH6X*QW{SJ`&3z&|ig0;?A(;)xcftqM~+^x(2vwf>d;di*?ufDLgbyMW;yW zIvmY1JydvwcnJh)!disqdMVlUz+n|o^m9;?E&3^Q>b$LcD10NF+>oY0R|eSSO)ukF)q2}mzODg8$8~cMs>AO zPq1VijKKF<45A5Ew>(I7-O9vO^B27_X( zn+TT^;Bt<^sY&oM303b=BTHwzabITDCJH|e^_5{+24ICH~KGr&2<+_mM1#w?rfzWJZ`DSsKVU+&IYHkNy{ z5!1fM?O76JR@(B`#w?rWE!#95wQQ)Z>*g3(-k*= zL-}v|xk6?w8_V7GcE1acLv2oQt+p&xc=J~vpEm=ROtq{DNjJAHEt9TkVoQ^|CoPjc zZ^AEL3I~FgO!bQSW{ASqS$0-`o0p1F7=122gkD$r?);Sr?!Q^q1T9*6_leEZ+{3dB z(-+nM=Y1EXFvb9pS;I_z40#ODGBqIfKf}v|BHO{A8fg2UnBl>eWyn`e3Hl!`(*jGT zCJp(o!7gAZnKiA*e<&tX3&En>#iWG)Y&6eo9&+K!@fpWoT^JJ2uG*fz;nKFKl_yhp zg_q|>z-OnspZjvsN*fVx?yISk?sa;xT5H@BIzQViAf9z7Z}v{tEK7*2-h#(74EkAoqzDGMo~X2@*HJX$6* zXP!5vzA!AAFy!z0gFB%Z^0YBkZL*vh7P%WaixvxJ19|Nyql-Z76bgSF$PHwj+exez ze+T^Aj3!o#F6=c!uhYVK$Z%B1DnU&#f_#U;CCH&!=T<_CCg!x1f?F}P9P`XJRjch( zAbEb93bPpp+zKRSxyXn=639t*#U1I%t+z=b}*t6h!DuqAK3q-7W;*(R=I~JEn*6lJnCo8oFcR z)lKR#(<-xyuXI+Ad9_R&^HK-SEt$m^Yn;?m9xdw}#Es;YPU>NNvzqM>*`Hk&eVNJS zyVB-cKH{Tm!S{3uWAw@Ci1%VFJ13_3?nNEw71H&2Pn_35n(yO5Ui#?v+aHz}BvkP< zUtVsd_L@p)x#V?LYHxkMyueEBiCcDxFR!dpj|(@_?U&bAHT?xE-PFO2bW?99vfb2} z@n0SdnrBe>2Te2E|Nae{7X~!VEiqo3Su|_f)$5qr#dxKr%9bUDrCsW8(<-nEBrot% zTP#D%6?Z~#XW0ocNm&2b#IPK!X(w1FRy*Z2Q z{x^(uZcUz>WlWQ2J3MjV`2x@EzdzXLa;09f>*;H+`L=@RSrlHU1K8ZEec|;8U@=CI zt{Hf$IR>R47<4Tyk8$c)FRzPT%PtLa>Nr2Ii(N}k5X+9Z2P*?y1ah^|&Ulf%-c&-% zWf)6sxYaT^Mzp>!F<(T8VUl8bn;^5OM2^3njwjaT6{9Z?D){AZ6ef3rVw6W;S> zZ$e3|k(+S%B^!UoO*osvzx%CVH`C?*!^6vZO}m@lN&5t^lXiF9pvxp@?tZN%#=8Q4 zcv#9cF-x)eSItqim?AtXrMi_u@dU31D2kWCuDhFMpwl=->_O-_H%jrFzQ1+_#d9dU z*_BH%6O!EtE3&7#oD@$>J1Jtzhi?Wx4vLqjDV(u{4vHgNOdGE#!lNLZQ9Lbe$yA*Q z<381>zI@*l8+0@aM_dM)+*p;_WP;Q14I2*+) zafjeSgbs>7g+?4^Q4Cs2M-qbTM~Qn)Nd-iF$dQ9=jBx?x`25U!}aQ6qF56azj>rlQD` zrkd+LEZY}F-sakGMXlO--RGd#o5DLoxl!DWf@1<}Rn*(+Rn*(+Rn*&2QLpB5I4UY{ zz=n5wl+Z!((Pd}fuPDMJK4_>8inpaLnN?A-L05BooMro@h`qc0Qhe;dV~z*K^C-O6 zmrL;X>@H?7d#z8&rkMMv?bC|8Xm!gW}#*d!AMl;Srzu6vy~AKvh)i zI@a9lW!XL{V#{1p^v4?MQGe^3cOxjG8~;}iE4rda$j955I*JdcrJ^qFjSQ*gk+`#> z8m3I=rNCK=*ad|PE?vDI^@Y9Rjfx^XT1xRLJ?bNIEfb2oXsaaB_V% zM%ZTO5;@|EZTZLn*`jAB1C=!&pl9Mf79IuRtT}l*qvqPe3AvG>mKhW!Jo|xWc0#bX=M1n?6fs zjh$G0)-3d}Y@b|b+gzu+_SarV%=*X;uKg%-Xd*YRhllu?jE?KuA!i+aC+Ljp3hXsZ zGPpzzu6U#qIXt9vM)(hxf~M&FN1c z2(Eb)IntZUwF7omu>)lFO&`UbTt7CQTt6{np8+MZx$@K2h~7YQaNTh3=XWcv@F)l; z*N;t0rs6ss8x1v|7%bZtSALqS+iPUMT)(+9bT+u=Q{?Cd?e$nUKTy+Lzpht@zo}P; zzxBxe5=vxq<>zscW8GZLdc*3CL$CNyafL^vv?fPfhrjVzGK(uVn`*xGuxwvk`5Aqd z>weqok2kcR1g`xla$F`it{%j-XO?Si!Wq}Pm@}@c<@vuVr5o4`VV$JU8hkr%OE|wBG;u;K5q>En{Jv-){_}z`=iYq+gQ=jX)moCsU&Zr2 zx#C%^<{I8_T&uhvy$-Gg6zSR^t|!F!!LR0;aXI6fNjtgz8RzG~s+2meVLUgEoRBSg zmg@<-msoLyM||pY&7>`vHNM`1xc(Vu*}l0t;<{h1{g1jV2(E<`Ik7=pPeNSBxHQ+@ zUMJT*ZYS408QBFyi5zjoqwmN`elBLc_WDJj$!Zl>cvMP99p2;C02Nnk0M_iuuxy`P zs~mCNZymn2pL;R57E$En25~(FalJQWajk9Uti!dkxyt8bdTunQ!<@@Ej>Z8p6z_pkn-b8MDJw3sP z3oNdYQ+$rN)^_we;#%wR%3iOOJj?X~wAa%$9Uiz8*M(0m*(F@rqaYl86Z~2-s}5tc z7v5R6Pp&xapxbNte(UffHM2ef*Aj}H8O!B*c94%w=(wI}IJx!+IJutWz@u?rz9sx^caeXL6wI}&lwok6l+jY2Nzi~Zf@2?+&>p+T} z>(Axd+s&sxG}kj?POfK$oLtYsUFj84rOa}D1nsrATL~RpUvam+PH}}teCl&O)AC}? zw0UE{_N*Y=?Tc&4uj%Zvwb5zt?t$fC(Q*()&TA0P^ARL$P^;-u?fGdZ#lCSq?qU_B z_5!TTM_X*N6pK)G&-ZcZz{0M&C)Ta}Oi_eKrL?-FM^R1t#x0o&CqG1ncb4soV)0Bv zC}P=K%zyo_{=@Jw>FgfsULuwSE13M8|ptQ(K8~XLy{8$9?g#XJYsg9*?f2*r$a08O%h~?LG-DQ+xQ6_yz%? zZqPGc#y*aa_VsI-dgg?+6Eb2M?tvV2Yg(VCYuTb$mS)%CpX>$Aizt$3T9sCptae<2 z4-r{qsvU>JA`8+M&DsYud~Qh7EHU`pkfvD<(iaA}1P+=wkpzcIsA=LT65MK;qWKhL z4`wWxwGTcGx2VL>GDWjLsFw?Mrdd3}4(l}CN_&Im(n2o{9_!BXJt{D082I`rQW(tT zJ2AxPoiyKxF2@;%+6mBMdZY?e`%pqXXp^GUhGR1EK=~YeL*OwnWR=-^l*rX{B8#|= ztHT6*eh|(rnZ=iT;D-`grubrdf{a)ud`r~^6IbJj4fsw&#h&-QyrcHfvDZBSz86zu zU<1BWf_$P&^L-*H=NMG6Y9|F`ie&MM84{dZb{1dEBx*14YMJ7TDGD-Tnc{25_sNEQA+h*A_tl^j_+CO0e*?awL(cf# z6Xz3bx;~d05^am`RNNVK!s@AY?Hvi3fS@Q2z8v4tA*;-aZ+HfH+!NO_;VWHIsbR@1 zzT6W})%QhZ62>$I8L^%4ea4ROQw{mr@x9@yf7^rar4+eL_sH4yi<4%K_}+$v8_ua% z@g0MEF%~UW`jNWsuskne@vZBDo&}Q-d>ni^zPCyFxbE^EnjB`Xz0ESz^_gc%V?qjS zx#!2n$U@6hd@)r)M*I=JGwk?21$OnjWk-D;HZA@q_+Cbls~W`j%CwX3mG$cLmEeRa zgcV=E-x1%sE*=@2QIs6MSEjjq_4!^I)G}3{c?NMMi`dQ)U%y|=6kiPC$cSaace2fQ zVgtVS2D0_}gKcMB0lt@0WN0qmx)Z=+rcbxutB}HoV#W7qpX2C5?TuLScJ}J}JlvGU zK8oVtJ2OUb$mPrO4VR&gUzL>!U*3_ZecET)DZYG61X*aA;)^YT+TkY4gzr?lK0o2g zjjx068}a)M@V$Z}fd=*Ydc(oDt~;V;^SwH)4tJ>f+zF{khOW=W8QHW#QR?%py&hTR z@P%6~Q|%W!YqeLWEt%rWC+_PyWo3#lwzleuw_#~zC}L<^|Y#Jb+CSXUCTc6X6y5j14bWDBr|M{nKJ!t#F2HAlb$uQNzUS!rT-O?@8`3(WZ4B8;N9H!eaMVX|!6mY5F!uIq zhnZTY7~Y6Twbn9W$a?(&*6NY3Pg7kRgXI#@8FmeRxRa%Q69ZI*7fFhPo=w1+j^}fuODOYniIJZw4?$2wE~B#^3eFuDHBpSS?r~ z_J%i?SiL`5c6elK9*A8_kw-GQ@jJ!f9|dS))n5J`fF^bXRzpkBSY(8${UXMv{WZ-m z1G4@>(Ht}vqHdmIaB*##_-R3HwO7j&%_WHG5eZ9X#c#QrkcF11_)SB7{W8EZsjrXQ zBg~`*^>tV#8^~`@IgeL(!zeP*$l+W2HOh^}s;aNG38XNJSoQT(Lyiboe1GuB`6O$E z`8XqwyigPeU-Uh2$mO&7q8`GnmMOkCAy9X!VaY7Mm%;7_kCrLEcraG`afW5gcfdRD zhGBKQ@8s>ie>@GE*HL7$rm0^?QTvTWOf}0h(DZmIC%M%112LRT!^c5|i~UVN39Y-s z3$?m4+*-y|oFA@@Tr->>yM_(~<$fO4N$4K1yP5|YgwF9I+$XL+|1EF|P-Lp^YV=@P z*9$F+gQYn22g7TER_JO!hYp9ytYCczzUXN2sm~BDlu$F|!1NDjnFC%I6=jJT3YmSbsWD@AZs>+MIME7+z12r(?Oj%nRUjzMc-$Va>!#6svNc zg{bw)#;|WlCJxBl!H^e~F9f(mc6H=ouQ!WCrWnF;-B}(>wjYL=Uexssv7J=MZHe6K zSdZA$(CasV*bNk!5y~Yt53_)laUHtz12R)r#A;u`@5jGO=*oF7ZUMHI@Ue;Uk11>C z8A@n5nT}a`-T4766JmUD8SX6Eeu(jm?_R-5<(y;W607%$q#nIDVB*m7Mv8=87O`wQ zTWHFW8>>5+51LhRP311c4_ysD4l1vhRJ+hrLW>F?1FM~HXxV>jXFUD6i=iq;ANd+m z`7)O68H1N>J{44kQ>4P3L#1w%PYx?uR2HELWgAr8$e0|KLoPNIK7$AlXKhzEZaj;m zQLya4Q5gb%BPH|_l?UzKew?d*gQ^#vj-xvt3QjjsWL6-DQ|*gh$4?>Z#>5`d zzQ-M3I;Z2S$LZ3Tu>+iLp$NJ;wMx*-o$ z!LEC}%DF!)`%j$0rI?YF%8ipaJz@`659P$E-dpaBhpWTjG=d^8H;B^|w3&N6n$!4@ zV?VL(>45CSN%3`@__w-sQ*z>jF1>DiNb~$}oUk{Cj2J7N9<@0c`{VSgT`H_Cz4M9sLBbEG?y)I;GnVJ#4 zJ@Klm2H@AOEk{yhiH>h}+E{^dU+vO-%i}UcTk)OYk>T5l=vg+EyQkQGK-AsALD5gwssJTfS<((zC)iPCQF`mG=C9~Qnk2|wXEmL(iCX^e0)@J^P(fO;oOf%P6(Dp+I;JN$rm!52s4usl=mWZ6N*cbWPZ z_{BGyOZ&cx*Pg{P6n-s1g&~ht6;^uAUZ4LJMb;;91*q_4TQ$dX_4w<%P-FvC8=!hA z>#*`93ZLPCPj98so#!}hV|R-e(U99;uP8Ir^uc(RPL;5TgcP)*ZU~) zkC!5U$En};5Ija*Nc|h9f?_-C694*--noUM6vyR<%CCJC3`q3+;pMgzZEE83(xBD> z_R&0zD@X+w+lH4VdTxsKqiD+@E@^-;p-@RG*m|=s0b?x;EzS>7}U}qIeyXO61W01XlR;K z9_Ttkhf&`uRpFDK>JMi3rf8=OF1!!p8ZkT`u;Wo_pRf&|Fr(9-9!b%z0g86Pt1^a4 zTuy+;Zphm!dE;STv^#PeB2Ie7DB8nK{eE}r-1_|O@&Hz9g~hYycX;gvqt`GEU1K>aUv zajGA#3xRt>^2i*i_n- zVV}imT*&WigHr=>9tXp_dcQ(+uuERbG+>L#x{H9j$c2(g4*oPv_{F3F84v3&@l*8T zG!57yDZIZYdTGct|2?t1Jm~r~1)qBpYxIqy+) zNF0}+3WxX@hGA&J&&c5QG^egbQLc4SL36vBw(wu{)tns^y~{(IjSDl0 z!b`=;DBR7BCKZ&~xrGv!H@oL1ijMYC{&N8;z%v-#T%JyN_qIbDzSl$fv(r=%b)fwI z-XpqDbSzYJ3^=q=Px+f>?p{sN2cUY<1BW*1Y5%UomH$w598@p6s32^so=UuT=M|Sw z^x**IWByQZwe4_7V(+l)Z=k3VpeS~23&OT)n*Z7OkPj$29;jD+=pk%}mnVikeBvh* zoe0zfph|7kw8WpC&&;RjV?fPIQ^5q=;X{cpnoLd(Kd_e_dTb5rywlM2S!s8Na2S1cb&(GXNmLp9M>8U7!y z7(b1o)BP01ytLpU+u_}bz$Is1P0^W9&4B8DTV*7+Z!5isqGeD$1JwhzYLvf!V8AI9 zjX)KKYJ#nL*uQI35ya)VqEL;qRktRVwAq?R(aI1m4;4I`$X16(63-2O;C_nEf@&62 z57?@pzo@M0HHw;0nNW?l9X_0>t@-T=iq3{=HdGJVsJjw>jXL)liq3&*4x?<Hs8`4xT z)i#{$zwNlUo}=h%s2uZAIiB=qSw8N+ZB6A56pb0U+*I&{LzNh{x40KY7eKWDs;RbW zlE34~Z~YWq2-QMHC9)15OFTUDFbq12p;`>p6bC9XeAfHhD7plyC9HCw{MSqy)}Erv z;<)@&@T`rhavhX^NI6B{j-&I9p=nDUT@eRM7ZuF54J%z2U-8-uipKq}Pgi-U;5moN znAX00BSqiyLKT9_&iR?dK;NyKDEa|c*cC-%!*NYRg26{G^wb{I{}E(`}K z`U$IWvrQXS?mxM>?RtuS22~PNs*LQtDNo!x{@G_J`UR`v2$)d$Dn=82L*I?HfgU5D zH7__fjesS56#ZX<3ZJ!ARpymv&pn!=-*_ncHEzc%w(3RCL&j%kQuI5hzJ+R*t*SJ) zT~_%AMR8xEd=p!hMuJZ=Y%C(-2fjO-~$h! z^iBQVyJhj~Qz*I-s*O-xF3n|Ah9<1{QQ2BoUCRW;rYV-rg$ zx;;VBEnX^IWxM}2Hh%7MjAMU6^;ZBn+o)Bs5l6kYoua#-+6C3OHtHMiXLEn3r05=~ z_CQr*qf)WKQ(CW~=-*KN4OP-ceHVMT&kHN5+~ua|za~n^cd@*Qo65<=Te;Gl!gRJA z)7hfqO-?n3t{JA>UH$rg6m?C!`A?sBsJw-N3pB5dvtcWA{xv=->X^wIb}{eT_VT4v zepC>b%k|dYpryjsOls~y_fz>Xe%Gf_xbH4Lj`LIbv1z1y?6G4S7xoBG5M8Gbm3Q*s zJ@}G39{SE9DmvN2mR*oR7nk+kzVfbVd2e5l*I?ZV@YxMM|1>#uBChVhZIx6H;Ci@d z(2a4{os`Cfvw|(u#>IK}n!1WScZ{T_Zcb=sB0C!%T ziqFol<@qKqFBP9Jx(k5o3*334^8x1r?gG*E1MWiLn#CBG2V5R-`5sR7cT;)3NyT|` zCk6mF0JwV-tSbbrAnsavoOmfRU7!BXL&alVtSbSo*mN!RWH>d@fG$KOTSJ^04BVhN zQf^LNWa9E-VJ(&yyIr4F;I)$5#PSk@$}e$K$#${4G(+W=8m=YB1Q~ZZ@>}Slfo{=V ziTtiGX`u8W&y5oB)zcY>tu{t-yhCve-dX$-_E@R;{o{!g0yokz2d8z#F zI1Q)`vf*g>zXxqT;>jA8dHPN(eum1&z{eQ)D795HJwEq~FH`w_aa?}9E6~F}?nml= zWZfplsR#X3{s5{TZ-Y?zIOxXtsW570{f9lfrr=$KK3IoTB1Bl9~#iQ&7s@f_pMfRKCnh<%{9u4{`Fgo647)$WBu4m{k6b z7a54lccEJW-Dc6n4Jwbjsc4Jn-h-EwxPK!&b_SkD`(FD6mA?-s@59L^G5ip)4*}aO zsgL3EBe?uB$jm>1?i05QAHoJq;dfqq>3>RwZ>19QZ~q)z{_}ob+H1?1jaj;? z&itSw_5~8WKcFnFM&92WqH;8Jd~oMf@6o>}s{c&Xa<1@JpOv=@^&S0|lFfh5$MyYh z$k4MXnd`b{OmK{EP|E}$D0)sz$*k?eyl-K5 zHV}+O^SdaaA8{32=)pwi_>605FF^3>vFzi#=51R&fJX(RsQgnr>^Q>>EFS)ZyujD3 zkMrKGYuVGlP~8R(Z}LJXso#CPd#w)#Yz**LuF4p20r0LcKuT!2SMQ!aiheepptA<19-#lL4j z>mDlq3eTmO7JZQO5Mjd5Q=X=Z7I-$W&CJ<^9{KW}?Wm%aA)C@I@)+8Ni*vI4^rS z3%GeM>&Z~X*~opTne+TB<4V+0#kr^$>jPBOOkDN`gI;+2vnRw(&V$SI{FLW%bLxEP z`ot-(OM+8#)SCxX@4i_6jZ!xPHKO^0O`;+4#ii?3eT6C8JcPXA6UMRZDfV&L1Q;a_Uat?l4`8{}A0>ajLirD}r?~*4^!;ieTKe zc#~L;0&Wy=e@SXIaQ6U*IUOv=7`WV2__LQ&_W^e=a2v&PEO29i`z6M@2Y|aDxZg$h zAaD-?w^nrHGE_0nfG)$94+HlwEh@2B$*6Jq=t>u`C6y6u6Vca)ys8rY9)xRME`@ZYJj^x-#IN$xweDv#25r zTsYubisd&_QQ#s8>i3tMQ{^#SKI*qkQk4O!s6gCzhFDhxTvY%m(LD>?EZ}xY$^^~? z?k}-?!A}*>#ZZ<6<6gprxmUm4Vu|@$#mg?r^ZHr$N*Y%XUIh0laC6gW9fF$|r;2%g z%Ih0s%h!N=%>^%F`8sf~2dQw4mvwId7eg1~%5Z8y9G9O8cS~xamnzlUSP zq5o=B&65y8jkrLf9;Fbc{R8m;~R4n(xi&(w`+}pq%B&ij^tw4USc{qnS zaPOkudtFj1fm`WC%4FU9ZmM_>UC+~!`T)2OfP2Hsx{rYS5V%;3Qy-hSkY7{D;Zxu~ z0d9d)~2a&hHzLHr;2sxOivOo>yh8DaVkDsy!>WT#cy8fmvJ-h zci=YQzHAfRM&LI3vAHIxO~CzuaxN6yX5cpCzAX1L?oT&WWWeuT(QN^4iyxahZq{uB zZY#FMT$0)j+;(ryQ>1lckNkxy{&K6QNaGTEBrF(}aQEx=GF9x%s7FN)`Ln9K6Ysa0 zKb9&mWtQhb57??v{=Yx@%q2;m6skTN8`63~o;q|3X#i$$5OUutl$nsFI*E zp?WZp&FikjIMWlO%BE1wf$APxb!XzGK*u+zvU!mBL5zA3TGx?w}A=9^|2ZYbA9s^lj1ZHc842oEx}5B-IYMcED|N zvzJ5sRM|dF{WeJIFh~vs?hi>F4&33uZIsjzz#V}H+%YaHoX*j&#O$K-Sk$lSqU(tKj!RQvk&ktlT~vC2ds-|zd#SQhoC>E&3bTvK z>@P64iGoQjSKvgN5JF0`LxM0c8-D!phwhfC^o;7(_pSe^;o8NhXr)LFn`no)F= zSe^qMrWr*YBz3Mqm6%x+br#Fsz+qNVBrB}S^ME@KxK5%wAGki8pQQQ%*B7|s#LER4 zs=UCUqGLsOA#fK0cdY30fa?d`aiYryF5hkKyjAwk$j;lq9dTVB2X6L#I<(V7sw@al z<$w$g-0I7!w#4J7qcK$uiQ_^W++nN!j2||wTRW<}2C8eI+HR}1_-2&7cQ9363)Qu( za^w}SNZ*gVu7m12sJ7awKYd@$JGuu|4hOUAq1t9U%=o^)`JMSxd5f1SZ${(aW}`Ck zjV+e{NR_ujH3IkXE4c%=BXt{63AqC!k=aN;75z_icS3gubTdVFSDGsC3R2M*qPyEq zmBBPpq8kO=DBwPq)M()D0q%3L9Ai@D7~JuXC3PQg_X78sq{ad_mh%(b1Hj!Mr~U&C zmy0SN1nxoX2$r}w^^lt?$6*t&M05`W_b^5{Z-R9OaE}02EV@U5dla}LNlgH5JaEP0 zWuifq6Wx?|nxAox0XGS_BGEk#+~Z!#J419&05=)9fufrN+!Qya+8M@8&EPVq=vzrW z1>95M_g#>6PXjm2#NCxt2)Gb%-%6?!xKiN0k<^R;RZhF9Y`yaIGZuN{lLB@ga9fy$al1 z%$*7)4)cJU7r>oQFx%IFo1dV()BT)!9k|zhly{Qo-tbUmEJk@fM7IFA1;CvosfED3 z30x1cTm;-A;7*X#Tfi*_?nJR%5~9i_9;8IK47jD7pQM%pw;bhc73AFC0q*S>Mt(`H z0B(f`bA$}*;<(-oQQ^OmS_#}r;9O$)K5*~FsPG@reE{4C9$1QQm5(aFPf+0=NmT<^ z?W4lK#WEG3%47yO(bXiVvL=B0DXBW(Y7e*nMcqDupp z#(ilmsWrg;1b)pV^)qlkJ+%Leb1+JN-)`h5Y9qvnONv#L&SKwTd`VF|>80Y5v zeg|#?a7{(G5x9-OwUE>%=>G^&UK2@e25vKOtt9m)a2dwA*~=E-wgA^sQrjTe3LHsl zdyp!(yPy-?U%>4Eu8HV&0=E;mR+8Ec+%Djni{&2R_F!aP7ULZDrf~(SaH*vJ0q!5f zAFFY60u!z%3QamcX?H?p;Z> z0xYoce7hKy6RUP1mPEu}@s@z^Gd`D94-Bi`iq{2mlJH()>L)=vOwxkXP z?ob0|k<{S4ty1u~m<#LM7AE2s>P|ii7yBPUh zjQn;5IrmF}y9E3WmHaNtP}OAyQlh&8xXUwGD~aw(;I0I}&&A6S;I2wg-mwYxay9b1 z8u`61x}m^bgZ$!>`?bJb3*6hHyAHTvDCZK<1%L|xw@6Yqc&O_77!@5Rx!(xfjp$L@ zN$MuxhNGPAr7SlCcQbHb2yO&$x8Qz$7~`_s8p7qlT@u~xz}<%Y;%U~61a2g7?}+YB z;O>Z_ETX#$xVwNey=-|mu3(5tJ`vq0;70kd0+QTE19wl1icb!*%BEUI3lExLJ z;?u9D} za|&=%fb)vwRN$rp*CEEaKLy;AX)5k1meb-?HO&w1k_rJAa?wD;V9QeAN`o};Q5UCX z05=`^eI@zL1a77uD?^iYWnQX!CQe1$J)8=saRpJc#4-w8Buzzsi>@5Fa^U_JTqST7 zanv)htTL&p%1cFiMfWUlvw+*{VV@>&rk_gQO>=5CaL*yX-J*LQxaWb}Ew~rlR5iy$ z{S2_>i@?2z{C0`%W#C={?k`Eb0^BQJDtRl-mahUg*QBDI9!||OaJi8Z%h!OL58M{f zy$;;#$Zv<}-T*EJ+;&MV0B(Vs20oHtFK>CM>P_@#4@v4%Sbl<%eHmcgXR!PXmNNcT zeV(DJ&$;Jwv+m0PRegb@2yY>Q?eMNa8uX@b)%3kZRP|Lt4mXs1CQcH7B>+1}VBf&y zH*k4?q`rmjTRfY7%g8!eWNe=tt)Qy!19I@8}cM7FUnl$i0aZ&@9 zH8{es#4gD~IAL;4V1yX>c;?8{g6RQocsirX%Js7*{y-g zH7KPFp;bR;sOo1hkU_fY7vR=rP^rb|I`~`%pE3|vtp{#Ba5C6d{RZ4`z{%92>UZEa zAioxp-$vjz0w!oTpaJv%qj)%N$T)*JDg;cdCW*rZK zM=P$2jSFu$Y#CMk9U?vuQu3bo{}&$rMM?hQyk}8>X1P$xf4E$;nj~-q>K_(yMVqW> zMzfmv#y3Ti|w!7dLQj;P!}Rd*IsPM$7DL)*-+h0^Baq9p<4~hoUSy zC3QG(hvSBgOK|Q-0(S&(4@#;7a2I9qzxD#S**%`Rbz;$zRstc~;Lr96PD{x(XP~dsniMXooZCkcjz3|_U<^86BO8$-bNsXe+osCS+EnFVmtbSnlG(o!!}CB(W}mgf z6GN79S=vZhyg|bA#;je8%Qrtwcp|CoT8dpyKjC?%WoMs5#G_Hm&OX(I$E=o}eI5&s zWi31VOc);ATCxFudN|+vom*=XF;wr(YJVQ(?$y0j?`dK#VG)6f1k*KT6V_j5XjLTpMXRFvOIWMQwIrIA=r1$0s!~fZ z#Z!4M~{_?6;p+c&> z=4;7o`paCcdOiC^t77`gYg!dkU*zmaa%%|n=O!N&AMC}K5N1N9?xr*t^Z!5EXYl2C zmuuPUPz^rbP+ta4#9ZS>*bJOz$`{wt!Cu#oOMH<05qE8^iQ&tpI1L)klC?1AFM~V9 zX>dOSUye@j7nkd+!T6Eu_d$;fMQG$t91ZY3gf5`vXqwdxlccY_T=)4yuFa?`%M8@I?EvNYd#;LAsmm}-mh}{W|$htRz?b?Xl360owYecq}%Y@S- zQaG!8I~$Sh5?Os7yNrfBwy+(ZaN$4sFyFrnmK~5*5`2ejhsX{JIc0w#L6rwby zU=`k*zh>Uc9rTFB29PEvXBq&$zYy8v-rRu+mes$JC5^}i`Wx6)|Lv0k^okv|e$NoH zhCQnQDNm>YAa%66q3no8WJfh7YsB9XjmSDQB0I7Xe@8ZA*P#)+j*ZBUYfRRNzoQ$G z9ovZPm`3~^(}>-%jo5AHfae5oyU|egVBl|FTvaCytGmEJvAvmc#8Lrd^vgE%aJH_jerCe^dJJoc^ zlD~`WH2kYRjQvMsr^lVLzeRSYx1KD-{?0O;vb|z=4*pdi_P1B;&NUpel|Q$T(!lf5q-X(;-W_LR{uNXw--O$@WNPzF~>@ z9B6VoW32@P%UQOEvDR`!%XWyJTC8Z9Y{ghh9WC1-*bZJ!^N0QMGEgtGwCs1WJIv%X zf7ouD$kY-~%eD&km^7#PBX%sa7B5=1o3VK0&T0M#53w5(7l9?)C3e@;lkFC}YwO9j zi`{kgWV^&}cm}TI!+Go!*)86BvJjW$R;P>x-J{+(czniHcY(Jl23eB^UmC1`a=7oZ zFK@)GYYfeL)ML%Mn!CQgA`W+TsRSP+bEU5JaH=N8N3vYWBF?I=HpE8;UCDemr+)Af zjtRL^hyOp)&OFYEVte~3H*k*|;sOLz^txcgT|iq=#0?`NDxx>n?J6Qf6cyJNa2E}@ z0W+EOj2jASL}k5dBe)AjTo7bt8kkiPBW{S>`Sdj z>2%~;eS#hgqVCa4Rk$$}F*V4dYLcGvLbFQahAS?JQsY{a%~yPj?dsxsUwM#2 zeS$Q^1RpUJB5hvXYP|6?dFI@=U~`P9dL-`Kpl|xS=qd^u`lk^Dk$_=j8WW)6AF&bAI zH&0I>;}BZwmO=;UIb(nB4D9(u-sNF$s57vzd*M&`{y3eWgL{(?j7{X4U;d8?>;GNEkx?>c(Jqi3YG z%{Nl?jI^dX+v8`X+1Q0hVbH`9y!(e9v0nLx$D-!97t-&Il-AhT-W~#=x0A-`?|KQ0 zfobi9Y0@RXj;XfB=HY>NWz4M^zZZ<%CaNkTMf_?nPSZo&s!z2;J$i^+8LJ(dqKCLO zzc*nFCvwHFw?hwcQx6QAU0i_%S=2VW#s!+y8r$sVLDSY1zkLyoH}$@J5PDL)wzot3 zN}GGOu_*=^)p+m`KfeN-w~MN5zR2dvg`QE3wI?7k{c5beBxzRT(gHn?u57OS%#k5L z4-A`BjSD?!lxiwXQH^L;YkoDNaiuAn`y&&U7PQ9Ih;ZOQq%qAl)fkyKE1)?s{xQ+K zLsUHl2J((p7tqQNb7nOzN^sK3-qhaWas54xUW(dV!TmL#=4}`gz!r;PldAE<9E;i} zCGw(#*4QR04~;8L*+e4a5L#oKAY6MJNz&$76aSBDTpU#6L!SnMb&dDWfNcS zcpUu^wF6zQzsKUV)+a$<6VSx+Na5}-9mTMMTEk8(YAXkz+kHY-=*;&$vin;u=6{^qkqqIF)IqNEZt!C)#J}?zNyKlbe%pCko5mmp$ z{S4$2a@Ehsr27l%R9t&~f*x5{XZPA0QuN5WI=k17PSYdn>g-;7V@}|ab?OFr<;Ljw zcQnYNKD$4d7id;#>g+zj7HC{+e0G1hAaDr1FQ47hNr3~ACcW+$mEVE-N3VN*ej0kv zZmOu-h@?~1ro8?Xrw8k`S3tmn_1f#Mwy1c_)?Rl@(u4KdYX?g{SdVTPUMJ>7)lYHV zUwLs<@u($gcX5=aygmkByV_b~uTQ|&Zb_x_tB|EjIFGu&Z~yHwi+?!cU{+G=BP2j<+3+O9EyFA7jM46jq*tCPc`=1N*; zTWQKG_@i;Hu~*_Bvy`U1PR$7%h&1;4e_Wv!=kWR+8YfAw#yZJ?a6%jYP|OF2v;b3J=~KOs<3 zmprH&hF9XyGsdF!N*)d;2^*>)(zjJ=5BIdjUXlN`N4QE;Tr<#)bV!q4hn11T3-74D z30|v2c3ZpH>s@ilM|m9^Wq0g#Y(ctHUdQESEi10$bMzG!?wUU~5r@0tENZXhYiv|$ ziYxgVThJPNrMe!c8dQZ+k%cxsN83rS*OtL`*qqIdh1aae?wBa{`XKmVJXKyFve_Mb zosi^_igWm3OO8~^>mxDxf)01r_e$gDgAR+@EBSiJR+{okz9uBK#$IW>de~B$;)>5& zY9EP_#yMOD*AXi|+7ezJk=-R$?DYxsIjGksBj(ujq$kH(#dWgFQQ;h(;?UQRxNE*w z8i$^ceM7!-_~`7ay%Bb*XJUlw%S#i;!0j? z9IXXjpR$#vyiQAr+NYDGNw34o$l*fIl?&jtMr8MDQ?Jv}XSh>2Jj0@|fN8HU#!Rm- zMNF?RdGz%#>W1N!d`(ZXsJ%Y#iP{;K(hRRJ#|o#W8g-Sqi&u1#Neqs8z_TxTg!dnNy~Jl;@` z!{mRqt2OpI!xgo29Hl9*FM;b^n>6-X2G``uH7COB(;~Z1oAav+2Z7hu5;LMb}MVgHO)WIlM9{@RdWI!?hNDf~CqrG~P*z1Tga`@$;JvYMZvm$%2RqVA1 z4(1>;FODG_Yn$Ovd&#Eo?E=h1cgq_OLeR*8=(+m zDMlK5EhC4oY5DO3c%3G)N47b?{tiEZ*FWF~8Lhnj2|tw4?DemR%xLBHFOR;|%3bqw zn0)=7WKnx1Uw>FiQ(no}pE0emSIXmgqD1a1PgP<#L6}9InIF2URG0t;39u%y!w0Iz0G@uk2Dc46fjS23gcz;Q`Gm zO?gFaqH(RUSL8nqp)|#HVN~Eiq)D%-GIF@jo7dyfi*_%FY@bN6*C_f7KFaG(7Q17w zJIACu<#m^ctYz*--7X$|A(^}8a|MUGsO(!%ujFedi#OEuO1^fEX^p+2uIqLo$>6#O z+wJ0!CcR!+2G@J6Ll?vAbdk04#a{PBpD~^)uY0-dj=k>f@JJ;)Q`gCsBbD;nIZ0o) zrfwKqF>coF>9MG}lCQm7r75oDYi~zu>~+2)a0sO-uJ2;I&Pmdw*UR1i|GdQcZ`z&U zb%w~E>=k?64}JFQwXVBmj7@d>$K+V6xE>JUsBjJ+;L(@KxobXG)N9>-vTp%b(z;u` zq2`M56^(0+y;7VGAj#nR9{eBRktV(Vw~QP9wbAdObWzUyi447+lHMp&pBx>jzO$7k8DWxRTey9IXXjd)i7-CDz1Gj)9dju`m#TF&F4zK zj&oSlUOz@2_Og{`cD9LkDM zu-&Pi(v;Ucxb}BRlU}bZBZqG~aQO&$&57)wHuZWo90Xny?0~yecaCFn9cY_e&rQ;+ z8K@gYIefOqqV`JtO}I)kxSr!^E#NxPR+{qqX+hMTn-Ym$>2=iqk;CWNVXqx~?oRhPuZisCiDIud`W$$rnKu6#v5sci{7?1k zXr}EOoQY+~>u9EJt+EjEYHMFS+*RNjvCf}wQ(P}VZH|p9U#ece#diLDoASCA{&~Jl zdi|?FZw!;KJUbhotEuNsrPoMg`E$VsH(U5KuLSpbEA`oG^|~n-n1X0v`k$gP?_Bg()K$dH zXjCGLd%M&l5%Hrj9L}$|STv%6X0_%=W5mf9S8_D;hYadCG8z>zy#q(1Ph8Yhl2kex ze+Rko&(T=hwEOFb#$1sd9TbDgjhj*eZ<5f_cqU~=<5~GG6djG{;$}3aMd^)T)ITE{ zBaj<6`KV>OQEt>d<7<928iySC3`YY;k*%1~crLCq&cq4})iW(hTFKn_yWHG(;Hzsg zh{imT9pe<|#%-vSktrRGS3=Rit)r0}uZE)W8lrKM%YF891BI5ojkIv3)VEs9280N9F2|T=Ek@4D(Vr9`67FJn{ne#eCaCX>1e!x{0}PS z4ZL$Ws1#gf8so-W4!!k_efZJ1E+Mja=2Dce%y6G0qcslZuYU2cg{fFq9h~g>vI#{$pnh$!Kg=Zl(M* z=ZeXQ#v3Agce*$l_vYwLGCCSxgrf0fC>qN`(fA6{IK$yS`?+xg#*KS(ESkCTMM`Ua zG`c_ZLNiALN5O*d8PQl4*E?`D&O~l}6(y}?G$Q5ZM#CM)zlCVLDYEw`i=*+NO>ffC z(O4BXD`j=mtd!LSvr^XN1>R-IefFa<+7a0Ym1ss|m2b|E#)9?zp5 zs+0i*QMV>fTFGc^UT$vudGkkff%TTiPG~c3;0ud*laP+a+JYI4@A76e*5%A-e4nPb zH*%l-XxxNxBdyH^*Bfr{T60!)Ng6#M*UW1Zq&C!Zs5Wki!qAcf^nlF#-b4oG^;f~H@=>A)t@pNbQCP1 zXy90S2Oc+YwT>f_Rx%nmhQ2cY=c})bdlV*?+Py8ZmHFamRKfr8dfcdwn$gHkHAm6< zu6QcYzcR1y<_f%li~Fo|gI?L1ttx0E{?!+n)tVoTGakGD78wmX3YKs*x_WvC84Y^h z7mi3;>1dRj8%x`t_FqI}p~yN;aWraNdatYkS%0uuDfNe#l~Uistd#mgkyE!h)W0A% z=q0t;8ka>gHx9P7=11d+_xIeMa|1`g5{^a>OKDsw^u9A3k+hQ0*u31_xIA~nJ&494 zk$t+&xba+q-lVIeaZJt_H|mc~8{-wJf~3yqiFpxIo{A1 zHic=5m5xTam2&)j@1BfkyeqOVMvE)u5<-8bd?TxHuGzOG453H=;4t;XeDhaTappRnjEZAUB4#jmAL- zpEri1furya!L?}pB}LH~hjHWI{}_z{?aQr{HFY=rjA*P+54_iMvYK|MD3uZKK%nQ7M z65TT^({3MI2Nt)lNzri=>N8`Z1PF>E?z)@r?W~GcS=teji_h8((F;7~_XtXOg zH#%N*A-JN91R==OL!E$%T}5iMeoJ9F*ZqB$!Kg{ZZzK7c-7vB#z!K%AXZ!{3vm{? z(9eyBLb)*^lp7O5x$!V^<35M_XN;m3A~zOVESk}H$d8bp8(ZAA?+lIxjv`wzb7Mk5 zH^RAbKgNxR^Q4uIM!A(zSyMX?(fC+o7qz+GcrPliu(`8h7k^)Y}{l90f}_H>MQy4jhdKFm6oElU6bs?aGZt?bxwb zAR3EB_JcO##z!$Z_pPGwRKcv2r}Ji|Jd-mk<=Hg8?N8k^a|2V`*^go@nz`|mZ_ba# z>&d;h<7nV0vK2Eop2_J(I2zleME$dA(n>~S+j67Pf7&fiBN|IYc5$0=2A{u#-{k+Zf#+P|H_sw0;E{&VfSmv6!@s(pnW4SHxE_dpm5e-ajXTQv|XhZ|e zYR!*EpP!!T&(Xk9u!N)Wm7_FuPT4Uc>X+N3m5j!=<>p4m-dFvIXnZQNUs=WHlod%i z_pNe+=J$f!Xvmq-XiS^YXiCw$>}fHgfvN56iX@9hH0pU0kMhNj#&@wef1Xm0qsUgw zaicM<8{yoDV%%s-kybJq+m#!Q`g`6Sjc6vf)6fEJ~_`z11%8i{cZmds|Rx%n} zl^c!j=`M8j^_j@lw;4B9W2C^`w~EH^wi%5-l4frFX_>k4SB!qkfcj_T2Bx;Nt1TAI z-1yzrnjeitJr*9p(ZEr#gro7Nr8E_dT@s@HuNY}1qp?G|(fISsllmeWpNs68HseMk zY6ElM91X8s)QE=Hu3$vNYo9lw;ccCx-*VtS`?)coAhL~l7L912S*`ie`0bY!pUP;^ zQLu!ffn(_%xKehD2po~L($PqjITN^O+RK9xjW0yD*)FaWJmWxf-zplrn7QHYYUYNw zo0%J42joTv>YkY!nA*;^IxL#e*u~bGAB|sDZaGSu~^3 z#nzf1jpoze-hrcmqhJX~qpPJf6^-3J;dP6VRx%npmK%+w-8;OAXe<-ibxv_^6kOxV z+&joJE9KyrSt*A^%t|@LlaH^Uf5x~$SLOwmIt_CiV7iAzvs&|`aeQR)V2%ckf+ZY{ zLr9X1$V#DiRCtGYq?L|FP$~cXG|QRuZv6?-_)28gw;4Bnj?!;D=t?;n(KtLIPlTw{ zV-St1lzN)QJ2pbUcBba$ykilKAvX0dh(_gu$c>+)Eb3?+j%XZhY0ZzusH)31&?|f7 zQDiIXI2Fgm1&*b6;AjjfK=Vi|8IA3OX#Ddh2n|jDb`g!`BKwP5oEsZF`i%=6jgv5@ z2GQt?>kUMM=cK%o(`GbINzw0^QU8o+OmIYYgU6y7jg#_P^P};2)uIs`4IBkakQ)?@ zlhb+!j>d3A?UWR0C8M!Ztjtlg^AWk%5RDZgyD?oHjX!X1c-S9B&j$Y>8hFyshz32n z7~}>$x;Qeyeb(a!{a{G;kDNBb*Bg`@XOkoo-;c&+g_GaoXy7RPM>P{j(MY&T<8h;6 zBpTt*IZH+3tWT^mqml1-KxahbYmxn{c-(LzF8#)d&W#~(97N+H$Bf2M+lwMg2KN=GY0u8cgR?3yO*8FHp zyYkR&I2t$#mT)w#vXrKxG1?a1)iKgaM&r|RbK{l%*}jNIt#Gy~9ygq=ai*M9(9sy3 zGox`M?&yPY15bz6^bLtFBM*~OUKN{o4B$DI~9F1F%8;{DP zm5j!xfLTlsk|cPLi~e(a4uuDd+c#oPlU~!r3`joEy95 z={KHqZag2VlovvkGCfo&Gf*jaNm@pwJc)5**F1GPoEy*QwB|=+?Vi04;b`C}yn~S& z(^Gl}&JE1hdovQGm5j#Ha&sfO&0TX4ja98TDqeH)OrK9mW90#N5tb{pk%#NG6 zF(*pDE6RQLb7Km|jgAhBW~IFDoAaX)sl4Mvjs}i`C7c_x3ujG~`-^xJ6cL+1wlw64>Yw4zE`Y-!DpM!x^Am@}s@sH{XZKJiE^8I4cMt(1>{y7?tUqd_>`+Ke0f=0!!y)w!`elp8BTx$$)L%l+0Ts|kQ)bh zESk}1^v(IvxX|88ol|fWEaBW}QZ4J}H?kNvn)9?>>1dQ&DfjI8%V&s2lW-197gx%` zIr$sUYJQ^t$3ZlH$eYo?{jX6eKc?xo0jYmRZrp_2I5@|m8I6K(&X2~sH@Y_G296?I zF>_-|^;e$s8Vn&rSa8QB|Z_w5lJfHpY!r-BM<5?31A12IW5c(HM)|=oYMqIq8<8s7@%c&E5hEY!x`er_BL$3ZmksatRlyQ)XrjK-l+ zf!{{uKKs$Q2f1OnESkA-uy4+f#(bAaBfVq#HvH1q?L@uqAu8_kbK{s$H2N3JXq=Weqj7qUejAqi>__81}xv^}sD{etFz7r0{ zqjOqJUSX?IbdY1_#(B0GjloGX8s}T|+qm3kKN`4zMuRMxxiQGmnx7lzR9?I{M*~N} z5{|~;q|#KSOvku!zC~KeXe=*x6dgLC<1UECI^moVEsn-n$p0aJZY04!sFeTY%xGMi zHluM_ihlo``|L*pQ`^p2aTd*JB=cJHqtU6d$MqZy90f}_8keT^4xAf%x?lcK(YQ8cMq@<6jK;_~{r)@m*^kC>M>yvw z(Tv7$-<%(f^XuHFI2t$#mT)viB$TFdWABt$H8M_G$!IJuw^Al=c;jY71K8ICs#^;9^#$d_kH$z>ID^vKNN`T!Njw-1o>&;Y_W*TH z!BMb;qj5`AH^RBm$rCstX(gkvvfOCwGvm205se>&GuSSU#s!|7`&Q8yABx7^p=jWQ zVMOB|M5D9EefFb)scq*1C7QW0KEWFr(KzbNb^LkCDjWq%I2!j9MWahXth(o)qw#gQ zm6Dkpt4B1}3uj28I2uD!a_(D2BONnyV`9Y2jfsfcv97w0S~bZPl`&<~j|Qf;ouMi1 zJjji7Oly9noU-DQOSn>S6fEIrO!SndDkX+-W0Ff+>D(wc8eh+QY!IUHqi`;6Gj1d? zZeZ?PMWZs58<|jURE2V*3c1l$_RqL$!_+q4$&op3vI4Wjt14C4jNDk;amSN68aN7; za5So-N>kD378k4dj=5wszA85w?N@Ku8PWJjIRD8N=f-7uIrpuiF%6D`absG+%#G)< zWsn;$SHz|^*LSza3na$}lr&d-e@Zha$114n5SjpzMFc-+_rdGBAE`Dgn#fZkw!nwjKj>dnJa_(D2<5f5gqVZbJjK=F}Ga9o}qH9q;?Hq3a1<=z zN?DNBJ8*7vN4dS7BCTXJ>dKAATPrL)5Yg^e;anRl&W(|locmVM_{cGHh7o(o}97fN^7qMOw*d z)RtQ*e?EQXe-Vuh!b!CmH%1{FF!!yZu`HAuUxjjGc_=qlq~wcd&_AP6=*oPQp9jIX zvCP-}Xgp_i#gk5SM~|b(R?JFSo>m%1qoN79u_8rU$!OFExpBrnzMEx--n9=Q8ovqW z27SG;g?gQeb0ZkvigOCO84;^ihvs+I*v8X5s~VD`az>JSxut#^3%;6(CRjAi7(2St zzhtjy5lcWGZ(doo##WjlKO-;DI%%c72IT+Q>tDmptAN*y!nsMGKYg!b9Qi#><#lb| z92LJapQ2y2E-flw%yTb&ueak4eT>7R;dPrMR&-~tXc0@;>vxE&)RfnkEP>WZE9uoM zmuu^~U(SNp--UzI7vF#SUT?SMw=mi3>UJ^1>+1IAQ(CLrd!q7Xi+V(_i{jU^RNmnV z=XRS#!)xoX^`A+v)FPIUSG21%l30`L=sYeD^d?nHuZ?R~2 z-SXYn@I42NO{>u&max~o9i=I+GxK6~C!4g=Ud!b=Z1B2W;q@=!+|!2Zz2G|5(OfaO z1~Y1_yPMDCuHGNlbo%1N=ZY^pI`?|i%@Ef{=fIxqm4@qLuif){2R=u?W(l-TT1l^K z%JtgA`tnBZDaa$eK z#9q-NmN3`DQc6=?Uq`+6OpsR6>#A~dxX-`?PmM${(l`^^aD5~u=(~-|>v18ky+U4l z!|N;=eItkOLA^c_(_Q!L^{ivgc!a&8MJ!>jy^6ffM!oj_XRi(Aa&5PC=mvNd!b!Wu z*ZUWz+TZJmax};QN07_ z@SL<*-LF7eNv>X6V798xIT`0z0a@LvqN4JA+HH|otx)g`d;rxy*}=- zXymYWdF43viWaeiy(Wsh&O^N>{@H6oxn6&5`rs3I-CQ_Nw&6MjTp#f3^}?jdb%UBQq^`aPQCAqFDH;1?1chQJf$hGZ=hbUa7ioawW(aL*S&xAukgC1aH{O$dUe1xV{5M?LS9FNyke@c z^353a$QYaOID_NZEE-;4y=`TTy`n`dVXq@Rr75p(qFzV3q?PtsF4ykcOz8x#TM4Je zDfaqwQa;9x6Buc`L;UkI=5g!62q*z0qk!Nv7YI5oNIa=?}*9;7WdNk>g0v< zoXeu&)$aM?5cY}|v4p*jbCssJEx6>dfw?Y3y*`{Lt)$nM za=9LOY2j>m-C8&^++wdU+489a<@HI+^g20adYuvxm5XBBOW!LVBXC}_Sv0&Zn7Q&7 z_KFsC~UTZ@2`V{K* z3mJW5Y(}e_P`x4xf?2B7FFK-fnZ>>Ixju_}okd#MYkt=;_}ObZ z=b%OYqv3Uit2D)R8S3>#hqRJjmzC>vSlwo)!0UFxne7yNotu=;11PR|zBG8VIBalH>( z1+Uu+XMUvE>;GK&X}|KCcTKOKIwsepwy0c@q#hYLjF0b~|G6w0Ugx}@Je9qoMJ!>j zpE^oYTvz19>ZLYmCB1%AF4skWy@iit+wUNpH>=iA_J&bw8)w&h^MBz%*>&hH$SJLa+a=G@u;fQzObw}YW zaErYz1lJjUy*9?o>*1!*d{dJrf0Rk~+|OZ50Xhp^>L$A*q%vIvY`u7}ZCB3dKw_f)eG!Bil-&r^xImKQVC*|xQdtI}+>2=K(rq?xF z!t3Lz=e}1=0XmD5y6gV=^|{2oy`@)b5eotlctyK<2lo0zQlNFxN_zdST(1ug z-9b8F_lhY%#~*5`5xBy&gy{UsO!kTv zv4p+uNRmth_WD>spmowpdTlM&>zEhDjDy!*g|jqP?DcchD`p3k*N!;n_&L004|C3R z&7QXWxkuSc-zzRooX=y_%}@@1HssZ2_KFtyj|SI09HsF&hkl*L>-Xi>>ob=> zv@g8wCY&$aVz0|=IXkGlb_;pkC**Zsc%7J}9vSCXOaVH}Y!;1ic-J1oE@Q7~5lfis zK916q*NJ(tW?!4Ml3v%9%k>QF{kP$@gK)m`ioLFISmn<1{*VUNDfUeO}|(cs!6s(0WVei%92qd;0ouiuyJ_0N0m`Vd}s7tYEy z^;(O1ofFeJe6(YFJ;pZ1;Wfu5Ur?mQ8@L%DuXFu+Juz>3Jt=2;?VFZAF^nD=Trmac ztcpPkb3M5K0WY#ww8(!nyq=WPJ22M=k;8q{q?PpgL%CkvNk@JPuX_k*wO#DB0rfiH z(p=9>nO@IIm|h3O<&UDsp8H%e1?V)`(86AudVHQXcf#wQ!fA>Xdu{gQ?4YXG!SMQprOt(G&QBQE!)q>p*Ch`3()aoX>b2Qp z(a7P;_B|QTT;QH=4O+w!j7`VI1=`g+u-8wb0lav zF|n#YrSHxcw-374l1wLBuuZvLGoBv-HoidHY$Id3OzFF z)r|;eo$O}FYtI|U@!QnbphdZdzHTC~!zDx7fw_JV6=g{3eZ7*NzusR?;dXI$XwAP|Iy%jV^V3# zD}J+c%}o|*rM;HRb;m0oqR*~63+KmJvDcqta&}O8y)$QeO^3Kn1lReBi0>6sfX>e` z>Sl=Rm?hh-W3OnD|7dtk7jd2Mh&2=cnd?vGdfnmetuam4zKd{vv5UQKu;lEZ@;Wtc zdaZ!FfNMoT{sf}zx$hNIfX)U>*`Y>Y8P~(xJ$=nG_KFte9%c?#NMAt?&qH2U6llAW zT-TSI!-;jrtbIPwL~xuKVzF-pG8K`NpR17ub2XKe)m{3a`>_F zJK>&g59B6V!~$Oi*Jo^{sT`i;iZ#zBNh|5~=W@A@c=Hw-o4N|;Ppg>g-w`=GsJy-$ zs@GhoUSC1I>Mwr#UNHse{7tdjEEUlsH?JU8TZUdZcwczxBS9vR~>rU20diw4)>$8E31CbWnp z%ynK;Y0B$s$YEU1U@7VKmvXtjw&c0T;B_BSy}4cNbxT{$4l1q-Lt_()(WuvVQu1ea z(IdkvrU0wAw5gl06V&U2&rZUdVGl=X+eC}KZi`Q8Ft4Y)F80iNUE-QvKXK%b$;qDkIgBa5>TUD7>;BlZn|ltvnM_{M zqTIu**Cnpf6xUa<-6sxdCB6PyZVqqZZhkhr?kB3Z*H35aXSu3(Oo_@`OMCq)bS<$w zZe9FU(9QV@qTALGSf<=St(Z}q10DDD?Sb`ir3g?&QalM1&T3H_xYgR-_EA6#h zuIYZSw1d~~qI#!9G1pz-z)Nbct6h`pn$W#^1G0Tpo_pzg^^n86$Zm#mxNCb?xAy-xPF&cn)2ERuIpqYCB6PqZVq2L zE&E@1JwQ}<%olszGcPKeVw&r(G1KdYi0O5MCn}p&FMX~}X;HnW-*vxUJ4L^^ioK%6 zHePWN$C~om0?VJ*oxQXDgsX>@I+_0IM!wne2 zE5DJ^H@LQfYv&YoGnB)B{LyWI^hz!AAJsSvu4q?j%Imi=f!0YY>2*W7Trb+{>Z9QG zKv5k_7jx~F5S42+*M{xPYs7}_qXyT8?F*vvyEOOG=eibLyCqmOa`@0IcjRkCY7tAQ zUeT`JfybtG5rNi8E9v!*;GK{ET(8j&=Wh?M2Z`!^-XTgpX_FcYt8WYc44k)5lh(X?op*Fu0Me5?y`~6UW0cS{+j&|+X=3R-+lJf zhuJGy#1i&u*-BGh|L{b^iAmB*di}Fpu8((EGaFvxqWb7)vDahrqVg}Fs}(ioOdBrD z8P~%NLvVimJI%fHz5WHR$K+Wwa(M4wUgqb*8_*(_!0T~wfp+x{avaX!?`WO0QeFp$ za=EVSxyO2VJxo*|*QQ>3r$k1jAC7og!Ss50-t>BfCo-F*xR=^%Mu2N?B^q8owNE=% z&V^HpSi)W}&nu0&W;O%YD?HLldflpAuj3AgG{b98QGI-(n5&f#naw>tHjTj8RFzWK za}6VL7k8|yX8Rga*mBD>_tN*eMM6|t2^I~n7e*ibk-eftEMc!BQ+fyHx)q|Fl8uz~ zx?Qu3&;@TcuZ?Q=$={4$dv*-h99 z#^HG_3p+7aw1_3__2HD#6xW@jqT!JQX(hdWU9Q&+{hy(6_$X0*R=U{h*>HdxP<4$s zIb!DUWY5guDXz%uYI84rulO=n_1UtUA+LAzT;7AdqD3rWuaiBcDX+NGY?$JbR?@3i zuGfkyPhJkMM~mun+SKd0ago_g&#g7oguK>-ygmi5yF1h)BZoU+ZtdJSiw4)&|KfMB zSF|Yi(D$!&&Z+T~ro46p*QZ?4N_uT9*Xsf4J~QF<7*Ty*w3zGQyvXd~bDa@4xxN@R zxxQEsnLTalk>Pa@a2=dy(ePTI>ww=`!gtIX(4ySK^!j2{@4)rCC%C>?Ag!d=Z{0HM z_57z_ISgKp71bByioFg=iOgO;*I7x^>uk&PIwvM7zE?f>b9irX9g@;r_s6Dx|FL2T zdqs;_!Z|$KQW|ru_#QEt6Cv~r-yzP=!((BIw*Tg@5ulcq6 zK6oEqdx`3Q7mB(5Cnqvp{2cx$CArQ$4*W#J#|e|`;<%VPgF0m9a2Mq8e{w7uUY|Pf zs>9hUT9kVj@8CzfT9Y|kfot-H#W>OK#`p@^TeKs3R^Af#9^<{}-uUCL;%+_4L zfLEN#c)q0J%Y=FDzYJbqR6X~(#tNeP3cu@q4lldl?-%&mA1z`DxY8WVm;Mgy^-y?S z7XK%&18}m_=huJcS}|x+UwG{!s;_Lr^(t`f>ep+%V{-Lulj|ycKJt8wd+vMfhI+j! z$D+aY?ROu=udLG8gch;DE9VORwnBqvYmL3`l@JZ9lBAW&;Q>3xe6Rn^_2`Y(MtD75 zR1a&zb$C={_VMerHE(kLCTDW}HZ3M^l+icF;eAlA!=uzqvg30d{_$s*GFP<7e>CRS z^bDQ4($4H>iH2{}v|TB$efP;n+HD@0yH6o9Z(3RJdp6^nc=F!08^8v*ds9 z(ddrW=8+j+IFT7k?7NpvxDOFHK~#@Gb}otIP}@c3J(fea8-Bu=J2@YjH%YGj9O1Pz zuX&=PlNXuGTmIt8wRw+Yf6?%(!)uSqwGB3}O_clnmgM~=$-iy1nlvM|4Yt;#C8_Gq{nMgyn5&^5;EKxOG6n|pUamlwDKIob%1ou;qvKlh zp`-gs3!uY<-cH)6=o1&PqBS2n3~9}W4qHkKpu?QjBy<7{i&|so2U!9}N%NssUW4QA zpVpd$UO61z4sewQ=w(%UN$4LPw`L-spD3#DNEbnG_z{3ka5VH|afU{1E9e-5gGz7g zg)30{8$<6^kiY(?p!d%6-xzwI9Ph`_k59`r1^tAS#H^rOSUcF#&`(T>%4>b-Cpn^0 z&l32RZbb#UOo0hQKUQUj>bgt>y6BMG8PI!0^}Y$UlIeGpYLm!xvKkKKUpPS~tG4w$x-jAW5myl};`rx?4 zte~GC6`4aYpv&RC@q(zROnJJ}FSJDEs078psPukOfiAOXR(c|;wV=`y1*I9#&&liU z82V`l{=l5p0_f+awH81hl+x|_!+Ya-39T`70z5dbHHO|JDH_j@k`_R}E+Jr7YYcr9 zD*ZxBX`=7`n>M^Z_V#|=0KKoMemGSO{TRSI!>{x!d0;~JHIji)t+PJoBIT4U&k=0)SR zQVXEp5EqRje2t-xc0}XI0_`g+z5AwB`kycLTLI`Ni|Qw0#n5lF<wFof#wT<9H->&Y{)V$Z$EI;S z@28+ob0lU3{rQ5(^t5!PPY3idt{&boiy<;|$PvC211UB>Y*(^Y>$Mtp(5@ zk1EZ8{&+!e$Ix*%(D+1NYXS5pb6N|a->$bappVz>&1L8Wc$%a3oy*XB=0xN3a=QTf zEpgE}JxSY1p?Vxvm$-xM$B>b>MG+iOje<^Xy>QTnX!KqpA^Vl3)PCv84SG7$pk^F5^*(EsNuEx2WCe8bUN0R2r{YXS7P zl1ek6yO!1@^s0R$qH#e?YYhF!yl8w|YCiPL(dhHS1Z@{U$C(zUl_vWCUML58$*cFH zj=ErHKtEMfzmzMk^hZ&nLu`HZ{;9|C82VC|;c=yZ=J4NSi8Ow0%Qs=G;r)vw|Ba!4 zY4LsxeOXMdDd=BCBxY6V%dvKBPD5W2;os+E=wHX>?^7ZO2J|5X(fDYN0uw%`f9h#1 zfWFjKngRVYM{g%>R19|ntY|HO{zX!20rW2|r5Vtd#k9tiPJq86iTbB1{kWKD#HSNj zeCYJ+p^YniO&YG8fWCYkSKEpHf2KAG`o^{LW4->OdRDR+dP_vUxLcjmTReux(D8*B z;64ZBlCi^zSUC8PM0o zw8qd0@b@Gc(0iq!d87r_g0C_3v@IIfOT*Ys^#5bipug0A=_#o6(?s=~(PHSI z0?_EFuJpfC3{OIDiX<4Gtn?-k=fBBlHEkA^@2+O(O`8??Z!$tno9B5y3B75HoLpn* zOM_UYB;S5&`%fD?-ZZYn|4dfS8a3rnmVKy9z)+f!SEP*$2k9uq3;ou zFQrz{_bBk+82X-h-jAX0m6K}<`reFLLGP3jnd2=Dy>p6xDpSUwsf#0jDiT33px zbeRGZf{u=BEr7mzLTLu{j&Z#mL%##i_lRmOfWAjTYXS5<^SZqN`d&G$F?0gFcUo%< z{rH?{>XafafR1bArp~^`(4T;}E{@tx^k1FZq~ZPY`;MFe=x2!P#i^o7Z|ZH!cW5i< zeUc21p&yS?pp&QO-kVN{@!uG_6_Ib7R?sbv|HjZyba_99ev%{C6!gBf#H^s7oD`X} z3mW<rsCnre@pg)O9KgHJ=`V?%}PbQ2U z-ZyUA@Lt=yavY$aDXPD4il8_Cg{r()5ARLqs)}XkgH*+GrJu(Y%h75YoHlORn$Ay| z&@V`s&@YUe(1%1NW(EBsteun8(1+qIJ{4;W{bEaG2IeVN2K0L|y#J*{6Z*L-JB)LB z(;&T_0sXujH>hTl>BAaW(OLlg{FK%L=ociEW8aD7C@g0 zZK$tF!(%o>dss?t+=QPnM` zZrPfy%Zbb&TSFg(wewK-4E=gsN}3NnGZ@J+%GVhB z`ACH8J++(P|nW<4@-p`rQ#x@u`gue&Itj-R+ss?{Q7&_c{`@s`UG?c7cB(cR$vKSQ`2R zdHEGE1fdA}xd{qPa89Rcz01~G0DWvyX$JIhmflXFOPO!7yh41KaCDi+7p7}+!>W5CoFG}+Qx0DVeKX$JJE zBuSVI9iQ4YP4%?K&_A?AQ-!Ow0D7gPGy{6Z)*3@6z*R}DG4!EH(Ui4F^PyLIdC}zf z8beBfuFGGJ9$C#PW+Xc`k`|Sn8 zdp56+!O#itLQ885{o=f6T9hU&fZmiAu&XtO-kK9l@5y7xO5ZBFNtJ&7;M5j?evYWd zWn1{knWoQCqy2s8xX`Oul+cy_CD$m&tZ7-&g#MMqpUyG#z$>U{o}%%V~|FFTlw0 zeOhY)^g>E$2J{~iT4U%0czs-J3_S^$KT0itzCJCQeoE4I0ra0!qUqzOqfvt~83#?YHFvsSStrAEZ&tx|je zC?nL|4sCYwR6#Vij~mdNw~k88483_9to+6 zHHLm^Ou#5<0rU-N0lQk`O8-42U|MOoWlNPayqCOX>$(2=!GJzU)O7HQpf`8SOC&rw z)4WHH*JR|H_e?W9hQ3#d|0bi=ymx}vWSp8i#d(dPcaHLYGB(Yf3v!Kb*_ylHmMxZ3 zw`|R^oXA|3)X=+P?Q#tE485BtGFQqN7|FpRg z?TdROEYu!DC#_RlYXS7mQKbcy4s%+Q(5t!vaF@K+82V*-0i&e(&@)#cvAX)2G@Q9I zCz`u?YCF+?QM?@JC2!dd{jhmCpr0pdx}=MtZ>HeM;k`MIGxg-WuJprjrlyKz=so#N ztt!1I&eSjam43L(pVcw+BODX@k+uo_sHDWKD*b4z{nxMbW3YC0OhZ2w!~0(`ia`x5*%Qq@J*_eHAqCNVxU01Q`Vo%O4CqJNTH{J5 zz(*yu#?Y@qA{;HX0Q%Kw(R_@rN$8b-K|3~0`(isl&utR)t#-H)dE9=msM+5whTbnJ zDqisP@O~7ka(LW_o(@4z$u$N2$f&58ri-Kb`~-hi$IvebLB||iFgeqFku5PR=tB!4 zGfZE|HD3bgbPDE5Ph#lb+@ly6(5ELvbH5~u8ah56Z9b}?H3PZ~AT=nnRu0EKQ+hjw zJ}o7hkBn-Kq2rT07}8n*{Q^g62J~R|jiD3Zi)_6eL%+rn%|i>M1<(bKdr4AjTPDsBe!@j0yp(C?N33|IO+DZL#-&*Vk(y$P)`^jiV_ zzPQ!`==VpJW z&zISUnpuY0TsSaZ=RYK6^|4&^okUJV9L-d6DIUb+=N~g6%`fOPsXXas=%Ms zF?2N@!?9^bF&V>qHR>0b74({v$c&8XN`DG#yA?F_rycn%P{hE1o=ysMnF13)zXJiR zNNFvAUYSsuQR$hu-j1PHqP?o9))@L-2!2&TYXS6ZUbiQQFnPLga#~~P1h_h_HHJPi zEt+dmqy^AB;J8ou8bjX$$9>vS+ll_}ra?bCfAsr+K19^?w~C>U2fV44hCVaGADA-q znVt##Ro8_68b*i)PeXs*HgDNxC3!y{-e+4T^f@t!SwWwRwNzR|pNF-*eCYEN@++bU zf&qOhDrtO_0uw;T$D_?NNs?LseWs^01Ny73()iM(qA?+wUvsp^(CNbPbz5rz^jS%z z8I?ZU(i%f2z;j|+W9T>&HqVt>0DW)tnVII;(>II)^r52W!dNl%SCYnqk}rT>bxn|0zhZzzb&7#SA> zI^9malBB={l}@)^-#c0hpcibV8PI=7>g^c%a7Q$+x3tF4rzZpqX)S>M6G;+qFuecd zX^ktL0RQZ2jiKKZ5zW6yEr5P=N;LoKYYhDsB*KOQ?JFz2=cYmbcZZYXfPS&4`A@nC zddpS-G%}%v_m-^yh;GDWpw#?Ws~L-R-rpx=(|cJMWZ zeg}L+qiQ>GdXKV(_mY+V)7qmzvi&8Z=4!hLdNZC*4IYea>4Xb1$I{R{=S}Dsxq?b> ziKUGPBU`$r_#S|vcT1Si_lcX(_XSE|R?zpu+MOv4y*t+KLJBbS{VkCho2D2T&_~;- zYSN5KcX9$9*IEF*b6#l%^e#EQ9Ye>JKdfktp=T`tLs|=4}#8q!vKG3)^+~HHJP8iLk##`^rl1v1ye)`G07FkWCiHV`6Z$})1ZD;OT&&%v&*?3Lu=W6A%FxeCi_C*6rvC7b+o={jU4R9_ zSNG|-?Lx=37C=8MrZfZk0Fvas3>{bgEdxBQG4!c90Yh2~peG!q8PLzMwZ@fBfCnbE z#?bGNh?aAu7C?Uh+YRzHhW?-@TFy(;zOvG{jBnC~+>T4KT>U+2p>wcJ=RZrNIH%A3${&Y95103|Rh=(k|)Asm4# z{Z?0G9!_ZJw-rQ2hQO@!mbhpcCDj0Wt0P*jPf@T)3!vYSP?`aKbX;%8&~fG8a${6$ z3|(pktp(6;%Io%mO20X$HHJ=r$E3B!&?h8B%Pmq1pg-)2mRnugjx>gzMk3r+P?|XN zF1sA)B|l~R{qm=O0rX2n%>#BZ^fOSSRKN0;t>u9PukrByV4UGS24|w>p(y`NMyuta z0^}Nm%O=)zBYxL}rplF))UA zd;->ThRdR^bkZJ3Xf1&LU|eYi^oOE)JBCjCK2*>eLnm!QUTXpLhjY5U0Qw_otub^0 zoK9(tp-=Qg3ru1Opm(uF%Oqc8=#OIGM;*1DIPI5MInYbqr(b$okMjZjGEsxD77g!C z+_+C~sg4@==`Ga-hR4ur@(h-tKa~>|ha}YGOv}@0USsIbq)h0~CQRth#YI&oJ@?)+ zEh;jPp|-iwpU2wcu7>`CB{EN{`1!*-RiP87zyy^}T6I)w0rcvE(hTS|dA*&qQE`YX zTAs>jjiHnFbXsfD63xD~Jd@Jx1<;>OXiY+|>WscT7uOm?e+=zSi;@;Ve*E6Bd z!wAva)zIfV{6Hl`|DSC_e0_gv zbb_Oye*!=sM)f&8Z<)|PjhWDwMvQmPv@G@bfl7w{nQKD-+%chlVN1*k`j<(O$;5S~ zFT+|DQb5L_<*T&FI0=e@0o{sy5DngRWDM{5k70Doa?jiG1I-j_+z0_a(6x6IcVx`RacDy_B? zrxiA>(l_)QyceKfDQc#>#n5Nl#ye+Pn&SLaD_44R)P&w#Frl~Pjd#wpEKTtPl?;7} z+K7FpE;3v3Ms(Q|3(Tt?NAI1==}hFw#}l3{w}~Z z0U?76pf^XAWgeVY@$bT4U(Xz}w$RrHRvi-8AT327O9jYx=LKc{NuAy>)v4Izv}_>-GhH zs#Qj=b%(qGy>-W&0lhVvHr_eYx>JfDsFV?E-8sSg$=I~+5|?WXy>-{9#LUoJcP)qv zPKyk^bvGo$b4URhgVx<6BJ+HlVqic&Gb+$!7BzG{y^4-&&4-TeD=mNy6M8#_KA<3A zMQaQl4_d;I)_mx&rQ7qN!<^Q*(g7G2wZ@hHtP8C`S^#|-w%aYQHHQAYBVbx-;aNKo?dO;*V9@6 zeLq)e2K4TZ-tO@@8m<^r5Uu;$T4U%gfE8+M+LO(HSLO;opm=*NCF_C#$pVM1U###<3 zz?FVVLS$w}DFz1gwFqi2i$x869fH+6rnLZiAChG7!>&47MlQfmyI0H0)OjVt|SN3`~hkrqII1>2qMYYcs+Em}`WsO`j= zwySKcM;b%_ASzmil0=#~UPZmn+HAx1`(1&Bc!!bfI^lM|r=jp8@A|~_^o(X-VE2{R^AGoxpT#>=u zf;y*PhqaG<=;NXy^KpS_q29E@^K9|y30DW3QX-1{%+X3UH z1g$TqgD5kZ_MT{cp`hCfpij^1_JXVT89A*nbOQWhT5Ak_nI&3ZN|6>oUmg{$FZ&u- z`U+dL<{Y&hDt*(ScVD;h6F?s!YSvlB(5ENG)XQuQ{S6@5HlZv1%@o69=x-(Dnu3l? zT%*z#MCFgHDCi3cCiJ)SCiI0liCIBkgtgkFhW?HxGIa$F{XMkl$ru>WzeZ4}Cn+!i z^c|qRp#vSv$hE#HgG$43Q0Z?a^uBUPo{K%HEXKfTow)v5| zGcCWPJ2N*)jwqFF5EWt2t~9OcuIDa=kpJh|&Ut3;o$>ejo!9Hqe9!ZI&-eX&zRz-= zGm8*?bBgvX<2Fb1Edko|S(=q&HX-^}Tz9!!+Ayd8Z^L`%64#9o{Vtll&&n44MMLlD ztAjN2Sfl{&E_>DpnMIrJS?kqBU+30)`Z|mM0*e%Vy^vY7&7KXWF8anWmsyJb172;j z=k!f@wLPRn-<+hGJ1o`)n&_;jzi0@f>gl-I-?KWXY)(&KY^MCXz{;^e&|0hxdoyJY4(A1w&>-4UGxesv7eNYqE|v#=a#L~(nYU=u+H#a4Pk4% zYEG{Si+W=9ZUy-(xq7elbD5>+b-3OxyQkOV)oy!EZwS!LJt5WxS)!Nwg;9xqA{wy5 zt89+wm2PR%M6a||IY;!Wl(KQr*)PKEsWz3(5xpj?{5hgqL1h!7Gl6UU$|gkLg+!?H zGMgj%Zj`IHZ9?=t;AjZQax~zO|4sD&KH1_4h<-Pf9^%dx{dh9-LXL1K9(hWGO3Sf1IUm$&eVSG7sY?h;zKP$~(Kn zE8b4!ozvnKZ=v$DlcF9Mz5E=5zY;yY{9GZk6y1y7T!R5!h<=_={E&4oU`dwIKPqO)FjS(-JBBRaG7NGh8ny3dd{P4u22 zRZfVG{4DPkP&Oetv-S2VndOrA88q|P z6l*I-^ch>wsAr~yQ3lNxW93764?*KQtM~G&y|SDp`Y^Yu%SE5D4RwcE$|gi-{;o+W znek$$Y&ldd-FU{Cti+-n@qPKWePruXBMIQrUv8_-IzM0BZwH^qn3m zzr!nxQuLX>p@-b*RyL=n-)TvkCi<9^DkntWjfTF1~)(V4*adX-Ix{wD;!&&_PM=(7mr?ze3mcvdr%d%!2lQStBpTTeGmyXYE-{s5Jp z=gJoSDu`EZs-8X}t@rdNle*|n8M^2bLo}l*tVDl0K+!RNCHf?vF8VVbUG&K=F0&N< zSr^S}VJgv|!>dC=O7!RP#;TSUYXeR63W$D{DU5ngpO98INAxF?(x!?2lp$>*cV|?) zsC;5b*|_Mln)|5y>4361qEGTkn>M^Z<54ytIum#@Gw~sxi$3dM#QZF`Iieq8QTcPW zO^DtqK;_SSnGxlv_}BkU^pWlz_d@gssr2Gtw&<@xbjucfZdmW>uge}QhWB}*$I71m z21bbbuo8W~Tkq-fEnW0CQ@ZG;$z_(JzlB$a+C6;%=KI6!IsF~<`@?;#4K&ef(SWaI ziq3ob+^{I95AUxBrA-rko?n%F#S6zX8eCNV2L8oG5_1*r>GR#n=7>Juk~U5BH&e>S zMdt#Wrm_jq4@Dxp#chu0t$kF!AkE4#n-KkQlgi(5OB)sc_P>dKR`nzAK=iRx+SAAu zeL{d{?6XDx*sJ&SPuxO0A^ImmN-6rMDVl*?lyf?E*0kaMv#>7u=RsZc<$f-+6nzC= z9bwPuEAh&W6cEEZwy|d&CEHZpvd#DzqE860hGFwJUw!g9{bR4PIX(Ro-he2liT;VD z$_df;L-bGOMI;OtUF@K-YdE5R7M682(LWC=n-HA|yxgyBLi8g8RK9}S9MRnzlk20GNc%yKSZTP=#gK0;a0U`Id;}&{2o-p`#K2gtlrnBbkR4M z{FM}aV_1~rBVzdvLGg;WQ28dmF8XG#F8Yt?zmQpq{-Z^+j`6ACeG6V4i@{!qzSTps zjt{Ul(0cmsX+p@tsEh9GpgE$iPswtc==Khpz~Bk9F|7P?7;gI^sBDhtoBYb3GpBF% zDw`0U3H+m5*@WoFpa=hGF`Fa$aULq)V%vo1$0HH8dSp2oaBu4WvyjVqpMFxi+D{<* z!&Exhmo0h{;<4o!?=uREPl#UU60d~lb!kzLw@rC{ zlE0Go=?w;#S&F_Fui9Wh7x(G=uwHL(_w=7rH0vKe)&`E~e8rp$3!@U9-B(wKl+6*n zCLnE^=$22Fd&LXK++VFn*@WoKUmY{?(ZmtGE-h_ZPsdIc4mO$y(V4&vhO!CKPe2de z%WbykGuuPpeYQ=A{twjsImPO-p5Cuhz||aI_IrAe`uPm}qdi8%?(DZ#3-O)LFXPLf z=dIyCsyevg?dDMTF^X3EY1##D)Ng_1wh15QSXWM)pTbY9dfBU*6qW1_pxOAVx*(O5 zqqTWMlw*ghgl&wq3!-GjJ+;WvvJ-lQ#Nm3e>U&)A)9ww%U8Yz@8cA$%jT`P#h?-kgq*kH z7PrP*aWl@@ycI1hop+L-O6m+2io;uCA--FrQR9VMQBXD{05!tIu17L+4{n{v}wGfgUTj&e}=zNyd2{#I>dAxlqsugX%hJ?(>Ofi zj@yA5qUiocnD>UM#jZ1z- zSoelys1kF(K@~U3f(r9@KWqwJVjl3Ki7Z)H^p%JUwkHD2CS-NexKmp4UTkK5S$C^p z(IsGgf}(gtBD!pIEKI#;XzLOwDLUkX&=FlwDmT^?Dai+*iic7ZX_;1RNt1IU6fHqnGPY&m zaSra1cfJS1$|e$&b-uBnzg7UUX@^XUL>5zR>nVCw1K1tfVM)%2H z@J^uV&6Rr141k(}a_k?{Ou|5k_UX6iNjzZyofZGwWS zJA#vOiYpz8K1#Lh{G0pZ>SI9gB$eKR3E~1b9NYQlHz;yMSmobf7e!hJRsLP+(erPJ zk0S1{2++>I*2t^DJWxi$Q#x{_iz@tvC@5X={JYX4Z8HCkLOJnChAsNs}4=w*D ztnYCeXr7|d+kM&jcNzvdHYAGt8;@5`{#}7=WK*8Vzro13qr)oyHoG}D;>*gv)6z0# zIdZVUf4psT^6v`SFw%YG7_bdCWnIb3+G;ave9_+uo&Hv+l(Q#%E&tm7b2{s96R8yM zQxodh`F92sa`JCOm}`j(I21hp&hW6SGKE;f=*QpBKc?;mPRmsr=%`klPqi->eCPwk z(^Pt|CtJ18le%iShtO2}0UA20ElX46#FSEPeSjjz@=zRJK81arWQ>Xz?x32zhL_VC z8#R7N%W`tmILSv9%WRwIZ^wameSnqYy!{>Ce)&}UzUx_^f_D;?KCI?9TeaneuG)7{ z?f5JTuG(^gT~$%Af2-r~tA-CFRD5TvR`{%;79)j|JegykYw0^)d+eM2&L6C=Jwv6B znNqcb)Y!MiqR2l}s;_+oinalzOr?(^r=(c8jxv#x(Yk9aVU*P(ZK1+f5?)Lcicyy1 z%4FMwG9LJ=^s#eHnLADBwcOA7d&y*i=kKEzLYkR|Jz$Fg;796TR6? z)h0zwvlP>|q|VgeqR1K9I-MS%ifWU^pmLA6cH5H5#>PGUK)F0Ror(77Z?W=>sn<@o zV(PUgoQG-ep|P95^c*J@0mtRg} zI@d!Lg}zKC#_9Dc+uzd(PXH?V_*q?^d*tL^GmHrO4Qa+0(f$0l?*`KgRQggQrb~hp zIp3q0x_We`g?QD4T}{{N{4iBq5)?+I6JzS?QMSLw)Fnt23wd3x(@$Yn3!va8yVoA2 zli%d4b$ks+88GLq;dj~TmS3a*^&*u{RZz|4++JD&D2TBnii%XRDCt_c#)o@#FMIWF znkMWDVTZ$Fua>wtK0;@*$w>yy3>OlIIYIWVDK<{owC8$?boFtMyoU4{xyWRGRR!)j z!rBS<6ga?D+cC}mY5#|_RywTZVX0q}tpA?0;!UuIsWg(3gNMyJJnxKZ-AtuxB+XfuUJ0qFBATQLJCaJ*=?1^;L_`|v#U3i1 zg==Q9Zdki^v0#NqaZ>n zV76SWeXhWricH-m5f`1`XB7}%rqa?za>hdxxzwi+=eu1iXW`C9$T{Dl2|optoNuNm z(lg8g(GV|1>c&IDs3G3HXxL8_>4B7lM_xlA`XJ|gOH~l5+Y71lW{TNzBAQ~^!nXUG zMC@g?ITwgisI<(;R`InUMS8mwVqH*2toQ4PR)8V}rU=d+iFyaA^tGUh*zTPp&Y6Od zh#|rw4mLaTW{WVydcUe55c{B<6=1fUhztG#aovh5x&!eQDt+CbjW{n&k-i>@SlJqh zYO7dzI1+W8AyuqA!k|ch7Kg54UyN$=(!!{z*lk(yXpYD{;&2cPT?D_ZL2%E&}2- zDqUb^BfjIK$mK4Dh!r-QGDT8VwhPdNowkbYQSyqk2+mH_%aN$>_=HhItX))k1s`rI z;Sqo8v}u8Dh_c`>AMz-4iwHz`P#AF3j`uOij%T0GQ`fd>_SDfQ{~w~RxUT$D7@^W7jV6uv0sUZK z>orM&3t`mcd}e=ZzmO9ic@4!n92r||NSkE64jDTj#B8}(`!!1`)_%?X`B;xQXIDqC z&Y;p|ji!;$-4q#PD%K&E&U#f!Pu-y=ZxuwO>3WxkNAEsVkziP{jtc9nfuPQMy`Q%V zkKFF2ce|)`Wl)7~=kR%fQD_<5pH#vluc35hBT>MvAXw30mDl@Oxty${99Dl`)&XO@ zYsQz;+=pRD3`w_w)ma|g2G&ZP;}KQf?x%uR11us(*OH&zRQeSUGeg(W z%_muS36bhZXB2k;9VpnT#Bsj2upQM3hR`$WiF8>v)(MteZ|)eVbr~ zM;w`~&jgiCus#gd$$nb$DJ~TXeiW0M^-5x}i~j{lU%OX&`mQG_2|Ra$47Q zN|FlZuz>XbTAiZOAKb#o8w^y~J8ALg*OLV+Jn|a4t}myRO|U)+)+tG5%gKtNOU|$T zM X*vJ>zI9y7ln;Pkgw>U*kNGV-sX0Xo8V4Vfl*9;bsmcv-=mx?zJW$3zb<^WfQEA2dHvZlG$>y1{~Ha6l;?U{QHeZo&#%)O4F(A9NreD$T&-}mU;DY zc#d1wb&f>^ulra;8fz#(rQ7T@wdb4x6W?edSmBY^(8s1Zb|MJY@nD@}v2wXtog5yL zH;1ok_Si14#;J5iFq?Ikmm(8v)^{@c>%xrwx(NMM-F@2q^+~YqQaH{y+)ndANnPiA?t2fc2`b&~&Su?{qR1q#()AZ}oy z(6u6|=GUY}k!O=4N}F|(L8W_A!l?DvPILY^TC64D5eE`n&N-6}s!Y071;P597dDI8 za*_BaTeg4W_CfSi^3r+!$uIoUD&I{q^p=tmmd;2Z41CmDV)Uwbo6M|D+Y` z4v((uPM6NQGffdSg4(Pv`Kh$ltwOi^YfbWz z?6BUGH-}G;p4kGduTg1TBV8My>nk>Ebp~rq25Svir}2oiv1uw;8-grM7P`%P-Lj6K z3s!g(C$$`|VJ3~W1gte_X3NR?sKa_|UR@{MbYoAj&ZW|QjdcAvMG@>X%lY+}q^|3) zhOX=W5JhHqSVS6Y6s$j|gi&Mt)t?so^_B3*Yv}#;S3}yQt~0_^xj)2gIawce`fD(+ zu62u7cLwY0RQhWpU4MhFvpkZus+rDOg?Gs~V^dXguo@l~k;XbJOr^gy*0tZ@(ISVL zM_xl?gox7r(q7tn;Y!4}bR9^e6i3Y@4;UrRiFAcuHqI z!lX#d!y?jHXM^=mw=inD9v6tc&vUp69(fI&^>8~8#Ml%A>k%d^my`8ghjmO|)}uab zcRX0%pqMLL*H|+UBmzp;Hke=SIj8Cb%&+#GQ}qu&Mdk!pL>g-%MQ|aE8f)KkK1vH# zc;q#7))RuNf?%DKB6w%EoU9WZ*2nU)PEFm-be&JJ=GnT&4u-CCZPrsWSlfZMJS|7d zs`g;TOpHTgoeS23-NLA`zF+t6{(==Ac@4!n4_xfs6U>VmhcQXRJG13vebVnz>)|Kz z_SY{DwXOy0n-n|5%F5wbE9m-$rF89-(O)~GzdEdEhxkm)qqOIo`2m6p7G}mceAGSr zHwspG6es04%vd`c(kA;WCh4lPL(G<&)zLMSmvzd>5u?CrQtYsBHtXR~%XBN&3p4s_ zSM*nh6;F5BOpHU*)eKSWa4ty(>yurU{3=-Ck=M|5?V6G{$%;w3>LT7?IawcabPeUr z;R!cw{S~ZlQS69Dy1GHIz-IO7^J`U4m(JQV&1d3F)&*d7^Dr}5cO(y6DOll=*U(ve zGLx3Wn53(ErkO1#>ja1O@w~eB>HgzUU|m45qZ{?tWBn9)$7U_c=&!{Y{dE9JVkX9+ z>G}>>kM#?q)?X{1yQp5U!XvMtvla(c1u-^ZlCB!So#bSF!pY%rd39ZI$pvY!zD=>? z8tK}`q{t$h^(vP>4quhlbsd`IGck|c?yrl$+Qw9&+v_G{5bYJL@W^ZEtXHL_P3ABr z>8hbgX3NPsUeh%%>+;15=Y#bfiv6Qee?19mEw))ld3Dx+TW1Yed?rRjny!n%dJ>l; zBZm{_h6e>JJn|YkYrrjSk`DtZ@I#aRUo6%qIWBt{o=GXiEd?rRj8teODg$r)f`s?>Up7n`f zg-3Bx&N&|@sp`IhZmdE_?hvLMCaf*Z9QPHjpx7p(9oPHL>BUTKrMVv??k1(+=->$48) zQ+aj0desNFfpsax&S|8p7o*X-pkjR^L)ZBky1r@fnHUji{q=LO!UZ>KtcUD7w3T3m zM{!bPogY>egszyRtKKx2EhpwsjM49{kvGaXkO)J*L$Y|$2 zXGu`kb*Z1v#E3{^T>)0O;6{!0umekEe}zYJQe#~bR22j(Ch0271vqlDPS$kI%X(ei z0u!w7Q|tmyHftAT?Rvjr{WPevF7xZGpLzLA%p=FQ>%hC6)=)(1N8f$F8fkMFwkK&}p`gK@U5V~TLuKFg(Y`ItqCwpA-p003`dcS;=&#uOw zIJOg5KSWsRY+Wx(^EbuIv1vV2o)whOBdRuF?Z3`Y^XmqbJk1hO+N|wU6uT%bj2df) zLsxvn_rj~-5eL(-yBGhD;QbQtt89W5?^mzdkY=`=tj`%X>+|aK4o$LN_vnBGSU;jz zw`4Z!#Yz652FbcDsk3f3bk-dq{xJeXr1e*ik75@mS(q8?rqbkpI|){JlqVh5?S`@m z)>AF2+7V*5oUC&lUH_X`*S!yPW6zqg#OZEiv;GV3`rI8*Ib4~+S_RfU9;ItFSiecJ zh#Xe-A)MI13}MuCz3H-$Pq4xx4oBCoO{%IglufXvd{k8(Vz!*DuQ{v2W8k?%YdyEG(>8mqtH&;r2< zkGzIj4>MM0lU1;;_E6O?+;eVLCx_#CS?iu0b_rNNq1a`CY}OtDirDMnY7+fbj3d>} z&|hs`tDB`MvQ9>B_t&*x?GcbT&bsN?LEFFKtjr@0=qkr1u)?pj$+g7#0BmVy%gI`% zv8o(yQdd{VGZ3twQq1SeX6=bw+h9pus}B=7ELmIYIb3~sh=0fo5ji;=*%+W$Pag|2 zqrcAhZsh%f6&}S&jkUEQZGx43FdW{QEhp<7Cx>Hsb^Y%5a|eKR8O3^evRQk3DDs2N zdc0T5;p#SSUDq~v7fE@5MWnHA0&8!NFlsqGrSm=FS#vc!@*29XZQQB?&tdi{yXrPP zV{)@Py2kSAI{csA9s=uU6e~z(v-S;9WOGRA>d9a|HG>tSWkfwfw{v*2MX|mi6}r7I z5nQ{uo6r>=ab)K3shO;iEy&?h^Rs>~K0nhQsx&#(n6Z+rK>VCyg+?}FQIH~A-3qZ| zK$~i+JNdMam{fO$@Y@U#u#LDiM6sfvq;R@veBTkL3PgCs!SY&6HQ0oNUu6?R(snn& zJG14K^K-9Dy7`!1@Knh6b`(hj}Qn+fb}m z8k|+mCqqKo`}C`?3Q(jx#3IsI_qZuG%p;842?+4srGNh3yr*D=M;x%q`D8$ts)vN6 zO|q7Q^{N1~%FU%d=1twDR!+Zn{|YXB9$S($tblsbxSir-=WGQLSCrgGE zi1(0I!=pSYa+v9Qt4G;H4r85JeH%07X8qn_{mv_MxJlM?M|3;~tY1;=hDN&Hn54+B z0mV8#$#oTzK=lMe*Y(K|MScsgh&0w;!Fpp-7&X>YgJ}}F!XpmW5Q3HII>Asj!TK9m zpA0cu&K%zC5s}9F z2Uu?jurM=pt!_7Gn&_|aC{AiQ{CrAP5Ul9*)i0RLmXmdzqwAWytVemKj{)m96uY&N zuD2!iv1uA+Q+qF|x&*W7ZlCI}5kK$QJaW6gva#v5BnvZxb;6XF#h!jOJc^SVYe`U5 z5Ul9*)e%3lp`ul-^%wn>uT0nD=ZR zxnhmFz&ggm!pvY@F~0s)p({MflTHrLHkD1VqSIHGhM6rV>pF*Zt(mXCP9Ap1+hF~c zVs|C8S?><%W79k_4$J=fM#eZi-^F`2k6f`v*w}P;h=rNK+IiIrZA5>CM|sj=eZ!+{ zf)$;U{1J%LO{2{q z=Y6(1_VD}Cu&@6Va>668p@t;3)_vEnYyz<@5EpxyEtj1A+yBL9!w#Cd_Xr?4@~?Si0dgf z$;d{W3~f$xDZ~aKI!oLJAllpX)tE8Zci!O8#@N$>6r1c7Mh)@wu~*=$4SIN}8XkEK zHO69_zPiCuHjc=?LI&QMEhi$j8}jZayfAlgKOkkMg8Yks%%%R5qa^+NtI^KeOdTtT$}LCP&nn zD?aE2#7z`?rBPp;hQ8P#tW<34(uSLwwrTC-nKh?iVCu-?(EH+9E{aX_3Zs^&WA2-F zfmk}EADVW}k-p4t1G@73#bbc@BgJN@j8!QYn}sK3e|KRbIi3{YNiAYiyyI(Ma&we*T4GQt&}o z>Dm)b4K_%fiKfOM;7=HNl&Uc!XZk2M+t0$x5WH3S=;3@6u7O8+QV5Pw7=D#a2);W- z@Xl;GSr2stZ?gYJ=A3&Y5HXsRTG=@r4^i|Szmj-ZfFp{9cg;0E9r0QZMZGKzEvKXB zBqcC_pvs>$WT6LTZm zfw+}oWu9!rIVMHVv$Gg2p{aNyx~;ujsJRJ4)cI)^h|_JO=b_!^n8K(b9)14F?+HYB zW;x>xS4QC_HgEn1k74H-ylT`7} zjFD*!5HI9`Xoy{);ye$FE+bJtxZ&R3qEo`7I4MYl+ zi^d5=coZi!#IYf1lZa@inuh|+mJ{*fzd$_rK$kQScTnuDV77{H`zYEitq`BcKpYRm zo%V1$0f^oGED#OxVyuYX_6ehws9%>H9~Fr3h{NfNY%U!ik~WFh9f%VG%$5_etJ4>o zOw?Jk+p$F5NwI~E`r;z=#eXFg;>EPxQk+oQ`ssmg*KPjDozdRh|~N! zVu_ccKEDW9O&ZZ2P;qHM7&XL|yB>K+Ai^V#Ockd|FLFAL`k-QomzB$j*xbxN+$45< z&)yUE6UE+d)E7TMU+ihCXk;M1nt?bQh`o6rnu@)k;s+^7;oO~UU+u&5dAwh>1|D%_ zBEITZ6@-etq2g@rIVWQ8zgX8E)Me&RK-^8Sj~dO3*vN_&puge9!bLT&XDoeQ&sh4* zLu2%n!PzSIaZ}9Mv$F3_MsIs^i$H|OMu@LlnTUO%;=B~I=N6Vc=JMZej^a<=bjqy7M5ImMQ{vk_Mq6fLq<{K%(I{Yj7B7eB_F z`At{^Y$Fy!#TAAyYKZTixMh==`r#1=;};7!HrymV$|e$ZK!|GK9Y+pCDz10u?~AW3 zee5Y9R#5DVP&VQ!H$?{~Rids;>kGIqlG?6a&6jA5%e^8v8*va+T;&!<4YAD#bBREN zM;t&D^CH`|tN9`+ZF17M9JVhFX3LEj&X2g@rkxEytfbhtjV6unOxMckDTVlb2IA@r z#5F)fW8lz+n=7CqTyUd?xP0&xEd?Sxijx}R>ZG(uM6^@Q8iUz#BJOomY%)<>Hb0~Y zh*cC@9nMy9t%st6-3swX^hM`R<45#Gd+)Vo3x=C3Lo5&tad3!YYdylKA@=%l+jxNp zkGzIVRIZ|WFOixwuCxf=S-G5u4UURUB2Is_^=Ck=rr3H{HsS^hBJYTi!bLT^Gy38l z^hF1;+{GJ%2W%(mRR+c2f*Uo&>-P7$K_J4TJjweaN8IC4HqjT+PBrDsloN5l5r2W0 zp4#&pAl6Xq2QwRSvyY-f?ct_QB&ysXs7Ipi#5o>FO#>2jnAF5Zyc&tR*~g+|BZ@s~ zjJLM05{U39PddX*eNx#3;xHgK7|fPS#R2ZWNYpKhD!vDzMX@c7`eNFo=rtjgsDF6$ zL_Ofr5f7w!V;~SMQLlm1w8^5&KpZ`{jZ9Q{lqVg;1I)xL2t>3~&4Dzt8H$p<1$E>>^eeOO3R+quFCSy4tmtWVH?nYeTEmGN?V8wOaWpI>KNPX{^Ho z6x-f7V}}oW;|MM%^T=zc#cH)h@GEU{+_}z8@XlNTsWFR8nVc=hIo+dng)kizw~X9SL23vO~91_qp<8{}8P3h{K*nB8;`2Pue7F zAVgMs53}WDU99PA-HrMMZwx^M<6>f@NZ|m9_vx`00T4#r~uST}cL95&t zVi9S&-T+-IWCLj3^s`01t`n^A$ZM!oLH97hud<08z7hQA@CM7t`ktffdy2Km9G=|$ z`9s0lK(We3x>keW-xziviHod@&|la1WWHJ5&|kNw<&b1`Lw~)+E26Y@y%|GNH4ihR zzrK9aOFj4^k9ox5=sG-2@GEUn*INwO(#)2V^#e!OrFmJW3|ZS7ta~YD`Ll=LI_P?< znnbOh8LYiBSbKr>HiJc^>3SbXCi$je~OGEh{)^2b49onVkK8n>h(seI%y~FOW#Tc8QtC(u60T`PcT?hL4PuB7% zZC&p`f8EW_VHZ+oErOtGI;cU3>l5!(x~f?oOk`PKlJ_9I!=Bsc$-a~^67`CA^* zAeIVy(=0BQms7m>Kl>_jR8_W@VABt#-z!bn+67TJad9t$ zJ!mtP-PXWT^%simPsvnOAzGtM@v|^IIBOIF+#L|Vu0htwFh%c9%1!jxUKd60HRR8B z)VB2Vcg7G<5$p`(4_vSQ3 zAM#6HD`0B8)&YyZJ077pywUp&fpoI?RVaxiZfw`aJ2l=xwYnyo}`fysM>gcfc+dtNT49xLv9do?J zci|C%hWUt};1D(klS@51tZWYEfV8w}nB(2b#xdDmy*1v(?E8DFF{WwRYMwOW7Cd`v z`5VO#QHwxZ&ASYWJ_`MK_SQB-@Q)>xnzsRSTw19)&ZlFBJpB8J5tfGeD8jnSkf92f z(Z{_&=b<`khWupRmX_r-%yB+t6KW1klNItX8&|WN)fn?S2eYAiq5;g`DSntYOHJz` z7e${)D>cW4DLNsjFvoiM@A!#0tRTAcFRGJT`;vUXLIfJ-c!d8Di^@?mIsu`M%~Z2w zzX6*^mJ{yTLqA+X*@T)H_qhyWfj*AtmcWSTnI#Je1leL;Ndx5sJq96nNo~8>P$W#3Wg8D{Ufs zCk0{iN}H7R8MF&7A24R{Ld?cxZP`R89pT72eO9YyfO&x8$2P*;>eppWr*&D= zL0#70(z>i)`}osPM4(|ZS-1LGSS(X{hv2fN)5^v%xvc4+v}v;brpgIS_I%X(+Q-Uq z%u9mV+3Q;Rf!9{^4A1pLfcYoI+ccVD_81hMoK|Y?fqrXDrRHv|@7JZ3np^Q|JqBQ| zrnN4>_pcFwhWRWo_ZTcJ8#D4g)P!4Uqs) z{OYFQUG3pN9>T*@BV4pQ*fyFhKAV^K!i^qf6SA^p#RgSQ%KAIl%H6V@%-%~}WUc0P zxvc+cLe@_mS*u5GDF!A{{FFwR&j%^`oL|ZMyo;jGCl%&eQ+y{CTgs621G?p6x9X%F z!~Dq$!qQ}Y4w%me6_Uu_7l8CUGjVhw>-+#&Ycnw;i$m-ZvYgCbJfErU7-lw(d1<4u z*R@o`>=hlq0GQ1v-rmeov-WTgMPCd`%-Yr_MZ;-{S=-ttz8XYe&a}jrXNa+=y}=(% zAOa2Z#WcYo3(HnB`X9`$tre0;lSq=;e6pO(-cQgRxP+)HG4TMSw!Oh@9J8m9x05b> z;oT9yJc!~QT-lhgL|;;B)}9#@(7e%W&va>+wTA<9T~Mj%LCFFhfrj}~l4|YukjSx! zp`RIKp)z!#Cc}htVUw7j2hl`Xn0?$->)~}d<|R$2xyVV{1>;Mm0kb*9J7teWwa0md zeqzCJEXJF)9;IeGx6qHPS=%8czHUJD%~gIrhVe-4zR8q3&MU(gm|Quyx z{?TeV7R4~BR0d>NRt$^%@_-zRYL7?DJfz0n+7M*DJIO+EWQ|~ef#(CF!)yko8wVBO(tIJ%*NCB;znsqgKl=)nE%*#&}?8HLh*|fCVn6G z6%$vn7KHhuJ}K)04}W|sr`k`Ho=Rmg>zX>xR0_7o$FIJE@b476xCjB zF&pFUgMHYn9~-AZccg91Ugo*S1M^Ud_sYhs9Ujm#^aFtP_NtD!)a3ap;;6mXtLN)| z5Lxvv8?!G4kKq9ssz~~1Zy|wQ}u!%p^MEp=M*u z8(cPKi&Yo>7np}pyiaz%*4`AP=rq4t9o%T}55~)U{TM4hY^I1lQhOar;*K1LldsWf z0J|wDjM54F41Dd4hO%+}*cX3TAA6*YgRy_BgXORQV|VJ;aeq8t|Kn_!OldTO+#j$B z7cLq%5`?WO-ana@ueEpjDf*g65#ABfb`olD$7+@liW&1(l)T>_czy`;trf(m@xB%& zIAn3#`O0RCT5KRno6QU7(k6w(W=rj@s;=b4W=ri4VOEak>vc`!YZM(-?h7p$dj)P% zS{+XDL9T4fzUW@N4Tae^M3FkL%-7n!ZvMGri8&_BKdmZdU5#_QED@>7*T^0>)%KM} zCF@>b_6>=G(s88Rg3T>$!hPgtlpDj5Y*`~eAthGxa$MG^voHu7*~8ExSS0VH-CH8y zJ%Zv_ge9*UXlvJ+x~%;I{M%+k;?`ba=!rYn&%eh7QDzCb)>Jfnw2q{FRNF70Y>tpu z7}CZG*}v7{5aQcjY6tt7ofA%X5;xK)aW%pPb5?&1!Xqhul{cFZ?~BzEcL)gASxV6X zm}Z===`;8@n&9GDgqMd{M0To1)tsjAJ9FE+e- z2*BJFAJ%BhIorj97vo@U?%~Gu&ZE$J7LQW7G=x(%?2yS z6Q2 zq?+vJ7?%*`q?&C1Aem-1hS~qjCVJy&r#CK`dn}t6j;Ht-e|B$N5a1sXk(h5;+WuVa z+!X(8kho^u(H{O0MjnSshUnRTs$CFZf!Mu~-FMW!Wy5l?Xh%TIP04Z`jQv|3s4Kxv z4HGWJ>|DRzP3ZTLqu&iD^m!RzZ76<^TEnREv+g)-S*#7q#;!XqAVyOjP3;1l+u&7- zy$8i!^0RAdihbfG=7JlQVi;4IBWdHVB5eGGJ7LQM#&&_;OS5tutb3!0!L@XWGt3-0 z>wb1ucml=m4`wU&p~1gISSt3Rmw&yZNX)w91L6lld1t6Q+{HH~d2C8C_D#XH9~vwW zTd~Me1oxp=*#y`S7r~vhow9k3m~!D#7L|DgETboThU)z800 zSAwOJ{Cj34nA<156a5uLNwpsVdXZb|SJ%tWcUuvGrk@$2+O4>hj=2D~bW+&_<~t#( zbNi%C_P9kT_mOH2nV2siA9`_r9P@!xW6XEF_P`R`Rel68Po(&xNq;#@tbB|lw0rUJsK$gr1%6i4%#RU2)?-?W2&uj@n7qfD9!z@m0$A) z(@aGIH$rPWc`jJAZ zyCg-?dAPoqx%LLMB~@K-5C7B^uA-sL!?<=yid~w8&8zW+@!o*4{XJFAOA{`{>N1pp zOPWZqubjTpzS+p>Kxs?y$zC}mD3sdYg8XJv#8h`F27#Xgs;`^}#qd5r91aS7=mO;^D#7busl!!&@ZTw}56cZ9#LM6wY8`nTD#$_P6AT;0@Y!*ST3;#?Eid1vi}e9QlvM#h?Z$Q>~T;A1@^_kFqd%Pvl=c*#p56cJI-r|4 zC|Bc^gYs|m|695CStuRS?9%p77GWq?+qS=lax0qV-xl-7P7=B?rHHa+>tKlcKq1I6bBWTvUsu1okS(!!P}Zcy}1 zkKA;qi$fkWEbqqaX1Xc5z@-)mzoaNq6co`bXOR|ZfsCVkyd`H8>d1P?GasyaIhfe1x2f{f2#w? zc~Dr&))=fTL+Ljtr5;81>)B|q)JB*-%ZA6nbT-95QevszQa2Gy&It2VnxgL+O01`X z6#c-fx?add(GLy9`-+$UQZqu)c-aUuF^l(oH`P6rW-&84#R&6(0h??r=|1`q%7s`l zR!%f(1i$B8CvNDubQM-(=@xtKoIG=C>pj3chvLiJQaU>)HzsxIHoEl@W*0D%ZUq+h z@?n+7p<0OxxiKk&6GBGVn6lBWYyvD9qPkrfVC=j)Y%o5=hP}+r!73Y#DXyj3o0*Q7 zab`Dwol9}N;URPPz3z1{O`D%mIr%bBkdv~r;X^6WkCRHjXMKG15lvg)-ov30fur9v z(;_%zVKJ@v{K@n6WrZa5W4nZwUzQVN3LlT2^(mVeQ_vi^5VJANetn#L?VZY=+_f=u z(iv0Qf!9m%FH_mP=mODCy^8nkpgxAa?b654dHPUO-xe){?8V{mMn6R!zMU3E>5>mW zsw2yWpt zmP>q8(qPD#>f8Cn{K%86{?rgfPE09TUkLLCk+PnIS6Cw8a4<{uqH8Vj38TWqED5*D z#vMma@)4X%o0OF`(F<9aSTxj&+gXlT*+jS0mY=0l3eE-Q`4s=&lRct-?AD&o)-5*l z$^Ba&&t8P%ps)ugbsxJ`*kbv~Chf(BvN06>V4Y5kA&%AQh%A%8^|3QNL;E`!+Ak|Z zT}!p0X2|)=4+GN$6vs1k(If4lW`$25YL=(;q2^;`?`LYLslOz|$5&k3A>>2N3LcT& z2l-I5JjJ49HZjzEhN0%;w6x_R#8`_9v2vWSz;DkP1zChNXryH)XSeqwUxBa-#W!Xr zXZ;zbo}6cRcsh!(>Q6UCI`U3Zw<1N+&kZ@W)?b8IpvU3xvgCwAVU)?q6Y&g>vI$-! zBAiQ`OwQ#<>=mkAL=T9fU2q{*j`I$56dmBt9CI+nnl|suj=lZ?-U})IWA>O+|1a77 zc)Hbh4~P+$hgE+jc-bmI@O}tFtng%K?Be3HDMHbBS;zaAUvh{smW{h`t89W7>jXHL zHp$D@d>>}YZ=kyFM-U8mP6yK)wRojpCUPJ4Z^og4eotbJF!<27t+ zcxrI=IuKq=@ha61)yP^u9y7XqV^Kfequp54_rREB-!av{l&0tkw+K=#;@Hd%7m7yA z9k{W8BV}_4dzjLen=rZ}M7R(u#|Q^5X=1>rn> z&t)r^9#rz9MZIUa;b=S!Y?VfvMIJOMa=+~X=lL|+&dL`RZG+{%4`hLLA?eI~__7wH~ zgrD1qzPl4XKjp7}LbLBmQz2IQgm6#CrN8hN?i=|SB|3%h=cd9DtYG47e6svUg9=wT z1y`6udwqK{CCgJte$p`~_)Xvk>!fK3<)VD}3qr_`gI91d%%)ccD?(%)w#p| z+bPjKjIT8J;#!Wwugy`L?wm`BOHk_))cQSW*ZL#)cG1#WN?gWjf$|&YTC2RP=HJnl z6227v0#vxharlY(gumKDiC#F>3#ZmPwZ1oxXt<=D5(PL_fK!{DTARF`qb)9_MBfy9 zUpm^?$J(Y4l5I}nySHx+I%*{eZrN(?lp|BfJg zg?C^kE_YM^?G}6Gx9}ID{+s!$!3KMCJ4*6bLs0KZyxL{3l2?VOPbU`@_T!-pwWv?e zB=!G^pBomS#MKt{-^uG;i+b0f-X0IDH#~$tTyHlo8SqeIM2L!-ne5#4Vf=Zh{{epP zMp$kLyOy|u?A%SJYbD;IS9CNlc{A$$+oYn_{M9X}cZ-LLj^VFvMd{ID^bU*FyDjKi zIn(1>xGl(D-GTQjmU&%Ee7qz!yZYeyXVG!|)m=D0CQLv5PvS$8@NBmtGm;# zm5C(vqZE5}ZZqFx(b@_tzEL%o3>mCHr_jh;nMw4}rXaPj~e={g^)Hr7uQHlw_wZ7VfZaJaKYQN<0MrrSLew@lj}Od2-1}N<501j{v9EvTK!F!$*F1Iwc-=p%z+U zfZ<%(b8XkiBua!(3p-m2>zrD9tkKu@xQr6xQ7eYlDsryX*XXqEvj`=gM6C&|mJ?xl z@VaKhT2o@854Av9>|CqRlWhKeni7+Ilz2MjT3F-M+HHNd=-xq;n2cI+7p~>h>gRbd z_0r9hcn-CmMJ-E}AF&njB_EFIdPOXuiY5&}^j}kGY zR1AAHuRFEk{^jc%Jd{WTsbC5k;6^9Hkw&*>Pj9Bg9MqbFT5mYDW~bhA{jr1+b5Uz* z2wcv!hIoGK+~HeF;0+jwd8jqd;fndgZ8w%sV!lZQB>_a}Tx+Q3)H-*Z5_o)&Fnzd| zQ>)a!V*k~DQepvWMO{>My;Ez5@xkZsM=9|RYQ2M6uW7YXADutzXG$zWt?348IT2oE z)IM2u2PGC;_zO|-OD>m-5=-%FX~?z2gN{py_o3_@Hx<9^Wv@QKxerh>>Q${>{6c7Z zFBa@a0ZM#mVIt(c^jqlsgNKUeIt9zjyE>;UDDl0Y65pk%c&cgpc*Xp(JKj&6SmUL{ z>LeAv?wp!qcKc%7KuWB`skJy2aU8zlJem~D^6|2DGYzA zR>C`T{ppyew&T=xb}gsY%cghLM_*B5r-?rw6~E@xiklaH^6PR+{Df0K;Z%upYKphb zs(NJo9-P|4YB>%|%|(H=2Pjd2Qx!P%Hdmzzuc~~mC8u)5YM@w|LB$LBIm@DgS$Orf z$@Hs(NLZK`r_$_IeF}d8*TM!~Z?6wyJjSNW4R&syg+FA$W!%dzsQ0r)MMrTjzoOo+ zNLx35^_!0p`%@VIdCA`q%kMtSBK*|>)cXVVj^(fZM7=))RJe-ODo z@#mv~1*~LQa}SjrWK!`w{;EZa%39!hNAh}ypx(i#_YJSt67^c5CGaRu3G%A$axLiw z4%Z>2ZRs~EnBit!Qxru>e-kAS9u;VI1G;>Wb$wOxwWfTwSaVwY(HK(D&hzb(WlfcA z9+~4k8$*`GhA!oEZc`->DhZxbMg_0<+0ba0Y%0!X69Zj~FyxwS=v5_OZ>l6+x$NC@ zsNf|x8`@RLvZhM9_8tGsBupS-Hj#*uu7wqr-AZol`3maDU_I3K7=~it_{U?2~nR;)9!dS55z|HKt zf7sX2O1jQ#*LFVjPJ8(cfhZ})ncjPF9gH441VD@mp%~&3E;Wd$eyftS|JkTWa~8ZT0>A{Fa(uRDDAlyCa7S z*toh;48Z&cP6ut8xQK;F%%eCdzYXr=B*Cw=iEo2rH|y}uY#0D)JEqycoC7v~cb*sV z*L&7n3dEjN_75W)@gy(1-U`LvgBFt>L5ZQ)^{7%2Z6{dXV(PYLZ_h0!PSbI~MCz;LKF2wd)6zfeHtp5h!%Lu7h-n{zX|Sb zqIceS)7y1mEugZ~RO+f=%g#u$Jt6t4F!f_FWSoyz$U$6xjHRm_4e8|5L5?=!9O{Q= z*aj0E3Zrz%wwd5o+3e(Q)p7UxqBU?89GR^V4XFw|xmlCePY*L&PUTnfZ9u+fwonTD3-#%KvsE`{M6b{iw{V`hh)5ogZL3luCKr>ay>m6=PBTdjXyQ zeIMVjL`2RIjtx#Kg9~odly9|q&-H>89>q!FllS@e0@5Z~FM;y!`o<<_?CBqW z4}X)a-yJ&)&D*Mw%DVWnv%D+RjbIEDy?hzS9oEl$I_u}i3SWRlq_JKGR=D6sjWu}u zmrn~;coZi!*3W#>CRu$cs{h=>Y`Iw-T~m2k&#pZC1hDp}vTmMi){E0@H(0TL9oAXD z3F@pVKOYGZk;aP6Z}_KopmEhqVMC-SPQ^hwBZU zwIRfI@6{Z=H^4Ih5oxS_!P?UU8^dvQ?RRiup79hAYOF5? z?~vm#JmPS4WvmB6(k5Av9QA(&m@OwOo~o#|SN@+@pX(dKSO-#B-$uF?didxnbZt09 zUwbuRTgTD0p%or6oD*UZX{;DR%L+ZhsIeY1xfs6`@{~o)Bd;OHcJ`zPepLn0Uy&T} z&TKhZ@nA@?+CMqoq^?hn*|PwwgQ%>3qyAd#ZG+!zVtHx(?pq7Q%c*RD zk)67Og6#R2Ox=c4#E>Mu9=pL~kaK6$aB7G>I}^d#hy$>c9uyQtP0rEfpW;^vnVj&5 zgYkC<7=P9Zzse>M2e}E}nJpJ0dqkJ_<}WgF1M0T&Q`wctY{aWDZ(MF8cGTC54V|!N zv~T_zI$7)yAPYpx*vo-MJJ2daw6{d3&ev@ zEE@{ME2!*hZ#Lqvr1&Z>zF=tRq7Og~7h(W%5W8Xky3!EA*(wgk05mKqj2hw-t9BI$ zM0mtu4?yhZ4}PUh4nTND+R!z?Y&j9JJ(5?&sjDBF2*kluhOMrw``Zy-_Rv)&>SY;- zJ@7!brm$KHL;}bQOzT?71=vL_-`Fpt4cYsHqrQfAcVb z2#>smo~T70X_JW8Ld9Zc%8iJ}*LhWJJI~!8h(oCC`bK^6#xQ#Xt`M)xKpc{Rcoh&w zgjgW|$J%#*IaPG;XRrabs93N@>*8lH5k1l!d%$fH+=gi!>bDJiy z2cpH#F;{6`*&?WXWSp+6H zs7W07n1%0((?MfEQtlMTMJ{omB{3-xe%kwBn6Ru8kNO9RFV6Y=K1l4!B9HhoB@Rl` zT^35>(6mGUFdX_f`{nd??_+Md1A~ZYQS9$wkwHlTY7)n-IUir7CW)}fYv_qO%&RJh zg9h&HfOW#MN^IgttaE)K?mxZ{Bz9wwA*wH`Q9tsi$!``B>kE6I3i6vp=cf&c$v8iP-ij8n zWp%=d|KNnhi-rt@6Ygb^VM!Th+X=(nbRUddWZC;XQhAo$cPCi76J7}GPIxg$cgzT? zwi5=S?+)hyL-!PZ#f1e%X0Z`wpP;_F+V`Sx0$LF}H7C3fmY8(H5cKC4gM?*u!YN+6 zKi8QFyM90O1~{QRi;OffoiNJFZ}^d!FcrPqal)%1-3hM+bSF$hx0q)UEp4R(YT68xT@zYWQ_ku;n`UR+`1k7Sf^Tt;`Pe%K_P=dNQU=~}NHyU00+Zf>uv?6wD-uT3jnDoXN9L2bAwy>`X(!W(Es?9{yRbx2hZ!^K#511)09>W$8tH*)rrR*kRt z8{W8&MP3SI=Ef@_e&e9@#&(zPjqS)3#~VLbx;J)&>8?V-+0G5zg&29o7UCR6VHR6j zZv15a_OS2Y+1e0#Thq@K(3yW=ikr~-te=?#9*d3CWrYA zk%QdqdF}&YLFXm zbADP+!Cj+~*OWNnU_QHmS!`*!(P`dgZwYUp6|qzEMztj|nHw*|8)y+*c5gU6B`>Ep zy6k%59(bb5u?77yZg}2V;-k?^*PRAQ)OJdR+lY)#|#Fo_?oweM^If|b9{lpL9jlL{0 z+nd=_!WcKE;8d7X-*;S4_r~#1?0Dk@L-$4#58bsZINRgK6nG;X5}?*o$Sk(B+-Tn* zIbV1Kt%#kPH%>4lCcS~%WA~v&Y+1eGcf4_DPH%iX`mDR)jeaaL$IA4^+$7y_th{kX znm5i&^Tt`^4a`hfV4^UQio1TnB%`2O4okwhyg{ozfdK zEVl0~Lt@e!ulpEUBrK~p`Z_)3zMS4@IJogO@Wuly5^-mGBj%-Brfqdi0*s!lma%izMAIPMhY9Iq*h_ zAwb<5FpDj%ryNW!7i%v2(2Cfpd7}kEyn;BU%nh)8Es}&~^+sQ(r}PfzI>IjebLS*@ zV*rbk)fzYE<2+?bQhDPxm+p<*lDaoqTDmt{h3P(c+B9#>!_0iX987d?z$`DQ^_1ef z_TMFP1FeXinm1Zn5|gHdD&G;hS=jdzj))V%?-yrAZdiovca!W(Es?9{x`$#$v8 z4LnV-?+!1O%j%6jPHx%Z=`7xzPi; zVH(6w^G2!3B1<@F>J`or7G`-t%^S_H{rn5z4YVS5YToE>NlfMj9z59BBTQIUZ`|*A z*u{+?~@KzXp2_gEt;#5i5}C zjg=vKltkr5z|wolqhY46$S)t+?WnVZP!fBY+uBs>yISqfhaZCj9T;z6fx3P`akfq z$hx2awXAPk8QUtf!Xh>}M`r!!2zVqZF{$-SAKMqT2+JDqBKwAh_R*YLBd+&4LhBF~ zNvO!%TE9SF{>oBXP2_=de4KCUS{LB#WFu#!Y2DyukuUs2GcCE_y0VYd3X5W=rggrl zDu`p@*Iu@7L5Q%dTH~5luk7mWVP?azhRd}%0;qTce?K9cFyl>V4Y0^pMrK?$B3n1v zT9>B9b!l2$mm#iOh>#xF&Ct40f?8br4h=po;tGqrh91|YNr}n0ZV9k`%PhjOYAted zIGi)C$%PZ+(E2Ege4WhHx;adb#i_V{gu%**>uR?i*VQR{N{%)yuHV6do5KRsw03D7 z_6V)8$ZP0YSG!dO5!bEIx;jNzR;>|7>%5$C{dHj9MbJ8wMYaSpwSE_*hxwG&^=Ubr zNXy~Rk;6X_AzkY>X#FlIKuzoThc^8zw8A2uj`1Wt- zjH`8NTg)LE4P%k5wfgHeKRtq|w0@H|HgCb$?2Jv{y6A~S!BSn^q9+(5+x!C5w7$Ia z#=nGCSj3h-Ho>OAWDfsivVGqYltZi2U*F29_1NB*o&&9qvB(d#;`*aO4^AqrJJPiN zn5K0nwC*;Dk(R?hLn~axK~1Z5@m6u2Z67R(o!Z#+qeo&=>uzY>Nla!1+ zP~=JY-vZSn|A$tfp7v^5j!;} z9Pmp_X2PF-w(p=pSXL)|?zc0c&V$o$$>eEp!Uz`GqcXuh5QF!;zx*=U%MXVW>;b!+ z7C$#*ACE>kEq=}l334it=o#Qh%9d?UusR&R=OHeUEMl`eHr=oVyAqQU_Zf_=W6LIy z-X}oGeqMmJGg9(Ed;|6HHhA02Qm=g+9<{7&6r|#j+P~B}sd{5qT zpgbtwXI0+P!`DDTfqJs|cql#Cj!MLf_)qcTFFn|dstTI~Oy4NZQ|rK*1*k68M$r(J zhfe-x1*PeBbuv|#rXk<=7z#~Kut<4A=CIOK-qg#_5CyqNDyVBRurDO3+L~~Zhf2gD zO%tjrtbUrX`dw~tdt6gHalaD9>2|evP?x6L&Rux{G>u}BDqp6iGktswK*p(QSl2{1 zuH!ler*CV*X?*#aKE>aOQ`4}*>Zb|UH_C4gQe6=zM^l?znyM#V_7XHb$sz}8#pxW2 zukuJuXX2NWdpG*|l`1r+KowKBGH_t2}^P17s=r1{pnnuKcusMn#Q|WdEbDo zse==zwz=YT`0$-aLeo<$dYC&i_q<`gQY$rGZ0MSLAWlz*s5wm&7F)}`VFBuzE;bZa zKTSbs>fxulJWd^)IJLZoL=6G z`!zlHu5kZ5O{1adT5gYP>gZ@{n@iK#2RE&Nrl(o-s9L#~2i`N2N>i_-u4#0L-!THN zTAXmfq&%+jLd0tXs^-DS2F^7hzE|+q=H&Y7hvB=QOE@{wWj!Ymiy_2{iTlTv2I5k7j!3^CB6iB+WX62AadG;vm5UaTYu z|IwRz%8P@toG?$1siO&nahdcc8#F{1kLLGvM02R$midaeVRy(ZV9|4e88R!5^wL{! zRMM6t_-*VmnnytN)pD}R%2!(a5oOUgD-Lz>Cvm{Qkx8%Afk8=CMick1mzOB|Qs&i= zend)^lSzx`l+lF3L^L}D85*LEWVW_KnbCAD(Y~2?Z1EOcoj^mhk4stM z&XmGBY2T%+ST$iFq&&-_7pwlK-rZVmAu4x0RF@0;(5Nj;`(W{e1q0?n*mEq}T*b&1 zHa4sa8;gk9!YU3+i&%MxzdeHUwTBXl*w`=;Araz;N5aP1Q4~W7gu$FFmqXZ(h*)`u z%8{`4#b#|`+LzmY{N|IdA?$e;z0#GLe3eOl&%I2(aS+xqtdbAoH{LrX*w|7AgjjiH zQh-WIC&(L@CWZE^EobsY4ok4|zY|oJq_lI_FoH%&C%eA#;d}!8m~`G5H&A%U@7+MI-ZSQ1^E)mE$r`s3kM)+ppKW zd-11``4Wp7MyAX^!unhv3zGb7M#xNA{CrKyoQz0E?ZJPxhfmWuQ@j7sdB7iGqUA)B z&UgOcR2`XgUYD|DIboh&;8;F6sW6^0eBw6SLl~FYqz;+yIdjaZ*L8gdGGAuVR_IZ@ z|0!nWU%IuWoboRqdQngf{(lDet^HEw&na=)R2&L^K}pO%v1!pRD&aAl6!=F7wD_X?xykq&d7B%f8rZ2_H-%*j^QfR;0C^{4|eRCq#0~4$pJ+zOc z(5oJ6NzuMP@@}_TDb0U_e7uo=chJ$|>cIl`)uWG>Jt!t3IZpQqdZ5cptrr4{sH>By=gg z5tSuDYDJTRYyYSuKurp&Dy)7|aHmE^Zx7Yw3HDPR38qD*)!HRDL&{_pz1x!+m8&dm zN>zb=hPOnk6O|qi)>X2$`wAve6<1l*G~6RRfS1EDR8?60q;x}+dvG^!Dcb|JqoRFZ zb08zQaEg0%jP)X4i$10L?wO3*FlX6FpRRla# zm!!1$uCBh~jBYEZ?Yae0rm|>HSB8{|iwrTf6$#eM&0qQ@yZr#n2XQ`zO-nFLV^K+f zDk_(|SVb?XSqzP|Uu`-23O`R9kf5?8h2Eo`tJ{}exuh4Qyvm~Yg=$GL`7uZKl}nR) zU%4DI1Dud11;>(#i=;j!1>L^l(j=9nq^n<40s&TWxj}Wglw)g2VV#yF>@(q^^RC+g zDX+0;pQMzcW`Gs<2elLaiWUKW=YcphR18LpaJ^c_Xg$uE59jXFgy9q)CWwgBb8wRZ z3@MC+!HmgZPGZ@I=ExBSt5}a3QrOY8(hZ-!4B5h(xw<_AVbfT&zlxFS2o)VIPF}{S zqmN&XmclyVeke#0N4ttX7}j?tmCV&%zEB4SnoOeK(IQ%o%-w|f6vkz8`W=!I6XyA> zzE4nL%>v{OEaz3Mwq?=_cQaCvb($NnWgfbu{b!Ilokbr~W1TIti=oXKDn3U1>^Vb4 zCrH^UkA$q^p&)mGjAnPt=NlS=l`=+ihKeo{RB4Ji1I$YL!hiG{XBd~5kV!92MiUC- zG9wLvbtj0YY5R4_+A?4D+A^>I{oq-UIfF$9rDU2aW);JHe0@nqb7)dqKCKuU;8J8X zvHa#tjViGaJMS+)F>s>E*O7+#1gK=vIn~gl!bCKQ{!k@d%IxH36`9L#eMO0kMBE&5ajh7JDft1v&EUJ~NJHU#;;#iHa!zbMHkuoYh$qU2;RS=j{d z(1dd$ueaF{^|<(oZ$!P#FY|p{g8aS9n+FD|-nVG45vX4fpkLov46l54EoS`JR@hvg zB4;p{qDx=)0A&G6(sX)W@l{x1oH{SJAt*5+fMXl|svMWW>wax0jEmvPyUC+4E{WIO ztjaCs!Z`MgUzS@u%?qNDCI+k65>(i9jy3j>P{I&ZA(h^44Y>;Ag6Z|_6EIsB?L_g)1 zm=^s%426m4H%6rY^e9Y39}77Ze-Y$FpI)M0u@|`^FcJOD!1nni#@f$u`u-af^nV-u z)#pyeQf;GIEIJlPCw?}pI#b1-lotKU29`Kva~D<~64s($d1z3Je&u0)E&7#*8)9vr zyQ=aCkEqAHNM%Ep7X8YGNgi(z{mMr8b*zeh<&kc2QzLgqHBXWsc_${J@Q|;d`+kA?8CO`tGC_{fdc(7X1pWmQlQA z-=BiMf1HYb#ngbf^^rTH;x%yjnL8uB?}IXV$m#o-O@X+=?7m;golE7k=pU9)<+uzQ zOCUvIBKnwmR32%UbE5A~%5qNhAx>c;`iL|nDojNGcwkcq()vEu#UWQ=BKo+U5uzo= z+I-LNu;ky+%Ex6W{*Ts4`49UWT3f}ifUg~SfBwDChY0hVY~IPH{DxM5iLYPHdkF!0 zKH(}EZ@_c&-n4M@8BV|M%3&+eH2~>8=rX9=OfyzHMhQa_O~p$Jc<7TEd9$^C%2h% z9*bHQ{_|yg8LRQBAB|$smDsh?m+@t+o?}O^V9`}@&vY+q(~ZmguM6y58Q;k|*n12v zc&-WIzs&DsZD@H&Qx;u|J3Xg^JRszQ7J5Go;6E7LVA{J@n(Vp_xeKm_FO#EkLd?)ML@<1_*et}(IU>9D1sM`9*J89s3TUhif?D~p! zaVKuXuZ{S%)g+g0GFbF$d=I1n|Ft>AqML&V85h09&&F+6-=>Own_$sz{qoyX(eDlU zZ7ObaD{O8xfN!-d$ z9v0nc%5O|XccI=cKWlwxn0WqzXF*>Mvvy5+N%YR>Zq)O8l-PE6dT!`Fx*LoB1|z>B zA-nPB_8@NC4A%Ng+n23ROst&!!EP2!C0Jh2lku6N)59M&W3dJ){D;nPrtQntC;5K7 z;ep*Ob|~&*eFi-Ggzc7ldyWXK`k2KIN3FwA>oljWV?58UIdd_KHAJm(;M>>X+dJI< z_letC43~{#jV;#t45zIoi5*vd_$Z4V?PYo6lNp~WI%dxHNi2pGiXDSmr)jl(x9$Dm zM;1E{wF-k7pDFq=epG7~I{~$hr?wo1$0h!1vU3NEofu$w&-pVxQ#ACLS+iK|f!9_>Y3=C?qadau@u)xnqzQ^d1`#v7cABayINvb#HlsUTXIaS6N}|zS01(H z)S7JGKj+-XSnT!?{_|vfed$(z6OeChQ$WSoPe^EgYYbCo=4ywtoghL8JA9IBJpWjMR6yZSY>SgbE> zyy0_|JnhsPVO%ut>w_%z0PV6|C1agkql^b@?%K>^1F$RX#V*I-6Go@v1!u9?g9+>k zyGnxEF6+-z`&6>n!`Stv+g0+6V{n9(?0#K878^vng07O$&aRPG!OPE{$YMii7ru=6 zUCIT`kHS}OpZscKY*?7(Uw|t=I|8)taW~694@aNRO!_rEi2vO3J5sR`DHah4uk?31*JDKpN_t}?IpRw4JZWbFA#&@KgOqgjli_f{9#YV%%XxNzR)S6-To4tM! zi;eZL*cjU7)S7O#FI;^ai;c&waVEYa{>Dz`t~ zfaT#7f)Y-ae5Nj&Y~t|SUtxJJlV`0g8LZ1DzDG1}5^MFhm#022$y%T2v%Pe>Y5Ox? zc-&}~_oADQD%5%d9CA)h)KT*ArRCm}aI^~0QA?FPr7oL?O$)Uuz|k;4M@3cge;^ZMjUNZbktQPo7PqGkRO*9jAeNRK02zalBd+gv%!SDSG2}#!K7J(D%rHIlC1rz zr#&ohtea*fs^rn(I<&i%H9sHor(lR?J)&f`Z$`cP`;D#nH=}6sij8IcW>oXheFyVz zM$uH6mz4cD|2+8PaW`RzhWI{e{sjSs-mWk{7Ua7v8V?9VD`FJPI~sK{5=xAZlX*w^ z_*ls?w2?yj{A1DeFn^HPt}tOZ=wmDvm>l6-{e*Tg%3}i;aljq76>VG*@i(;;e4ceS< zOVPZUV{(o?ZhMGDxA+ytPd3K=5Ma^&62$rO)2DGed~^z>Fn-Q9Zc_?hjxz)%&+1xz zZt^obfN1ysZuQ{y3Aa6l)5 z%~Jfj-J@0x%kZncM>t5)jp2w~@pe#vk~GaMKwM#b^?=TLL0@8G^?+khk1EGyaCi3wpGD+()&uO86xrlL5gFur;~2bzi!jv>Q@RGKJ3E|nvU zuO84esG>|^d|IyF2zhr{tQ^+;A)@hJdWI0*w^(d)K!#U6b5;@e(L7c@WLFUl(fONv zfURO4j_tFd`c86wbV`7x>)@Bduh>*CodD40JiJJgVi**lG>LA)$Sg0YJ-j&P_@}O+ zTt;LPa;IpAP7BbMsvugU(+!FT_r|~bkl2<<$371y%w@4@$XcG`>bbqx^aNiz5pT(@ zJjtiYt~?pfY;Fol*_Efb`O*o9(A6P%g$FAyFrgUFz)S**bM3>cRvopFOC*cDhI;rI z$p^ct0+&dOGO$h<0$#Vo53SsfCQd$eNP9?po5g0PG9}Im(z=d}Y~@)=U82X*C7vCo zH6KAvNu*_=*sP!cwJ4tHy#t?$MHI;*HtHihTQG95N{=Nmku$WKRC#uouxt|Btg)Z3 zZj<{%VsH50T?wu8SnLgdrq(yHNU*@8v|jAiwc<<<3sowdmn3LyiWoWJq?N7Mn;rpb zS|`0~s{#{y z8_`-4mYuEg8uXoIP=_3JvC3=Fo9+Hv*#iC7QGOkcIPeiRr~lG=91IFj_22iAm)F1? z7wo+0IDd5wJ{3=qM=N5d94E*dEdr{7@CIC3d7Y22tls$8e%icE?hlE@W=wnm-oQ#j zB$OHX7*s6}DE)@1>%T3e>u(vLWkbPIIg^$dV=)P8ksp2h18ap=Sj3hd`P)JglUZ)T zCoKbnWz~umPC0U8g)`U4{odLWV5d=x#fkz_t0EgK3GvlU@xGVJ_R!-*zC+p&))7OP z6ZuYV?jzXMBEQmNFi4~!PMDUy-q}WY1FeV(TI4%=RRs}wxU{m9o3QNO za3Y`kLt?`R@0tm3#96FN^#gkdpYPH>BvyG(SdV#k`pu}Y4*C5Ng`3cLab-fe$+#eFlzxeI-&|1V||M6sI z`9h4|)6wTeFZZWuy+2KBA87rQ2qCPt*0mVRVSle1xr;*Xlkt%5EaeXGtGXRXVxPAexA6P^) zP3w{I$NC7ZuqbwFTCo}-FsT*EQTa@mu&g<}(TQvB4~fkg+Ic9nma*81T5lR0A?hlE%`ghp{typPZDY4=wQp|Q0dqM4S%&$x$g5L#hT?9}2~mQWSM@fFEYDQ4?gwQkj3 z>tgcT2GU=*b>ny%VH+)AF^Ye~+Qh^vvY z&)kZ!JtRH)YOqX5ghe4y*yN`Ti=`ErD0C6Ca*0XhvPo=vFr53$sMG5|zX*xAZnNH- zDKUYJ-5gX={LrIEag~d%k*bVcmE_k*IbmDk<`j!1EMk`y#Wx>0WS@`-i(;pYBCfku zt|Ew65K;U#0W3*aHi`fEWuNm~uY-X`3t4QVJ5%DPqdH=Kb@ z>y+OcECv%C)H-E{fnT&25@Av7)FiI+stQ6P{8YK#O;}cmM>&bw9`UaAUbs`o{_r~_ zzQbahjZBH(BTO3~eBBoO zLqZq4!_;H?V~8%p6D@7RzdgZVP=IQ}kENPQnB@hvI8SVcFZ=LQJ+vZrYH{9SstO{` zxaeQ`V~DVcU0F!}6@39!xZN-3OJ7GI|>rN~Po(G<+at~xXPDq)$6aEP4 zPWUsxoyX~`_e@29^03%;i?~wX$1u z5rGqMk#tum(+R%>=`In;c>fW)6ZSXMov^==?u7k~4emV9(z?TL^#5Oi#5FAw$gIR{ zCk!xd5}81)h@FlT(3Zrc6X0F6NLW@U-0i#-Iro=+nmx8@BfPPM#eNNBdgJ#H-58_1 zaf042_G8d-X4m^qM8DVuzwu1ne-iH22zrR0=8fObFMhXE+U^(oVU`!vQsVtFkBSvQ zYDMgn-oVW{XiHTP{UQZ#oD?7|t2b^>&Hp?l+OkM50TE{6Mm1ZUMj`29kE`30zTko_==Ev&i*@9A!%{mlrbAqyaqqF9X zoL4;F?!9RqyzxGZ?GI;qquQcdvXnPkg!J6FE}-Ye^*%i}Zt&9mTEtKD2HoFPZ3$4% z4VdKxHE%p{?SBReZ=e;iQ}f34K2?GD6uLWX{|#Qk8f3W~(5{O!Zsh*5PlH3tpMf`) zv)F-JhmyZB`X6I^qm@VZMxIOeMqX0)M!rS&p$X1*PdOIe_&Xs$-5W5AEv={Y-7)$r z;SIDRc52?pOG-@U#&PgQzC~D8Z}=Q<#a^u7R z+uu1wSaxqXJtg;-eU3?dc|E*gvH0Pc<3_xpNw)?nZ*))U-soZJ-sl@Z_3rbVwSs z>bio(8)uFi@uM(qoMwAtgkSf@NJIC=6KSL9D2$>nNX~XoISt-8$|BO~qbSTu%${#_ z_+`jF!W(Es?9{yRghyi18)v{9qX^3G4Zq`!++X%-I=Asacw;4tACoz5#N8M-&N5VP zj7#&z_%v@6z#B=wnr{@k_&f#tw4QR7$zYI3r+WitC1!ggIq=&fgg4NN*eSe0*NyiV zcqAsgLAMLUd)!a;ia)_-Woa$6)a$VFBtr1!l3OjiRecUpq^91FeXinm0m8iOJl+jnDfhT7+fo zDSaGoeHNy(?@z#FSr{G?jr#wh{1MOS%aMpF02OiTC1>lim2Z_Envc?$Sx-Z;<0 z;-|pznYjV860>t->m$o<5#B&6VyEVf*TWK%-Z&iIm=z=}t2g>OJtg;-eY&;Dn+tDz z#Nwy=Gjro~#Q1#M8}rh<5lQn#G|d|^cmwkkY??PNfHzK;pq?8r%L{6w=#Y8cI|y%} z6|qzEMl>uj=?zR|_Q!&RW%ULw3#plT?l1e?cJd zfq4ox%^R1%8|NkksOJXEVj~aPJ>`snEk6;tfmXy$%^Ox&Vlp={k=ef@NLW^H-0yfJ z_m_Rf*OXVl8*5nn{7`0YTxinm_R1S;!+LIf64Z0!Q@@@YpBa3f0)Cn|E`v8NwDZ6@ zhlN>QQ1eEYou7Xvyn$B4PR$#i`Xwg4fr-ri&kVw{d82*YzG~Dy_ZLiBtbXHjc;jOh zzgUeM>WX&!QV%^wz-i)4dPCamb0cP-TZ8JDx-mu15fCG1(UzV`^id0VR&5xh36 zv~Kn5u}&Jg)@|_0bz#BMKHYEOW^u0}KuzmqLr-{7#1$5?p$o{klGdalF&WqE-E99h z4`Erg#x45Tu2hd`{O8%w`U#6)>B-c3RgxakP+EUZ(~2cCEv~zv^`;~-(&Bm} zv|c4aO=~><(r%#@7I_U_>o11Hq}H2#Z2xW#VOg~nIXRsB3nq`Qn$Q$lKV|W2U71>2 zSoCO#()w50_`Vn8yOYEFFuof}Vx(!slPU2QmH;)a?Jity|A}Ky3VTAVz6DnATtaPV29Kqrc`Q1xq`JTS4oM zegSG)&+XP|yU+@Y*wSVS-UrLtSfCBVB7%BWP{w5iD)3xVbfcD`6zZIV#<9{t9uXLl(tOr@z9ksvxws z4KY|JEW1{xzvljeNy$w;UV+y2EN;|_Ys)ad&6sFH>+uO~Y^plJ)N;70Nr>O%%$eI- z+e2&1FwsoYdZ_2h8+csFqS&cvJppZr3PNi~Xl)WAEUVVf{q|CNokLQW!mbS=F~Q<_ zwYq6Oh~MFnsath=n#408aZ^wpYO2l*;h-$Z*%I;8RXm@wOP6@kgpNWYEDAY7B3(SI zIzw8KmT?8g5ZQ9R#64}Zy5x5Qf`eeX=* z_HZwS^bCU@{*rI=shWu^pj!>%K?9L^Wi>rJ1``65Mq+mv42BfOP0@2?Fefp7cQ7v? z|3}_w7J%U>E;phff)USueEss4MQjkm zARQVajAYUi%C%lv)YWgl!=V3;MwdY5mn?pVik~erKo5Wzl2g?XTJ!Y1izJ2 z${g&a2lP}lH>CLe3t*th?3Q3v0b)g6Qh1JT{e)SCahddJdDZlU#DsZz{;z7VS79QW zxXYnxLy9mS&0@2*OzjQ03uk}#2V{Q5;&)myn(CE$Row#o+O&*jz~r}7$cXj#^9L%> ziX(*{#zrMcM@qr{5>)|HVI)Q0C<&+5fr*IqfRz4zDo;}A%>uO|ro92Ty2E|c<2JB( zSD$@26kVpOm!CfjDW&v892R&~#JVNLZMwY8s(wi7=M&VXBaEJcVafE6fqrOL`?o#OTias>!?@3Hzsa7XRGm-NPa5YZmVv$c)&l zA)anBVy}AmlMb?v8Hku^s$SK`;^QaRpt>mCrc?E5NQs!@1si&(q3TtS!h|pyDAY_Z zhcFsntJ+vpmkT?t*5KhsaA3fuB_>XZU{HWEe)Mp4RfmAWxJ-Hox~hXJC(Lsfy=G&g z$I&4p1ZPQ^P3w@Uz4>v-#va2Vb2E!SpyFo_9%J16_9Q8DM3O&#EC-L5un!l@u{l!c zoex!G+yYcmdWTpQs`7%OyVAeamUHlk?uL|?xIG@RlX6R0+2Ftxkn#!Ipp+qHT$pIuy$TN+LS9f|6cv5TE#)U9=>(I?b1A(%d~$VO zfVI0*U0kxi#H5Aio|Nk%XxhT!k0dfRy&lvxjdx=niM$g-Al5TzH62@qrq_c4RN=WF zE=E;eu%6+ew=YzQ#SEcI+%rd-?#-oXdEud#LDRP^9tdS>T5sr@UQh9-)upDdQhZIE zQ?&;PO1brh;?D;OJmk)*P?Z;~uO_UOSAE6na!uWxICaaVsmG#~F=+aZ#UJx!YMPVO zHLW-KWA;+h_ZaxjL+p{m5{)t~6q992K@x*|@F zrh9V5si}Fx7--tc;-hP6+GgpRHi!9(4Wy=&hp#eos%e_GS&F}i(}T!IRK-R*>!%5; z&s8Z8)fI8laxYh$uAAVd)$t^Y2i=*u_e)6EwB5_!$RIUUntZL8Q%%$KONcl)ae5e< zP*q~}(}XqTs!EgUa!oxPOH{9KANw8Mj0I4V)oc6jJ%M^sf<{lbGY zs_Lr)RF|aC3k7OP(T=dIW}mVYQg*QTE1012d7eE1iUsKHBT`EBVO~B@m%V3Ag5E_U z7%D0Bx{|6GZ`zhZCmyIO3f4C&!@{g;O@iujDR}QmEh*Xy$v-OeJ_#v5viPJ_rj)Xj zCZ#Ht)TC6OW73OM1j95bWhnuw1fz4PSW;p2i^}6}hK8svNuigvWJpQ-Vo1TKrN2PR zP8NSPD5a>Sm+A|UQePMrF#aw%n3LtQp9s>6XR0qZsT>!!uGS=#b<#fYwKKTvX9)X=#bFvYBDmB}CK zkUeL0kUzR3Pb<#!h=()jOq*3V3v*$zSG|Ff%aVerGDdH4gFyi*nF(O4g9;NeS6Wym z^GHmbR&Ytp!U}5^Aa}g)W7Tg22_u>9j;$kp+WWo-G`^=RWbR_|SypEJj!kJROx4F? z#Kzg1kXe0&Ay$}po7Fgb!drZ(O=skz*Hu*?n-ZW(Of1R6kixhydPxJ!Ni0YFMx+=T zqKykXx{mm1@B2Qb_eDoT*v~BfrkN4H>X{g*u{15>S3M&s-cZ5WRL{W32PwkA)o#Cb z_FFv}GO?D3O_NFVXZi%FWMb78W)&u668#y75LK4uY3U42D2)4(Rvgg~Z6ve(dVlTy zr@im{&gX{Q0hzzB_}l7SN@Z5{)S!0uTRjDR>?S*YlOY<>lrk>~aTmxmJ>5@lVG^vA zF?wYg3<^-m#Mv**Don_v2v1H*Or|Nh0rJ2RTsA}aT&Wtr-0Amz@4O4DmRT#A(01VfO0l3)Ezim!cxffh|HTvlI8tSCw% zL1;Y!W)&u668&pD5)B)_^zN?}4KR>;v1VO-{0&O3kqzuxyfZ1niw;g4Tgyf`fV zpuR6v7fhGps}muK{olRs`>RE<9fypur1oh}g z{XE{{oxjyFw1<@!8U1)bT-+DYFADR^-|&VLeIBjPg5)9UZ=5tgaLh3j=0yK3kHnm} z_EgU$h}U(ZKR2l`5q%n_-nJCxM1NjbVp{YgL4}FvQ>3GQg^B2o^)Lt}%!z&rl#2%x zCZc~Mu%fWU{_o!RebuGEKaA-A&f@PUGyDD`_@8>ai2h=aIAn|HFA?z;&Z}O6x`?TG zXH)f3OOO6CL@F;S-`Q0CzKFMs{&K$_{SVL{;w__py~*F;B%^-=diyO&)%R~i3oVo6 zjEv|nG6bliPY0029)&s4UqTQ?T8sXYq{M^_o=rM!lI2+2<}Ujxtq-+pJ>s~d&%=vc zuEtlhqV56tf@gJ;Oi@pq=v`>YtF+a9EPf$+@eN+Mqq=XH}4gwcz|$Raj!Ew`C(q{yzqxaGWXh^!L^*>%39sO^=(+!CLz zF)^`ed<`q=mCTfQUx4K|^(l#uVC`+TqEkI6q)Qx(lBc)@Ia^{=ixu4$5TGWp-KJR& z3yH9ZEnVWEkixjc{8NIgdN4PVRpM3uAn~Ncu_GbzT2^#_B2ywo>O@=O@RTlbL_(K1 z(&WzIgl&l@LZTBC+>-z?c-Pds=YQK(NQA{&5=SHyCM3d7)gw*9vP!)29}@M}KX3dC z5?ipM2aHUK{UPI|gp6WQKesM%yroMlNO5Oy!nVYd4OZ0OW^7A*!8reME|Dzq8hWCR zw-hEM!cWx&DZ;W!y!sy`R(|^@F5oo2juj28)fXQ^U&P%C;---5-?8}UBIsRdsJ!;Nox1K)EsKD{4;!loGtOZ6e|k&1;~wvzWDK&_s-%H$s#tO!X~}a5q2de z#_IetEC%a@WtF(&A0*EDrKT7XZ)8P7YxTv)+h=*4P2vd{ZblH6E^+6`UH1!#uqbwF5>GKz z1tAfBf_1{OO57RFov3#=xuP>9-pqDJB@D3pn7R63YVlz`!5E9|1nsY*gWtI5jKSa@3!w(v_u%ahx^~I;q7qLJq z6ZKM4Pt?modZIQDu>8{`VY@G05MV`5`4wY3QQO=QTqY#KBDVCtco~;NnJpxq4vEbJ zR4%K;UH=fp5j(#ejVRvAik^05j;KMz1|zbRcx{@*7HJZ%gT!+UBH~0b{|ZDgXfw7Y zM!bQQLLw~k8v1b4!mc1Bo@=t2>vBu{+mky{KU#CnK}bZm8C$C_jyG8Taq75OgQca9 zX9v`XdYi?@eI1s*u4x%&`KL;9b`+0yv7+&YRN)La&(v%?hqd}Dz{nytEsAbdbDJeG z8O76F4Au$D8pY;yTrZjLTrb(%rNOgMcpED!^vEEp6|kC)P>9KmSQIM4>aEqq~czpd>q1Ikf@TRDO4?=W_aTg3Y)|+n%Isv zB_`+dn5Uu%h4FPJn&YD(!XTa9J|Mv(iA(&q_f4czT7efIUC^A>De481K`(etLA zw1Q&I(|#T&L9S*D9&|0nIU%Q2(<$is_)8=-Z@gwL9(2rH*UqP4Jnbh&w!*v;AA=!< zaZ`Dt5lEO5<+wunx7w(S@<#Hou8oFh;|d4)9EH%c_?#3bg$U&0Hr_Oa4l{9h@QTV} zZG`@`K34M?XXz*$oMbgHhmF+G!ARd6h5td_YCrAc3WsP4b7g7s zmsbX$uq`WkE0oy}Hzf2d-2fGD`jx_UCKLvw!UIR3kIv_fXDHlYtKrAPyf+i9W`is! zP2~;pvl^JgmRsTc1Vcl#k;2x0)VjAI?I1Dj+aX;ctQ{+g1TusjaG9F011^K*mDrGy=a#9bbwHq(W{gaB3ON>dDm6gJ6=3VBbNtOn+=VgG(_b|O52}3u8cbkTuT-@Qc_KZw}X@ptf*AQ$d+=Xi=Pj>brV696ftFM1UgSfrGG*oU_LMF9OZHr@O;vc(%jH_v$uH)B_#uL{Yjb(nwL4(;7*qBdoZg9zKQ@g2++;&+SZALCnk+A1gOs>9&jL0) zsEPsGv^YT6CUc-Es}c_%CS%f|{@!L-_JmKR$Ja#$Xj)G^Mo)pi}ro?NZIwp85=meHRRSy(on z@!KU}c^50%7i0zber3S%Wvi{WRhwnL*P{v&CRl!@pxj*`=1Zx987#B=vctgZF9yrI zSy6?_3T_W60}ji1aT~K)w)(vn&8{pBf>?}K7XP3)h*{UzbI$A2IHRwfyC4YluS5{QxW(Do- zU^pyWZU}0vi{8^}tXszf%Ln}$CVEfHO_q-F0jX72kHRuowoDpXSg!6lZ7NuHV?_rI zR?x{d;IM2pDX6U4zHBwpmSab})rf#rPOxlsXHv&F%i9-(6_&v=`$%+dyHR_<@?KW# z3a|p7PZ@An-agB=YP0MlmOiMk&GPmmYO`$PHK+`2C?`gu-UCd5@TsJJn7ihEe->X} z{>_nH!LmCmZV+Y#U4qJh!!qy5umWwCZC|kED3+=W{Ut`(4|CUrRax@o|9Akx)Ma0X z-DiSo4_16Q9D0|n)tMu7%JV4GM1db{@>}SbIM}r6V(8`g%5cHmw!!+*dd%DPATU9z_$Z%-iDO{#(E)|kkJgNZTmJ&BUaa_Jc&nRj zMWc1E4LY=%1XXhmtrNou=>$zd3?)$pmiTBzQkk&J-y0`Myr<%IsFvct8E&6K0p+=OQ>@7qxJfwzPCZEFDvekl<%KZRy0}zY|x?AuMS%M>Y(+&zoCWU z^rr5+UIndwtT=#_A86G<>p>fIXbldkf{wR__%%!hF<>aHe%^Y1-R^y$^#Ch=5-I;s zSXt4$^{@>(w9*dlayWg$_6(I1K^$c&gY}>VZ+-U7m7PJWKP!F~!|5YIWrdED;_Rnj zP*Q=^96$Rh9`Dz&8EBjp7Z@5QsTO)POj3PTK{%(Y&vA14-YG3WbpR`#461`|!5Y={ zQ+z=+(@ zkd6tj&I)Llq&nNDVUp?_UWL`etDt)9`Bf`G^+8r#|n zO#zZ5)wpetWQtskr&J^Lqx$iyhYkbPhgk8uDOT{fp{!_BhldsDc=bO?9TQX+S{f#) zz7y6kN%h^J!sm8Xeafp$J6_%7)-geKQ%b`m)y=j+sw;B!8&j352UU3W z%^CL{1l7T;cxRFoj8R7L*B)1&_AAt(`a>E8L3M{s0p%psA47UwL3L+9VfCZ>V0a@< z^oOwGKQUMZy~>J4^_jHhL;~zd!vxioO~Il1hff)Fy!xkCVfCPj1eg|Y*cMa+toR@X ztFeA%MWZ^-QXn-as8**@5L9by3J%o+ZoRJX>VcHP>PPj?!tWP?>Z7a#)7*mbA!S9Q zT40;Dsg@k!Qw0g*R7)CqHB2NxNh7z0iCisdWZSDB)vhD=yaTF3S;`fIEm)&E!KX|+ zRL@Go1XYh$D<`RXO%0P&uLvou9#k;`Y-+doB2aydmE7WE1uuA%6^-hPK?OQgZ!~mF zP`$~cVUj8aLb*9!y*a6{`cZv)^}Gu}^>J2$+iMD5vYn;PO<%S_YEIBNHz$JD6RhMh1aV42SH5}FiC4z zN@4Y*)v@w5RA@Ykm5f0UUp18#jn->6=+GMNRRtYdPq{Tr(t0YTu=>&3`rKP|j`Jid zc^>22w2-o*(VA|94z0q3D(KL9*3>Xb>p8n_{b-#$?Z9K8HJX)7#sD!Rpe$>&X4;@b zE0jJve03@eEsw`O~l6^)j2w&u`!+b-zPn&(!P9a{5J3acNjR}Pk+0a{P9 z65N+i5VkFAwBEEqhgO+iHRsSW4Gojtn(t9q{b=3P`-ei%3bK;rZdUN7ElxX5zU5P< zi58#Jl`K^dKPM3fq@_s(I#icg8YZc}A68gBsABs0Rbui+P<@7#tU))J>rqxT558@K zjt5uUhw=iAoTpV2wS_Q1+j{qwu3M(s`w~B4h zp|!_Q1sz%`kA_KFe<-LvD_Nkm;?ft701vco=I@7BPI^H_VtzptzXQdQY4{w3i4U5j109wzp(u*pdHEXr-NyNm|YcnM3QAe@W}) zcPCy0S}(HFw#cnTwiS)mVjFa5-Cjp-wW%Yw+WgDh8tHlbLeP4NmEMWmS`v2In;pcZ zHt5jm>{sQ0NpE#AG)xBZPLIOs7sQX+H9QNnUS_4ekz31x%8KT#_ifOj)zdEL(CV2~ zAe9rj)yq;?{b)U$$D*M13M(C$WChFp%8Ewo0~>T`^*2;Oht>d(hDllj6;#hre)nAC zWY7w+(qV2^U>UXX_w8(3;3fpE6j%N{_Ol zdFw+PbZCu2C9yfQp0qSf(i$CBSp8__wS514(3-?b>6+OpWdwiil>f*E9a;r$1v<0} zQW_>{6($r`KUxpNjN> z4!ez~u+rC&TmQ9eGmf{`*q}pedQug1Xw66~Cwk({uqszSZ^iqcw*s`LveJ1$R`9WH zMf28L8+2&R^{M6@T4^V4(p%1nTm5LY@id|!zRF5XlNEdtRIO>WKD9xIR%soy%Dk#F zl@s1F-3qH8t>wGUSO8kDvC<_Nw?6YLD;lkJHt5h=6jTKrZ!JzMCul7(RJr=mYWmCm zIiNL-m41ZWT5ns?XeDgWp|#Rf%{jC_3~8A3)~bNQ>PPFgn`pFbJe`%UM{a%YQC2is zU)Z2S>ocD!=+Ii{)i6nGy<1`RqjkcLBMyMp3|6{1#R|SuM)21jx4yDLht}7Y0v%eL z!Wt%NZ4N4|ezby@UNQr;X0p;99#-&GQd!YxZLmRy);3EObZBi4YnY_r%^`qrK_tz6Z>kU?RhRF)P^(!kHt?z8mp>oqH z>kLDcs~@cnXYQK=T47dpAyWQ(+loeOs|`A|Xyr?64z2TT&rmr*>jG1is~@fS-q8J^ z^(HI3GQGrR?QwxA87mb7BuL zn#0Pj1EcM#KK`l)3d(K@DHN@X8@CIRwgU*85v;;+E(#Z$hgpZZ8S z9`;l=Uw%ILCO=rtWo3`~Siw>WvPW5jNBFK<4xX$UOeW@Y`8tY8=Ztu~wGLtX_rEFTQ&7>{__gKiCzEJx~fWyD{w>t^_} ztY5araq`P+XtHD}QOh?}K_}vQX^f`wa%0ml!Lnyi)y-g;y^rsU zj~oM*QC8LqeSD8c8PHhz!wPhK=?4d~IV|t9G)(%kbx6kq%X>|Q{m(4VZr12!u#B;? zd(eCS@F@ctOJ7id4oja~$3(>M2y2*Rd4C!vSa!8kxlEQHW$WX?QE%P>mT^}0iJukx z6;uW^mQ&IgiHJ`QtAdU%Cwnzavg{nxF~M?mQel}aAI>&jUUOm760j^{WgjBq`%Gm( zW4S7%K*yJ>JUS+PxmL#{%PA?Xob2N(0t(AyxiVWHpFVrTFJM{B%9fj~pdzUZXe`V8 z3UpYO>aB}oPuX-!E5})?-}D!C1xxeTq{1^;W`9g<X#VQHR_ zP@v7yJi)JH!k1-wxg0DT_*C5tmf0V<+xF+Cj$m2J$`%G$L5-mdI4sNF^C-|}S@y1} zW1OYg#L%!DES(2YGFY08v*l&snaz&_%Q9vjWw3&S0o9Ph5;fIkvow!M>X=}8j9r+HkP0Leg(~GO=dPsvO-r_8PHfZO(@V|+0?INg5@E4x$M3y zs|u*P87$39!dZ^v%ZCQv1Izi$Y?NSy4eW*-mSxTK4sNrX`YjY)r)1>zJ#*(KeK%C(+yXFcf(+kzeOvad}AIxN5V z|M2CWfU=k2%d%gSS@QDp8wP?z<9AuvUj{2Y+ENBIUw$7_pu_UJq>hmnJBj zqD>yHoE(X!gcX*_G8N3i^2)iZe+0|-SlJHb<*_McKx6q+LV*s;pZq!|SnjkdJ1n<` zv~rT=QwqwAxH&OfAK%ve&i{htB4&;Wu)^a#wgo%l<}*PB+APgy+&actn!&J!Nnh?V zbgWqbJ~t;>3d``N8S-ZFWn$?4F|b_B%vap3u!&C@aC~V#Zz#}V`CLNB1k30A8YWnp zV{L=vU%_%zNR`WAnf*Av@1(zH6UK`)nMyzJ~% zbu(C+kA<`N^2vK%#?|D;OPM*#%L-31l>v=q*snl`+ z_CK@SQux=?V7ZK$?O*83yD@_lA{{jBf|w=$ryysi$GEmEqW!?J}(!=x|Ywhh`W=bso>&wFO zlTS;NV7Z)`w<6+a8OnghvZW0YBYxgv-j+}W9hSHGHB7R+-qJDAdj#GT>JQ9hO5<8YWq`)a%NKcQjSG43;-vo-N{A_r?x@ zrNzv4i1;~SWk6$jm!Uw%mv`!|%e=hPua%Q59}Vl6@a5j5!ZKKz4|%dg{M4c6_W{cl zV3}ft=h=;GEPDi$Rfi>36XoXkvU^CwB+I*!I>uSf&w6%dw#_yYRSjG~_rR@W^N;he z!V8s6{8clz`E{M0^)ysThvn6lhDnw`+pv)FG?!f){grOlru zZ!w;wJ4!xe=I;Skc(GU2W4In9-V$o|w~aY2+-*4p)d2LXUQQDE%`TT2)T{&dvrC4Q zg3&5w{^??cm%3F$j=RiCU9#-P{Wa=}(QcorOs?T4VCJuSIl*#%V;jq4`CzsauzM@J z?E}k?nAtDL3Y#0MA&2Gsqf-iW{I)-#V|?JAf2dExI7{`L{@OvEf0&{0OqRQnSvtt3 z-Y?Du%hl}vadzkNQqBJ#!0%f{x|N}X@HM3@r5Yp^F_K*wq(X9#gfPlZb&xA}Gn8aM zmAx=`U%Jb=dy)((N^;7+)mY2^d!PAy-k;BV#-01S$NcfVzOTpoywCH#Kc91Exwnd5 z?SrgiEo#7&omx>E4i&m`@$~W+&%`VXrbk$voaMFZJ4{txlWvxWY^umbWeY^VMCEa+ zfmTM{-vJR1JO@Rg z8=_Px3o=Ze3FS75v@*KQp-?HKpQ?VT%1dS2JYzBHoLuieUDzFCxm%GD6vjI(rqBtZ|lB}P|AC{oI3v%|B5vS2}&Wo;-I zhN!OH%Bg{Ov3Zxbpy0A7WSyiydX@zf;?z|s3nrL66Utr|%i2)p`>C$o%Iq$=_!hX! z8Yq|&gsh-V4VZGGL7`GcH&f*9L2->2yu|C;P`>P=gWIjl|LUR*sC*j=9`i%iXf-yb zeB7q4N?GuDh-YG!4^yPB9u?q!;IZ;fRA5rxZsiH@-8B=HYoXv}2eMA{Qv;@4uDWXF zay1V<%f$gY*cG{VBL2|Il_urwR_=%#=)ReK2MP*p$T~xfh$%}9>Z+B+ah{1;F6UVr z$|jSJZMU-Dja~3XN0%5BRH5=L)qp8$4eF|uHC!b3Wl4lUNr4upboBZtJ)keXa1{Jz;G0Rn4o=`$TEk9Q7%WuPUY^w4nBh6jCD%-pc zmG42pGeO82>rexxd`^XWmd~j(Y2|8z4#upFS^iHQ>nhuN3Hf5zF=G(74hr6LAS>k4 z{plrS!LpDJ<@>IJ=hX=`?p<~;UB>SP=-AY8rCrqc{u#TY=zS>I5QD7qf+8UvQy8S&FjY>vS)Bo*BOCc2us10{oX1vc~(V0aIo< z6l!Hwm}f%yk@^;0QTm(B$PgX-|1E0n^VK~Ow*d-1#pk{W>Nx$rpx~iaaE?tUaKQq% zmDkB}eM)8j`Uo%WqTaXL4SS;K11NA`e@zOg4*G4>R|bW8Tn~kLCPdjWmdPu1E3cDE z{ZU`)q7KJ*P_6zggRfor%m`F|2nF|{@)8ANi+Y0!wQ@$BiR9d7m@JdZ^C)7^a|cE! z{Qnkpbk;KWCvY2~;8p{&CadGvqTcMIW*Rp$%rh~YxA>{(p;l?5iDKK-^|1_|6YmSH|c# zwy1-XAc+r@3XV+5#0UpO^})2L169M6aiw3>9?#!28$};Of%}7tsj4X(*Uk_-lU&qa zlQJP1>}PdyQS}ec+=WgoYT-RTs!LI(U(`AKcfdvKvIPq7#CM(39BROn|JW4jMg6B0 z<*o>;OTVavCplF2|1E0Hn57RQ?h`0H4WGgIFEP<`YT+p+HB-34(dqidbyG-nP)}ur$)8asF4@9~d`7goQ99UN-L%jAg#(oQ|J!=q zJCBMZ?o%iXSdewIsr##~ca#$A5f0)Ii5nc#2h-LYg3ZOF-HUq7%;lp|^cfW5KlYt9 z%b*5qQHKX9)S`h7&&0(rh}X$Q9c-{Vd4U|^rz}O8{)fuDPy2a4RDKSHL-4M5YlIpw zKzsp(d)Sb5yG;k`CyBzoQ60+X*}{%7 zo{14AePAfZwTF-DQpR=C_;mM^EByObpy*2|%)~{#)1n4!T-{9y^|<;5c_u_14VKA8 z?PT&yT&cC{J4{iI$hXtn_4+Se_7W<;g2IDQdAAw|Q}*I#7f)q{`^MSX<;Ad9k|_O^ zdT=^r;ek#XWyS6nPe#Pc>l5${=-hMM7Dj=Ao4p>R_!*debCl32GE6%EFC- zG|Ho=55N!bx_k$Pn{3FMr^ca`MIEevD?bYHOsx1yAIs#5|C5v@W?8hq>X)KS|GUTE z&wJxuRDKUdd*G{>ESpZmlwBMO)hvs;gn5=w7ImRWzYj00Z$;?~P+^Mlq~dhf_~3o+ zcoUV|p=fUtvgXIB0aNyjQmBvM4je>g4_MH+5`^vhc%DniapG^9k;c zA9g_D?;*&_Q4O@R@Gpa%N$$%()wkoy#ftxFvO1~UHz^Y{xmA^z~7eqAWTs-TkuDJ`1~}@&_o~ zfXau}iL|mvzp2(MexRSuq?ARyqb!qG&$}_6iCLauP?n-B{56)@MoOmA_da3 zEG$-Cm9nsyPL%lUK`6)B6t+FfiE*lHw{nAVSP?3Jfuf57khM5S4Yac8k|>2rS#*gi zbTe^{7dx!3jTH~Zs4hhrP5bV}h#h|)Du0EdQ*gzfRAXbxBLmb`E03^wCT98X_gGZp zes$+7_T@=#SHxnzqg3Hsdc;Rd5l!Y&+yAyq~ zslWSa#BWe^VhpmD(7Ev|UE_ss1Sr+YDTKRaG@)TwIS$6b?u(r!zQ1mk1FZI@9$|r5=>dr0kTD|B= zWpJ~Evgiq3C$I5kCOcNna)CuzyOn!xnQ$a3|AwNcgOIg6P7Rpyu_%RFxlqkRE3?$W zm`UZF2s>6P=LRWDQKnz&Qk2DA%rvjuKI``x zz6#C+C@RJkFEptEQ@)WT67L~jb*NCyvbZZn>Q1Br{10~*B%XVUyGAKbQKtVL&t-E; z@uv})yFqd1C}b6@225FPQCB_7>HyEgEURpm$$g2hWaL9DJNPL}Q5KyXNi)ml=oKHK zvI7+FiL)$qsDV}%cM4Oel{HD3tK<(?l>Sb1r%AQR%8U(tGSVpX=RbqbJ((S$=&lH4 zRrsiZRuc{1ogAKdQ{Jk+r(|Ut|L)`b{2h}}*$Ikn#%p|KkWS8&vsG86Ec(Tu zLO1iK{8f!2S=q)c-(T4H2P$`mqF?bEuMX46nesQ)RV!~dsnEOfZ`H5e%3IgGQH{zy zpy(ezWYt=9a;+?e5QSR#o5?e8v;4uJW0RF|Tv@t(S$X3{`1xgKXDIs72U&G7YM_-x zYvUAZ<(o-zZ_4cs^-EEvzsA>(`S?Xt?g>RdWk44G07pIO^<~jJ24z~=6y}*X<##?h zHbpt~Oe4)Tes1L*>rvSSioUZUt2sao*eo}xu3GtilnULf50ehvJj{REU{S7Vj0~nRp(**rY5~d3h|2GBjq<83zxGAtUQj$S09o&<2244YnzC7*8>Ubz z&!s3Ka-YYc__PRxu3XG=Sd_9BwL{#nr#RGB0KZsHTHp>Hp6l&!_n`c7VJ85oW z#fR`?<%*Z8lcXq%SBKKf@{{u1H&EFFiu;5hYokLaXUcvCg<5%NoM%FLsL3*UjUSYh ziGBH&`fgH`>HmI|lg3Ry9hE(y_(&77Hv8yAOj&7BsFf8-SwdN~Bf{#WvLwtipuwn0zY>35K>Z8ghvM1!zW_dH z^bhZ2zat=POE9Tlm$d!htfTSY3>QmW;eKY!`_)@t7GS>t*e?e24vUcn=S2Ua_`LHh zmeL($-gt*nRKsp?>PXxD*VQZfhvC!{=VPIty#kAIG*8wlCQr#;;*1~o>6I^9x) zi-&ue!SGT)aGz<}&kD?tBK7y`Z=;0@)|2225EHq_b&d)Zm#=u2NHSMTwh1$(eCh zCzK^;M<{EzaIyEC#ByOxY0r^nMl2aYZ z+ONE^av>@YfRZsd%QH=Cz?8Sy6uKhuRC;TiXF~a;!!oJV*NRdWFY;4eyOo()kK&J2 zGkZhvJ#olBCrk~P(o~sN&gFBHvz+UvLRTbadArRsvEusYjVa3FVt<;eCtCVB-cm9T zgkm!a+2agq%9IQEndB@VZDp2^`srY;d^XB6q0Cj^VTy9p+v${>F333rl?OrbLndTj z;G?EmSu)n7P|dPrtSWS~#EO@kYq2^x%Xu-LC6pyI)Uheb;sMb#v%ISQ!#h!VFqB;2 zK=wr@HD$_+;uLD7F4W44)Y&l;%964CSa~O!7NdSC$`T`;@~C@Gy$hB9gOaOakbQB0 z8ZhN`D%8qrZ7S5tYeOuP$_Wby;LUB}>gNbL(H3y^wsn7X(d zKvJ(!tzA}PswI&q6>91u5td2nqpG1>cX-^L{(=zId868ey-lPZ3dQf*kbSM6x@c-i z^7D+?0M{8*sHny7@JvvPV?kb*pccRDr_3Am!=YJSklGK5KgPYP?{S)%eM6L5tEm=m z3i2$mSBpRLvrJMqQ8XAZ zXLXYLWzw;N`c;(byisSrSm3@OISh(_LF%mrbz#)oRi>#w1}W6kpZqM7)SoG0Q~lYY z&>OYG!sW}6dN`DT3E6jqs0*Xs6`)X4{|@s^Y=D2%!B{7#B^gP_ipvUobgVb(tp6R; z0jWnoNjIG8J=6rhsyo1Ji&8}`>7q`jrdrY^&gvvJGsZG`2k085%o}xDaL)5cJrYU| z@Im$*bv8ydBh*?`_e~;*r+{9Hpr^WD(y?Ny`-iEYH)><3*G{AkfRcVO$iCO1E{uA= zNuj3pNg@bpUq#T=Lqq&nLG2fy%o}y;{AZUTbs&@kkotg+x-e>1ltN7%Wb;f=2U{$Y z8(@gZGPwZ)24&u;ONXyI2dPIv$tZkkpHEHjtJe9F|Gyn>JH%Ov%C zlVx(M+YQRRQFof>pMcb3pk!AZvY+x(7yP`AUavl_TDw%i`qidFJ;9w8%Oq=;Ntrj+ ztGnJQLDsQQx|;*p&r%cos#r;HIs~gUL!C~sO2MF`U4CL=OLq%W=8g5i=@-9&tf5fa z%?H_*MO_$ci9?~9R%w?g%fuphSzW`Fd1IA7KmL1U9S5cRnUKBAq%Ms0yiK8I z?Hgj5Wc3QLOtSX#QRa=6Il5{DvW7uvAKY6n`l$#vT5dB_?8r9s?Vubb3`vEHyL)U1>IER(F0 zDbjBUN>6qu^v0SUyCNT1Bcb$c+*<_(bz!VRi$cvh(`K1uot0E4_SV@Z)p=u`AMkfZ z)(KF0kpbDo)C9k(y;Y)GYu1GUs>DpP#`{<%7jb-?GHQEQP zD)&>US(mlKn$iku%70{SuQ?8H?U|#Xbanu;D{K-l)=HIW)^!mI^|Y=JvrJBFMu;+R z(|SH~L=aggK`H)IcG*=1bz!V(i$cxPukya>J-dLZ6XD>%q5K5m8L3W)(T^Osupir}(^s`K| zo}!4|Af9q4^v3#e&W0b6bqbWei1)2Vo4PPov&uBYpp?{W;LinJ*`G6V~g16 zQ0R^INAKOPN7iXj`i>3R@7UCZvEB_*s9A4ESSF{nHq0`)i0_0b^Ts+b>yIL2oerfN zvu8cB&VbU-{E)rgBmrY>uqo86tvr*{+Gg=O zv9~@oDf2e1D|2VRi>x!DbUW^?4-M+VSQ{-0HS60r%OvZ&7|Y}$ejlaG8>=ehOh(pO zQ2JX2WPe0W@T+88R)+bZCnaDaD$~puf`(ul`FxDr2 z3Kgp?gHJ}V%0NxVtxK@Vc8k!l-dGt^_Z*I_bD*r70ojgCT^MVd$}}sJXOflaP^ej5 zZOXi{*00%dD6-Clvi%~E{i#7+80#~OLe1JYz%t3|vE=R1~tma;OXYxa1p?LYI~J zK~&kmAkPw?OOzc!k$aby)D!tsC3TdVsyFK9slTpA>UmIhHZJV9F?BlqfvLXmHT4XW z3f)Xl&oo#jsb>XQCaGupDf32s<@vRrA~ghMgPP!1bt8!fDb=hCcqUmF`gxtW zV#ibD@n^YjH{X$qtn;C43SO~47^;nC{b*6BS$I#B56mQMvcobtt;=l6yiIGyD9T!&r=!#A2mmsy)tZ962N!B%LZ@G11TGzzsSZ}QVm0vXvSrQEQP z(sy*t3R_gDr**T*GRc~0Q09%buJV9&$Qlo2vvF_zraCj$AJjSVdP{8iyZL0~wC+}u z(bKvoMhAOiUA=wBDag7A${w^J`%jCyFxFoVg?d^K1X(6oS$>wuX+21h$1T5a))y<0 zH37;Nn2`NXP_$1!~`D+u}o4Q4X{j77x*aiHo@OI-q8c86QS%m z2XY`zUG%Lur$dB7O?^7XGeLbO$}&lPHtAS#X*?IEI&ajexg~fH%A5pc_$ME8Iy%&a zQFk{f)YO+-p}x`z_0?9W%l{*FQux$wk$N$dmBb*YvyW7IU*_zYbUHD?B8v)>^i9wmS3D&daVs z2Po9jdN0f}IjwaemPyw8>R4~Aeg3}OeZO!Sl*L1kvrmLNv&*2TYVESb&E;c<3N>|; z#WG3V9%GrL?ub(6jav5Oj;oM51%<=X z)27TDb;2=MEJo_(P`-x`a`so>Fk9>c;?!DAuw37TFcYluPKw~xC0OOVTXd{9R?X>$ zx_i)o^1bnjJ2~Vum`KbFxDXf zYOPuO$5i<%1obB`$;VAvVk81Opb!B=u;M zGH=vJi5y>uM-J zBMLe0hxPQJUt7sJ(xFICaE!$>F~QSJmdOd8Zm>*F@Qfg3-l&`28-FcQr$PCJ4&)4I zZLyDvP-{&MC2asfJwM9oB=v%%W5rZ23{#yqs&)3smm~EWD4!CBoWTZlVT(P)qR^!Z z*5n||BpCc(jaTfj zplYMuUgsQdQm9#XIV_W`yKR<9);$(w-llc+F;C1#*7Z>SU=VVKJJf|uYown-&6=kQ zF_WwZY+fg}e3nI-H`e6ocN~kX8Bo474ml^7)P>!ONBJpqS>je4QH7eC7i4vkx+Kgp zIl-kN%Dho`eb)0*q}~AKuOam$)tOE3VyYn)Q}C9cGfXCdBIm z>+Jw#-dG_s^G;;l4CNo1kaHF_!LRi3Vb0k>N;PY}!!pU*V6#k4>jR52Z>%$a-tr2v zWGQ~%1?AiEG8h-6F6=Tm z&!Nygow$*FYw}DypMGbsOj5rOvP@F9`ziBAea~Kp2V~v?<-71Q2*s%jo8SdWlM$?6 zqg04|$=VrVnPlw>Q|66z|K`^gAnR7B=!pC6!Vq;~6C59>P))D`)al$TL9N(L9jvGo z9RmE=#9~);^ik%Gdiacfha>eisK9@}GG{`Nx-jZQheA#5u1=?^-Q%oIOtoUK7|X;| zD|}JPyivdV@#rIwdOK7c=!2Y#!__9dJkC%C^ug?fSq*esK*-WFxvSO;wjpMt##=5+f zX$|sGp`O;Dq&l(R2FIw*8!Nct${onM3o1t76?=s`8)ID=qSks^$46Nvr!_pnGC8dg zVamL*_W1pop2)fzD#qj9x=Njmv8KkUwPNL5;jm1yl5aR-S{M4L&Kv8az8Rk&>mH~u za1p14s0+I~rw1r>S&3V5#bpN1#EoQ1kY$p3xu0cnf(At%U#u70IJz9Ev!P-}405hD zRU7?-f$RMgYU;H%&jj^4i)E5}y~#33oncVsZK~(}dia${odXqjL?CB|T30sJ8za9=q)=1u4f0G-@AI=v zQtzio{~}Sv{SJlRsJGuy;lB1Wq2gh@vS<0I3!~l=rBG9IV>}boJYFZM`4L_xE~|&b zlzF4BHSHUadM{Kwh1A=q34T?dx!mqhs;P@(JQLI>qAZitCnGGA8{nxhW!|Wd+ovCl z)cc^~C8XXNpe~GhSByeUeLg7@)EAYO08*3<%u^bc1n3LFZtPErePmPu-nMVUA10snh$J5uLCMJ?W}=Bgnu>b(JKt*KQu z&%{()`3X`*jmhi8Uad7K^G4mjXD|n;4?x9R2ISmlQx`^^r&??3st^^rnV`POza=@< z)jnP)sH@|Yd80P=?Bw38vY_Gvq&^U(E{ytMghEYyKg2UZT_0eXq;BxBOm2V;amu_= zZ!UIrBK1M2_!O!09qPiU*(QaW>a;@L+6r}BE7WcOk$UTxo5Dz)4;BAdkdqrC6{F^< z)|&cV5?@U9dxH+fIyu$tL6*s>{u7|g+f>h+Uh)G{AA(B!2q5QCWYa_4R~PyyQq;=M z2G0`I$~}WD6V%EsewGPpWhO-)U#`42W#Uyx&4$YT0+92VrP}DHfX9OrYHCkE&jfW} ziuCVkRqpFh=pLK6tSWoilzE%#g}c9YFH&=$@=&BMj!+l20iFy~sHuKG&jhs(MU2|V zq0l{6Q2W}Hd81Am-SJkW=0fEVq&}s(FzPb~wbs<5{5%uXK@>6SAcsOt9c)wPjT#^M z@(85nLFI@L)Y%y8nW(*jEmT)y0ELW z$)VOROI)2BqdXJ0-A%15>_=fJLc-G1VUx0qZ37 zrwBh*O!en5W!|XwFaBUWQlEvD8DYqITL~ET9o1S>|1#)wda8d1SthCf_*o{VioZ}o z50BLUJ!T^HIat{hsWF?nFzS02g^IdzPlIQPsjlo2WSO9@%=EKNQoB;*@!i_qJ-_%E zsTQo92<{9BUL zQ88YZxC5*_DN30)>fG!OcOdn7Sa}XooiKG_)NLUOHT6s%&%|CmGtM$eJuAjCIn}eH zlzF3G7mT|1)fZspM5KOdQ5Q!2JV>FYj&FsU^z&>kClsm@d<@ix_oTYTRiA== zYf-AGEANi;Oi=HMu}o5DM_DGRb0U;^qn;WpdK;-P!^)fhY@l`-l$idi*K_tGGB$2%aHn0h`KQ9&v6Ph^|_=>P^}oNlhh?qmdU9u zjZo%|I4f-fMs%m^*)x#3D(Cc^F}T0eb+#wz78wj!RPkBqtr!Hb2B0ox-3CmWAaSw z!M6>TN$T1l%Ov$3KV{yiJ-4+CLFyZ@a$^v3cT-*TV&`@+sI{Kp2YgzR^?{m}TPGI# z!x$awjdexm@p~dG3M)SiLvAN(f?w%lg52GMlxo)2R#;nGVQu@5tVw-aN|99nE5ElO zcMppMjMdqpP_w=bvP@3vJ3q_hw7#dv^+( zs?!6IdmuHzuWD}{WKybGV<^(E->Swq6uNbZE3xV{n=)^#jajFoC9?vmLI&g>tU5E+ zA%1GDS>q^Tta0jK%{tGfLT{|o_BnS1vMQnKk_hDbRTswUOPv#+Jtv+Mt0n~~M1owz zi+wDU)4DiLnK#yDmjpK>Yb8`o#l3Z?L0uTDpGBdb)|IMIv#tvAIu{4=Yt{`Eu|>SWq0p@ptQ&30ys_+)w)RF=HB{YcLGBT%Gh+=f zsI_L@9%h+b#5+PPldL-flzC&VeRRDaSv62~e++U5+SG-y2B}Q5?rnv2Un{Kp|0C<= zGlx8dtXinb&w$*)mLljI#1Mx<&B{@Qn8|77n!HXdVxB>nw`m=DLs#kjYQ z4pJ93tz%3IHS4h$%Oq=2lx1=eACFMxjkPlryBAq?P_-2I*0BzCVXWi)6lzw|PlhB* z|76Im6VqDy9~beydrrFrS@lr00{7OiAPE@jc$-4adNs^4$yy#_nPjc_kF1?ncHSLX z4Nz4Ugxui{b!M!QehM|K#K$tpDv7g9vPxr=d0WK4K70qykl6@T?;`7jAa!A^6HN*= ztF{%^I}u(d7BLp4%o}U-n9t8dRufcx6o=eV4s~Iyll>HG)<#Z{)7qp6Zk=F#6ry9j zvHsqt;wxk|L)8}sr=d8Vu^(Itz!rSQ?4s~JEI?GR?VpZ?gOIfr zs)sv}JKm%&jCGMsp=J$Jg?d`Y8@x`ih6gG0#@eubru$U=4pg7&gWQRJ>cUu)3<@|sW}OpanPir-9aPT(>o? z+=Z<5Q2j^%a<4H|YrTlmEebU&Uln2|Sq}$!onS>mlzCgk%;CGggRBiu{gef{*HIJv zs`l3PCZ(G7M3`lg^`s)Wb%OO&fa<)lzM4E@D6&3)>K9^=JHw(bjFtQ*KJn2=^|Dr2 z&$q&Q;lHr(SFGaW_HtiAdUVsQd%K^yFxDLwg_^a-VVRuP+cwK2 zYpq3@2Nq82{Yk49B5N~LyFZG;dxd(aEAj3iWtz3YVVPuoV6#lJKC~$F#_G{{@G@k5 z4At(BqV7>$*tBLl)LOGz`B7ALD?f^={!c%O!bL2Mep8IBEl}f$L8im{k4eG*J^DPQBtCb%`)wJ@XsG6?-g@spQx2bc_Le@5@>E%Ffc8~;&m19z< zSv`3sr?s!a>%_Er1u63|Eo5yO-fIoAK82b-xVLg0>cUw0ehM|~e^Hi6)*%s=$wl;s zDf7U>y%l?M{a(oW3~C1A-g?-kE{yev$~5c95QUgY)_?%ZBx|6LGHcL)&hq@%{ta*nPd&MSSDG=nUr~BeY9owrO5gMYTO@1Jr<-cjI~I$)~r!B z73yi7WU)-LPBtm?z{0(?Z|60Gko6_hTw+1)Vn20ZtS1Z#HEU9kWpY{<`&lMgmr&&8 zcIvWzuR8}>UqQ{)xaFS=sy6y|`jknbW?kv9OtP-BSteOiEy}!2>&IcQxc9BEq2?ys z^3V9G3!B!n28Eh+Ln~YU##XlcP5))fFv zT4CM!A6dN)`o+BxzlECn9mrj3D1u(ZWfp~+b+5@Xxrp}}ER&0Pe~>Z{i-`BFQ*w{o zimdOTCLj0K3#tp7){7>!)~uvIq$F9n5nd{D{W$v5(?NGB6_ttB1>cUuW1Sr%j%Ve2kEiqUo zSxbYId1F0t+uJ$F+5t5yaBoG`U>K_)My)mLRg-0swcKEtWUUBN=8bjRlTW#?PUBF6 zzeAW?qz1!S#bIi#S*`pIVNEN)Ls;`)e~0kNVfX)otRJAJ4)>Ps%vk!TT$)wmFshtZ zt<5qyE!(2Z+q8QBdB;u2`Vng0!o5}A+O#TKnbw;ooerszwc22rWW5!n%p2>;)!!~g z)=yBg!GPSAKI+1zRTZL8PivjcGRb=1Vwq&EH!1VR8at!Yk7bhei8|IBtL3^QFGJQZQ1guqxps&;Gge)MLe2WhV3}ln9b}ngedDLh z8>_Z>^DJcj3N=5+A-6tCT^OrDeaD*hBd1E%PhmRPtrK_opF@;+WBro7{taa9gqnZ+ zklW;=E{xTzT5HyyHWgwfS$|n9ldQi@%Dl0jsrj-FS-YTi&lu#k#HkBoy&0fTv1<3= znPAm+_VK#Jv}!x6hTd3nFR69kRsROHJu@J8b%Z)I)|#Z#B|Z(T-P@u>B1H4YKhO36&ShbT@%|q6oP&?Xz-1p+tnX%qaI-OX= zph<;#5l=B#CKqvZkTP$qMdrHg$odOv$3`G`eT=#=)(7f4*3&v$`8Detb+B6}rgd(V z8hT^R*ynKfwfx^uI}vZEABL$5V{POF@h4$wFEXf5vnB*tCRr2xlzC$xvL%-dGKpF{Nl6AdFnK#z774BcM+ZCYpwh-hx>YHQJ+8UwOnl+14CF_Og z)+lA(SjB$8`&QT8pw`5_^=W{*FjgyncCB_!gbMZEnj2=BoR%4)%o}TU5S~L;2dK@) zz4dvFx-iz4sINmjNx)*GvG{v#`p)e&kR!@c!YoH{esHvtMY>rtC! zauF9;ER(E-CS~4O1OB`V-zRqM1hq>|$o)1#T^Q@T7=@Z;`B^4eODNJm=B!=fQ0R?y zqu>7^vUZ2s6;a6Dt_H(cJHpgjvtA9cOtO}%gWWo@W%QMNc zeY{Rg%Z^j#jrG?4*W$^#?g_PT;SJ)~7<6Pt+)J?d1Fnj zGW#Q|3)HU18^mv6>cUvRM=8|PS{GrNoYwp5V7E?8Yki37ys`p<*1J#AGI{2uyV%fVnEE6odgUvEAExV&dnK#y(HBZbz zR(G)X3PWDUD0N}1PH_q~s~e|ER=1?O#NM*I$LLsZtjDM4U5Bi_z&^l&ygfqHg|RwE zDAcU|f-IA){rxPH(>j16kDtr0AN;qw<$Yiu8iTw&)i=yonE~ppS$)DRldQfWmPyv3 z>R4~nnz7GA=OJrvum_uv*EL3+8LPXGLd_cJuuQU!vRNisgDlFtvHr;&HXd2~fQ@g+ z^7aZ-7sm3%Db%c1-jLa?ydksy>l?D{?Un8#_5gcK1oHNYkU;-2-MpRw3SCxzM1p;a z$+N_r-yUtSOiu9BAj{+g$M`ApHo;XHCEp;mC)lAlcXhKeH3cy#TL&5^%9e1l6tAZGD)2rq|6(2 z!_0XnBefUU)A3e(pz6%12UF+7onLH#tCKc`pibl8lB7~B$ zl}OzW>|2ofKXo=nJtXOLf_ig+PUjK?b*4HPGfAD9bgZDxiqWy&s265++aIa>gKZ+U z4>iHB^jC1?^|dHDO&i#+nGb+nZMd|@y=Y}D#pAs-?f7M!3A2K*! zOf@^mGC9>8Kg;9>$fd~RGfv)#7b2i*Z?N%CXyqN|s5W}4N0=09>SKPM3F;z>+&wL+ ziyR8wW5ot|+@{Ri2G~4l{g+5R5bPp9aH8xp22jCwRD$jfR~5NR!6C!-T-e!DDy_WVRPTENc|t!AL3p;#-c8a zIy6Y3p6Yr(&jfV?MQpEba46K&4{XZ3QO}8=nu*jy!2UE2dB=sQ3!@H;Q>dwq!!tqM zYO_pkfNd7bFd=Vvkh(DH2!}#V{VvQiLH%BRpI9fU+XK8# zTvj`LlzF4Bx#W;2Qu~1Y2U17IsSBf?7^6^AcZGQ-sK13+CaJ#%SSF|XhmSIE)a?@{ zo{7}HP`3wCM>*7mQBO80RMfhT|EAV;`Zu+1_kUCC_V|y~jm@Q#ka{T8?QKEcDXI&5 z89ka4#PfZfe!Z<0yUv$Xmssq&y#w@ZdYfRkW4iZ7RzIjaFamj}MyU&9jfqp}PB5{s zbqA=^X;$(JL&55;j`ha+?v77iKvsXKJ1hh8P7jfQvCfE4s9A@`SSI#cUB4*H#D1&m zua5P`dUVp@JCJo4)CKU~c&6&iSZ4?L>BO`K#aJd;gVn(Zg3}em;0O z)Q!ZwrT?4}W1Xv7>uC)S)9LggjtH?#vPK3d^Ts+M(&a#89RYP?VvsjBN?jOhT%1D9 z8XabtoYtu!mPyu_0A=1-&-PvQHnNU{y7O>vg;Zz8IzK|KHS1i9Ws)`4WSL}*Gbr=M zy6m94?m^Z7sJl1}c^AZ~3uBE}-?3&*3{s(9#7TaZN!G;_d3@>mZ1MS@A!{Ji%|g~i ztxan}jCyO<6+xECY29qIOtNNLlzE%hxJ^e+MAlJIH^+dyiLFiR;#Q`056>iPwvPxd zUtEc^RYPwq-*r`G$QlH7^COUVNr*bLMZ7dZp`KP&fMt^PppRve^)2sPQDab zgQ4zG8}cTrE{rvW6Xab!V$kXI-g+d+GRb<>PnkE?KlRtUuZo92-7^8myF5Z&7|V!J zsHgQ5MfzoB-BS*QdJ&(tDf7naIb{uga?mvZbuZ!Gx}vpdT@|L*nuSkT@}Z~og2OU7 ztru;|ys>hI?N*AcqoJ-K26OzRDcPN!K>lVy@sU{L0bb?DToe9p3SH9bJB^|UH1mdPz&X|hbRRvMIfV^wqyEJoI`P}hum>)O_)bzLjdYT%hTHZP zGfJ)9DF{~58#lR#`i+~O)@KGC>y7noXfOPA;;zR--HtHi>5tkN>sBAN)~xS?ER(G5 zewN9-wSyv$Pt{KOL$i=I9O{0*+KIb+?fMyOdkgLFR3Bx{$SWs>z9MIKonP9F6> zvPM9CM<3+fsRqMXcZI08V%3AgGQq0f&1RWk)pxKc^R|c`w%?AFt|Otodl2&OR)b-z zd*akuvoal)Nmf^zWs=p+qRboX;qnVsBkKgH$G@;WPk)BWSaVyMRxkWs#6vA&eXk^b z;!3RFFGh9VSk`o_FS1UA`o0e2nPKX}SocOL)YJ0wOirs$gx3jHU)9hXYcKQLHOLwT z^@DJ4-4~Eya{;^sIxIvR-9UE z)^Q=0N!G9c%OvY~A7$QH6EE;>M%Kwte?GG2t1gW7P=s1**2y83N!EEWmPuA9N|`s- zN5-~?kQIdb$pOgAR$Uk?Cr+(3>tarjtV`6vZk^a$mqzGVZ>%1V{@skMQ=opD1$lWs z>cUw0Aqq8XYM5n`b#+pmU`-29oj2AQS!*n0jfVPg4DudUXJf2Llv-=njj9kc$+{`T z>jWztpv)U<$dpR=srpo?zdHzdkE+g$wID*RHA_DoXx5!^UME<0#VGT}nt9l%Pa|s# z)IWf?(}hv$!dQy}6l&J}K9T~F_itkaJPi+JsGA@vmWP}WF_;(BI<_T zrgc%_?>`{x45)t|_tsNtFl<^+NB+%P>SLK?Ese8GPHS0=GHrAMBJqmfx zM5zm7J)3m8#H-W#6($wxE&rOqGRb;9NSQa*@W$abvd)6~atHD(A9Z1@B@qhsBI@4) z)T}at*NH_e4^rlh^@4xZY-F7c^$kAATN;CKu7YSBr-?*7Rqea(}dSF4TX3d+Wt0bz!WR z;uPv>tv6XFSsM(NN!ABJ%Dl0T9)I=0$Qldv+x(FCijTT5)~g{3HR}^jl`JR5>%<~% zjZ)@~_3F6!FCuFk)PEO(yyao)!dNRfLA+0_|C(o#^-YWpcKL$!ZIm)^tXp?I@CLHZ zgZf`h$a_t7W~?`S)LKvLXFtm%>lca=zse$5zc>_nV_iS^p&Vp|pdkbI)*Er^!dL|X z3N`ER5X&U%pQO43t0BWjb>3L>ZYeB5*7?woiF>OgNL?5!=^iB(v7vLE3Xv*U4SU8| zCKj=wOO!HitO)~()*K(3E7n{1A6UC~oN>bitIkK!h0x&s%&wA-$FH3-Dj&md z6B>q?l%l9|VF0td@-WXHO=J}zmQ_6FW(_@JJagZfK|_f{S*mimKaFzdje`tSj)#Uq zRO(;4V9NXW*@d#Ra2(S z2~bz9%=Yt4C?DdPRK8-ex(cCuRrO0z4jqTvvDJOqb#XWMW3h?QFwTU$Ce@TFCxqFV zX)i445yjp>En*apV)Q17#d!}tLH6?8ZhMoes(#_IT0$< z%AQe{C6x64-LG2tvO#&Oa%nt`vfHM2KSbpv(C}CWgD>|&=`@sAeocQh(5gU0TD$Xjnw1E$;(rcf(Cws|I$@0%=>vwXtG zGcn7qLCR8;L;L&ED2Hu6{}EJ9fyO!e1?aQZ~rJ1O_92zrh$iq+O)I&XwR~nRQWd%RGR92X*PAdP1@k}V+_EVOk zJgzL=UHzkj`doxcd_hucLEaX1ay`q&J$%$vD_f#Gb7#pPSeH1!6c~gK=t-R6ZnNZ#sVwqG<Z+BW^0UhozsX{C>Gx&hbSnGTivMP$*_T^_tK9qL)zEk? zKKFdDPQ;X7hp4Sqer5Aa%tEz6Uw;BGO7H=&oi+vp9oTxqKsY}O`}|2^Y=_tUIPukpz3DQ zY&<!5?_6+?P`$l&2^gr#NYpf#C;rL*;a6aNqR*5~T)A zIW9(_R*o}xmQXg1jk8S5vhj4AXJVFyLD|2Q>GtJuYfkEk%4?zVO1u;8QVp0Af4@pT zv~q%)hnorI1V5{j%JVFq3FU|YWvR-YW|~=k|5@Q{sJspuC*z9$;iCpjd7@3BR-PE* znNXhKuuLi^MtLTb$v@?0clGplqT>8ZR-y8GX#6D#d4HMIlqvtTDb&h8TTzbUSwcz2 zxnJ>Exi4S$Q=T%*5xJ2xvoy9v4oBq-X#6z@dH=+z0aF(6vy0d2jZudR^@>NsER(bR zE5I``%R?iSr6}LXPq!~`-t~AbDsOEvCEHx?Avn=)TOssf`#WJZZuz4nw z!_~1V%Es3+(#&#ed3X1Ic_TFXW02n|L`|8pMrB%A9idRqvdm;z8!Mg_q`DO4m>Ya) zlp|JGy^qS9pz*;Fs(uv~q#PGqK_ec%5AFY+fg?p8rMZ*mf(o_wF9UDsM$4-idmv23py4E}w^3@uqWBp;jJc%9E?tM9^?W zQYP+~vn{GiR%UGIlkR@`RM#z7+x0eR3>c7qP>dRAW#i2u3iT|9*gSJ*$sbtP#+~R+ zKh-8HVd$CZuAWP7eCsq+-VTkoS&*-e$3E)y<=tWGs+BWUCC!p*+^=mbzxGjWit^O$ z!8G^F-@8XfqVf)C{03*~E(tx9^1BE{T6uebXWnM1-({pI8^5&DDEGYNOT31=-U*GL z+mPSiPbX)ye9NRzD_6&OCa#{<2Fv7~sL9VWag9F}q^#Y_(O*@6jmo>A@x2VlKU|HC zDc=oKSFMa0JQK?I`Fy2vjcVxb0--EZ{o1drTJ{zy?}nzZAMytT>Ev43G>e~IUgI-u zDs<%uWz)WrhY!23FVXs z%Y?ECKeLw)Jl8{ zOsx1LHf8NrHbib6kIFgFbWarWkMU6hrd(uFsAu_Dm}g>^3k{aZSq@MQ)hrvgs;u40 z@1Fh1eXTwh8n?zFf2c_(V#@PWsFmZQROn_xiJv#ghbv0VvZ>VKnV6-1x7TiE2WL|S zDotn#nUH^cfSNMpNhXC_IV#LEp_~w7nOyPB{JW9Y_@An--OAtgA3qnB_d?U3IA~&yY>? z;*@ITJdMyj|x((?fXmoD!v`Oj&7AsFkgJ z`rq^buWMtL(R9kfm(#u4=zdf$_jC0JpeY;g>SO!_V#>l8g<4t2Me-U?{tP|+iq~7z zFJ+cZBhtOvxNF1or%;&%O$~VUoT0u=rfd#TSFLPvcqUf7D9ExlW;s$Fo1#qrnrLh8 zEnlMYL1;PwSNtrKPQ;Y>jzd1Q^5`VFPzD@UC--G@QYQB0YhkKuw{q9}-?+;8&~$td z^3RD=1EySIQ>c~4$9N``$M8%luc0#bYU7tEg(=FR)15Te_~cC|RHO1CXxbNNsXshr z%AFDFs+GUmJQK=c7R%aLalbmY-O86^&*3v$*KBCoWkCMGt6l&$cNtsZ77iD#AD8DzTuHDM<;|_E` zHOPggcTqVZKn<93olT)uu4`qMZ^c<%dS!Djlj_>7JnYr|wxBW(n)eGp{v?YUXl3&O zHicUGek;lkcwHOHqkYt`-O9+c9%rF4ADTAWkbkKE9 zrGD*JW8;VE|S-H(tDvcl($FeB<)sS5qzv8Dj$R9 z)1r_+%c2HMd1jI*ag8^h;ZUI~7qh%9z_K=!xjw2(QKo;jv2pt7wWwSK&3QP>+k@1A zDbG`(p5?e06>8;~4$In5=0~Zn-O4?`d2bXdABW~!@lJHNpBgZwzVNm3HdUyV=W%%( z%9%krNxPMUil;TBaxpZ|3PJuHn;J0XEg=fEa+bq0vEo3D32F+!yD9ij*sg^OK z+O6Ex_yA^$O(8faz9iK?qRx5Qn&bttP$AaI6(1C%ELqvc&(7}K z+^Y*JEofdAf&6DoYQU7Qs!S`Ni&98R`v2}%SCsY>nC35nRGX}XmO<%08GK>Q1y7@L z3A7xG`*H~#k6+c*Q)N-Al~sI3VwNp~xx5YKXD0PaQKtXQZGqAGMpQ0^mZ2fYe_ox4 zDeHsORV(XaJbM()&|K|fSsTi2A*xGJwhRcTd42iJ!q@Qj({&j%H`|c^vY#3-<(qK| zwen4aXF|D(*U5cZA7gcLUk+4tDax0>PWLMK&XIp_K;`q${0?3{EBw@yDc=iIsFm+g z#IByVc$R*aExQ?1n4(Po`Q_+GFIa}k7oep>81mmx-?~<|?CztkO4-uM;+dG`dk)Lm zP#zhjx)kL}d)sMN{FLXW?6`vU$tDmCYYpbS77xP`2!DvrMk|KVhCF z?&>WWe#%mmon{+pl>MBWE=J``(ELXL@=IgXKr34^)c3At*}TQ1LZxi}J;E}fY`Hna zGohSGQR;8prdJk?KIS7-z6>pg;VdiFiI~!_x+-PMA*xU*TMki$m`P>l03GaRLV3MO zS-WR>+Lnr?sC)%l4$px68g+7}yfH*wwXzRI?CN>RqEIUj3i3=S4~kRPZl!-pkJC~4 zDzr=wL4LggF=Y>fx@zS<5uS;Cnf!N6xX(S%(l5s9! z00Z)yebj&{N8|a#Ln}{7%7k*S7^{;jzCW*%%B!MOm!eF+FZY;~wGovoP#K5(H`R%l z@*0!6YUQ+~OejxH5{X&%G}y6HY4|8>x3ccX?nS744O$F*?s+>x4Vdyges=lFZCp|& zlxJ9Uu-=#Wd7gZ@nb?iL^v)PO19QFN_bYf+(_iCL~q5{av)(PnjWmRm!VwOd(u?j4BeS_my41R&puPy?pi z6s1rrH^z7-lp76}$yvs*xp?5QQn^U=Yq#?B!2=&eWf8P|;z0gq5o*emPnZ;H+J9KQjm4|;e z|2|ZfLCd@lIIZ<*H1RWo_)suIf8%w{mp9Ur$421+?H_)RO;?MJHm)uY(k7z zi534soxROjt{M}kV^fqTUlUJrjo;gO!c0_FLd%W}c(@}Sk6-CigO(ro+2yN^Z+uiq zv!ws;er;RX*`nGMW%}O>K4j$lD^R%-T7I$N;XPv1fGKyX@7)!NeffhrlXvAFAv#Hl zGX0;^{rK#yN1?I`R*ee6!66iluR1(Jp;E3o+2NTt@=ll(8$H>W|7ASaon19`0dK12#+i zd{aKOvb)1GZ_0gxbZono*9};|6qU8GY5?xb{ruE`Dfd^||B-g)fl`hCAHSbc*~%ax z+i4L(Mw_*aHIj^w?583m8kLH|v9&1O$z8gV+li1QqmmXeU!uD=-F-Jm5i*j5@cW#3 zp3n1qX55oIe)Gq7^!k3z=Xss?^PDs1%*?%4TOOT|Z)%pqOlsI{%gb9__8MA-VbhqvgktcfB9dJ2z!H$lyltGg01v5ND}bK4jCj&9>}Z*~@t^_!G#(zjv43 zO*POno;P02kj`>YkVbM?YL=6Iv~8j#^!d!~J-2?n7vVOCZiKv>J&@krrUuONRv$ra zIl<&CHOoww83*^X`uE+AaAy2d$h*^q^d1Hc&Mb#V2x`k)L!6~%IZF+aoTcmUh`8+F z_J^S5XOK7B3+ZRuG&r-IV-nPsBYd2tX8D@h!)9B~-+gQhEjK~lD17bdW76Qv^4=gp zZ8;~xS!$LGa6s{Bw&jy04acHo9^^e>K>B$GHDHzteFU}TeT39~j{^7~Sht_o@mFoC zZMLPScZ+JY%!j9gy&12LA%K; zr_g&N|;yg_ebo_kIM@FSV%wvs|Z`ww$W+a9C=VTLRRu*_NL9 zod=_35#(7hNFQKQ17&O9&9?lxbM#NNEQY)yT$fiH)PPx*#0YB3 zX<^P%%kndmwr#fMhHSoKE$8~%<_#eL2a3@3LTc3ncl`=2BY=rP`i(XS%>G)vJCRR_dvQC zRUOp326;Pu1eIm}0TyQ|t;_t5G1|7-S#FsB_!zV-hy3GlUEXC<1D559UV_RpZ)b?J z)GT|exoNiLsr%q{w5))_kMW?Q~6`IB8}SqXW+ z;Vb0*s)4r5KU2++vdsJC|B+?SAnjqZEsx7?kDqTHS_S!C&~mIn4VYyQlc2UVRH4IC z%W`ml`XyVs-uEmz`1B&QtcLv4Vvs&AN)4FhprSx!_!+|s75+VZd{XQ^fRq)FQ*TJGnpe(U+K+>DmBkbkTf(jN&^17>-I zK~P&>X>pdCWk-{?O|;z4S^et=?{}^*>ma{F2+|)@gEPy%s;jpA=co8Ivh$2}?spXV zlhuSJS+2Y&=<;6h#wFEr(Xt-$AMruD714vyJA?UC0tB^XUsdR^)UtH_eB9k~Q2A5G zp=AT)569Q>XZ$3@vK*!)Ec0)0`|PYwwB-b}Y=r!qG0W*HB4&A8 zn7V4qTVtF#Swj9uUKgKn$RCx!;-8)64>i){Bgry!m7C==FI1JI<>!z;1ds7qO#RHkNygkgBu>6ov^3_KEPi~)4oI3RJo6s@}`PWAwJ*b3OmZSaD zR$JZ|W z7Ja9}+i3X(D*!E#BW9zc;UywhM z*R9Klv$0WLH#g+eO~U^b4`*&f5}N~z)y#?4MR;A!y_U1>mKfDx5^GPvtsuY5%NfL3 zd5E#*B{qLop7S~0myrK`7}6JD8+xe3z6cZ2iG68vCKCI~VoWBs)nrU2_O*{Qk=Qna zGm+SKLh-Y#NNjtQAiBuJz6ofJu^6HF9*Q*fA zWMb(SXCkqnVmdLWt9Up}B=$m-vF5F@0X;76gXwIA{H1svUZ$F|#Gdz4S7#4jz!J!} z3B~tXBxXkmI(sM*TNGwYCiaTWnOI}5TAYc*7MqO8#9s3;CKG$z;7la;hGIIgC2Bu( zVsBcsEwbh%c1!P?H!z*AA^%r=O?Xc=Wr-~eQdgbWY7b{3vDGogWMc0}7?X*u32`P8 zTN~s|B$n__mP~BDpVi64KJaoT68l9lo!A}^)#=23<*a#$wd(e8A*Qnp3Qja2eM5kn zvc%R!397^j4)AdnPpqJo!I(&_pf#cRTFk=zfc!N+f=)k?*zPcA@x%%`#26Ea6&xL5 zOe9utOo+31Vg(%uIp-&F<}WxdKu{%CaDu^D^Ah`E=j**No$XN2$At7xgVaDLR?uBR zo!IGWbccz=&hXR5$Yf$?dKnXIte}U7vv^_!Jz|`R#LkK^CKL097?X*e9pp?T)-ym% zC)O*0#m{2}y=_+4yu=n|w`zy!d;!=)@)wil5uWQJHwh z+^p-ddzXwk4Ac1z3Kph8`nI6zs;>D9^bM*`>{%79PVAu=ZH!DNHZH=LOl*Q0#MxFP zmTmAlk=Q&!P7*S)9L{87F9rx=olILpfx>&H>!tED8l>7JyB}F61z!tb<&An z!4`aMQ=v}m6J941+i3E-EU%N|r#{X^VxJkDiNrP$Vry(ulpu~P6Uz&8CKAh6Oea>5 zz(it&G1?aEnwQv`UE?-jIy<4@D?gh zUo}Kx^-+S(7$UKTFk|wlY_u7ZiG6NyCK8L9#B^d`BruWKmuiQbo!Avqzqkt1`4I|! zPlI4_;^>4ikyRB2CiYW^F`3vdW$A1y68ky8>qKI^{fx=Pe(^FU z6WinAOeB_YEibQN_o_NfN8DEy{N|%=o1NHC?Wg{M>BOMW2tiPPAzUX`*eXI@Rbqv$ zL!8AED{K>FOe9u#V1O}7%-~EU7Be}ECsue&j4_c|;jt0ML}G=<8JxuvD?DDgIO)XS z?I}Ew%Jgex;YlHa%}(sgJ+s?jIzK_-IWY)!P=m9?&Qwq*)`JF$A6X)?9#Mj7jTN31 zW=tej=(RbECsug2#hFN~r^%R1te1~5nOJXwGm%&yLi#SLux|p3AC-mYcnLN;vCBXF z<4jCv7ZeV*A$WqCLY-K_kACW^6T2+PnMmyN0Aq5EU6HVDmKV?bg#++^#lz_*61&pF znMh1uw>vWse}Am-stBu-i46>KCK9_^F}=nHB`}fLHBs8O*@PTwm1nBKSz?#QsH;xwp(tk}v2kI>WMboO z#$;j>EY3t?51X8c#3uR}lZj0-7?X)jCghwU#1(AeBZ}$79!+2(u_<1H&0b@pGB17( z)AcnQ)oQcF{T8zoWo--MfiOuqHCK8)%a3&HP=VweNw!mgg zCib$$nOI}FL1H>Fn-DwmFA5QCc4DhCZ+IHh*#m`Z@jTYgLk(DB5BUh{#NJUx4ikxm z0<2CZ_O72Xnb-<1XCkqc9?nE!D`Skw#8yQZlZm|-;!GsAS}~p2`w2{}u{BZJw%Lho z|6u4Dn9i?I7_lIDS(qBI#6DFc>BK$@QlU<4Q-CpbZ&O~Cr2Z-s!{;)X{iS1KkG&`}6KU}{A)A=2W zy5MW&?S5*?68qI8=*oW&C>I@o4R9F;|fSd57^R&=PznOI}L8JxuvD>^>P zm`JSXgfL?wv7!@g&fltKBCe|y!Sv;|#-hR$RVtu@f$;A447?X+hjd3Ot zJ4Z3K#){5OU?Q>e4cfNZYwV$Jw>qDU?1Q4~@XS9(HPwj~T@j+LII+Gh*wq$w)rsBCE#(@!Lm6S6Ozh48-!{vOXZ|A7&zVSUIQ~E4;fx^? z8{uJ0CN?6*m`rSBgfo%YU5e?%Mp2o*9xJ-XOR(8%tT+~W2h;friXJy1_*jq{u*7ax zU3Fp;3@UV(SYrHQ=o1&Ob zY-)h&946M-V>V;WTVscqAGN}C{)VE(_*(g_MGaVD<5gFk*mEjco!Bg8giNln*?wy1 z)QQBN_i`o@o8#e3BsM3;m`p4^!kA3VnJ@9cF~nU`(IQo+6MIF~>BL?Q(zeK&m)Mz0 zcixni))o(z^$`d@AD{*-v3C`7_FBAFz8fXzFtNr~gc*~Gt+W}FiLJ6Y6N$ZNawZa6 z?PE+P_P)WGOl%DyeP3CWa4j!iE7wM;P$#zD!&vhYyZX@a_hMoIMWsFnW|`E0CFb=K z)QROKFp*fk8XfCoV)-$?typ6P5za(ng(1#FVnsp5WMahu#$;k8e$K>Exmhv2#v%z! z9F+!yiO$cMUXR* z*p~s$L}Fk08Iy@^^)e=i=gq(BHx_Dy6heZiGGw=dt0L7j#VF{RunYdLcsO+;vGzgEL}G0d>O^9_ZB{1}>tit{6YISc8$rHOl+`^F`3x424`Z8`4w~0IR&$V;_DJv{HQD*;-_t!y~ZBt;VjIyZJ>BG zuCdQ(dwizzSn-_}Q74`F)kU#sawgW;a35oGjg2rElZlNa6h8t*Vk4sjoiRjWcZC^~ ziQR28CKDTFaV8SG$0Vi`yElP}#O~v)d28(5RYg58u>+y_NxXtB@zOvnv566aI#Spam*g;U zWwPF4b>b&)ia#(p>x_E^B_|ogoOQ=6-G8s^bB#SFq2-}aT;_p{i%@|c%Cgc&NLyBf zI1`o?yiQscM_HYios!ekAW4=bCj?x6y6*n&Yi6QlTPW$|g^bHo1N~D>C0#8xlE|{8 zON6tyWl0y4F=<)l;Y?(CW0+WyW&Xup7t7;IR-c2G?VzN)1sPX{r~$J)Ge}TnS#qYq znXo)VZH#rovgBkxtCLx_@eoV0EIB6ZVtIP3_4R0Z7?j{|VamA1q6W$9PF^Rj4g{ zg;<@O@gw*iO3PLOs!OuG^hY<#jGh_G(DDc6&Ms4Z_XITKml9Aivc z_ThEXa*U7ak}ThuW4dHH>B_;2(DFzq8DT)iodz{vmUr_!WR`b@sZeKmm!C0dc`M&T zX*nrCb z@@OdW<1s!#HPBfWZw*jaZMl_@GrD{o|0+ljnXoKwG&mDk?u-yivUESI@0<#(!3TYgPt@!XtiMgDNizcF00>^HdCxdn1fV%UwRsgykC+F~_p{_YnRv82vNT_;2wu(-k-Q($ape#edc8 zvD3Z_gr@CjJPcKjgOVpgkTIQ_;PV0U(mw+)oa6(w*3J((7m8EEj8(49fidsHLdKN zx5`oL1Soj{PdIbJ)P8uBq&+#fsCv$8ECDN*KC4HD`Q?0TFb(`PNem= z+BUVcc19ZU{iL=Al&nFm7emxpYh}FTBdD}W^qZ;3R^E#pRzD+DOtuH4&bpUF0 zf|89UWV~!p7w4oQZo)GbdI&mNC&!#4?0>3ItA0#n&IwqmejFv})Ctv3!o*Tj9oOz= z+_G(FD2W6iW08-#Fx6MR1hs0h#hEyfl$eZ3)y+P}q-w+&t{XF|l9SRF|68w~w}NM6Huy^T9S`EK^;W)^d|tYpuNj#)Q`9195eVhf^2V+I&!i zSZZ2tM|WAM)eSZu<%f(A{x?0;tHBB%A*HqX2(BQtj#LU-t9^*JO-<|STb52ity5sL zkp>y74C=ztN;qkVwYB*KlL}EmYMtm~Os19iW=!*6((iw2hVvqIDs1lVg^c&Z)R}3m zwFv68PT|Q&ty5JpI<3=!v~6l>Jv->bm8f+ZZ0?QcxAiu4VOkp$)LK1NoldJ~l%Uq? z6(*LN*0&=Ly#%$o!{+{Yg80ayE==oxK7v~7LN8-7t$rTHFPJ2@^|At84$)*P+&#u=#deTLshvpVbMXFi2Eu;jYLBGC7I2Mj4Zn zcw3lQYFfW+tsI3~Jz(=axVDPD)P-qnR!nOpyh|aqMtP`Er!^`@EH$m(JGQPyt+QbB zgcxK*Z0f?aN|meD8W*HOo!0mOV=}D?eqyOnqe^})0$}#OHJ#c z&ga~TT0LQNW*TJF8PtVo)kg_xt+_U1QtJhaF{zbd5=%{M%E#-S6GSiAoQo%j#xQkZ zT2TeH)=Lp8L?*Qsgcy@rF9(UGrgi_~yZfV7Z`iy9*VdONbzxdt4T4(hbwcdC^?H<` zQztHL-Ut&*P3z0B>vWuNNZygTAwzd_1S;a%D(riYf$T4*!+bJ8L_BR(37}JL7i5@nO~;0 zIiXIhtw@*}rk2)|yPhaUt@B{>_XcF_R$bU6?y;z~*7`QanAFjH?Rg&|{~MFvdkFCRgz z^;eKFnbzL{#zb0?G(WM_(i-A9egbM;2$6$hkeOys7p;{EQG!YF$ij{v%`!@t)4bxGOb<~vDCCm zrmi_2wJwH8e-knf4^tPWb);&owVJpgi!^aV7WuC?WCfoMya=@}fyk9X$UMquLhEP+ zwbm70D%6uWz{8kKYe0-xYH5w1*!OoSPkhHLA1o4PQq6HS6z>y{v6QtQ?LV^ZrjKe5!bu8p<10JScM z$UV5W3~GYUDy>doqFSqo8?s0fH)N6jdP8>U6-Vwutt%k%5U#B*HW@IjlTCtJYpj^VAh3sC5-Y@Q;jU_V7^` zrsY*kYt2zmr^K~mxYam4CM+$Y4kznr51HzT9^9>YOQ(?V^XU=#+cM(dLXI-`~!BHsic^NJ{S zVOm$(1hv+-CbYISp|$-#YI!>ZowaoxM0Q0XbD)n5nARW#wN}E{CuCYb1!-faPMjci z1&F1VRwwh-IjA)RB7b@y^O`7iVOrPP1hv-hA;zTEA5CcO`;S_mjfpg(*7dNZ4X&;0 z!ZaGwy51tFw6+`&WlU&oNxVafr?sWEO?9cIRnx!29jJ8!Y&kpxnKv5Lg=r0q64Y9U zS&T_7kI9&r#4U&Wh^3}gea!LGQ0qq6avZL$VHR~^TDPdyTI*O4t0THiJ4dtveLdT3!CRwzhQr=i1tG@_$@gd-_gKN3EM+ix=0{ zo#7_5hFb)+)|pYpWLiDKjLEdlvWcaZ){iZ&b*>)aS)QtP}3vDCEAzwMTjQR`;da=8JSqr%jMY29lP)LNHtCbcd#d7W5Wm-&dLrnP9) z#V4TFEwJTUKV*(Js0-7&KT1$*4dTg2t!q>=PMy#i9HMPg(>i+CVb1CFR@id01(^?o zsSDE@tDx4p$)G}HQfn9?{T{@YVNrsqX5uBqSqLC!?Hr=u{sGGA30Y4KOBE zr}&AbruyA8M>?n7J7LQ_Om%9My0BEAP)w)#j4ITs&xWZGnN-d8F(y^#8N^ak^$$C4 zKB}6qWig&yEEN`0ecD5S*UHZX;mJ2Oh|r>7g!6 zb(WW)R$WU-f2gx%ZIqy10PDhx$yC?d#8OkeBq!%yR2>OhHrbH*yg^-5A$qq@{o zH(d5sS5zGZTfRfp7gcAb`Vv==F9F~9X*jL=Ew7WRJ5)obPN?pP(YC3n_Pk`-093sP zw)~3c)t3$G!c-Uf2>s-xLc~&2Z9Qf|KUBRBN)Pix=4;dhpVfKw4TGpw zJ=DjUP;JZWq-r}V(^pZY?V_QHnG%F9a%DC5vo1_ zrGrC|`JRuuFxB^!msY(XNQGMU!T@7ZwV$6csoG!lOHDN^^V%V(`XH3z-)78QYfxu) z#lJ2@P;1@fVN7b>6k|+k4T}&05luYW+Tu~0hF3z;9NE==n~n_6ovQxzhUTEj!U zP8=>Hg2YnO8vXr6MW_{k(g#e)3|rKNX?^S=sI~AtZ28by_eU9%X^jaJOF`@B-PTR7 zcRvcX9)i+ILCE|hMqQZJrxro2^{|&QnbyPveUa8g)i5=!HzV^eLalL7`cxWZZn9}K zrj^eXtI^d-NeFSMQvQe6sK_%l`?Pwn0dwZ=o~Y+PFfYBZ)*WKwIL)=X8X zwVn&{I-xb|KWeRtO~Q53b^?@U$V@etHncnc>VS}QZkm`p1xOf0pu%D0W{ zgIW(msf}xEON_cOtul+C*2?uVCfC-&1bva#Le(%et$~&GAp7q8q=x@ z5Y$>rOva?vn?A;5T1yRLscD@!^@LHVH3>@J!?ji8r!GvZHcC)y;Z?YN=t*1|WlUoQoov)`loSr%p`bhpJ&}T5A_~!W-na zk3eZYuC342QeawNsMcCb-Ijrv@ThGcL22>h0-!yTib%vnQ1j~Us1Zn zq(ZG#>SIi%Rb~)NK?~3FhZju!6}6^7X+sP$cc3CY)aU=-dkN{Z>Xg6Ms#hC3bz%}5 z{IqQfT6j8rvgqL#QEMuceuHakr-!<*w0?{b)LPrTjLEgNU2Uwjw#TS0HLX@TM-NA> z$Dni=Qsh^3~ramS*~sP#CM{+R}uyMxq)Y3)%^ zr}cY;3Xw^zKSGSjN!+KlO-<|1!Dm&Y))P?H2G3i2z0{d${T3srw8{>MFebFhT7?)B zT4k++#8T7xV*U-kpq2$?hvVA%Lyg9?{#32C)?qZ7K5vyB7A5G^#g}}UCrm6gt($kw z8iQI-LfIJ}$o$(&U9?tKT8yC9I@V@Prq$76Ollox5=%|%$KJ;~R}fD@SzkY7wNSw@ ztpohjT5I*cX@RR8VX64^kmAsdZ6+ zF`1UnPb@X9jLPSn7oTUKY+wws4vJ70rgaEc5GRPTD>;)|R|RNeM_;5h&`&Hitq#Lh zJ690TLfMT5WVH=Z7p8Ss!f^Ak1j>elsZghNz0H`^y1^orn%3N9y(>^_8kF4`gsj8; z)P-ps=^>~m@ph9jnbsXX#-!Gr2C>w%%8FV|M6Kyib|0>-_80{{=ru8`Lx7Ohy2oTp zYTfH&OlsX{5KB$#<`15K2(@NF*#s|S9ixI_X?0XkYmKAP*m-MQl%P{5*4FqivDCD> z{l36CZ_R|V$4$sOuBo(6XdWht8 zo%{rKTGPCY$w{2$m*g-W0Tlbwboj}2n~l!YRwHX zCbeD&5=%{M`5huiI%Fs+^;f?8{xhcUUf*2Nf;TI(ak zQqyW2^5@~G6@;?SLXg$lPhFT+pD01Cwb5csYJF-lCbd5E5lc<$%+lg%s5KYLB2maX zmzviwQS9r#5`vR2Jc_8ZoFLhyB{S?z$)ggk& zq*hIWzF6|L0jf()>!GD@UyoWDP=;S@%<3PdE=0-LHXrjVo8=|AKNaLBiH@C7%j7)yi*Lat}v*9wk+@CBd9FPy9POX z!7(cDYA_}(e-3dbEKQ48l4bwH!!DK|RG%{)EwiEgd@p2OrJ6F!eyXdsyf8u|sVvJc zG#L|?<$Zme3Cmkz#F8v8I@E2(TXpP^g_iT6yuTl^t_f2EW_hQFptigtfr%_{_pv%@ zd5M=ZVL3EREXmUS7kqBqdqxMe%z^StB9Jvi4bCjDHmR$&92n$GSl+BQ#yV+vRgBe% zU$RzytdCfd<*I&eS*}cbzXmN|gz`Z)WDSi_17_JVOi)`M%SRVSPx%neq@_Q^ww0F8 z`-ml3o;SyBUEWn+bT?YghqAqRj=rS{%d$T#>Z&Zu{_t=nvOJ!UbKJ)*6~O;+n3(Zr z4dO|b;92CoxYmhIzvBQ1}% zsb7+1?~^?)mfx9cve9w@lph&`tdV|dz${yZ32Ms&Vw?%f=S;?=<@N+7vTScrU9&Bx zJ+tggw0s%LkHKU79@UgtwvAF(ZP`NYj?VJnAghz>vUQjh zf|j{ZJ{*tn`@PhFS>6>Ts4edba3-?6i;!BEP_DltfZNI$e_U;wWckS|)5UUdrg1r1 zE`;*;gOD{=HDH!c1Zj9}`Gmolu)I6On9TAK)lgYhw2V+)lBN4Em+rP^s&mz9L;1u2 zWQ|t?G0U+Qb=8(*J)8;42W`frrS(tC@&=RYk}Tbio*xQ)ebI6elut^7tjS(#z$`!D zBZ;ex@()yvDpRSdwLVUDRd9@2tM_VYGY&%KwM!a;ilQ znB~SOL7nBs1ao1zk;>S*+~6bVn8z(ETBvQ4Egz1!SpG1hID(e1LU}Rxkh2AgV2QhBym+$y#+hogM-CoDnZN27Ww0r}~cbkwk z*P;f@az&J&wp^9o>+%gRW76_#gENukYawDumgNiFUVC<|`SW75Tn6R%XWO&hP(sWy(@$Ns zWk!@UVVMzNOj2^E=^%bDo; z>V3=6@?EIN@IcnO7&T>)AF>=?zbHY)OXojiJ`+EkZh>7HfL>+^m_%T;I@gRIZO z)PPxz_Yu^V<071iEXSFQNy{-o&cuvAY7lF-<;i<*dx+%L%HXldrH`sp^s}E8dB@%=qZ1qK#;|8Y)(KA#1Zu12M}tLIkzt>L_Qz z@>L&W!m|8DFK5E?-2ky<%TaD;^;dh|cM4j*4;4%B=qZa)17_LBB&aQW2RRd#?--29 zEcHvS%CfSBO?Az-9K3PKX0%)b6?a7;t13(lnB`XrYRj+uROm2a`DK(bY1!B2Ol0|| zmsqmpA89T#UbJN9;b^%QDz=6pt4$5)bgYw>%c87K96goYR9%u~?<-B0 zESG=y=~A>@4;4SAL6)90X8DtsjU>b}L+i)i@) zRP4rMe4D8o(>-Kms|2I?Rd8i1Rj6jXGT}WtvQkh1j;zQoqxfWZ8dJ*yZSXH0{zu(J~AbL(p=M zmzrwJiW>t2wdIY3oZRI3@`fNmWmz$pP&{8T;}2K_lPujoJ3Ifm_C3+^e^7CY0a?HM zsDZYuydz3bSyt+Ep0cdGgUZ;94^3dg@_LhClBN6SJs&>U>R`0|7%fAP^_QO-Fw3C^ zL2Y?sh%<5Y+{syd#;L}6cJdXL_XLS2SynFgxXgG~?W_)H`3Y3sYeRMmA2nc>_eTh7 z%llQK&T=%blk0M50uz?kc&T5qeT;0NDpesR6U}^3mn_(rZwm&hji?C$se1tWM7O za>bG?tB&`%%=m)P)6UP|e+HHK4otQ_Su@Kw`RLN}O&=Rw9OIQsB8*APvn|fzGhTH< zm{^i!~t z6>hIRXUyn_=d`wYP}vVHJ4C4gv-DX6wWZI)nXtUbW=vY1m%v1p9fDMsY&js}lI4VH zZKj}QK2+f!ZOrZ%r3TD$Pne*#+{1H|GwzGAy0|6%+j+)q<+_X*#FH%hyr1S`X|3pT zIa(G#SJg37Y0g~eHX#;e-fjL8}Qlh?^C^FmaYWLeeLEz4IMKYA1`i=fIA zgY1)|)IeKS7WoJ&%gVwCXJTCznv4m{s+KlqBFlCbu_VjN@4_xKe(JW%wxMM)R2|}l z?9-yufLXqqU?i?D-!-YwF&CC0p1I7j*w5-@milTg$?~!X++HF73O9B{%Mz&k%!2GQ z1JsmR#uAK#<&WG*TCVWX#`|5Dl^LpEl4WJC?ULnFA5Z=mEjL4DW&pC!_R~Pja-Ky{ z&-gqKXCljNn=zSXEW(*MU)lz-Bun?J;7;8(IOodr5FiWq0Y@*9g- zl4a%BK9?E)cv$BWv@C_nnLfzwXHx@aIWs~~Tkhba%XOK~>x5<1lU}y1IC`p{3KC1U zoEvbl9KGyLygO)H29;moj9+Y117=0%(B7HnK%(7{tnEj z@+m{mvH~h+cp&>KlNxBt%Bfz0I?E|x&P0||5^{51A)(5$S)H8m`&3<$rTcdcO1`gh zUVAE`@=08m`eI*OR*m5!$t=etn2RhE-r1H}PL2N465p4Sk0i@>3xY1|a#Y?QlhCpX zEhCWak5L0=c~62-{H$IzDollX#z(1)kjbOxfdH$MSx#1iBw4zDFSvbP-L+_04OI`v zAp3?8HD#8aq6F29S9Ri}%XQg_%JiLXmHs@!F&9Tqwn2qSmQ`79R~s#MWjQlm16BBa zqU@W!)PPw&YZ26z&w4l$GyaUtn9NdNWNFJ9AJrvW4tKlS_$xDVG+Nd|)eAV|x5cOd zv&^swGD}tHFmd#p?q_w<65rjC4{g~HC6;9A{{H3A(pSc#WgS$dTaaz4!I|ZAKI*D1 zZ&!t6Nj1*1W8{7ne1}c7&9+PrKCu=p>!E6(4cT`Er~$Ja6d|ZBpO13pWXT`M32MvA1aonWUl?X}`?0*jLv=}(Ra@MS@l!@;9*CAvs2X5E_9P!QV3uK% zptig!%$cyf%FkHb5~`~B-pKRi8aK;}?uog~_#Jb;{RAz)fU3N;P0vei3D(%Pha}b0#dKyiU$|p2_OOj90g} zh$UINziZI`!FPT@%dJqg9nb31eAIwh?g$dpS?(}66PDkqU8EU@sxK3mcpd-Qq-~Qd z-DliW@YQW-`88C<(jZ&kJTS{W9_p$szYB6EEI%c*|8-gI@lj!tWpz8#<>;Ay@1zX0 z+=iBT^gOQ`Fv~v!)Ky#VvpI`fRv!^!OwRa^CTAkcke67Z<$k`Y(^$FyH)^{bs*m(R z_FUQ?pViT`B1%+SzH4(PviythjkMfHW$}FDmepk9J zAv=q<$7iyvKFC8$j6bfR%Ch>g z06~>yHSVo^I7Z?gaxha7O%Y1|Ck}Tan)4klREJMqkP`%ND?68AX&6`M(4vvYfBBZMNmmIh|IZ z(DUlpURX~v;?0U>t2yjYnhS-PLq-|yb(LbUuDsxL7hTYo{8SzgwJ z<<$vH%y`QnDUl`p+j(}F$nyOV@gz(4b$M;}rrl_{8>-h}mjAP;0keF=PteINey3ag zdYCg|`8uzYGyaN?)k(|#0b#rxc@i7uM<)%|F>2dY&KyhraEx5vC#v4+ zquNBvw8~CtE@$;my^CwmaxYYO#u<-Y7x|y=OnPyEWh+nzeG#u-Pv%l{3<%h z`PS2KQ2iAiyAXLCe3Orn3jKx6}6cOqMlWeMGh8ZvoCy z%d%&bwoSC$&zb1%{`uda<=;?qIv(RYENZ|k&rHZI{t8*sHAID}XL*6z!)9AvDIL24|K7d<1ot7a5$TmgS8$ZQE?i zT|M8z*PeDQq2`(>WbgG-17_*>5Y(0fLY$>$d50RL*_NZ%>?uUc1E6MT0J8tEXmDmZ z%qFNU{i-na8NY|x#s9`9`z=Z}D`PHa^`{PA>O;#`P;;jbvj2*x4*KXB5hSQBhetVc zvV@x90mj7jWzEeV&f?dXHSejqq%7S(AFu8E%eiRT8fsP;Ft4R*%Cc;sptb~?jV`W& zYrxBxv>X}XOjzo>y(CNb_ku56x^NU)wtr(+Bg~sll1$fvT&X@dH&M9X(L<8fW{lTxzAsN0Mbtj@y0D-eD!* zqvgR+gYR$5J3LGcnC0O4?bv_zNTds{TCM}P%ITOeD4+gPBOK?9Ey;{5aY_x0(HJePBcY=o+ zFw1ZgmSKwuwPjdsj7(atw^^OYvgS8Gu_R0PPxy}Qe9*CI*$!$x#Thpu)PPyWR9DAH zTy6Xqr9y4_V}LPf`M)q{BFkEnSPOjhS&KJ%Eyba|wo@!Et>Q4eMO#*3r!6b7tYaDm zrKPnw4QlY$Y)n5C|6lQdgK(M0_nC4%CgW$P^VZx$T@1|tIkiH$rOK%5X3q; z*BL%yNptP~jg58_ZTzICod;?%@Er7sMGe?oX9o#t%WQ))aSkf77>irdzny1oS!EMX zvaI>u?Hp8i?<1IByThTTIt24Jnbd$;)_VwQOMNr!FkxB8>tvSmXj5%jJ5aGCOZRUJ z&b#CqynAeS1k`+)2J;GIs)N27`kId}kDIMF6>7_^UdE(l1K(E8_>3^sHQTaF;Gsv* z@<^!JfoIA{fEutYXZs22EN7{awB;;bCoR9W*tXL0X;qhGdERWd_X{prYIa1+_E2N_ zVP1KNnlj62HbHGU&C8jX@n^$~Nz3OA&cr$B@c^+T%YMa%%Q5bW)^9+|qo8Jr2jn%cG&Tl@0U0jH;2;(NlY%f-1|} zD=jM2mJnb}WLeva5Ie>%^$>I{tA7vSP-!KDr6K;iWm@&7Kw5?KiRRC>_^+Bhb{hVD zkv;tvIg9fcs5LOqZE9bg#VP)x?!1IIuEbw{tUX>0=S=5(+ze_@@R9;D@tb#RPxLb; ze#LF=NdaQ1sdgQ8%}7)|7HUro!@TcQXZ@RZ=jrPht<_BxYOPbeq~O$@5_9xV^$<%< z>%7Hz7o%23sO^O(p&zLUKGUyHo)-%e)mnJ*Bp+Jq>?mVWt7n*4YFaHbhipQv}h2P|o52sF~b)l+DO>4_7PcKKU<;%O;kZ*5f5lwMH!iYG+xH(;`Y;nAQP28F}8C z$&-;<b_eUa8I4>e3d3s13=4(xCQYITCztPte1R$Z7@n+UbmX=V5slUmN*iFjzO zEY&bIt<96?KZ07Fq1HAa=b!*}W?F|N3@6U=FI!ZI3Q{ZAWK5>DFhnc`EnHjEXCKi8 zwYos<(jert^-~w7b(n%WttDJRYQ5>BjdfZ}4Pq&1;Uxb4Le3b}>I${1!jN-#fVwcP zBfSK*)(Vp`skPF_m`rPxK`b?`ozW@hq1MSz`(X@n+DE7h)9Mf;sI@-eOloZi@H(;N zKlBqzP3xl%Gn^x_8`S3G+B(KdU6@wl8z^FJeHNxdRFztrY{q0-c^0wMw08G>&$%u; z1!~K1Z5^j}j%n#PGIUy7Od3vWmHHTyT4e^Y)U<*XgukQC=ssehL#yO)ETmg>xjH4z>GmZJnle zj%l6lr`B5QcQ0cytv@`B$+Z565lc<$xy7+XsC5R^wZXM@hU&t!dW5L8(yBWk!kEyi zYn4zJPphtVkm^#?y7JLSofE{FP}d39mRF6&w0bJ2v~qg*XgFk2>m)y8BCR^ZODr|5 zlD&T)jaogR?(`_+^bS!Mrqwqi>%=7X2@p$7>&fGHev4XOsPp+C=K?hv)9UA=)>^AylrfoB z|1e`Rt&418ju!h6&;5@%jI8x%qtV$=cLf^tk5U8uR!iMLA3-z{Z(HSD7~w4b_CQWQ zwL6Y^mKSdk>-zgyop=+YZb6t>l4buJY?rqOW{&s{KcH;a6Y3rbL(Zi(HDH!g6O5e8 zKB${&QlVoWx2&5IV@z6JZE+TVL#S@PGEcIs%l5ihj#%^b9<=NQbx)d*b7g>awaUt`H3Z2){Sv{+v@Kgm(E4YK2V2$gDuCe24|KNg49)8 zjt_GtEazH`NlX1}3UrnaM5r#w(ml(q_Rn{tWnZWpp9VQMgs1_t9Id))%h3iEI!stT z%=boE)}P9^6*FGnoiigz(efOq8-+*Duz>2I-dwA@DN0aV-lPh(u1Nz1MVv7{{PMg&~e<)JP1;afrN&V{;r{E%~-8eC^te+nN-oQdj&B`}d? zx{pS8jKsPe8RJZ>%e!o1&9mNtXSJV=gnku;ZK=Xn6tDg9SPFss`G!Zkx$Qk~4mX&6%(~h_kpQ)i}?% zhjLx&?<^!))}LUxSe~u)V{*n%BE&3D ziV{q+tZQ^Ts~_n>c!+KF-99 ze-R*-Wa<88?`=!12hp-W)OW;Ve1aN?WqFM1sr#8NXq|J^5&P5!4UBET@F2fwruxR8U#gRr;w=TXqjH7Pq8-JI`1r)@5CT+BV73 z{e$|kL)YL&?R-#wr2#ol#B^i&h`GLpMNnH-c{vm7^5_U-a>k27oQW)pO=3xwb)UJN z)z{pycP(0840Xj3$a%)11}w{jHw)x39xdLd_4gc@ke`t$q*)r{9)ZgM7$@j_m=pLO}Ehqg_!bpH{aF)OAtqUB{!-#-m< z(nHihTh_gnU?k2&=c_tB<9!T*`_Hm}km{OkdH?a(4MEGxq5dKtZ-yCj&$51^+BVU0KkIVrWp^z_%PXL6MF4W<(Kz@_$9UZ;o2as^d)wkHwRJg` zHch_1?6bjiS(l@am~sVL4uJZA2XbCgOGaDPkMmJmZTX%mbXaPZV?xxg*;x+HiM@!H zS3>;*CgkLr)IeL-z3wHbEbAXuBc*QnM1=Y!T0)=C++N4;?RNL$Xn7UXeT3_BQIr~J z%lgR)M&eF)of;{1%NaHe(rn9fmbJMUEeAsVV+Q2t!Oa ztWH|Ko513h4eh*Cmt^VwD=zyD{QefSycX(nf{?Suqz26LCDql*O=LMgOockj41=-# zy!Ir1h{xXDMWiI#q-Ul@R#4`>{Grq`bOS3E?uyLAxmz|Ir1m-~ z%Z64#ml^;1h;Gg`(REP&Mi_F!1`Vz)8xG~8i!2)sRU@e^8x9H6#>nK1zrwc_*Ov`# z)L#GF*Ht~?;h*5wOUFX}k^lt%_No5=@$0IC+dnn|`{8ta5>4p0pRcRdj5X3)vM)B_ zzr`1uYKo%`_S&;CydhBkg9qm4hm{|G5l8$T?D}sQq=mS{(1r4*vHm+BWAbMEdy|+m zo$eytLnWUL`Wi*9hx%w5*9QzkVov{->pK!l_+`4P{ ziMTRufZSOz$W2%JY-RkW`s$UjH;e4k7&P>^ zA$MVf8feSkw?au3imN!Fvo&~wD zss_xmAVgi2W&K7!XYqB}@Mx4VVc9Sx$eFkvno8&&_m8f>ioXAjj4#mg7O0Q-A@_}d z>Y!(QNSL6qZ0Pq7OR906vCe&6)<>dLo0O&d54iSd?D98S-Uwa->02 zTVC(w%*m2J_G{U2lZR@Z*Qmk0ZP#=4y3rTec&>gD8tx9dovXWtsT+=}UZc+7DPm^v zS$yeCRV!X6u6bUKz4j{H2mU(o?8gUMIQCPJyWF2Jw(}D>^7Zj7wcqiv zPxra*;fD4jN8%_?L+%PQVHEai zj{OYeuCx=zW_#GD$vxC#i#;6ltVyH%<2oaB<>$}iD9=Lf`-!8l>x>JOHQ&R2O^)5) zPTa#m)1$6qZ(KF`VH|rJ$^9N+C5`=zd*;_( z7QG$Eo(Z|11l;yJX%soOa|DV9&wQXwRA!DBrSb>q{;}4M-+9s}IQDap`&qx0~e5_w$gu*>%5@Mv-IR(Bys(HIv4k?LPJe-#q<0 zjy(r*OI_zXX%sp3uqOBW=H&gJ<(~N={YT@^RkTTm+zQvsZ%N!kIrbQv_K?r_gUU$G z_iXpE-`M-aRJlvlfEo-~Radu+I=u^;jhm1ECx&wS~qGuPwTb0N1Z?6%gDMv-HW zvuPB*-xHGe`+0TW_>beer29QnaO@W#7k^K$%ROt-D01wFt)|AFl)T?hS+3`nxhJOA z;n*3F`=#G)?4(iT*pr*w??;pO`>8b7v40+VF@903O(x`Sjk%4TG>RO1N|XCNHAZR3 z`F>jcF!4V!AA9ebgK_LE$i;8}x@4X-iX8j#CimM)-tS8yuKT^Vz65XW+GIoS4%huo z8byx%WRv^-RPugLb6@ALdq=#6W6y)!ogTOSP8vmy{ftTJ@^wBfdB2~Hy6*Q8cl_d9 zx8&g1uGdUSqsXzRH@V+4683xlZ(3d2;;g}VLvR~3Ofn&NkC*mE-w@>DwS|1(4vK*r z#``%FH&+t^jLDm;#4m)2o2!W-s&j5z_V(;(ra{Y{s`f%BcUpipMkeLD`#BSG zr<=t7O>WoL8F+qcXF@|?A1rL6JeXWhgPLi%UWA<6VmYn7q6D>E?=WXVu8&RZ-{f|b z{?!HLhC{=%1}r?pqV1U6lU{;a?kNvvVp{e2N6S4OVRiDIn`c7A{!Q-Z9xoK3+z4n$ z55vO4{IngDn`IN!aMUxeXS`U=Y32Ms%Xu<#6@+EBj} zxXmD_<+c-IN9*<|L7m(;Va|lyw>GhVOYWUH;|@T%(a^9v3=7XziL>Nls+pGi$)W)q zCX(A_GA5Jz*~giX+iej0H@QI_cFje(`=Q})3l{cK+cCL6Olqd(_W3vya(^0(Nx8oW zv7_~`D8YY|TQp=irqyl?G~&mp3(xb?c3Q5nm1?Hs8e4~{P$k#c#%4^&H6Cbj7EiA6 zAd}d?$z6EcCnuoX1JKwWlj}#D;WNGa+~`rwwA|r7s?>5v7>r4|BMIr`8jp+;{5QG! z>KXX{XuAiY@gz*n7oqK#Tu0SR%N-Y{LM?Z^&6t!s!QxCLccMw`-{el)^M9P3cYxH? z_Q&@qDk^231uUqcC>F%AAvO$H9xCdnh={21XD`6m5PJl%i-UsFgluEMI${M817dlK zI2O7t*}}4Yvkej3?_};h_nz6e>)SYg{Py|zoqO_`Z%#7F%}Nd+o|NXJVvAa~T=T?I~6#_u7~wvH!K#<~=;@dz8Be3h(n_ zo@LTHCU;MU$h0Va&R94;MumZ}kkjv%A(L_wRKtLYy>_2k`@iJYCNJ_)Zafq|7KeG) zt94AyR!}FGdBY{-GH$q}T;>gzkkdC@!AM;&#i6%h{_6v>nM(&;h9mVJ6h2~Sj1>ET ztj=LEQ2?{+BSdj{f{y@CRD=6pzmPKjg>%oxt-KHOZpqvV`v|bXrGA(J%@5m3nu_pe z>o-8e;I{KSpcr_Z=8B-)%*-5ROhS3 zSSM8rqI|7TT@WD_F4az7MuStu{ZRNWs@~^N7pD54Vp{d>R#X?YqWVrNs_*_oRoH8Q zi>ePmp^LNnP*Q2>S=GO%u2u1xNj?H5QvKLtOs2ZbWlYZMCl0Z2sb(eix)fC(gu+#r z>Z7VNOLdY*t+ncZ;+zT9uVRcz)vu$BN!3*mV&PQJe|j};waY_LxE@s}C#VZkeIiLv ztFFOC;-OPr8)HnWu8T4zRo6#|g;VXeqOljMJ`9DWCd_-vqApDJ8JnP1Ey_?3sTL~* ztdpw6K3^*itCAG4aH>|155Gj!N1zb@NyK^2C8-NjO>hNqUM;N7P!Os$NvR5y1}&naMO)y=!4Xf-mSx_Q?mV?uTFZV6)H zRR1&Jud7jYB5dv*g?V$-)|l#CpIU3xNCr!*&YKlubyBsb$Cy;@0 z@U+CNZXTGV&1uz>6O2jKQ{s$C)l*f!aH?xhY4%WcGHm{L4CdiQmU^gJea#@IQ$5S% zOw8)pyiTf~LuKh(z4RGi^En>DaH?k&K0F;&ABWACVybUMs0&N=ttdgQ8cT8}R4-02 zCRHzqGbU5LG)63(YWb7)5>$NxHeZ9PNsqcP)pr!rs-s&`y{Z+}t6NdM<{zqlX`VI- zRiA{-x7jf7U1h*j-%pXNR=qhxL8N+%QouTy>a9_}Rt&&x5n|y|-QKWf4^({$Hs5Q) zyv5W6f2vvi$Res$@6J#Vs`n@bt$L5o*9z6~DPrMN$Bft!yaYTAnV)d76s--XdfJHIJy7*I*j$hW^Zr9k@TZ#9uMMI))!YmPp_-=@bgKDDzE-HtPY?^I zdftRNccbbQ*u2PvdEZ2+3se0zPEf19m7yS1lS)CWX5NDdRecW@PIXgh{)edgJZxTu zuU09KteEN#ifPr4Oo9Ous!I*Vok2=8Xo-`%#6(RM)1c zwNjn;eUvkyy3S=xs;+k!le4FqRktMgT9Im5oLD&3Q+xH8hN>^X<_0{kZc0%Xruwr_P^;FtoQYI@hcT&IZ!;!S zZLo-iQ+?`^r}0U4c@Z}MnSgnlJ?g?#i%o)B^*5U{q58YUm{k44WK635X%Gviy5C{f z;BUfrnFih-IIAT|>cUjFsHl~yr~fcBU};rvH=e#w^*Uy(O%H&#yV^)NRXcW7@WMJB zyl$B4R=X8d{n@Qn-CGrE)qN~lj7+NTYceKM^|~3v!l@Sax_JYtz64$`RIQ3o7nW*G zl%Q5U#O6$-YFLa()t)9}Qni;sES&1k?)>Xe^=0t-$6#KqLtU7v?-JCiN12=n)qVzJ zQuSy;`Yymb+9Mc3wXw<0AH5bYox98c?-W#RP-DbYn^n|W^(2!v7cikZ&|pleo=k|T zp6n3}p^9$>KQMN$Ky@Z~XXANwn@e4o>UPyytKzSn%7<1xQ$0^)QuV9^uM>yW*>Pgw zR8t>5fzQ0lEbuOgz`Px*GgJMYD~KyA?;_e-IxUfE#s_UuHRFReIjj1Ews5NUjGzC7 zs99JfI@)GTs$OLg3#VE*WoaF%&H?Y11UNgX zeWO!#I;g0%>Wvu+LiHx4paUYF$sQLOAnA6gXWR>cUhbEcqzL%jORNq$$SSM9Ki1M}Ku=+4UES&26NOf?>ngiZSR6QU? zU6|@Y8JkPLYwazMQ=v|EMT{}2`f0{mp}I0cb>UQhzIj>j5|9fX{#CGZut!~(YEQ*< zs^6Fdwd!hvF{%13A$C}O>k$m6dVcX$AEIg=ct2sPy^_?0srE?`)T$feoQVP07-LMT zZi+G{XZ5EDv2dyf4mxsIRLuvk+yv(^m%1?3!##ppbxVeVP%TpmSSMA>e7;r;z}6J8 zaH^jtw*QH$^TBJ%0_VsCbz!Rgk_5G?pP?XB>y?65)t73)TA|vgHWE%Xb@Oets9FF; z`1!Zf-yL0DB{+Z-!h3a4bQ1#p7`Rh=10Tk_tF9F9X1EzXngl{f= z1}N(2a+XfDXm^J(F#tt-*o=u(i}tjLg-i8e$GH_%7edi~nCbwRx-iv&9zm6A(LU-q z1x%>!n__iRwOf)gsoFh3ES%~Ok-tts)mNdYw+qfGYHLjOG@n{)RU<<|sP3DxtG#KNg=oWF1I zmc<)Tba@gS{Tqc$^<0Bm>r{t3oC(#-Y{ujOjIbD!vwFEnES%~UOBUXUs&7Kkbsjk9 zN2m)^y&y_Zt6CXp3Ds*=S~}JLOYpTK)$8KK!l^!g*d0?*^(`nG=YVseM_rie#foXw z+cOk|>KLV8Kn~p$1sNSa( zwCep4($cE;`^3Vju6%NR6RN%qMNgpW2%EYv)sY^-U~@wCu^4AUb#g1JkGG=w_&-!F zw6p6`brBT37zJmPGGMBs<6KLqCJfGmDh`r-=v1eAjL89b!6gsLycHp5^_>g_ zp{hSi)~fF%sA2Flh3flpV&PO@yR{E~*wf{GC|ZH4x5TImQ@t%oP^bDyiZh|=@;dnv zusp%*gzAbov2d!#9sWS@Y2XJ?v>IQn#u(Ivsg5%VYSphD&V=eJn=z^Sjm4Nub+t(> zoND~lcX^a)mm%)%cVlCwU@(~NUL~nn^-ulN0-KLK&_9V z_+SH^iK+|Jdd#HOTI)cUF_~5mhcT&jkWDO{)_pfdicxDB6dxV~=W&C&Fs&y%f?6wh z=@So~)?s|!q*h-wZ{f6xw!MBHYJCF5$GPADcbfkQYPnE+8qU^p26bUt&nu|4PH9E!)K;`k`-fVS2NgYwTFasM-xfFtw-v1y zY=T?mV$w$6z#CU@dFKCy6V4UPA>9ko_K@x=*nrWw?Qr8V6nsI@L?MJv{dR_q^Y z?dcEQAGJP(;wy2sUUtcVY0b0=YOO0Q#$;NfOvYqdR~p2^rL}s!bp>jzgyI{c;LKKC znARMRT5GNA2?eK4sdaruof!EWTq+Ew)n)koLs088D30T7&9$iu({dElT4Pn6)*9;( z4C;i|IG0#Bt;zk&;M0ZAq4L9I0*&X`Q=z8GUt>;5RQa9Yh*HwSOd zeF4RjO>pK@6Z}d4GP+aX64hE0J;tQgq>MU|)?*IUh104(CsK-9UqbQoac~w|)P-ri zW)Rd`t^E33aVx)mS3D&}Yr|=s{6h9H)cOw;&vd|f-K8!}>rI=W)_U1wOr|x%U`+1B znS?_A8PmeD{?(}U6%^;Dz)7mkOly&XS}VJi*~)2UwsQaBY<0fhO`z7-Q2eG1&by|1 zc6zqnS4?ZY<`G0D)6!7~bz-*OaHuZaPW-d_`GKgl3X1V7YMl>M7nasyi&|@~Rz4^z zZsmir;x9Z}8%`^_ZNhNW`UZ-BFu=jfdi798;!>BG)=F_E)B4Wgbt0|rZDQfHoCEd> zW@|MR{~QBnnMGY#TCPD*Yi;xylUkcnjLDt&Q<7LXtv+*e`=ZvjP`nj);&PX|Fs)A& z)LL5%Dnur=$_TM*`7)1SIIYFEFZ>y`Qczr<1m`o0x-hLT41!v#F2cX_XG6`y}Uwy`;){YcoQtP)Qv2a?S4^8Bv*7s1dE6$d_ z*JoOpH}>h<*OHz8TdSnQe`}TO@(;Dn-8Q`^YW)Bu5u7dku`SceIO@b*bx9Y4Qosa7 zS|wcx>Demj>Jbc=mjC<6^HA$YC^^6f=X-;?Fs&aIR6DU`KbH!%*8UD-VkedyU=s_c z)%E|zAAwqHpyW`Ttu-!nVOr}{YpvBw6>6>C4lNGq(&w#`J~pv%S~EWHumZK#Ldh{H zaMpX&g=uYc2x_gPqm0R&*gwLU)avgO3#WB^*3(^3YaNuFk_8SPliG|bp@!^4MQEMZVjKtY0GpGyG z+UgP1S|eJ~y1W&wk^fN3?(xIzsI>`7uEX&q^0?~PhNLCKgTIMp6?VOsk4ZMD{IJQ=BVyGkag6DNo<5o#Dt>wNd-;Jo!Sl-%oq z<5Ls-sgA^Ym#Egd$7W1wjkg$+TKAg7!fAc_XZ#w}Duj}$sMTmt7pB#$pw@aMNrlLy zR-%=(rvAgU_KZDr8)|Kak~s-*w%N2brnTK9sI_Ks1*tV#DFk(5C(ib1ZMd`!I1T@q zrmQX=loXiY>@cVc)B4RLsI~GO#-vuh&6w1hZxIWp^~g|fGHMk;$=f*cf0)#TY5k>` z)_Th(h)ilFEykqQ+a|GaTE_hU3_`79DEY{P>@3w;Yh~|bP;0HV*k(*>EwLDrS|6Fj z!fD+z|6h5iRRSfSM<9D=o4PQqT@=(>pC+kLr?oP{nAG|#PAr^O&nGAEfm)?dk}@HC zj|g>PT6?AlYOQZP#$;NnUB;x=w+^vzT2HK6auI56fs&0rWOq(d7pB!!J!7r4K1PK) ztqoDeq}Ij=v2a>Xt!iA2T4hkO#enR8sjV@sy;WY8!1(fcLv(-aAIi_`RoLVcbQg9g)TBSQVjES9C zst@gOS_`IZ?txmBP};?UY$HLPnO3hDL9Nv(%9zyZ9AQjqb@qvc(;7T1{t9YULFs-8 z$nK-I#!5(KrD zVKFAPdYX($tzHJPa9Zm>AKo9eYM`_q⪙$>cX^+R#0ml$yKG+QE^(V)9M!^7EbGr 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�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 literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi.v b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi.v new file mode 100644 index 0000000..5fd0100 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi.v @@ -0,0 +1,374 @@ +//************************************************************************** +// ************************************************************************* +// * LATTICE SEMICONDUCTOR CONFIDENTIAL * +// * PROPRIETARY NOTE * +// * * +// * This software contains information confidential and proprietary * +// * to Lattice Semiconductor Corporation. It shall not be reproduced * +// * in whole or in part, or transferred to other documents, or disclosed * +// * to third parties, or used for any purpose other than that for which * +// * it was obtained, without the prior written consent of Lattice * +// * Semiconductor Corporation. All rights reserved. * +// * * +// ************************************************************************* +//************************************************************************** + +`define SGMII_YES_SINGLE_CLOCK + + +module sgmii_channel_smi ( + +//-----------USERNAME CORE-------------PART PORTS + // Control Interface + rst_n, + gbe_mode, + sgmii_mode, + operational_rate, + debug_link_timer_short, + force_isolate, + force_loopback, + force_unidir, + + an_link_ok, + + // G/MII Interface +`ifdef SGMII_YES_SINGLE_CLOCK + tx_clock_enable_sink , + tx_clock_enable_source , + + rx_clock_enable_sink , + rx_clock_enable_source , + tx_clk_125, + rx_clk_125, +`else + tx_clk_mii , + rx_clk_mii , +`endif + tx_d, + tx_en, + tx_er, + + rx_d, + rx_dv, + rx_er, + col, + crs, + + // Managment Control Outputs + mr_an_complete, + mr_page_rx, + mr_lp_adv_ability, + + // Managment Control Inputs + mr_main_reset, + mr_an_enable, + mr_restart_an, + mr_adv_ability, + +//-----------USERNAME PCS-------------PART PORTS + hdoutp, + hdoutn, + hdinp, + hdinn, + + sli_rst, + serdes_rst_dual_c, + tx_serdes_rst_c, + serdes_pdb, + tx_pwrup_c, + + pll_refclki, + rxrefclk, + + sci_wrdata, + sci_addr, + sci_rddata, + sci_en_dual, + sci_sel_dual, + sci_en, + sci_sel, + sci_rd, + sci_wrn, + sci_int, + cyawstn, + rx_cdr_lol_s, + + tx_pcs_rst_c, + rx_pcs_rst_c, + rx_serdes_rst_c, + + rst_dual_c, + pll_lol, + +`ifndef SGMII_YES_SINGLE_CLOCK + clk_125, +`endif + + mr_power_down + ); + +//-----------USERNAME CORE-------------PART PORTS + +// Control Interface +input rst_n ; +input gbe_mode ; +input sgmii_mode ; +input [1:0] operational_rate ; +input debug_link_timer_short ; +input force_isolate ; +input force_loopback ; +input force_unidir ; + +output an_link_ok ; + +// G/MII Interface + +`ifdef SGMII_YES_SINGLE_CLOCK +input tx_clock_enable_sink; +output tx_clock_enable_source; + +input rx_clock_enable_sink; +output rx_clock_enable_source; + +input tx_clk_125; +input rx_clk_125; + +`else +input tx_clk_mii; +input rx_clk_mii; +`endif + +input [7:0] tx_d ; +input tx_en ; +input tx_er ; + +output [7:0] rx_d ; +output rx_dv ; +output rx_er ; +output col ; +output crs ; + +// Managment Control Outputs +output mr_an_complete; +output mr_page_rx; +output [15:0] mr_lp_adv_ability; + +// Managment Control Inputs +input mr_main_reset; +input mr_an_enable; +input mr_restart_an; +input [15:0] mr_adv_ability; + + +//-----------USERNAME PCS-------------PART PORTS +output hdoutp; +output hdoutn; +input hdinp; +input hdinn; + +input sli_rst; +output serdes_rst_dual_c; +output tx_serdes_rst_c; +output serdes_pdb; +output tx_pwrup_c; + +input pll_refclki; +input rxrefclk; + +input [7:0]sci_wrdata; +input [5:0]sci_addr; +output [7:0]sci_rddata; +input sci_en_dual; +input sci_sel_dual; +input sci_en; +input sci_sel; +input sci_rd; +input sci_wrn; +output sci_int; +input cyawstn; +output rx_cdr_lol_s; +input tx_pcs_rst_c; +input rx_pcs_rst_c; +input rx_serdes_rst_c; +input rst_dual_c; +output pll_lol; + + +`ifndef SGMII_YES_SINGLE_CLOCK +input clk_125; +`endif + + +input mr_power_down; + +wire link_status; +wire [7:0] data_chan2quad; +wire kcntl_chan2quad; +wire serdes_recovered_clk; +wire [7:0] data_quad2chan; +wire kcntl_quad2chan; +wire disp_err_quad2chan; +wire cv_err_quad2chan; +wire xmit_autoneg; +wire disparity_cntl_chan2quad; + +// SGMII core +sgmii_channel_smi_core u_sgmii_core ( + // Clock and Reset + .rst_n ( rst_n ) , + .signal_detect ( link_status ) , + .gbe_mode ( gbe_mode ) , + .sgmii_mode ( sgmii_mode ) , + .operational_rate ( operational_rate ) , + .debug_link_timer_short ( debug_link_timer_short ) , + .force_isolate ( force_isolate ) , + .force_loopback ( force_loopback ) , + .force_unidir ( force_unidir ) , + + .rx_compensation_err ( ) , + .ctc_drop_flag ( ) , + .ctc_add_flag ( ) , + .an_link_ok ( an_link_ok ) , + +`ifdef SGMII_YES_SINGLE_CLOCK + .tx_clock_enable_sink ( tx_clock_enable_sink ), + .tx_clock_enable_source ( tx_clock_enable_source ), + + .rx_clock_enable_sink ( rx_clock_enable_sink ), + .rx_clock_enable_source ( rx_clock_enable_source ), + .tx_clk_125 ( tx_clk_125 ) , + .rx_clk_125 ( rx_clk_125 ) , +`else + .tx_clk_mii ( tx_clk_mii ), + .rx_clk_mii ( rx_clk_mii ), + .tx_clk_125 ( clk_125 ) , + .rx_clk_125 ( clk_125 ) , +`endif + // GMII TX Inputs + + .tx_d ( tx_d) , + .tx_en ( tx_en) , + .tx_er ( tx_er) , + + // GMII RX Outputs + // To GMII/MAC interface + .rx_d ( rx_d ) , + .rx_dv ( rx_dv ) , + .rx_er ( rx_er ) , + .col ( col ) , + .crs ( crs ) , + + // 8BI TX Outputs + .tx_data ( data_chan2quad) , + .tx_kcntl ( kcntl_chan2quad) , + .tx_disparity_cntl ( disparity_cntl_chan2quad) , + .xmit_autoneg ( xmit_autoneg) , + + // 8BI RX Inputs + .serdes_recovered_clk ( serdes_recovered_clk ) , + .rx_data ( data_quad2chan ) , + .rx_kcntl ( kcntl_quad2chan ) , + .rx_even ( 1'b0 ) , + .rx_disp_err ( disp_err_quad2chan ) , + .rx_cv_err ( cv_err_quad2chan ) , + .rx_err_decode_mode ( 1'b0 ) , + + // Management Interface I/O + .mr_adv_ability (mr_adv_ability), + .mr_an_enable (mr_an_enable), + .mr_main_reset (mr_main_reset), + .mr_restart_an (mr_restart_an), + + .mr_an_complete (mr_an_complete), + .mr_lp_adv_ability (mr_lp_adv_ability), + .mr_page_rx (mr_page_rx) + ); + +assign serdes_rst_dual_c = ~rst_n; +assign tx_serdes_rst_c = ~rst_n; +assign serdes_pdb = 1'b1; + +assign tx_pwrup_c = ~mr_power_down; + + +sgmii_channel_smi_pcs u_sgmii_pcs ( + +// Global Clocks and Resets + // inputs + .rst_dual_c(rst_dual_c), + .serdes_rst_dual_c(~rst_n), + .pll_refclki(pll_refclki), + .rxrefclk(rxrefclk), + .sli_rst(sli_rst), + +`ifdef SGMII_YES_SINGLE_CLOCK + .txi_clk(tx_clk_125), +`else + .txi_clk(clk_125), +`endif + +// fpga tx datapath signals + // inputs + .tx_pcs_rst_c(tx_pcs_rst_c), + .txdata(data_chan2quad), + .tx_k(kcntl_chan2quad), + .tx_disp_correct(disparity_cntl_chan2quad), + + // outputs + .tx_pclk(), + +// fpga rx datapath signals + // inputs + .rx_pcs_rst_c(rx_pcs_rst_c), + .xmit(xmit_autoneg), + .signal_detect_c(1'b1), + + // outputs + .rx_pclk(serdes_recovered_clk), + .rxdata(data_quad2chan), + .rx_k(kcntl_quad2chan), + .rx_disp_err(disp_err_quad2chan), + .rx_cv_err(cv_err_quad2chan), + .lsm_status_s(link_status), + .rx_cdr_lol_s(rx_cdr_lol_s), + +// serdes signals + // inputs + .rx_serdes_rst_c(rx_serdes_rst_c), + .tx_serdes_rst_c(~rst_n), + + .hdinp(hdinp), + .hdinn(hdinn), + + // outputs + .hdoutp(hdoutp), + .hdoutn(hdoutn), + + //SCI interface + + .cyawstn(cyawstn), + .sci_en(sci_en), + .sci_en_dual(sci_en_dual), + .sci_sel_dual(sci_sel_dual), + .sci_sel(sci_sel), + .sci_wrdata(sci_wrdata), + .sci_addr(sci_addr), + .sci_rddata(sci_rddata), + .sci_rd(sci_rd), + .sci_wrn(sci_wrn), + .sci_int(sci_int), + +// misc control signals + // inputs + .rsl_disable (1'b0), + .rsl_rst (~rst_n), + .tx_pwrup_c(~mr_power_down), // powerup tx channel + .rx_pwrup_c(~mr_power_down), // power up rx channel + .serdes_pdb(1'b1), + + // outputs + .pll_lol(pll_lol) +); + + +endmodule diff --git a/gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi.vhd b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi.vhd new file mode 100644 index 0000000..a50792f --- /dev/null +++ b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi.vhd @@ -0,0 +1,359 @@ +--************************************************************************** +-- ************************************************************************* +-- * LATTICE SEMICONDUCTOR CONFIDENTIAL * +-- * PROPRIETARY NOTE * +-- * * +-- * This software contains information confidential and proprietary * +-- * to Lattice Semiconductor Corporation. It shall not be reproduced * +-- * in whole or in part, or transferred to other documents, or disclosed * +-- * to third parties, or used for any purpose other than that for which * +-- * it was obtained, without the prior written consent of Lattice * +-- * Semiconductor Corporation. All rights reserved. * +-- * * +-- ************************************************************************* +--************************************************************************** + +library ieee; +use ieee.std_logic_1164.all; + +entity sgmii_channel_smi is port ( + rst_n : in std_logic; + gbe_mode : in std_logic; + sgmii_mode : in std_logic; + operational_rate : in std_logic_vector(1 downto 0); + debug_link_timer_short : in std_logic; + force_isolate : in std_logic; + force_loopback : in std_logic; + force_unidir : in std_logic; + --rx_compensation_err : out std_logic; + --ctc_drop_flag : out std_logic; + --ctc_add_flag : out std_logic; + an_link_ok : out std_logic; + tx_clock_enable_sink : in std_logic; + tx_clock_enable_source : out std_logic; + + rx_clock_enable_sink : in std_logic; + rx_clock_enable_source : out std_logic; + tx_clk_125 : in std_logic; + rx_clk_125 : in std_logic; + tx_d : in std_logic_vector(7 downto 0); + tx_en : in std_logic; + tx_er : in std_logic; + rx_d : out std_logic_vector(7 downto 0); + rx_dv : out std_logic; + rx_er : out std_logic; + col : out std_logic; + crs : out std_logic; + mr_an_complete : out std_logic; + mr_page_rx : out std_logic; + mr_lp_adv_ability : out std_logic_vector(15 downto 0); + mr_main_reset : in std_logic; + mr_an_enable : in std_logic; + mr_restart_an : in std_logic; + mr_adv_ability : in std_logic_vector(15 downto 0); + + hdoutp: out std_logic; + hdoutn: out std_logic; + hdinp: in std_logic; + hdinn: in std_logic; + + sli_rst : in std_logic; + serdes_rst_dual_c : out std_logic; + tx_serdes_rst_c : out std_logic; + serdes_pdb : out std_logic; + tx_pwrup_c : out std_logic; + + pll_refclki : in std_logic; + rxrefclk : in std_logic; + + sci_wrdata : in std_logic_vector(7 downto 0); + sci_addr : in std_logic_vector(5 downto 0); + sci_rddata : out std_logic_vector(7 downto 0); + sci_en_dual : in std_logic; + sci_sel_dual: in std_logic; + sci_en: in std_logic; + sci_sel: in std_logic; + sci_rd: in std_logic; + sci_wrn: in std_logic; + sci_int: out std_logic; + cyawstn: in std_logic; + + rx_cdr_lol_s: out std_logic; + + tx_pcs_rst_c: in std_logic; + rx_pcs_rst_c: in std_logic; + rx_serdes_rst_c: in std_logic; + + rst_dual_c: in std_logic; + pll_lol: out std_logic; + + + mr_power_down: in std_logic + ); +end entity; + +architecture arch of sgmii_channel_smi is +component sgmii_channel_smi_core port ( + rst_n : in std_logic; + signal_detect : in std_logic; + gbe_mode : in std_logic; + sgmii_mode : in std_logic; + force_isolate : in std_logic; + force_loopback : in std_logic; + force_unidir : in std_logic; + operational_rate : in std_logic_vector(1 downto 0); + debug_link_timer_short : in std_logic; + rx_compensation_err : out std_logic; + ctc_drop_flag : out std_logic; + ctc_add_flag : out std_logic; + an_link_ok : out std_logic; + + tx_clock_enable_sink : in std_logic; + tx_clock_enable_source : out std_logic; + + rx_clock_enable_sink : in std_logic; + rx_clock_enable_source : out std_logic; + + tx_clk_125 : in std_logic; + tx_d : in std_logic_vector(7 downto 0); + tx_en : in std_logic; + tx_er : in std_logic; + rx_clk_125 : in std_logic; + rx_d : out std_logic_vector(7 downto 0); + rx_dv : out std_logic; + rx_er : out std_logic; + col : out std_logic; + crs : out std_logic; + tx_data : out std_logic_vector(7 downto 0); + tx_kcntl : out std_logic; + tx_disparity_cntl : out std_logic; + xmit_autoneg : out std_logic; + serdes_recovered_clk : in std_logic; + rx_data : in std_logic_vector(7 downto 0); + rx_even : in std_logic; + rx_kcntl : in std_logic; + rx_disp_err : in std_logic; + rx_cv_err : in std_logic; + rx_err_decode_mode : in std_logic; + mr_an_complete : out std_logic; + mr_page_rx : out std_logic; + mr_lp_adv_ability : out std_logic_vector(15 downto 0); + mr_main_reset : in std_logic; + mr_an_enable : in std_logic; + mr_restart_an : in std_logic; + mr_adv_ability : in std_logic_vector(15 downto 0) + ); +end component; + +component sgmii_channel_smi_pcs port ( + hdoutp : out std_logic; + hdoutn : out std_logic; + hdinp : in std_logic; + hdinn : in std_logic; + rxrefclk : in std_logic; + txi_clk : in std_logic; + sli_rst : in std_logic; + rx_pclk : out std_logic; + tx_pclk : out std_logic; + txdata : in std_logic_vector(7 downto 0); + tx_k : in std_logic_vector(0 downto 0); + xmit : in std_logic_vector(0 downto 0); + tx_disp_correct : in std_logic_vector(0 downto 0); + rxdata : out std_logic_vector(7 downto 0); + rx_k : out std_logic_vector(0 downto 0); + rx_disp_err : out std_logic_vector(0 downto 0); + rx_cv_err : out std_logic_vector(0 downto 0); + sci_wrdata : in std_logic_vector(7 downto 0); + signal_detect_c : in std_logic; + sci_addr : in std_logic_vector(5 downto 0); + sci_rddata : out std_logic_vector(7 downto 0); + sci_en_dual : in std_logic; + sci_sel_dual: in std_logic; + sci_en: in std_logic; + sci_sel: in std_logic; + sci_rd: in std_logic; + sci_wrn: in std_logic; + sci_int: out std_logic; + cyawstn: in std_logic; + lsm_status_s : out std_logic; + rx_cdr_lol_s : out std_logic; + tx_pcs_rst_c : in std_logic; + rx_pcs_rst_c : in std_logic; + rx_serdes_rst_c : in std_logic; + rsl_disable : in std_logic; + rsl_rst : in std_logic; + tx_pwrup_c : in std_logic; + rx_pwrup_c : in std_logic; + rst_dual_c : in std_logic; + serdes_rst_dual_c : in std_logic; + serdes_pdb : in std_logic; + tx_serdes_rst_c : in std_logic; + pll_refclki : in std_logic; + pll_lol : out std_logic + ); +end component; + +-- 8-bit Interface Signals from SGMII channel to QuadPCS/SERDES +signal data_chan2quad : std_logic_vector(7 downto 0); +signal kcntl_chan2quad : std_logic_vector(0 downto 0); +signal disparity_cntl_chan2quad: std_logic_vector(0 downto 0); + +-- 8-bit Interface Signals from QuadPCS/SERDES to SGMII channel +signal data_quad2chan : std_logic_vector(7 downto 0); +signal kcntl_quad2chan : std_logic_vector(0 downto 0); +signal disp_err_quad2chan : std_logic_vector(0 downto 0); +signal cv_err_quad2chan : std_logic_vector(0 downto 0); +signal link_status : std_logic; +signal serdes_recovered_clk : std_logic; +signal xmit_autoneg : std_logic_vector(0 downto 0); +signal reset : std_logic; +signal mr_power_down_inv : std_logic; + +begin + +reset <= not rst_n; +mr_power_down_inv <= not(mr_power_down); +-- Instantiate SGMII IP Core +u_sgmii_core : sgmii_channel_smi_core port map( + -- Clock and Reset + rst_n => rst_n , + signal_detect => link_status , + gbe_mode => gbe_mode , + sgmii_mode => sgmii_mode , + operational_rate => operational_rate , + debug_link_timer_short => debug_link_timer_short , + force_isolate => force_isolate , + force_loopback => force_loopback , + force_unidir => force_unidir , + + rx_compensation_err => open , + ctc_drop_flag => open , + ctc_add_flag => open , + an_link_ok => an_link_ok , + + tx_clock_enable_sink => tx_clock_enable_sink , + tx_clock_enable_source => tx_clock_enable_source , + + rx_clock_enable_sink => rx_clock_enable_sink , + rx_clock_enable_source => rx_clock_enable_source , + tx_clk_125 => tx_clk_125 , + rx_clk_125 => rx_clk_125 , + -- GMII TX Inputs + tx_d => tx_d, + tx_en => tx_en, + tx_er => tx_er, + -- GMII RX Outputs + -- To GMII/MAC interface + rx_d => rx_d , + rx_dv => rx_dv , + rx_er => rx_er , + col => col , + crs => crs , + + -- 8BI TX Outputs + tx_data => data_chan2quad, + tx_kcntl => kcntl_chan2quad(0), + tx_disparity_cntl => disparity_cntl_chan2quad(0), + xmit_autoneg => xmit_autoneg(0), + + -- 8BI RX Inputs + serdes_recovered_clk => serdes_recovered_clk , + rx_data => data_quad2chan , + rx_kcntl => kcntl_quad2chan(0) , + rx_even => '0' , + rx_disp_err => disp_err_quad2chan(0) , + rx_cv_err => cv_err_quad2chan(0) , + rx_err_decode_mode => '0' , + + -- Management Interface I/O + mr_adv_ability => mr_adv_ability, + mr_an_enable => mr_an_enable, + mr_main_reset => mr_main_reset, + mr_restart_an => mr_restart_an, + + mr_an_complete => mr_an_complete, + mr_lp_adv_ability => mr_lp_adv_ability, + mr_page_rx => mr_page_rx + ); + + + serdes_rst_dual_c <= reset; + tx_serdes_rst_c <= reset; + serdes_pdb <= '1'; + tx_pwrup_c <= mr_power_down_inv; + +u_sgmii_pcs : sgmii_channel_smi_pcs port map( +-- Global Clocks and Resets + -- inputs + rst_dual_c => rst_dual_c, + serdes_rst_dual_c => reset, + pll_refclki => pll_refclki, + rxrefclk => rxrefclk, + + txi_clk => tx_clk_125, + + sli_rst => sli_rst, + +-- fpga tx datapath signals + -- inputs + tx_pcs_rst_c => tx_pcs_rst_c, + txdata => data_chan2quad, + tx_k => kcntl_chan2quad, + tx_disp_correct => disparity_cntl_chan2quad, + + -- outputs + tx_pclk => open , + +-- fpga rx datapath signals + -- inputs + rx_pcs_rst_c => rx_pcs_rst_c, + xmit => xmit_autoneg, + + -- outputs + rx_pclk => serdes_recovered_clk, + rxdata => data_quad2chan, + rx_k => kcntl_quad2chan, + rx_disp_err => disp_err_quad2chan, + rx_cv_err => cv_err_quad2chan, + lsm_status_s => link_status, + rx_cdr_lol_s => rx_cdr_lol_s, + +-- serdes signals + -- inputs + rx_serdes_rst_c => rx_serdes_rst_c, + tx_serdes_rst_c => reset, + + hdinp => hdinp, + hdinn => hdinn, + + -- outputs + hdoutp => hdoutp, + hdoutn => hdoutn, + signal_detect_c => '1', + + cyawstn => cyawstn, + sci_en => sci_en, + sci_en_dual => sci_en_dual, + sci_sel_dual => sci_sel_dual, + sci_sel => sci_sel, + sci_wrdata => sci_wrdata, + sci_addr => sci_addr, + sci_rddata => sci_rddata, + sci_rd => sci_rd, + sci_wrn => sci_wrn, + sci_int => sci_int, + +-- misc control signals + -- inputs + rsl_disable => '0', + rsl_rst => reset, + tx_pwrup_c => mr_power_down_inv, -- powerup tx channel + rx_pwrup_c => mr_power_down_inv, -- power up rx channel + serdes_pdb => '1', + + -- outputs + pll_lol => pll_lol +); + +end architecture; + diff --git a/gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi_bb.v b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi_bb.v new file mode 100644 index 0000000..0ab55f4 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi_bb.v @@ -0,0 +1,156 @@ +//************************************************************************** +// ************************************************************************* +// * LATTICE SEMICONDUCTOR CONFIDENTIAL * +// * PROPRIETARY NOTE * +// * * +// * This software contains information confidential and proprietary * +// * to Lattice Semiconductor Corporation. It shall not be reproduced * +// * in whole or in part, or transferred to other documents, or disclosed * +// * to third parties, or used for any purpose other than that for which * +// * it was obtained, without the prior written consent of Lattice * +// * Semiconductor Corporation. All rights reserved. * +// * * +// ************************************************************************* +//************************************************************************** + +`define SGMII_YES_SINGLE_CLOCK + + +module sgmii_channel_smi ( + +//-----------USERNAME CORE-------------PART PORTS + // Control Interface + rst_n, + gbe_mode, + sgmii_mode, + operational_rate, + debug_link_timer_short, + force_isolate, + force_loopback, + force_unidir, + + an_link_ok, + + // G/MII Interface +`ifdef SGMII_YES_SINGLE_CLOCK + tx_clock_enable_sink , + tx_clock_enable_source , + + rx_clock_enable_sink , + rx_clock_enable_source , + tx_clk_125, + rx_clk_125, +`else + tx_clk_mii , + rx_clk_mii , +`endif + tx_d, + tx_en, + tx_er, + + rx_d, + rx_dv, + rx_er, + col, + crs, + + // Managment Control Outputs + mr_an_complete, + mr_page_rx, + mr_lp_adv_ability, + + // Managment Control Inputs + mr_main_reset, + mr_an_enable, + mr_restart_an, + mr_adv_ability, + +//-----------USERNAME PCS-------------PART PORTS + hdoutp, + hdoutn, + hdinp, + hdinn, + + rx_cdr_lol_s, + + tx_pcs_rst_c, + rx_pcs_rst_c, + rx_serdes_rst_c, + + rst_dual_c, + pll_lol, + refclk2fpga, + mr_power_down + + ); + +//-----------USERNAME CORE-------------PART PORTS + +// Control Interface +input rst_n ; +input gbe_mode ; +input sgmii_mode ; +input [1:0] operational_rate ; +input debug_link_timer_short ; +input force_isolate ; +input force_loopback ; +input force_unidir ; + +output an_link_ok ; + +// G/MII Interface + +`ifdef SGMII_YES_SINGLE_CLOCK +input tx_clock_enable_sink; +output tx_clock_enable_source; + +input rx_clock_enable_sink; +output rx_clock_enable_source; + +input tx_clk_125; +input rx_clk_125; + +`else +input tx_clk_mii; +input rx_clk_mii; +`endif + +input [7:0] tx_d ; +input tx_en ; +input tx_er ; + +output [7:0] rx_d ; +output rx_dv ; +output rx_er ; +output col ; +output crs ; + +// Managment Control Outputs +output mr_an_complete; +output mr_page_rx; +output [15:0] mr_lp_adv_ability; + +// Managment Control Inputs +input mr_main_reset; +input mr_an_enable; +input mr_restart_an; +input [15:0] mr_adv_ability; + + +//-----------USERNAME PCS-------------PART PORTS +output hdoutp; +output hdoutn; +input hdinp; +input hdinn; +output rx_cdr_lol_s; +input tx_pcs_rst_c; +input rx_pcs_rst_c; +input rx_serdes_rst_c; +input rst_dual_c; +output pll_lol; + +// new added +input refclk2fpga; // new added +input mr_power_down; // new added + +endmodule diff --git a/gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi_beh.v b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi_beh.v new file mode 100644 index 0000000..68df57b --- /dev/null +++ b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi_beh.v @@ -0,0 +1,3984 @@ +// sgmii_pcs_core_beh_pp.v generated by Lattice IP Model Creator version 1 +// created on Wed Mar 19 15:39:54 CST 2014 +// Copyright(c) 2007 Lattice Semiconductor Corporation. All rights reserved +// obfuscator_exe version 1.mar0807 +// top +`define SGMII_NO_ENC +`define SGMII_YES_CTC_DYNAMIC +`define SGMII_FIFO_FAMILY_ECP5 +`define SGMII_YES_SINGLE_CLOCK +`timescale 1 ns / 100 ps +module gd2938d (ui49c6d, of4e369, th71b4d, ym8da6f, su6d379, ne69bc9, + vi4de4a, wj6f253, ps7929c, uvc94e2, ld4a714, su538a7, ba9c539, + ale29cb); +input wire [17:0] ui49c6d; +input wire of4e369; +input wire th71b4d; +input wire ym8da6f; +input wire su6d379; +input wire ne69bc9; +input wire vi4de4a; +input wire [9:0] wj6f253; +input wire [9:0] ps7929c; +output wire [17:0] uvc94e2; +output wire ld4a714; +output wire su538a7; +output wire ba9c539; +output wire ale29cb; +wire eaffb08; +wire kdfd840; +wire ldec205; +wire ld6102f; +wire gd817f; +wire dz40bfc; +wire co5fe7; +wire vk2ff39; +wire mr7f9cb; +wire xjfce5c; +wire kde72e7; +wire ux3973c; +wire gocb9e4; +wire ay5cf20; +wire ofe7900; +wire ep3c805; +wire nee402d; +wire vk2016b; +wire gqb5b; +wire aa5ad9; +wire hd2d6c9; +wire fn6b64f; +wire kd5b27e; +wire qtd93f4; +wire qtc9fa5; +wire jp4fd2d; +wire bl7e96e; +wire lqf4b76; +wire pha5bb3; +wire jr2dd9e; +wire rt6ecf6; +wire fa767b7; +wire qib3dbb; +wire zz9edd8; +wire ldf6ec7; +wire jeb763e; +wire yzbb1f3; +wire thd8f9d; +wire ldc7cee; +wire ks3e776; +wire ldf3bb1; +wire ie9dd8e; +wire zkeec70; +wire rg76383; +wire kfb1c1b; +wire hd8e0dd; +wire of706ef; +wire hq8377c; +wire je1bbe3; +wire nrddf1b; +wire meef8de; +wire rg7c6f1; +wire lde378a; +wire ba1bc56; +wire ykde2b3; +wire xwf1598; +wire cb8acc2; +wire ui56614; +wire mgb30a0; +wire uk98501; +wire xjc2809; +wire do1404e; +wire nta0273; +wire vk139f; +wire ph9cfa; +wire al4e7d7; +wire jc73ebd; +wire ux9f5ea; +wire qgfaf54; +wire dzd7aa0; +wire lsbd507; +wire meea83a; +wire sh541d1; +wire dba0e8d; +wire qv746e; +wire do3a375; +wire ead1bab; +wire ou8dd58; +wire th6eac1; +wire wj7560f; +wire uxab07c; +wire zk583e4; +wire icc1f23; +wire qif919; +wire dm7c8c8; +wire fae4643; +wire kf2321b; +wire vx190dc; +wire fnc86e7; +wire su4373e; +wire tw1b9f1; +wire ofdcf8b; +wire wje7c5c; +wire ou3e2e5; +wire psf1729; +wire rv8b94a; +wire kq5ca56; +wire ose52b0; +wire ep29581; +wire hb4ac0d; +wire ic5606e; +wire xlb0370; +wire db81b86; +wire epdc37; +wire rt6e1bd; +wire cz70dee; +wire tw86f75; +wire zz37baa; +wire ribdd56; +wire neeeab3; +wire al7559b; +wire bnaacdc; +wire go566e7; +wire ecb3738; +wire lf9b9c1; +wire czdce0f; +wire ene707c; +wire zz383e4; +wire uic1f26; +wire ief931; +wire rg7c988; +wire nee4c43; +wire sj2621a; +wire ec310d4; +wire ec886a0; +wire kq43500; +wire gq1a801; +wire med4009; +wire hda0049; +wire ym24f; +wire ls1278; +wire nt93c2; +wire ea49e16; +wire rt4f0b1; +wire os7858f; +wire nrc2c78; +wire db163c6; +wire irb1e36; +wire qv8f1b5; +wire go78dad; +wire enc6d69; +wire ir36b4c; +wire ntb5a64; +wire doad327; +wire xw6993b; +wire ww4c9da; +wire fn64ed1; +wire hd2768e; +wire uk3b476; +wire lqda3b1; +wire wwd1d8a; +wire fp8ec50; +wire tu76286; +wire anb1433; +wire an8a19c; +wire ld50ce5; +wire tw8672e; +wire cb33973; +wire pu9cb9c; +wire cme5ce2; +wire gq2e710; +wire rg73880; +wire fc9c402; +wire gbe2013; +wire mg1009c; +wire gd804e1; +wire yz270c; +wire rv13865; +wire tw9c32f; +wire nee197b; +wire tjcbda; +wire gb65ed7; +wire ng2f6bc; +wire xj7b5e2; +wire jcdaf17; +wire nrd78bb; +wire mgbc5df; +wire wje2ef8; +wire qv177c5; +wire irbbe2c; +wire psdf164; +wire enf8b22; +wire nec5915; +wire gd2c8ab; +wire th6455c; +wire tj22ae7; +wire qi1573f; +wire mtab9f9; +wire qg5cfcd; +wire mre7e68; +wire ng3f345; +wire jpf9a2b; +wire dzcd15f; +wire cm68afe; +wire nr457f0; +wire aa2bf86; +wire bl5fc31; +wire zkfe18f; +wire ykf0c7b; +wire ng863d9; +wire ec31ecb; +wire kf8f659; +wire nr7b2cd; +wire ipd966f; +wire cmcb37d; +wire yk59be9; +wire zxcdf48; +wire cz6fa47; +wire os7d23d; +wire nre91e8; +wire zk48f47; +wire by47a3b; +wire lf3d1da; +wire ofe8ed6; +wire dm476b4; +wire co3b5a3; +wire xwdad19; +wire uvd68cb; +wire sjb465d; +wire mga32ec; +wire lf19760; +wire aycbb07; +wire fa5d838; +wire dzec1c2; +wire yx60e17; +wire cb70bc; +wire xl385e5; +wire hbc2f2e; +wire gd17976; +wire iebcbb5; +wire sue5da9; +wire ec2ed48; +wire fa76a41; +wire phb520a; +wire oua9056; +wire ho482b1; +wire kd4158a; +wire coac54; +wire ui562a0; +wire ohb1500; +wire ir8a804; +wire sh54024; +wire dba0125; +wire sw92f; +wire tw4979; +wire aa24bcb; +wire ri25e58; +wire xy2f2c2; +wire xw79612; +wire eacb092; +wire ps58491; +wire jpc248b; +wire an1245f; +wire ie922fc; +wire xl917e0; +wire rv8bf07; +wire nr5f83e; +wire thfc1f7; +wire yke0fbe; +wire cb7df0; +wire qi3ef84; +wire czf7c20; +wire qvbe104; +wire eaf0825; +wire lf84129; +wire ls2094e; +wire ba4a72; +wire ng25393; +wire wl29c9b; +wire qt4e4dc; +wire go726e5; +wire zm93729; +wire db9b94a; +wire qtdca57; +wire kqe52bc; +wire yz295e1; +wire ld4af0d; +wire ps5786e; +wire cobc373; +wire tue1b98; +wire ohdcc2; +wire th6e615; +wire rg730ae; +wire ie98573; +wire fnc2b99; +wire ou15cce; +wire sjae670; +wire jc73384; +wire xy99c23; +wire osce11a; +wire sh708d1; +wire tj8468d; +wire yz2346e; +wire aa1a374; +wire med1ba0; +wire aa8dd00; +wire ld6e801; +wire ld7400f; +wire lfa007e; +wire ec3f7; +reg [17 : 0] hq1fb8; +reg iefdc3; +reg th7ee18; +reg alf70c6; +reg dob8635; +reg czc31aa; +reg wl18d55; +reg [9 : 0] ipc6aac; +reg [9 : 0] ng35564; +reg bnaab22; +reg jp55917; +reg coac8be; +reg nr645f0; +reg xl22f87; +reg yz17c3f; +reg yzbe1fd; +reg qgf0fed; +reg aa87f69; +reg ba3fb48; +reg mrfda42; +reg aled215; +reg zk690ad; +reg rg4856b; +reg lq42b5a; +reg ks15ad2; +reg lsad690; +reg ld6b483; +reg hb5a41e; +reg thd20f6; +reg gd907b6; +reg je83db5; +reg vk1edaa; +reg fnf6d53; +reg mgb6a9e; +reg tjb54f0; +reg xlaa786; +reg ww53c36; +reg jr9e1b1; +reg gof0d8e; +reg zm86c71; +reg ux3638a; +reg irb1c55; +reg rv8e2ad; +reg rt7156f; +reg gd8ab7e; +reg dz55bf4; +reg hqadfa6; +reg al6fd32; +reg bl7e995; +reg lqf4cae; +reg mga6573; +reg lf32b98; +reg kf95cc6; +reg mtae634; +reg ne731a4; +reg co98d23; +reg enc6918; +reg gq348c4; +reg ana4621; +reg wl2310d; +reg mt1886c; +reg eac4364; +reg gq21b20; +reg ohd900; +reg rg6c805; +reg dz6402a; +reg tw20157; +reg qiabb; +reg co55d9; +reg ri2aec8; +reg fa57643; +reg yzbb21a; +reg shd90d5; +reg hbc86ad; +reg ic4356e; +reg qi1ab71; +reg psd5b89; +reg zmadc4a; +reg pf6e252; +reg nr71296; +reg zm894b6; +reg zx4a5b2; +reg by52d97; +reg vk96cbb; +reg ymb65db; +reg ngb2ed9; +reg ym976ca; +reg uxbb650; +reg kqdb285; +reg qtd9428; +reg psca145; +reg bl50a2b; +reg sj8515e; +reg rv28af4; +reg dz457a6; +reg ym2bd36; +reg kd5e9b1; +reg tuf4d8d; +reg yma6c6b; +reg gd36359; +reg anb1acd; +reg co8d66d; +reg xj6b368; +reg ww59b46; +reg jpcda30; +reg cm6d187; +reg os68c39; +reg cm461c8; +reg vk30e41; +reg ou8720b; +reg oh39059; +reg nrc82cc; +reg gb41666; +reg xyb334; +reg kq599a3; +reg qtccd18; +reg ho668c5; +reg ym3462b; +reg iea3158; +reg ep18ac0; +reg tuc5604; +reg wy2b022; +reg ps58110; +reg hoc0883; +reg je441b; +reg xl220da; +reg sw106d6; +reg ba836b1; +reg ng1b58b; +reg nedac5a; +reg shd62d3; +reg yzb169c; +reg lf8b4e4; +reg vv5a727; +reg ald393e; +reg ng9c9f5; +reg nee4faa; +reg tj27d52; +reg qi3ea97; +reg ayf54b8; +reg bnaa5c0; +reg dm52e06; +reg ks97033; +reg lsb8198; +reg nec0cc2; +reg hd6613; +reg kf3309f; +reg ec984fd; +reg zxc27e9; +reg zz13f4f; +reg gd9fa7f; +reg offd3fd; +reg nre9fec; +reg xj4ff66; +reg ip7fb36; +reg qtfd9b4; +reg hbecda5; +reg zk66d2e; +reg oh36973; +reg irb4b9c; +reg rva5ce5; +reg wy2e72e; +reg ps73970; +reg pu9cb82; +reg cme5c12; +reg gq2e090; +reg sh70480; +reg mg82404; +reg yz12021; +reg ux9010c; +reg sj80865; +reg tw432d; +reg wy2196a; +reg ntcb50; +reg kd65a87; +reg vx2d43c; +reg mr6a1e7; +reg pf50f3c; +reg ym879e6; +reg mt3cf30; +reg ale7985; +reg wl3cc2d; +reg dze616d; +reg pu30b6e; +reg ux85b73; +reg lf2db9d; +reg ea6dcee; +reg dz6e770; +reg tu73b86; +reg uk9dc32; +reg rgee190; +reg cz70c82; +reg tw86415; +reg db320ab; +reg cb9055f; +reg co82afd; +reg qi157e8; +reg mtabf41; +reg th5fa0d; +reg offd06f; +reg mre837c; +reg sh41be5; +reg uxdf2d; +reg of6f96d; +reg ho7cb6d; +reg kqe5b6b; +reg vx2db58; +reg go6dac6; +reg qg6d630; +reg zx6b181; +reg ne58c0e; +reg ofc6072; +reg ng30395; +reg bn81caa; +reg nge557; +reg ic72abb; +reg mt955d8; +reg hdaaec5; +reg dm5762f; +reg irbb17a; +reg vvd8bd5; +reg zkc5eae; +reg xy2f573; +reg yx7ab9a; +reg ned5cd4; +reg kfae6a2; +reg xw73514; +reg gd9a8a3; +reg med451d; +reg fca28e9; +reg je1474b; +reg gqa3a5b; +reg sj1d2d9; +reg hbe96cd; +reg en4b66f; +reg qt5b37d; +reg mrd9bec; +reg hbcdf64; +reg of6fb27; +reg go7d93d; +reg fnec9e9; +reg ld64f4e; +reg db27a76; +reg vx3d3b7; +reg rte9dbe; +reg cz4edf6; +reg vi76fb4; +reg lsb7da2; +reg kfbed12; +reg hbf6894; +reg epb44a6; +reg fca2534; +reg gd129a2; +reg lf94d15; +reg swa68ae; +reg ie34571; +reg lsa2b88; +reg ec15c43; +reg qvae218; +reg vv710c4; +reg ks88626; +reg go43130; +reg cb18981; +reg cmc4c0c; +reg wl26061; +reg ls3030c; +reg lf81862; +reg rvc317; +reg nr618be; +reg tjc5f6; +reg ay62fb6; +reg wl17db1; +reg irbed8d; +reg rtf6c6c; +reg ecb6366; +reg kfb1b31; +reg ec8d98d; +reg ps6cc69; +reg lq6634a; +reg aa31a52; +reg co8d291; +reg vi69488; +reg nr4a443; +reg jc5221f; +reg fp910fa; +reg aa887d7; +reg ea43eb8; +reg gq1f5c0; +reg icfae00; +reg rtd7000; +reg pub8006; +reg tuc0032; +reg wy192; +reg ukc90; +reg lf6481; +reg rv3240f; +reg ie9207f; +reg wl903f8; +reg jr81fc5; +reg ymfe2f; +reg qt7f178; +reg gbf8bc5; +reg dmc5e2d; +reg do2f16b; +reg su78b5a; +reg vic5ad1; +reg tj2d68b; +reg xj6b45f; +reg zx5a2fe; +reg [2047:0] ead17f6; +wire [308:0] vx8bfb1; +localparam th5fd8e = 309,nefec77 = 32'hfdffc68b; +localparam [31:0] fnf63ba = nefec77; +localparam tj8eebd = nefec77 & 4'hf; +localparam [11:0] fpbaf71 = 'h7ff; +wire [(1 << tj8eebd) -1:0] jebdc77; +reg [th5fd8e-1:0] fn71dda; +reg [tj8eebd-1:0] ay776be [0:1]; +reg [tj8eebd-1:0] nedaf8d; +reg thd7c6b; +integer kfbe35f; +integer jcf1afd; +AND2 wy8d7eb (.A(ym8da6f), .B(eaffb08), .Z(cobc373)); INV vieb1fc (.A(zz383e4), .Z(eaffb08)); AND2 xy3f896 (.A(su6d379), .B(kdfd840), .Z(thfc1f7)); INV tw965a5 (.A(ene707c), .Z(kdfd840)); OR2 ohb4a93 (.A(ne69bc9), .B(vi4de4a), .Z(uic1f26)); XOR2 ng93bd2 (.A(sue5da9), .B(ec2ed48), .Z(vk2ff39)); XOR2 zxd2605 (.A(ec2ed48), .B(ho482b1), .Z(mr7f9cb)); XOR2 uk5c8b (.A(ho482b1), .B(kd4158a), .Z(xjfce5c)); XOR2 xl8b20f (.A(kd4158a), .B(ir8a804), .Z(kde72e7)); XOR2 swfe75 (.A(ir8a804), .B(sh54024), .Z(ux3973c)); XOR2 cz75178 (.A(sh54024), .B(aa24bcb), .Z(gocb9e4)); XOR2 ic788ba (.A(aa24bcb), .B(ri25e58), .Z(ay5cf20)); XOR2 bnba23c (.A(ri25e58), .B(ps58491), .Z(ofe7900)); XOR2 cb3ce4a (.A(ps58491), .B(jpc248b), .Z(ep3c805)); XOR2 ld4ab24 (.A(jpc248b), .B(irb1e36), .Z(nee402d)); XOR2 ec24d86 (.A(ec31ecb), .B(kf8f659), .Z(pha5bb3)); XOR2 ls8616f (.A(kf8f659), .B(yk59be9), .Z(jr2dd9e)); XOR2 gb6f6ee (.A(yk59be9), .B(zxcdf48), .Z(rt6ecf6)); XOR2 hoee9ce (.A(zxcdf48), .B(zk48f47), .Z(fa767b7)); XOR2 qgce7d5 (.A(zk48f47), .B(by47a3b), .Z(qib3dbb)); XOR2 rgd52a0 (.A(by47a3b), .B(co3b5a3), .Z(zz9edd8)); XOR2 jra0675 (.A(co3b5a3), .B(xwdad19), .Z(ldf6ec7)); XOR2 yx75ff0 (.A(xwdad19), .B(lf19760), .Z(jeb763e)); XOR2 osf0be3 (.A(lf19760), .B(aycbb07), .Z(yzbb1f3)); XOR2 nre335a (.A(aycbb07), .B(tw8672e), .Z(thd8f9d)); defparam dz5adb6.initval = 16'h6996 ; ROM16X1A dz5adb6 (.AD3(fae4643), .AD2(vx190dc), .AD1(su4373e), .AD0(ofdcf8b), .DO0(dm476b4)); defparam ale8012.initval = 16'h6996 ; ROM16X1A ale8012 (.AD3(ou8dd58), .AD2(wj7560f), .AD1(zk583e4), .AD0(qif919), .DO0(ld6102f)); defparam cz70b64.initval = 16'h6996 ; ROM16X1A cz70b64 (.AD3(su4373e), .AD2(ofdcf8b), .AD1(ld6e801), .AD0(ld6e801), .DO0(mga32ec)); defparam fn6e596.initval = 16'h6996 ; ROM16X1A fn6e596 (.AD3(vx190dc), .AD2(su4373e), .AD1(ofdcf8b), .AD0(ld6e801), .DO0(sjb465d)); defparam ou824ce.initval = 16'h6996 ; ROM16X1A ou824ce (.AD3(qif919), .AD2(fae4643), .AD1(vx190dc), .AD0(mga32ec), .DO0(ofe8ed6)); defparam os6247a.initval = 16'h6996 ; ROM16X1A os6247a (.AD3(zk583e4), .AD2(qif919), .AD1(fae4643), .AD0(sjb465d), .DO0(nre91e8)); defparam oh26b57.initval = 16'h6996 ; ROM16X1A oh26b57 (.AD3(wj7560f), .AD2(zk583e4), .AD1(qif919), .AD0(dm476b4), .DO0(os7d23d)); defparam kd5bad2.initval = 16'h6996 ; ROM16X1A kd5bad2 (.AD3(dm476b4), .AD2(ld6102f), .AD1(ld6e801), .AD0(ld6e801), .DO0(cmcb37d)); defparam kd7ade6.initval = 16'h6996 ; ROM16X1A kd7ade6 (.AD3(dm476b4), .AD2(ld6102f), .AD1(do3a375), .AD0(ld6e801), .DO0(ipd966f)); defparam ng2a3cf.initval = 16'h6996 ; ROM16X1A ng2a3cf (.AD3(dm476b4), .AD2(ld6102f), .AD1(dba0e8d), .AD0(do3a375), .DO0(ng863d9)); defparam pha56e0.initval = 16'h6996 ; ROM16X1A pha56e0 (.AD3(meea83a), .AD2(dba0e8d), .AD1(do3a375), .AD0(ld6e801), .DO0(ldec205)); defparam xwc5a2f.initval = 16'h6996 ; ROM16X1A xwc5a2f (.AD3(dm476b4), .AD2(ld6102f), .AD1(ldec205), .AD0(ld6e801), .DO0(ykf0c7b)); defparam mrf8eb2.initval = 16'h6996 ; ROM16X1A mrf8eb2 (.AD3(zz37baa), .AD2(neeeab3), .AD1(bnaacdc), .AD0(ecb3738), .DO0(tw4979)); defparam qt7a8a6.initval = 16'h6996 ; ROM16X1A qt7a8a6 (.AD3(hb4ac0d), .AD2(xlb0370), .AD1(epdc37), .AD0(cz70dee), .DO0(dz40bfc)); defparam xyb445.initval = 16'h6996 ; ROM16X1A xyb445 (.AD3(bnaacdc), .AD2(ecb3738), .AD1(ld6e801), .AD0(ld6e801), .DO0(eacb092)); defparam hof138c.initval = 16'h6996 ; ROM16X1A hof138c (.AD3(neeeab3), .AD2(bnaacdc), .AD1(ecb3738), .AD0(ld6e801), .DO0(xw79612)); defparam qi9de87.initval = 16'h6996 ; ROM16X1A qi9de87 (.AD3(cz70dee), .AD2(zz37baa), .AD1(neeeab3), .AD0(eacb092), .DO0(sw92f)); defparam aa5473.initval = 16'h6996 ; ROM16X1A aa5473 (.AD3(epdc37), .AD2(cz70dee), .AD1(zz37baa), .AD0(xw79612), .DO0(ohb1500)); defparam fc14ece.initval = 16'h6996 ; ROM16X1A fc14ece (.AD3(xlb0370), .AD2(epdc37), .AD1(cz70dee), .AD0(tw4979), .DO0(ui562a0)); defparam xl91848.initval = 16'h6996 ; ROM16X1A xl91848 (.AD3(tw4979), .AD2(dz40bfc), .AD1(ld6e801), .AD0(ld6e801), .DO0(oua9056)); defparam wy97cce.initval = 16'h6996 ; ROM16X1A wy97cce (.AD3(tw4979), .AD2(dz40bfc), .AD1(ose52b0), .AD0(ld6e801), .DO0(phb520a)); defparam mr6f479.initval = 16'h6996 ; ROM16X1A mr6f479 (.AD3(tw4979), .AD2(dz40bfc), .AD1(rv8b94a), .AD0(ose52b0), .DO0(iebcbb5)); defparam ph28aed.initval = 16'h6996 ; ROM16X1A ph28aed (.AD3(ou3e2e5), .AD2(rv8b94a), .AD1(ose52b0), .AD0(ld6e801), .DO0(gd817f)); defparam qvb153b.initval = 16'h6996 ; ROM16X1A qvb153b (.AD3(tw4979), .AD2(dz40bfc), .AD1(gd817f), .AD0(ld6e801), .DO0(gd17976)); XOR2 ie24422 (.A(irb1e36), .B(ecb3738), .Z(xj7b5e2)); XOR2 db22386 (.A(ofdcf8b), .B(tw8672e), .Z(cm68afe)); defparam ri86cbd.initval = 16'h0410 ; ROM16X1A ri86cbd (.AD3(je1bbe3), .AD2(tw8672e), .AD1(ofdcf8b), .AD0(ld6e801), .DO0(yx60e17)); defparam jraa28f.initval = 16'h1004 ; ROM16X1A jraa28f (.AD3(je1bbe3), .AD2(tw8672e), .AD1(ofdcf8b), .AD0(ld6e801), .DO0(dzec1c2)); defparam zmad931.initval = 16'h0140 ; ROM16X1A zmad931 (.AD3(lqf4b76), .AD2(irb1e36), .AD1(ecb3738), .AD0(ld6e801), .DO0(xl917e0)); defparam do9682b.initval = 16'h4001 ; ROM16X1A do9682b (.AD3(lqf4b76), .AD2(irb1e36), .AD1(ecb3738), .AD0(ld6e801), .DO0(ie922fc)); INV the602c (.A(db9b94a), .Z(co5fe7)); AND2 ec5995 (.A(czdce0f), .B(co5fe7), .Z(kqe52bc)); AND2 wl95316 (.A(czdce0f), .B(db9b94a), .Z(yz295e1)); defparam nt16a01.INIT_DATA = "STATIC" ; defparam nt16a01.ASYNC_RESET_RELEASE = "SYNC" ; defparam nt16a01.CSDECODE_B = "0b000" ; defparam nt16a01.CSDECODE_A = "0b000" ; defparam nt16a01.WRITEMODE_B = "NORMAL" ; defparam nt16a01.WRITEMODE_A = "NORMAL" ; defparam nt16a01.GSR = "ENABLED" ; defparam nt16a01.RESETMODE = "ASYNC" ; defparam nt16a01.REGMODE_B = "NOREG" ; defparam nt16a01.REGMODE_A = "NOREG" ; defparam nt16a01.DATA_WIDTH_B = 18 ; defparam nt16a01.DATA_WIDTH_A = 18 ; DP16KD nt16a01 (.DIA17(ui49c6d[17]), .DIA16(ui49c6d[16]), .DIA15(ui49c6d[15]), .DIA14(ui49c6d[14]), .DIA13(ui49c6d[13]), .DIA12(ui49c6d[12]), .DIA11(ui49c6d[11]), .DIA10(ui49c6d[10]), .DIA9(ui49c6d[9]), .DIA8(ui49c6d[8]), .DIA7(ui49c6d[7]), .DIA6(ui49c6d[6]), .DIA5(ui49c6d[5]), .DIA4(ui49c6d[4]), .DIA3(ui49c6d[3]), .DIA2(ui49c6d[2]), .DIA1(ui49c6d[1]), .DIA0(ui49c6d[0]), .ADA13(bl7e96e), .ADA12(jp4fd2d), .ADA11(qtc9fa5), .ADA10(qtd93f4), .ADA9(kd5b27e), .ADA8(fn6b64f), .ADA7(hd2d6c9), .ADA6(aa5ad9), .ADA5(gqb5b), .ADA4(vk2016b), .ADA3(ld6e801), .ADA2(ld6e801), .ADA1(lfa007e), .ADA0(lfa007e), .CEA(cobc373), .OCEA(cobc373), .CLKA(of4e369), .WEA(lfa007e), .CSA2(ld6e801), .CSA1(ld6e801), .CSA0(ld6e801), .RSTA(ne69bc9), .DIB17(ld6e801), .DIB16(ld6e801), .DIB15(ld6e801), .DIB14(ld6e801), .DIB13(ld6e801), .DIB12(ld6e801), .DIB11(ld6e801), .DIB10(ld6e801), .DIB9(ld6e801), .DIB8(ld6e801), .DIB7(ld6e801), .DIB6(ld6e801), .DIB5(ld6e801), .DIB4(ld6e801), .DIB3(ld6e801), .DIB2(ld6e801), .DIB1(ld6e801), .DIB0(ld6e801), .ADB13(hq8377c), .ADB12(of706ef), .ADB11(hd8e0dd), .ADB10(kfb1c1b), .ADB9(rg76383), .ADB8(zkeec70), .ADB7(ie9dd8e), .ADB6(ldf3bb1), .ADB5(ks3e776), .ADB4(ldc7cee), .ADB3(ld6e801), .ADB2(ld6e801), .ADB1(ld6e801), .ADB0(ld6e801), .CEB(thfc1f7), .OCEB(thfc1f7), .CLKB(th71b4d), .WEB(ld6e801), .CSB2(ld6e801), .CSB1(ld6e801), .CSB0(ld6e801), .RSTB(ne69bc9), .DOA17(), .DOA16(), .DOA15(), .DOA14(), .DOA13(), .DOA12(), .DOA11(), .DOA10(), .DOA9(), .DOA8(), .DOA7(), .DOA6(), .DOA5(), .DOA4(), .DOA3(), .DOA2(), .DOA1(), .DOA0(), .DOB17(uvc94e2[17]), .DOB16(uvc94e2[16]), .DOB15(uvc94e2[15]), .DOB14(uvc94e2[14]), .DOB13(uvc94e2[13]), .DOB12(uvc94e2[12]), .DOB11(uvc94e2[11]), .DOB10(uvc94e2[10]), .DOB9(uvc94e2[9]), .DOB8(uvc94e2[8]), .DOB7(uvc94e2[7]), .DOB6( +uvc94e2[6]), .DOB5(uvc94e2[5]), .DOB4(uvc94e2[4]), .DOB3(uvc94e2[3]), .DOB2(uvc94e2[2]), .DOB1(uvc94e2[1]), .DOB0(uvc94e2[0])) ; FD1P3BX mg77a (.D(ief931), .SP(cobc373), .CK(of4e369), .PD(ne69bc9), .Q(sue5da9)) ; FD1P3DX ng8682a (.D(rg7c988), .SP(cobc373), .CK(of4e369), .CD(ne69bc9), .Q(ec2ed48)) ; FD1P3DX yz90c12 (.D(sj2621a), .SP(cobc373), .CK(of4e369), .CD(ne69bc9), .Q(ho482b1)) ; FD1P3DX aaa346f (.D(ec310d4), .SP(cobc373), .CK(of4e369), .CD(ne69bc9), .Q(kd4158a)) ; FD1P3DX vic0060 (.D(kq43500), .SP(cobc373), .CK(of4e369), .CD(ne69bc9), .Q(ir8a804)) ; FD1P3DX uk107ad (.D(gq1a801), .SP(cobc373), .CK(of4e369), .CD(ne69bc9), .Q(sh54024)) ; FD1P3DX zx4a65b (.D(hda0049), .SP(cobc373), .CK(of4e369), .CD(ne69bc9), .Q(aa24bcb)) ; FD1P3DX ipf866a (.D(ym24f), .SP(cobc373), .CK(of4e369), .CD(ne69bc9), .Q(ri25e58)) ; FD1P3DX hda5dac (.D(nt93c2), .SP(cobc373), .CK(of4e369), .CD(ne69bc9), .Q(ps58491)) ; FD1P3DX ie315c2 (.D(ea49e16), .SP(cobc373), .CK(of4e369), .CD(ne69bc9), .Q(jpc248b)) ; FD1P3DX ph844b8 (.D(os7858f), .SP(cobc373), .CK(of4e369), .CD(ne69bc9), .Q(irb1e36)) ; FD1P3DX oh36a1c (.D(vk2ff39), .SP(cobc373), .CK(of4e369), .CD(ne69bc9), .Q(nrddf1b)) ; FD1P3DX yz26632 (.D(mr7f9cb), .SP(cobc373), .CK(of4e369), .CD(ne69bc9), .Q(meef8de)) ; FD1P3DX jra5176 (.D(xjfce5c), .SP(cobc373), .CK(of4e369), .CD(ne69bc9), .Q(rg7c6f1)) ; FD1P3DX qvbee52 (.D(kde72e7), .SP(cobc373), .CK(of4e369), .CD(ne69bc9), .Q(lde378a)) ; FD1P3DX zza50de (.D(ux3973c), .SP(cobc373), .CK(of4e369), .CD(ne69bc9), .Q(ba1bc56)) ; FD1P3DX zzbf2cc (.D(gocb9e4), .SP(cobc373), .CK(of4e369), .CD(ne69bc9), .Q(ykde2b3)) ; FD1P3DX qi3e229 (.D(ay5cf20), .SP(cobc373), .CK(of4e369), .CD(ne69bc9), .Q(xwf1598)) ; FD1P3DX rt4a3a8 (.D(ofe7900), .SP(cobc373), .CK(of4e369), .CD(ne69bc9), .Q(cb8acc2)) ; FD1P3DX cb3cd12 (.D(ep3c805), .SP(cobc373), .CK(of4e369), .CD(ne69bc9), .Q(ui56614)) ; FD1P3DX vxaf0ac (.D(nee402d), .SP(cobc373), .CK(of4e369), .CD(ne69bc9), .Q(mgb30a0)) ; FD1P3DX je30c02 (.D(irb1e36), .SP(cobc373), .CK(of4e369), .CD(ne69bc9), .Q(uk98501)) ; FD1P3DX hd9b52e (.D(sue5da9), .SP(cobc373), .CK(of4e369), .CD(ne69bc9), .Q(vk2016b)) ; FD1P3DX qib318b (.D(ec2ed48), .SP(cobc373), .CK(of4e369), .CD(ne69bc9), .Q(gqb5b)) ; FD1P3DX zxc8a39 (.D(ho482b1), .SP(cobc373), .CK(of4e369), .CD(ne69bc9), .Q(aa5ad9)) ; FD1P3DX hb7ecea (.D(kd4158a), .SP(cobc373), .CK(of4e369), .CD(ne69bc9), .Q(hd2d6c9)) ; FD1P3DX twb7049 (.D(ir8a804), .SP(cobc373), .CK(of4e369), .CD(ne69bc9), .Q(fn6b64f)) ; FD1P3DX zx5a185 (.D(sh54024), .SP(cobc373), .CK(of4e369), .CD(ne69bc9), .Q(kd5b27e)) ; FD1P3DX su726e8 (.D(aa24bcb), .SP(cobc373), .CK(of4e369), .CD(ne69bc9), .Q(qtd93f4)) ; FD1P3DX qiafec (.D(ri25e58), .SP(cobc373), .CK(of4e369), .CD(ne69bc9), .Q(qtc9fa5)) ; FD1P3DX vx3d7d (.D(ps58491), .SP(cobc373), .CK(of4e369), .CD(ne69bc9), .Q(jp4fd2d)) ; FD1P3DX dm733ca (.D(jpc248b), .SP(cobc373), .CK(of4e369), .CD(ne69bc9), .Q(bl7e96e)) ; FD1P3DX ux9a698 (.D(irb1e36), .SP(cobc373), .CK(of4e369), .CD(ne69bc9), .Q(lqf4b76)) ; FD1P3BX ec24901 (.D(qv8f1b5), .SP(thfc1f7), .CK(th71b4d), .PD(uic1f26), .Q(ec31ecb)) ; FD1P3DX nr402d4 (.D(go78dad), .SP(thfc1f7), .CK(th71b4d), .CD(uic1f26), .Q(kf8f659)) ; FD1P3DX bn327c0 (.D(ir36b4c), .SP(thfc1f7), .CK(th71b4d), .CD(uic1f26), .Q(yk59be9)) ; FD1P3DX aa3b91d (.D(ntb5a64), .SP(thfc1f7), .CK(th71b4d), .CD(uic1f26), .Q(zxcdf48)) ; FD1P3DX al4476c (.D(xw6993b), .SP(thfc1f7), .CK(th71b4d), .CD(uic1f26), .Q(zk48f47)) ; FD1P3DX pu25916 (.D(ww4c9da), .SP(thfc1f7), .CK(th71b4d), .CD(uic1f26), .Q(by47a3b)) ; FD1P3DX fp94ff2 (.D(hd2768e), .SP(thfc1f7), .CK(th71b4d), .CD(uic1f26), .Q(co3b5a3)) ; FD1P3DX ecb34e2 (.D(uk3b476), .SP(thfc1f7), .CK(th71b4d), .CD(uic1f26), .Q(xwdad19)) ; FD1P3DX ng8cae2 (.D(wwd1d8a), .SP(thfc1f7), .CK(th71b4d), .CD(uic1f26), .Q(lf19760)) ; FD1P3DX co9d267 (.D(fp8ec50), .SP(thfc1f7), .CK(th71b4d), .CD(uic1f26), .Q(aycbb07)) ; FD1P3DX tucf245 (.D(anb1433), .SP(thfc1f7), .CK(th71b4d), .CD(uic1f26), .Q(tw8672e)) ; FD1P3DX dz5a8f0 (.D(pha5bb3), .SP(thfc1f7), .CK(th71b4d), .CD(uic1f26), .Q(xjc2809)) ; FD1P3DX sj39289 (.D(jr2dd9e), .SP(thfc1f7), .CK(th71b4d), .CD(uic1f26), .Q(do1404e)) ; FD1P3DX dz64f59 (.D(rt6ecf6), .SP(thfc1f7), .CK(th71b4d), .CD(uic1f26), .Q(nta0273)) ; FD1P3DX ui77c80 (.D(fa767b7), .SP(thfc1f7), .CK(th71b4d), .CD(uic1f26), .Q(vk139f)) ; FD1P3DX ym5b61 (.D(qib3dbb), .SP(thfc1f7), .CK(th71b4d), .CD(uic1f26), .Q(ph9cfa)) ; FD1P3DX mr4e0ff (.D(zz9edd8), .SP(thfc1f7), .CK(th71b4d), .CD(uic1f26), .Q(al4e7d7)) ; FD1P3DX blec445 (.D(ldf6ec7), .SP(thfc1f7), .CK(th71b4d), .CD(uic1f26), .Q(jc73ebd)) ; FD1P3DX su7867a (.D(jeb763e), .SP(thfc1f7), .CK(th71b4d), .CD(uic1f26), .Q(ux9f5ea)) ; FD1P3DX mt85cea (.D(yzbb1f3), .SP(thfc1f7), .CK(th71b4d), .CD(uic1f26), .Q(qgfaf54)) ; FD1P3DX xya844f (.D(thd8f9d), .SP(thfc1f7), .CK(th71b4d), .CD(uic1f26), .Q(dzd7aa0)) ; FD1P3DX sudb6ff (.D(tw8672e), .SP(thfc1f7), .CK(th71b4d), .CD(uic1f26), .Q(lsbd507)) ; FD1P3DX fac02cc (.D(ec31ecb), .SP(thfc1f7), .CK(th71b4d), .CD(uic1f26), .Q(ldc7cee)) ; FD1P3DX cb12620 (.D(kf8f659), .SP(thfc1f7), .CK(th71b4d), .CD(uic1f26), .Q(ks3e776)) ; FD1P3DX db22012 (.D(yk59be9), .SP(thfc1f7), .CK(th71b4d), .CD(uic1f26), .Q(ldf3bb1)) ; FD1P3DX kfb196a (.D(zxcdf48), .SP(thfc1f7), .CK(th71b4d), .CD(uic1f26), .Q(ie9dd8e)) ; FD1P3DX yzab9ef (.D(zk48f47), .SP(thfc1f7), .CK(th71b4d), .CD(uic1f26), .Q(zkeec70)) ; FD1P3DX gbe8bc8 (.D(by47a3b), .SP(thfc1f7), .CK(th71b4d), .CD(uic1f26), .Q(rg76383)) ; FD1P3DX tj274bd (.D(co3b5a3), .SP(thfc1f7), .CK(th71b4d), .CD(uic1f26), .Q(kfb1c1b)) ; FD1P3DX dm73e5a (.D(xwdad19), .SP(thfc1f7), .CK(th71b4d), .CD(uic1f26), .Q(hd8e0dd)) ; FD1P3DX db94c77 (.D(lf19760), .SP(thfc1f7), .CK(th71b4d), .CD(uic1f26), .Q(of706ef)) ; FD1P3DX ayf0385 (.D(aycbb07), .SP(thfc1f7), .CK(th71b4d), .CD(uic1f26), .Q(hq8377c)) ; FD1P3DX ne47766 (.D(tw8672e), .SP(thfc1f7), .CK(th71b4d), .CD(uic1f26), .Q(je1bbe3)) ; FD1S3DX qi98d95 (.D(nrddf1b), .CK(th71b4d), .CD(ne69bc9), .Q(sh541d1)) ; FD1S3DX twa8955 (.D(meef8de), .CK(th71b4d), .CD(ne69bc9), .Q(qv746e)) ; FD1S3DX tjaaadf (.D(rg7c6f1), .CK(th71b4d), .CD(ne69bc9), .Q(ead1bab)) ; FD1S3DX cmfff2b (.D(lde378a), .CK(th71b4d), .CD(ne69bc9), .Q(th6eac1)) ; FD1S3DX xw581c8 (.D(ba1bc56), .CK(th71b4d), .CD(ne69bc9), .Q(uxab07c)) ; FD1S3DX ww43766 (.D(ykde2b3), .CK(th71b4d), .CD(ne69bc9), .Q(icc1f23)) ; FD1S3DX qi317b2 (.D(xwf1598), .CK(th71b4d), .CD(ne69bc9), .Q(dm7c8c8)) ; FD1S3DX mt90d7b (.D(cb8acc2), .CK(th71b4d), .CD(ne69bc9), .Q(kf2321b)) ; FD1S3DX uvdc4f6 (.D(ui56614), .CK(th71b4d), .CD(ne69bc9), .Q(fnc86e7)) ; FD1S3DX vxb59fe (.D(mgb30a0), .CK(th71b4d), .CD(ne69bc9), .Q(tw1b9f1)) ; FD1S3DX enf7052 (.D(uk98501), .CK( +th71b4d), .CD(ne69bc9), .Q(wje7c5c)) ; FD1S3DX oh9540b (.D(xjc2809), .CK(of4e369), .CD(uic1f26), .Q(psf1729)) ; FD1S3DX tu5ddf2 (.D(do1404e), .CK(of4e369), .CD(uic1f26), .Q(kq5ca56)) ; FD1S3DX aa9262d (.D(nta0273), .CK(of4e369), .CD(uic1f26), .Q(ep29581)) ; FD1S3DX me6841f (.D(vk139f), .CK(of4e369), .CD(uic1f26), .Q(ic5606e)) ; FD1S3DX nrf9650 (.D(ph9cfa), .CK(of4e369), .CD(uic1f26), .Q(db81b86)) ; FD1S3DX fc8625e (.D(al4e7d7), .CK(of4e369), .CD(uic1f26), .Q(rt6e1bd)) ; FD1S3DX fnf30a4 (.D(jc73ebd), .CK(of4e369), .CD(uic1f26), .Q(tw86f75)) ; FD1S3DX bn27394 (.D(ux9f5ea), .CK(of4e369), .CD(uic1f26), .Q(ribdd56)) ; FD1S3DX mga6a46 (.D(qgfaf54), .CK(of4e369), .CD(uic1f26), .Q(al7559b)) ; FD1S3DX uk31459 (.D(dzd7aa0), .CK(of4e369), .CD(uic1f26), .Q(go566e7)) ; FD1S3DX fnc8b79 (.D(lsbd507), .CK(of4e369), .CD(uic1f26), .Q(lf9b9c1)) ; FD1S3DX facffa3 (.D(sh541d1), .CK(th71b4d), .CD(ne69bc9), .Q(meea83a)) ; FD1S3DX gq1a890 (.D(qv746e), .CK(th71b4d), .CD(ne69bc9), .Q(dba0e8d)) ; FD1S3DX lf812a5 (.D(ead1bab), .CK(th71b4d), .CD(ne69bc9), .Q(do3a375)) ; FD1S3DX qi2eda6 (.D(th6eac1), .CK(th71b4d), .CD(ne69bc9), .Q(ou8dd58)) ; FD1S3DX gq31428 (.D(uxab07c), .CK(th71b4d), .CD(ne69bc9), .Q(wj7560f)) ; FD1S3DX bl40ba7 (.D(icc1f23), .CK(th71b4d), .CD(ne69bc9), .Q(zk583e4)) ; FD1S3DX ls3f27b (.D(dm7c8c8), .CK(th71b4d), .CD(ne69bc9), .Q(qif919)) ; FD1S3DX sudbd7f (.D(kf2321b), .CK(th71b4d), .CD(ne69bc9), .Q(fae4643)) ; FD1S3DX xjf927d (.D(fnc86e7), .CK(th71b4d), .CD(ne69bc9), .Q(vx190dc)) ; FD1S3DX psee871 (.D(tw1b9f1), .CK(th71b4d), .CD(ne69bc9), .Q(su4373e)) ; FD1S3DX lf8bd1e (.D(wje7c5c), .CK(th71b4d), .CD(ne69bc9), .Q(ofdcf8b)) ; FD1S3DX rtf6a8b (.D(psf1729), .CK(of4e369), .CD(uic1f26), .Q(ou3e2e5)) ; FD1S3DX mr5edae (.D(kq5ca56), .CK(of4e369), .CD(uic1f26), .Q(rv8b94a)) ; FD1S3DX gb75c3d (.D(ep29581), .CK(of4e369), .CD(uic1f26), .Q(ose52b0)) ; FD1S3DX kded947 (.D(ic5606e), .CK(of4e369), .CD(uic1f26), .Q(hb4ac0d)) ; FD1S3DX ux3c572 (.D(db81b86), .CK(of4e369), .CD(uic1f26), .Q(xlb0370)) ; FD1S3DX zz94a20 (.D(rt6e1bd), .CK(of4e369), .CD(uic1f26), .Q(epdc37)) ; FD1S3DX tj6fa2 (.D(tw86f75), .CK(of4e369), .CD(uic1f26), .Q(cz70dee)) ; FD1S3DX lf16d13 (.D(ribdd56), .CK(of4e369), .CD(uic1f26), .Q(zz37baa)) ; FD1S3DX ux9f117 (.D(al7559b), .CK(of4e369), .CD(uic1f26), .Q(neeeab3)) ; FD1S3DX mgbca3d (.D(go566e7), .CK(of4e369), .CD(uic1f26), .Q(bnaacdc)) ; FD1S3DX rte9396 (.D(lf9b9c1), .CK(of4e369), .CD(uic1f26), .Q(ecb3738)) ; FD1S3DX zmb7343 (.D(cb33973), .CK(of4e369), .CD(ne69bc9), .Q(ohdcc2)) ; FD1S3DX ls1b389 (.D(cme5ce2), .CK(of4e369), .CD(ne69bc9), .Q(th6e615)) ; FD1S3DX hb4a872 (.D(gq2e710), .CK(of4e369), .CD(ne69bc9), .Q(ie98573)) ; FD1S3DX je96b18 (.D(fc9c402), .CK(of4e369), .CD(ne69bc9), .Q(fnc2b99)) ; FD1S3DX alc3e55 (.D(gbe2013), .CK(of4e369), .CD(ne69bc9), .Q(sjae670)) ; FD1S3DX gqac196 (.D(gd804e1), .CK(of4e369), .CD(ne69bc9), .Q(jc73384)) ; FD1S3DX irb19f2 (.D(yz270c), .CK(of4e369), .CD(ne69bc9), .Q(osce11a)) ; FD1S3DX ir9564c (.D(tw9c32f), .CK(of4e369), .CD(ne69bc9), .Q(sh708d1)) ; FD1S3DX al65869 (.D(nee197b), .CK(of4e369), .CD(ne69bc9), .Q(yz2346e)) ; FD1S3DX ay4cba2 (.D(gb65ed7), .CK(of4e369), .CD(ne69bc9), .Q(aa1a374)) ; FD1S3DX hq11872 (.D(ng2f6bc), .CK(of4e369), .CD(ne69bc9), .Q(aa8dd00)) ; FD1S3DX gq92599 (.D(wje2ef8), .CK(th71b4d), .CD(uic1f26), .Q(cb7df0)) ; FD1S3DX nrc828b (.D(irbbe2c), .CK(th71b4d), .CD(uic1f26), .Q(qi3ef84)) ; FD1S3DX sh5e86e (.D(psdf164), .CK(th71b4d), .CD(uic1f26), .Q(qvbe104)) ; FD1S3DX kd7552f (.D(nec5915), .CK(th71b4d), .CD(uic1f26), .Q(eaf0825)) ; FD1S3DX xw7cf33 (.D(gd2c8ab), .CK(th71b4d), .CD(uic1f26), .Q(ls2094e)) ; FD1S3DX nt9bb75 (.D(tj22ae7), .CK(th71b4d), .CD(uic1f26), .Q(ba4a72)) ; FD1S3DX tjafd3d (.D(qi1573f), .CK(th71b4d), .CD(uic1f26), .Q(wl29c9b)) ; FD1S3DX eaefcdf (.D(qg5cfcd), .CK(th71b4d), .CD(uic1f26), .Q(qt4e4dc)) ; FD1S3DX dzf9ffa (.D(mre7e68), .CK(th71b4d), .CD(uic1f26), .Q(zm93729)) ; FD1S3DX vvd7508 (.D(jpf9a2b), .CK(th71b4d), .CD(uic1f26), .Q(db9b94a)) ; FD1S3DX ic46c6d (.D(dzcd15f), .CK(th71b4d), .CD(uic1f26), .Q(czdce0f)) ; FD1S3BX qg68b49 (.D(cb70bc), .CK(th71b4d), .PD(uic1f26), .Q(ene707c)) ; FD1S3DX ho48fd8 (.D(rv8bf07), .CK(of4e369), .CD(ne69bc9), .Q(zz383e4)) ; FD1S3BX kdc34df (.D(ld4af0d), .CK(th71b4d), .PD(uic1f26), .Q(ba9c539)) ; FD1S3DX yxfd13b (.D(ld7400f), .CK(of4e369), .CD(ne69bc9), .Q(ale29cb)) ; defparam czdc970.INJECT1_1 = "NO" ; defparam czdc970.INJECT1_0 = "NO" ; defparam czdc970.INIT1 = 16'h66AA ; defparam czdc970.INIT0 = 16'h66AA ; CCU2C czdc970 (.A0(ld6e801), .A1(lfa007e), .B0(ld6e801), .B1(lfa007e), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(), .S0(), .S1(), .COUT(nee4c43)); defparam zm252ac.INJECT1_1 = "NO" ; defparam zm252ac.INJECT1_0 = "NO" ; defparam zm252ac.INIT1 = 16'hAA00 ; defparam zm252ac.INIT0 = 16'hAA00 ; CCU2C zm252ac (.A0(sue5da9), .A1(ec2ed48), .B0(lfa007e), .B1(lfa007e), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(nee4c43), .S0(ief931), .S1(rg7c988), .COUT(ec886a0)); defparam nt8e731.INJECT1_1 = "NO" ; defparam nt8e731.INJECT1_0 = "NO" ; defparam nt8e731.INIT1 = 16'hAA00 ; defparam nt8e731.INIT0 = 16'hAA00 ; CCU2C nt8e731 (.A0(ho482b1), .A1(kd4158a), .B0(lfa007e), .B1(lfa007e), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(ec886a0), .S0(sj2621a), .S1(ec310d4), .COUT(med4009)); defparam al448cb.INJECT1_1 = "NO" ; defparam al448cb.INJECT1_0 = "NO" ; defparam al448cb.INIT1 = 16'hAA00 ; defparam al448cb.INIT0 = 16'hAA00 ; CCU2C al448cb (.A0(ir8a804), .A1(sh54024), .B0(lfa007e), .B1(lfa007e), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(med4009), .S0(kq43500), .S1(gq1a801), .COUT(ls1278)); defparam yz12202.INJECT1_1 = "NO" ; defparam yz12202.INJECT1_0 = "NO" ; defparam yz12202.INIT1 = 16'hAA00 ; defparam yz12202.INIT0 = 16'hAA00 ; CCU2C yz12202 (.A0(aa24bcb), .A1(ri25e58), .B0(lfa007e), .B1(lfa007e), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(ls1278), .S0(hda0049), .S1(ym24f), .COUT(rt4f0b1)); defparam gqa9061.INJECT1_1 = "NO" ; defparam gqa9061.INJECT1_0 = "NO" ; defparam gqa9061.INIT1 = 16'hAA00 ; defparam gqa9061.INIT0 = 16'hAA00 ; CCU2C gqa9061 (.A0(ps58491), .A1(jpc248b), .B0(lfa007e), .B1(lfa007e), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(rt4f0b1), .S0(nt93c2), .S1(ea49e16), .COUT(db163c6)); defparam ng30cac.INJECT1_1 = "NO" ; defparam ng30cac.INJECT1_0 = "NO" ; defparam ng30cac.INIT1 = 16'hAA00 ; defparam ng30cac.INIT0 = 16'hAA00 ; CCU2C ng30cac (.A0(irb1e36), .A1(ld6e801), .B0(lfa007e), .B1(lfa007e), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(db163c6), .S0(os7858f), .S1(), .COUT(nrc2c78)); defparam by486b9.INJECT1_1 = "NO" ; defparam by486b9.INJECT1_0 = "NO" ; defparam by486b9.INIT1 = 16'h66AA ; defparam by486b9.INIT0 = 16'h66AA ; CCU2C by486b9 (.A0(ld6e801), .A1(lfa007e), .B0(ld6e801), .B1(lfa007e), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(), .S0(), .S1(), .COUT(enc6d69)); defparam rtec55a.INJECT1_1 = "NO" ; defparam rtec55a.INJECT1_0 = "NO" ; defparam rtec55a.INIT1 = 16'hAA00 ; + defparam rtec55a.INIT0 = 16'hAA00 ; CCU2C rtec55a (.A0(ec31ecb), .A1(kf8f659), .B0(lfa007e), .B1(lfa007e), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(enc6d69), .S0(qv8f1b5), .S1(go78dad), .COUT(doad327)); defparam ww4ca01.INJECT1_1 = "NO" ; defparam ww4ca01.INJECT1_0 = "NO" ; defparam ww4ca01.INIT1 = 16'hAA00 ; defparam ww4ca01.INIT0 = 16'hAA00 ; CCU2C ww4ca01 (.A0(yk59be9), .A1(zxcdf48), .B0(lfa007e), .B1(lfa007e), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(doad327), .S0(ir36b4c), .S1(ntb5a64), .COUT(fn64ed1)); defparam wl26283.INJECT1_1 = "NO" ; defparam wl26283.INJECT1_0 = "NO" ; defparam wl26283.INIT1 = 16'hAA00 ; defparam wl26283.INIT0 = 16'hAA00 ; CCU2C wl26283 (.A0(zk48f47), .A1(by47a3b), .B0(lfa007e), .B1(lfa007e), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(fn64ed1), .S0(xw6993b), .S1(ww4c9da), .COUT(lqda3b1)); defparam an90107.INJECT1_1 = "NO" ; defparam an90107.INJECT1_0 = "NO" ; defparam an90107.INIT1 = 16'hAA00 ; defparam an90107.INIT0 = 16'hAA00 ; CCU2C an90107 (.A0(co3b5a3), .A1(xwdad19), .B0(lfa007e), .B1(lfa007e), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(lqda3b1), .S0(hd2768e), .S1(uk3b476), .COUT(tu76286)); defparam wwff6b5.INJECT1_1 = "NO" ; defparam wwff6b5.INJECT1_0 = "NO" ; defparam wwff6b5.INIT1 = 16'hAA00 ; defparam wwff6b5.INIT0 = 16'hAA00 ; CCU2C wwff6b5 (.A0(lf19760), .A1(aycbb07), .B0(lfa007e), .B1(lfa007e), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(tu76286), .S0(wwd1d8a), .S1(fp8ec50), .COUT(ld50ce5)); defparam zxc8c00.INJECT1_1 = "NO" ; defparam zxc8c00.INJECT1_0 = "NO" ; defparam zxc8c00.INIT1 = 16'hAA00 ; defparam zxc8c00.INIT0 = 16'hAA00 ; CCU2C zxc8c00 (.A0(tw8672e), .A1(ld6e801), .B0(lfa007e), .B1(lfa007e), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(ld50ce5), .S0(anb1433), .S1(), .COUT(an8a19c)); defparam ec2b205.INJECT1_1 = "NO" ; defparam ec2b205.INJECT1_0 = "NO" ; defparam ec2b205.INIT1 = 16'h0000 ; defparam ec2b205.INIT0 = 16'h0000 ; CCU2C ec2b205 (.A0(lfa007e), .A1(lfa007e), .B0(lfa007e), .B1(lfa007e), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(), .S0(), .S1(), .COUT(pu9cb9c)); defparam hd8bd85.INJECT1_1 = "NO" ; defparam hd8bd85.INJECT1_0 = "NO" ; defparam hd8bd85.INIT1 = 16'h99AA ; defparam hd8bd85.INIT0 = 16'h99AA ; CCU2C hd8bd85 (.A0(lfa007e), .A1(sue5da9), .B0(ld6e801), .B1(gd17976), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(pu9cb9c), .S0(), .S1(cb33973), .COUT(rg73880)); defparam kf33ad4.INJECT1_1 = "NO" ; defparam kf33ad4.INJECT1_0 = "NO" ; defparam kf33ad4.INIT1 = 16'h99AA ; defparam kf33ad4.INIT0 = 16'h99AA ; CCU2C kf33ad4 (.A0(ec2ed48), .A1(ho482b1), .B0(iebcbb5), .B1(phb520a), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(rg73880), .S0(cme5ce2), .S1(gq2e710), .COUT(mg1009c)); defparam phaa7ab.INJECT1_1 = "NO" ; defparam phaa7ab.INJECT1_0 = "NO" ; defparam phaa7ab.INIT1 = 16'h99AA ; defparam phaa7ab.INIT0 = 16'h99AA ; CCU2C phaa7ab (.A0(kd4158a), .A1(ir8a804), .B0(oua9056), .B1(ui562a0), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(mg1009c), .S0(fc9c402), .S1(gbe2013), .COUT(rv13865)); defparam lq5df1b.INJECT1_1 = "NO" ; defparam lq5df1b.INJECT1_0 = "NO" ; defparam lq5df1b.INIT1 = 16'h99AA ; defparam lq5df1b.INIT0 = 16'h99AA ; CCU2C lq5df1b (.A0(sh54024), .A1(aa24bcb), .B0(ohb1500), .B1(sw92f), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(rv13865), .S0(gd804e1), .S1(yz270c), .COUT(tjcbda)); defparam hd32be5.INJECT1_1 = "NO" ; defparam hd32be5.INJECT1_0 = "NO" ; defparam hd32be5.INIT1 = 16'h99AA ; defparam hd32be5.INIT0 = 16'h99AA ; CCU2C hd32be5 (.A0(ri25e58), .A1(ps58491), .B0(tw4979), .B1(xw79612), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(tjcbda), .S0(tw9c32f), .S1(nee197b), .COUT(jcdaf17)); defparam ne4d155.INJECT1_1 = "NO" ; defparam ne4d155.INJECT1_0 = "NO" ; defparam ne4d155.INIT1 = 16'h99AA ; defparam ne4d155.INIT0 = 16'h99AA ; CCU2C ne4d155 (.A0(jpc248b), .A1(xj7b5e2), .B0(eacb092), .B1(ld6e801), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(jcdaf17), .S0(gb65ed7), .S1(ng2f6bc), .COUT(mgbc5df)); defparam bab845a.INJECT1_1 = "NO" ; defparam bab845a.INJECT1_0 = "NO" ; defparam bab845a.INIT1 = 16'h0000 ; defparam bab845a.INIT0 = 16'h0000 ; CCU2C bab845a (.A0(lfa007e), .A1(lfa007e), .B0(lfa007e), .B1(lfa007e), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(mgbc5df), .S0(nrd78bb), .S1(), .COUT()); defparam rgd5621.INJECT1_1 = "NO" ; defparam rgd5621.INJECT1_0 = "NO" ; defparam rgd5621.INIT1 = 16'h0000 ; defparam rgd5621.INIT0 = 16'h0000 ; CCU2C rgd5621 (.A0(lfa007e), .A1(lfa007e), .B0(lfa007e), .B1(lfa007e), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(), .S0(), .S1(), .COUT(qv177c5)); defparam twe316.INJECT1_1 = "NO" ; defparam twe316.INJECT1_0 = "NO" ; defparam twe316.INIT1 = 16'h99AA ; defparam twe316.INIT0 = 16'h99AA ; CCU2C twe316 (.A0(lfa007e), .A1(ykf0c7b), .B0(ld6e801), .B1(ec31ecb), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(qv177c5), .S0(), .S1(wje2ef8), .COUT(enf8b22)); defparam rgee357.INJECT1_1 = "NO" ; defparam rgee357.INJECT1_0 = "NO" ; defparam rgee357.INIT1 = 16'h99AA ; defparam rgee357.INIT0 = 16'h99AA ; CCU2C rgee357 (.A0(ng863d9), .A1(ipd966f), .B0(kf8f659), .B1(yk59be9), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(enf8b22), .S0(irbbe2c), .S1(psdf164), .COUT(th6455c)); defparam ea4991c.INJECT1_1 = "NO" ; defparam ea4991c.INJECT1_0 = "NO" ; defparam ea4991c.INIT1 = 16'h99AA ; defparam ea4991c.INIT0 = 16'h99AA ; CCU2C ea4991c (.A0(cmcb37d), .A1(os7d23d), .B0(zxcdf48), .B1(zk48f47), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(th6455c), .S0(nec5915), .S1(gd2c8ab), .COUT(mtab9f9)); defparam rv9b44d.INJECT1_1 = "NO" ; defparam rv9b44d.INJECT1_0 = "NO" ; defparam rv9b44d.INIT1 = 16'h99AA ; defparam rv9b44d.INIT0 = 16'h99AA ; CCU2C rv9b44d (.A0(nre91e8), .A1(ofe8ed6), .B0(by47a3b), .B1(co3b5a3), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(mtab9f9), .S0(tj22ae7), .S1(qi1573f), .COUT(ng3f345)); defparam bn1c928.INJECT1_1 = "NO" ; defparam bn1c928.INJECT1_0 = "NO" ; defparam bn1c928.INIT1 = 16'h99AA ; defparam bn1c928.INIT0 = 16'h99AA ; CCU2C bn1c928 (.A0(dm476b4), .A1(sjb465d), .B0(xwdad19), .B1(lf19760), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(ng3f345), .S0(qg5cfcd), .S1(mre7e68), .COUT(nr457f0)); defparam uie009b.INJECT1_1 = "NO" ; defparam uie009b.INJECT1_0 = "NO" ; defparam uie009b.INIT1 = 16'h99AA ; defparam uie009b.INIT0 = 16'h99AA ; CCU2C uie009b (.A0(mga32ec), .A1(cm68afe), .B0(aycbb07), .B1(ld6e801), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(nr457f0), .S0(jpf9a2b), .S1(dzcd15f), .COUT(bl5fc31)); defparam kdfdc9e.INJECT1_1 = "NO" ; defparam kdfdc9e.INJECT1_0 = "NO" ; defparam kdfdc9e.INIT1 = 16'h0000 ; defparam kdfdc9e.INIT0 = 16'h0000 ; CCU2C kdfdc9e (.A0(lfa007e), .A1(lfa007e), .B0(lfa007e), .B1(lfa007e), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(bl5fc31), .S0(aa2bf86), .S1(), .COUT()); defparam jrb58ea.INJECT1_1 = "NO" ; defparam jrb58ea.INJECT1_0 = "NO" ; defparam jrb58ea.INIT1 = 16'h66AA ; defparam jrb58ea.INIT0 = 16'h66AA ; CCU2C jrb58ea (.A0(ld6e801), .A1(thfc1f7), .B0(ld6e801), .B1(thfc1f7), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(), .S0(), .S1(), .COUT(zkfe18f)); defparam ym1ffe6.INJECT1_1 = "NO" ; defparam ym1ffe6.INJECT1_0 = "NO" ; defparam ym1ffe6.INIT1 = + 16'h99AA ; defparam ym1ffe6.INIT0 = 16'h99AA ; CCU2C ym1ffe6 (.A0(ec31ecb), .A1(kf8f659), .B0(ykf0c7b), .B1(ng863d9), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(zkfe18f), .S0(), .S1(), .COUT(nr7b2cd)); defparam yz8b23.INJECT1_1 = "NO" ; defparam yz8b23.INJECT1_0 = "NO" ; defparam yz8b23.INIT1 = 16'h99AA ; defparam yz8b23.INIT0 = 16'h99AA ; CCU2C yz8b23 (.A0(yk59be9), .A1(zxcdf48), .B0(ipd966f), .B1(cmcb37d), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(nr7b2cd), .S0(), .S1(), .COUT(cz6fa47)); defparam mr7fe91.INJECT1_1 = "NO" ; defparam mr7fe91.INJECT1_0 = "NO" ; defparam mr7fe91.INIT1 = 16'h99AA ; defparam mr7fe91.INIT0 = 16'h99AA ; CCU2C mr7fe91 (.A0(zk48f47), .A1(by47a3b), .B0(os7d23d), .B1(nre91e8), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(cz6fa47), .S0(), .S1(), .COUT(lf3d1da)); defparam ec1a3b6.INJECT1_1 = "NO" ; defparam ec1a3b6.INJECT1_0 = "NO" ; defparam ec1a3b6.INIT1 = 16'h99AA ; defparam ec1a3b6.INIT0 = 16'h99AA ; CCU2C ec1a3b6 (.A0(co3b5a3), .A1(xwdad19), .B0(ofe8ed6), .B1(dm476b4), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(lf3d1da), .S0(), .S1(), .COUT(uvd68cb)); defparam ldf6be2.INJECT1_1 = "NO" ; defparam ldf6be2.INJECT1_0 = "NO" ; defparam ldf6be2.INIT1 = 16'h99AA ; defparam ldf6be2.INIT0 = 16'h99AA ; CCU2C ldf6be2 (.A0(lf19760), .A1(aycbb07), .B0(sjb465d), .B1(mga32ec), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(uvd68cb), .S0(), .S1(), .COUT(fa5d838)); defparam bn16996.INJECT1_1 = "NO" ; defparam bn16996.INJECT1_0 = "NO" ; defparam bn16996.INIT1 = 16'h99AA ; defparam bn16996.INIT0 = 16'h99AA ; CCU2C bn16996 (.A0(yx60e17), .A1(ld6e801), .B0(dzec1c2), .B1(ld6e801), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(fa5d838), .S0(), .S1(), .COUT(xl385e5)); defparam vi6cfe5.INJECT1_1 = "NO" ; defparam vi6cfe5.INJECT1_0 = "NO" ; defparam vi6cfe5.INIT1 = 16'h0000 ; defparam vi6cfe5.INIT0 = 16'h0000 ; CCU2C vi6cfe5 (.A0(lfa007e), .A1(lfa007e), .B0(lfa007e), .B1(lfa007e), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(xl385e5), .S0(cb70bc), .S1(), .COUT()); defparam ym82c41.INJECT1_1 = "NO" ; defparam ym82c41.INJECT1_0 = "NO" ; defparam ym82c41.INIT1 = 16'h66AA ; defparam ym82c41.INIT0 = 16'h66AA ; CCU2C ym82c41 (.A0(ld6e801), .A1(cobc373), .B0(ld6e801), .B1(cobc373), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(), .S0(), .S1(), .COUT(hbc2f2e)); defparam wl337ff.INJECT1_1 = "NO" ; defparam wl337ff.INJECT1_0 = "NO" ; defparam wl337ff.INIT1 = 16'h99AA ; defparam wl337ff.INIT0 = 16'h99AA ; CCU2C wl337ff (.A0(sue5da9), .A1(ec2ed48), .B0(gd17976), .B1(iebcbb5), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(hbc2f2e), .S0(), .S1(), .COUT(fa76a41)); defparam hbd8c9b.INJECT1_1 = "NO" ; defparam hbd8c9b.INJECT1_0 = "NO" ; defparam hbd8c9b.INIT1 = 16'h99AA ; defparam hbd8c9b.INIT0 = 16'h99AA ; CCU2C hbd8c9b (.A0(ho482b1), .A1(kd4158a), .B0(phb520a), .B1(oua9056), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(fa76a41), .S0(), .S1(), .COUT(coac54)); defparam hq30b38.INJECT1_1 = "NO" ; defparam hq30b38.INJECT1_0 = "NO" ; defparam hq30b38.INIT1 = 16'h99AA ; defparam hq30b38.INIT0 = 16'h99AA ; CCU2C hq30b38 (.A0(ir8a804), .A1(sh54024), .B0(ui562a0), .B1(ohb1500), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(coac54), .S0(), .S1(), .COUT(dba0125)); defparam qi319ee.INJECT1_1 = "NO" ; defparam qi319ee.INJECT1_0 = "NO" ; defparam qi319ee.INIT1 = 16'h99AA ; defparam qi319ee.INIT0 = 16'h99AA ; CCU2C qi319ee (.A0(aa24bcb), .A1(ri25e58), .B0(sw92f), .B1(tw4979), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(dba0125), .S0(), .S1(), .COUT(xy2f2c2)); defparam ose56a6.INJECT1_1 = "NO" ; defparam ose56a6.INJECT1_0 = "NO" ; defparam ose56a6.INIT1 = 16'h99AA ; defparam ose56a6.INIT0 = 16'h99AA ; CCU2C ose56a6 (.A0(ps58491), .A1(jpc248b), .B0(xw79612), .B1(eacb092), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(xy2f2c2), .S0(), .S1(), .COUT(an1245f)); defparam mt904a5.INJECT1_1 = "NO" ; defparam mt904a5.INJECT1_0 = "NO" ; defparam mt904a5.INIT1 = 16'h99AA ; defparam mt904a5.INIT0 = 16'h99AA ; CCU2C mt904a5 (.A0(xl917e0), .A1(ld6e801), .B0(ie922fc), .B1(ld6e801), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(an1245f), .S0(), .S1(), .COUT(nr5f83e)); defparam shd3f61.INJECT1_1 = "NO" ; defparam shd3f61.INJECT1_0 = "NO" ; defparam shd3f61.INIT1 = 16'h0000 ; defparam shd3f61.INIT0 = 16'h0000 ; CCU2C shd3f61 (.A0(lfa007e), .A1(lfa007e), .B0(lfa007e), .B1(lfa007e), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(nr5f83e), .S0(rv8bf07), .S1(), .COUT()); defparam yx707c8.INJECT1_1 = "NO" ; defparam yx707c8.INJECT1_0 = "NO" ; defparam yx707c8.INIT1 = 16'h66AA ; defparam yx707c8.INIT0 = 16'h66AA ; CCU2C yx707c8 (.A0(ld6e801), .A1(thfc1f7), .B0(ld6e801), .B1(thfc1f7), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(), .S0(), .S1(), .COUT(yke0fbe)); defparam vx16390.INJECT1_1 = "NO" ; defparam vx16390.INJECT1_0 = "NO" ; defparam vx16390.INIT1 = 16'h99AA ; defparam vx16390.INIT0 = 16'h99AA ; CCU2C vx16390 (.A0(wj6f253[0]), .A1(wj6f253[1]), .B0(cb7df0), .B1(qi3ef84), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(yke0fbe), .S0(), .S1(), .COUT(czf7c20)); defparam goe0fb3.INJECT1_1 = "NO" ; defparam goe0fb3.INJECT1_0 = "NO" ; defparam goe0fb3.INIT1 = 16'h99AA ; defparam goe0fb3.INIT0 = 16'h99AA ; CCU2C goe0fb3 (.A0(wj6f253[2]), .A1(wj6f253[3]), .B0(qvbe104), .B1(eaf0825), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(czf7c20), .S0(), .S1(), .COUT(lf84129)); defparam xw66d00.INJECT1_1 = "NO" ; defparam xw66d00.INJECT1_0 = "NO" ; defparam xw66d00.INIT1 = 16'h99AA ; defparam xw66d00.INIT0 = 16'h99AA ; CCU2C xw66d00 (.A0(wj6f253[4]), .A1(wj6f253[5]), .B0(ls2094e), .B1(ba4a72), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(lf84129), .S0(), .S1(), .COUT(ng25393)); defparam ukbca9a.INJECT1_1 = "NO" ; defparam ukbca9a.INJECT1_0 = "NO" ; defparam ukbca9a.INIT1 = 16'h99AA ; defparam ukbca9a.INIT0 = 16'h99AA ; CCU2C ukbca9a (.A0(wj6f253[6]), .A1(wj6f253[7]), .B0(wl29c9b), .B1(qt4e4dc), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(ng25393), .S0(), .S1(), .COUT(go726e5)); defparam epb10e7.INJECT1_1 = "NO" ; defparam epb10e7.INJECT1_0 = "NO" ; defparam epb10e7.INIT1 = 16'h99AA ; defparam epb10e7.INIT0 = 16'h99AA ; CCU2C epb10e7 (.A0(wj6f253[8]), .A1(wj6f253[9]), .B0(zm93729), .B1(db9b94a), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(go726e5), .S0(), .S1(), .COUT(qtdca57)); defparam vk99feb.INJECT1_1 = "NO" ; defparam vk99feb.INJECT1_0 = "NO" ; defparam vk99feb.INIT1 = 16'h99AA ; defparam vk99feb.INIT0 = 16'h99AA ; CCU2C vk99feb (.A0(yz295e1), .A1(ld6e801), .B0(kqe52bc), .B1(ld6e801), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(qtdca57), .S0(), .S1(), .COUT(ps5786e)); defparam al7f50f.INJECT1_1 = "NO" ; defparam al7f50f.INJECT1_0 = "NO" ; defparam al7f50f.INIT1 = 16'h0000 ; defparam al7f50f.INIT0 = 16'h0000 ; CCU2C al7f50f (.A0(lfa007e), .A1(lfa007e), .B0(lfa007e), .B1(lfa007e), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(ps5786e), .S0(ld4af0d), .S1(), .COUT()); defparam ksa93bc.INJECT1_1 = "NO" ; defparam ksa93bc.INJECT1_0 = "NO" ; defparam ksa93bc.INIT1 = 16'h66AA ; defparam ksa93bc.INIT0 = 16'h66AA ; CCU2C ksa93bc (.A0(ld6e801), .A1(cobc373), .B0(ld6e801), .B1(cobc373), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1( +lfa007e), .CIN(), .S0(), .S1(), .COUT(tue1b98)); defparam jr28c2a.INJECT1_1 = "NO" ; defparam jr28c2a.INJECT1_0 = "NO" ; defparam jr28c2a.INIT1 = 16'h99AA ; defparam jr28c2a.INIT0 = 16'h99AA ; CCU2C jr28c2a (.A0(ohdcc2), .A1(th6e615), .B0(ps7929c[0]), .B1(ps7929c[1]), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(tue1b98), .S0(), .S1(), .COUT(rg730ae)); defparam ld7430e.INJECT1_1 = "NO" ; defparam ld7430e.INJECT1_0 = "NO" ; defparam ld7430e.INIT1 = 16'h99AA ; defparam ld7430e.INIT0 = 16'h99AA ; CCU2C ld7430e (.A0(ie98573), .A1(fnc2b99), .B0(ps7929c[2]), .B1(ps7929c[3]), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(rg730ae), .S0(), .S1(), .COUT(ou15cce)); defparam cm59a16.INJECT1_1 = "NO" ; defparam cm59a16.INJECT1_0 = "NO" ; defparam cm59a16.INIT1 = 16'h99AA ; defparam cm59a16.INIT0 = 16'h99AA ; CCU2C cm59a16 (.A0(sjae670), .A1(jc73384), .B0(ps7929c[4]), .B1(ps7929c[5]), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(ou15cce), .S0(), .S1(), .COUT(xy99c23)); defparam vkbb81.INJECT1_1 = "NO" ; defparam vkbb81.INJECT1_0 = "NO" ; defparam vkbb81.INIT1 = 16'h99AA ; defparam vkbb81.INIT0 = 16'h99AA ; CCU2C vkbb81 (.A0(osce11a), .A1(sh708d1), .B0(ps7929c[6]), .B1(ps7929c[7]), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(xy99c23), .S0(), .S1(), .COUT(tj8468d)); defparam oh80b3c.INJECT1_1 = "NO" ; defparam oh80b3c.INJECT1_0 = "NO" ; defparam oh80b3c.INIT1 = 16'h99AA ; defparam oh80b3c.INIT0 = 16'h99AA ; CCU2C oh80b3c (.A0(yz2346e), .A1(aa1a374), .B0(ps7929c[8]), .B1(ps7929c[9]), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(tj8468d), .S0(), .S1(), .COUT(med1ba0)); VLO baa2130 (.Z(ld6e801)); defparam vx84c10.INJECT1_1 = "NO" ; defparam vx84c10.INJECT1_0 = "NO" ; defparam vx84c10.INIT1 = 16'h99AA ; defparam vx84c10.INIT0 = 16'h99AA ; CCU2C vx84c10 (.A0(aa8dd00), .A1(ld6e801), .B0(ld6e801), .B1(ld6e801), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(med1ba0), .S0(), .S1(), .COUT(ec3f7)); VHI xjc7664 (.Z(lfa007e)); defparam end9939.INJECT1_1 = "NO" ; defparam end9939.INJECT1_0 = "NO" ; defparam end9939.INIT1 = 16'h0000 ; defparam end9939.INIT0 = 16'h0000 ; CCU2C end9939 (.A0(lfa007e), .A1(lfa007e), .B0(lfa007e), .B1(lfa007e), .C0(lfa007e), .C1(lfa007e), .D0(lfa007e), .D1(lfa007e), .CIN(ec3f7), .S0(ld7400f), .S1(), .COUT()); assign ld4a714 = xl220da; assign su538a7 = sw106d6; +always@* begin hq1fb8<={ui49c6d>>1,vx8bfb1[0]};iefdc3<=vx8bfb1[1];th7ee18<=vx8bfb1[2];alf70c6<=vx8bfb1[3];dob8635<=vx8bfb1[4];czc31aa<=vx8bfb1[5];wl18d55<=vx8bfb1[6];ipc6aac<={wj6f253>>1,vx8bfb1[7]};ng35564<={ps7929c>>1,vx8bfb1[8]};bnaab22<=vx8bfb1[9];jp55917<=vx8bfb1[10];coac8be<=vx8bfb1[11];nr645f0<=vx8bfb1[12];xl22f87<=vx8bfb1[13];yz17c3f<=vx8bfb1[14];yzbe1fd<=vx8bfb1[15];qgf0fed<=vx8bfb1[16];aa87f69<=vx8bfb1[17];ba3fb48<=vx8bfb1[18];mrfda42<=vx8bfb1[19];aled215<=vx8bfb1[20];zk690ad<=vx8bfb1[21];rg4856b<=vx8bfb1[22];lq42b5a<=vx8bfb1[23];ks15ad2<=vx8bfb1[24];lsad690<=vx8bfb1[25];ld6b483<=vx8bfb1[26];hb5a41e<=vx8bfb1[27];thd20f6<=vx8bfb1[28];gd907b6<=vx8bfb1[29];je83db5<=vx8bfb1[30];vk1edaa<=vx8bfb1[31];fnf6d53<=vx8bfb1[32];mgb6a9e<=vx8bfb1[33];tjb54f0<=vx8bfb1[34];xlaa786<=vx8bfb1[35];ww53c36<=vx8bfb1[36];jr9e1b1<=vx8bfb1[37];gof0d8e<=vx8bfb1[38];zm86c71<=vx8bfb1[39];ux3638a<=vx8bfb1[40];irb1c55<=vx8bfb1[41];rv8e2ad<=vx8bfb1[42];rt7156f<=vx8bfb1[43];gd8ab7e<=vx8bfb1[44];dz55bf4<=vx8bfb1[45];hqadfa6<=vx8bfb1[46];al6fd32<=vx8bfb1[47];bl7e995<=vx8bfb1[48];lqf4cae<=vx8bfb1[49];mga6573<=vx8bfb1[50];lf32b98<=vx8bfb1[51];kf95cc6<=vx8bfb1[52];mtae634<=vx8bfb1[53];ne731a4<=vx8bfb1[54];co98d23<=vx8bfb1[55];enc6918<=vx8bfb1[56];gq348c4<=vx8bfb1[57];ana4621<=vx8bfb1[58];wl2310d<=vx8bfb1[59];mt1886c<=vx8bfb1[60];eac4364<=vx8bfb1[61];gq21b20<=vx8bfb1[62];ohd900<=vx8bfb1[63];rg6c805<=vx8bfb1[64];dz6402a<=vx8bfb1[65];tw20157<=vx8bfb1[66];qiabb<=vx8bfb1[67];co55d9<=vx8bfb1[68];ri2aec8<=vx8bfb1[69];fa57643<=vx8bfb1[70];yzbb21a<=vx8bfb1[71];shd90d5<=vx8bfb1[72];hbc86ad<=vx8bfb1[73];ic4356e<=vx8bfb1[74];qi1ab71<=vx8bfb1[75];psd5b89<=vx8bfb1[76];zmadc4a<=vx8bfb1[77];pf6e252<=vx8bfb1[78];nr71296<=vx8bfb1[79];zm894b6<=vx8bfb1[80];zx4a5b2<=vx8bfb1[81];by52d97<=vx8bfb1[82];vk96cbb<=vx8bfb1[83];ymb65db<=vx8bfb1[84];ngb2ed9<=vx8bfb1[85];ym976ca<=vx8bfb1[86];uxbb650<=vx8bfb1[87];kqdb285<=vx8bfb1[88];qtd9428<=vx8bfb1[89];psca145<=vx8bfb1[90];bl50a2b<=vx8bfb1[91];sj8515e<=vx8bfb1[92];rv28af4<=vx8bfb1[93];dz457a6<=vx8bfb1[94];ym2bd36<=vx8bfb1[95];kd5e9b1<=vx8bfb1[96];tuf4d8d<=vx8bfb1[97];yma6c6b<=vx8bfb1[98];gd36359<=vx8bfb1[99];anb1acd<=vx8bfb1[100];co8d66d<=vx8bfb1[101];xj6b368<=vx8bfb1[102];ww59b46<=vx8bfb1[103];jpcda30<=vx8bfb1[104];cm6d187<=vx8bfb1[105];os68c39<=vx8bfb1[106];cm461c8<=vx8bfb1[107];vk30e41<=vx8bfb1[108];ou8720b<=vx8bfb1[109];oh39059<=vx8bfb1[110];nrc82cc<=vx8bfb1[111];gb41666<=vx8bfb1[112];xyb334<=vx8bfb1[113];kq599a3<=vx8bfb1[114];qtccd18<=vx8bfb1[115];ho668c5<=vx8bfb1[116];ym3462b<=vx8bfb1[117];iea3158<=vx8bfb1[118];ep18ac0<=vx8bfb1[119];tuc5604<=vx8bfb1[120];wy2b022<=vx8bfb1[121];ps58110<=vx8bfb1[122];hoc0883<=vx8bfb1[123];je441b<=vx8bfb1[124];xl220da<=vx8bfb1[125];sw106d6<=vx8bfb1[126];ba836b1<=vx8bfb1[127];ng1b58b<=vx8bfb1[128];nedac5a<=vx8bfb1[129];shd62d3<=vx8bfb1[130];yzb169c<=vx8bfb1[131];lf8b4e4<=vx8bfb1[132];vv5a727<=vx8bfb1[133];ald393e<=vx8bfb1[134];ng9c9f5<=vx8bfb1[135];nee4faa<=vx8bfb1[136];tj27d52<=vx8bfb1[137];qi3ea97<=vx8bfb1[138];ayf54b8<=vx8bfb1[139];bnaa5c0<=vx8bfb1[140];dm52e06<=vx8bfb1[141];ks97033<=vx8bfb1[142];lsb8198<=vx8bfb1[143];nec0cc2<=vx8bfb1[144];hd6613<=vx8bfb1[145];kf3309f<=vx8bfb1[146];ec984fd<=vx8bfb1[147];zxc27e9<=vx8bfb1[148];zz13f4f<=vx8bfb1[149];gd9fa7f<=vx8bfb1[150];offd3fd<=vx8bfb1[151];nre9fec<=vx8bfb1[152];xj4ff66<=vx8bfb1[153];ip7fb36<=vx8bfb1[154];qtfd9b4<=vx8bfb1[155];hbecda5<=vx8bfb1[156];zk66d2e<=vx8bfb1[157];oh36973<=vx8bfb1[158];irb4b9c<=vx8bfb1[159];rva5ce5<=vx8bfb1[160];wy2e72e<=vx8bfb1[161];ps73970<=vx8bfb1[162];pu9cb82<=vx8bfb1[163];cme5c12<=vx8bfb1[164];gq2e090<=vx8bfb1[165];sh70480<=vx8bfb1[166];mg82404<=vx8bfb1[167];yz12021<=vx8bfb1[168];ux9010c<=vx8bfb1[169];sj80865<=vx8bfb1[170];tw432d<=vx8bfb1[171];wy2196a<=vx8bfb1[172];ntcb50<=vx8bfb1[173];kd65a87<=vx8bfb1[174];vx2d43c<=vx8bfb1[175];mr6a1e7<=vx8bfb1[176];pf50f3c<=vx8bfb1[177];ym879e6<=vx8bfb1[178];mt3cf30<=vx8bfb1[179];ale7985<=vx8bfb1[180];wl3cc2d<=vx8bfb1[181];dze616d<=vx8bfb1[182];pu30b6e<=vx8bfb1[183];ux85b73<=vx8bfb1[184];lf2db9d<=vx8bfb1[185];ea6dcee<=vx8bfb1[186];dz6e770<=vx8bfb1[187];tu73b86<=vx8bfb1[188];uk9dc32<=vx8bfb1[189];rgee190<=vx8bfb1[190];cz70c82<=vx8bfb1[191];tw86415<=vx8bfb1[192];db320ab<=vx8bfb1[193];cb9055f<=vx8bfb1[194];co82afd<=vx8bfb1[195];qi157e8<=vx8bfb1[196];mtabf41<=vx8bfb1[197];th5fa0d<=vx8bfb1[198];offd06f<=vx8bfb1[199];mre837c<=vx8bfb1[200];sh41be5<=vx8bfb1[201];uxdf2d<=vx8bfb1[202];of6f96d<=vx8bfb1[203];ho7cb6d<=vx8bfb1[204];kqe5b6b<=vx8bfb1[205];vx2db58<=vx8bfb1[206];go6dac6<=vx8bfb1[207];qg6d630<=vx8bfb1[208];zx6b181<=vx8bfb1[209];ne58c0e<=vx8bfb1[210];ofc6072<=vx8bfb1[211];ng30395<=vx8bfb1[212];bn81caa<=vx8bfb1[213];nge557<=vx8bfb1[214];ic72abb<=vx8bfb1[215];mt955d8<=vx8bfb1[216];hdaaec5<=vx8bfb1[217];dm5762f<=vx8bfb1[218];irbb17a<=vx8bfb1[219];vvd8bd5<=vx8bfb1[220];zkc5eae<=vx8bfb1[221];xy2f573<=vx8bfb1[222];yx7ab9a<=vx8bfb1[223];ned5cd4<=vx8bfb1[224];kfae6a2<=vx8bfb1[225];xw73514<=vx8bfb1[226];gd9a8a3<=vx8bfb1[227];med451d<=vx8bfb1[228];fca28e9<=vx8bfb1[229];je1474b<=vx8bfb1[230];gqa3a5b<=vx8bfb1[231];sj1d2d9<=vx8bfb1[232];hbe96cd<=vx8bfb1[233];en4b66f<=vx8bfb1[234];qt5b37d<=vx8bfb1[235];mrd9bec<=vx8bfb1[236];hbcdf64<=vx8bfb1[237];of6fb27<=vx8bfb1[238];go7d93d<=vx8bfb1[239];fnec9e9<=vx8bfb1[240];ld64f4e<=vx8bfb1[241];db27a76<=vx8bfb1[ +242];vx3d3b7<=vx8bfb1[243];rte9dbe<=vx8bfb1[244];cz4edf6<=vx8bfb1[245];vi76fb4<=vx8bfb1[246];lsb7da2<=vx8bfb1[247];kfbed12<=vx8bfb1[248];hbf6894<=vx8bfb1[249];epb44a6<=vx8bfb1[250];fca2534<=vx8bfb1[251];gd129a2<=vx8bfb1[252];lf94d15<=vx8bfb1[253];swa68ae<=vx8bfb1[254];ie34571<=vx8bfb1[255];lsa2b88<=vx8bfb1[256];ec15c43<=vx8bfb1[257];qvae218<=vx8bfb1[258];vv710c4<=vx8bfb1[259];ks88626<=vx8bfb1[260];go43130<=vx8bfb1[261];cb18981<=vx8bfb1[262];cmc4c0c<=vx8bfb1[263];wl26061<=vx8bfb1[264];ls3030c<=vx8bfb1[265];lf81862<=vx8bfb1[266];rvc317<=vx8bfb1[267];nr618be<=vx8bfb1[268];tjc5f6<=vx8bfb1[269];ay62fb6<=vx8bfb1[270];wl17db1<=vx8bfb1[271];irbed8d<=vx8bfb1[272];rtf6c6c<=vx8bfb1[273];ecb6366<=vx8bfb1[274];kfb1b31<=vx8bfb1[275];ec8d98d<=vx8bfb1[276];ps6cc69<=vx8bfb1[277];lq6634a<=vx8bfb1[278];aa31a52<=vx8bfb1[279];co8d291<=vx8bfb1[280];vi69488<=vx8bfb1[281];nr4a443<=vx8bfb1[282];jc5221f<=vx8bfb1[283];fp910fa<=vx8bfb1[284];aa887d7<=vx8bfb1[285];ea43eb8<=vx8bfb1[286];gq1f5c0<=vx8bfb1[287];icfae00<=vx8bfb1[288];rtd7000<=vx8bfb1[289];pub8006<=vx8bfb1[290];tuc0032<=vx8bfb1[291];wy192<=vx8bfb1[292];ukc90<=vx8bfb1[293];lf6481<=vx8bfb1[294];rv3240f<=vx8bfb1[295];ie9207f<=vx8bfb1[296];wl903f8<=vx8bfb1[297];jr81fc5<=vx8bfb1[298];ymfe2f<=vx8bfb1[299];qt7f178<=vx8bfb1[300];gbf8bc5<=vx8bfb1[301];dmc5e2d<=vx8bfb1[302];do2f16b<=vx8bfb1[303];su78b5a<=vx8bfb1[304];vic5ad1<=vx8bfb1[305];tj2d68b<=vx8bfb1[306];xj6b45f<=vx8bfb1[307];zx5a2fe<=vx8bfb1[308];end +always@* begin ead17f6[2047]<=of4e369;ead17f6[2046]<=th71b4d;ead17f6[2044]<=ym8da6f;ead17f6[2043]<=nrd78bb;ead17f6[2040]<=su6d379;ead17f6[2038]<=mgbc5df;ead17f6[2032]<=ne69bc9;ead17f6[2029]<=wje2ef8;ead17f6[2017]<=vi4de4a;ead17f6[2013]<=db81b86;ead17f6[2010]<=qv177c5;ead17f6[2003]<=ld4af0d;ead17f6[1990]<=ec886a0;ead17f6[1987]<=wj6f253[0];ead17f6[1982]<=zm93729;ead17f6[1980]<=ldf3bb1;ead17f6[1979]<=epdc37;ead17f6[1973]<=irbbe2c;ead17f6[1963]<=qtc9fa5;ead17f6[1958]<=ps5786e;ead17f6[1957]<=go566e7;ead17f6[1953]<=fa76a41;ead17f6[1942]<=hd8e0dd;ead17f6[1932]<=kq43500;ead17f6[1929]<=pu9cb9c;ead17f6[1926]<=ps7929c[0];ead17f6[1923]<=lqda3b1;ead17f6[1921]<=ofe7900;ead17f6[1917]<=db9b94a;ead17f6[1914]<=ribdd56;ead17f6[1913]<=ie9dd8e;ead17f6[1911]<=rt6e1bd;ead17f6[1903]<=zz9edd8;ead17f6[1898]<=psdf164;ead17f6[1879]<=jp4fd2d;ead17f6[1876]<=uxab07c;ead17f6[1872]<=cb8acc2;ead17f6[1868]<=cobc373;ead17f6[1866]<=ecb3738;ead17f6[1863]<=jpc248b;ead17f6[1858]<=phb520a;ead17f6[1837]<=of706ef;ead17f6[1816]<=gq1a801;ead17f6[1810]<=cme5ce2;ead17f6[1805]<=eaffb08;ead17f6[1802]<=cb7df0;ead17f6[1799]<=wwd1d8a;ead17f6[1795]<=ep3c805;ead17f6[1786]<=qtdca57;ead17f6[1783]<=thd8f9d;ead17f6[1780]<=neeeab3;ead17f6[1778]<=zkeec70;ead17f6[1775]<=cz70dee;ead17f6[1770]<=ba1bc56;ead17f6[1758]<=ldf6ec7;ead17f6[1748]<=enf8b22;ead17f6[1710]<=bl7e96e;ead17f6[1704]<=zk583e4;ead17f6[1701]<=sjb465d;ead17f6[1699]<=th6455c;ead17f6[1696]<=ui56614;ead17f6[1689]<=tue1b98;ead17f6[1685]<=lf9b9c1;ead17f6[1679]<=vk2ff39;ead17f6[1678]<=an1245f;ead17f6[1668]<=oua9056;ead17f6[1627]<=hq8377c;ead17f6[1624]<=cm68afe;ead17f6[1605]<=ou15cce;ead17f6[1589]<=ofe8ed6;ead17f6[1584]<=med4009;ead17f6[1573]<=gq2e710;ead17f6[1572]<=ng863d9;ead17f6[1567]<=kq5ca56;ead17f6[1562]<=kdfd840;ead17f6[1557]<=go78dad;ead17f6[1556]<=qi3ef84;ead17f6[1551]<=fp8ec50;ead17f6[1548]<=ea49e16;ead17f6[1543]<=nee402d;ead17f6[1524]<=kqe52bc;ead17f6[1521]<=sj2621a;ead17f6[1519]<=ldc7cee;ead17f6[1513]<=al7559b;ead17f6[1512]<=sue5da9;ead17f6[1509]<=rg76383;ead17f6[1504]<=hd2768e;ead17f6[1502]<=tw86f75;ead17f6[1499]<=fa767b7;ead17f6[1493]<=th6eac1;ead17f6[1492]<=ykde2b3;ead17f6[1469]<=jeb763e;ead17f6[1466]<=rg7c6f1;ead17f6[1448]<=nec5915;ead17f6[1421]<=by47a3b;ead17f6[1417]<=zkfe18f;ead17f6[1415]<=psf1729;ead17f6[1404]<=rg7c988;ead17f6[1402]<=gd17976;ead17f6[1400]<=ww4c9da;ead17f6[1398]<=jr2dd9e;ead17f6[1377]<=wje7c5c;ead17f6[1374]<=xl385e5;ead17f6[1373]<=lqf4b76;ead17f6[1361]<=icc1f23;ead17f6[1359]<=tw9c32f;ead17f6[1355]<=meea83a;ead17f6[1354]<=mga32ec;ead17f6[1350]<=tj22ae7;ead17f6[1349]<=dm7c8c8;ead17f6[1344]<=mgb30a0;ead17f6[1343]<=tjcbda;ead17f6[1341]<=ba4a72;ead17f6[1330]<=ohdcc2;ead17f6[1326]<=dba0e8d;ead17f6[1323]<=czdce0f;ead17f6[1322]<=aycbb07;ead17f6[1310]<=mr7f9cb;ead17f6[1308]<=ie922fc;ead17f6[1305]<=mtab9f9;ead17f6[1301]<=kf2321b;ead17f6[1289]<=ho482b1;ead17f6[1286]<=aa1a374;ead17f6[1280]<=xjc2809;ead17f6[1279]<=ng2f6bc;ead17f6[1271]<=wl29c9b;ead17f6[1224]<=rg730ae;ead17f6[1210]<=do3a375;ead17f6[1207]<=je1bbe3;ead17f6[1201]<=nr457f0;ead17f6[1199]<=zz383e4;ead17f6[1195]<=dzec1c2;ead17f6[1193]<=gd804e1;ead17f6[1163]<=cmcb37d;ead17f6[1162]<=sjae670;ead17f6[1155]<=dba0125;ead17f6[1144]<=kde72e7;ead17f6[1136]<=rv8bf07;ead17f6[1130]<=dm476b4;ead17f6[1125]<=mre7e68;ead17f6[1120]<=hda0049;ead17f6[1112]<=cz6fa47;ead17f6[1110]<=fnc86e7;ead17f6[1104]<=osce11a;ead17f6[1098]<=rg73880;ead17f6[1096]<=ec31ecb;ead17f6[1086]<=ose52b0;ead17f6[1076]<=ldec205;ead17f6[1067]<=enc6d69;ead17f6[1065]<=czf7c20;ead17f6[1060]<=coac54;ead17f6[1054]<=tu76286;ead17f6[1053]<=aa24bcb;ead17f6[1051]<=aa8dd00;ead17f6[1048]<=rt4f0b1;ead17f6[1039]<=vk2016b;ead17f6[1026]<=nta0273;ead17f6[1023]<=ui49c6d[0];ead17f6[1021]<=jcdaf17;ead17f6[1006]<=xlb0370;ead17f6[1001]<=yz295e1;ead17f6[995]<=ec310d4;ead17f6[991]<=go726e5;ead17f6[990]<=ks3e776;ead17f6[981]<=qtd93f4;ead17f6[978]<=bnaacdc;ead17f6[976]<=ec2ed48;ead17f6[971]<=kfb1c1b;ead17f6[964]<=cb33973;ead17f6[961]<=uk3b476;ead17f6[960]<=ay5cf20;ead17f6[957]<=zz37baa;ead17f6[951]<=qib3dbb;ead17f6[938]<=wj7560f;ead17f6[936]<=xwf1598;ead17f6[931]<=ps58491;ead17f6[901]<=yke0fbe;ead17f6[891]<=yzbb1f3;ead17f6[885]<=lde378a;ead17f6[850]<=uvd68cb;ead17f6[849]<=gd2c8ab;ead17f6[839]<=co5fe7;ead17f6[812]<=dzcd15f;ead17f6[802]<=fnc2b99;ead17f6[794]<=lf3d1da;ead17f6[786]<=ykf0c7b;ead17f6[783]<=rv8b94a;ead17f6[778]<=qv8f1b5;ead17f6[774]<=nt93c2;ead17f6[760]<=nee4c43;ead17f6[756]<=iebcbb5;ead17f6[752]<=fn64ed1;ead17f6[749]<=rt6ecf6;ead17f6[746]<=ou8dd58;ead17f6[733]<=meef8de;ead17f6[710]<=zk48f47;ead17f6[708]<=bl5fc31;ead17f6[707]<=ou3e2e5;ead17f6[702]<=ief931;ead17f6[701]<=hbc2f2e;ead17f6[700]<=xw6993b;ead17f6[699]<=pha5bb3;ead17f6[688]<=ofdcf8b;ead17f6[687]<=cb70bc;ead17f6[679]<=rv13865;ead17f6[677]<=lsbd507;ead17f6[674]<=qif919;ead17f6[671]<=nee197b;ead17f6[670]<=ls2094e;ead17f6[663]<=sh541d1;ead17f6[661]<=lf19760;ead17f6[652]<=qi1573f;ead17f6[650]<=fae4643;ead17f6[643]<=yz2346e;ead17f6[640]<=uk98501;ead17f6[639]<=gb65ed7;ead17f6[635]<=ng25393;ead17f6[612]<=th6e615;ead17f6[605]<=qv746e;ead17f6[599]<=ene707c;ead17f6[597]<=fa5d838;ead17f6[596]<=mg1009c;ead17f6[581]<=ipd966f;ead17f6[577]<=sh54024;ead17f6[572]<=xjfce5c;ead17f6[568]<=xl917e0;ead17f6[562]<=qg5cfcd;ead17f6[556]<=zxcdf48;ead17f6[555]<=vx190dc;ead17f6[552]<=xy99c23;ead17f6[530]<=kd4158a;ead17f6[526]<=tw4979;ead17f6[525]<=med1ba0;ead17f6[513]<=do1404e;ead17f6[510]<=xj7b5e2;ead17f6[503]<=ic5606e;ead17f6[495]<=qt4e4dc;ead17f6[490]<=kd5b27e;ead17f6[482]<=tw8672e;ead17f6[480]<=gocb9e4;ead17f6[465]<=eacb092;ead17f6[450]<=thfc1f7;ead17f6[438]<=ec3f7;ead17f6[425]<=xwdad19;ead17f6[419]<=dz40bfc;ead17f6[406]<=jpf9a2b;ead17f6[401]<=ie98573;ead17f6[389]<=irb1e36;ead17f6[387]<=ls1278;ead17f6[373]<=ead1bab;ead17f6[366]<=nrddf1b;ead17f6[355]<=nre91e8;ead17f6[354]<=aa2bf86;ead17f6[351]<=uic1f26;ead17f6[350]<=doad327;ead17f6[344]<=tw1b9f1;ead17f6[343]<=yx60e17;ead17f6[339]<=yz270c;ead17f6[338]<=dzd7aa0;ead17f6[335]<=lf84129;ead17f6[321]<=tj8468d;ead17f6[298]<=gbe2013;ead17f6[290]<=nr7b2cd;ead17f6[288]<=ir8a804;ead17f6[278]<=yk59be9;ead17f6[276]<=jc73384;ead17f6[263]<=sw92f;ead17f6[251]<=hb4ac0d;ead17f6[245]<=fn6b64f;ead17f6[241]<=ld50ce5;ead17f6[240]<=ux3973c;ead17f6[232]<=xw79612;ead17f6[225]<=nr5f83e;ead17f6[219]<=lfa007e;ead17f6[212]<=co3b5a3;ead17f6[209]<=gd817f;ead17f6[203]<=ng3f345;ead17f6[194]<=db163c6;ead17f6[193]<=ym24f;ead17f6[177]<=os7d23d;ead17f6[175]<=ntb5a64;ead17f6[172]<=su4373e;ead17f6[169]<=qgfaf54;ead17f6[167]<=eaf0825;ead17f6[160]<=sh708d1;ead17f6[149]<=fc9c402;ead17f6[145]<=kf8f659;ead17f6[144]<=ohb1500;ead17f6[125]<=ep29581;ead17f6[122]<=hd2d6c9;ead17f6[120]<=an8a19c;ead17f6[116]<=xy2f2c2;ead17f6[109]<=ld7400f;ead17f6[104]<=ld6102f;ead17f6[97]<=nrc2c78;ead17f6[87]<=ir36b4c;ead17f6[84]<=ux9f5ea;ead17f6[83]<=qvbe104;ead17f6[72]<=ui562a0;ead17f6[ +61]<=aa5ad9;ead17f6[60]<=anb1433;ead17f6[58]<=ri25e58;ead17f6[54]<=ld6e801;ead17f6[48]<=os7858f;ead17f6[42]<=jc73ebd;ead17f6[30]<=gqb5b;ead17f6[21]<=al4e7d7;ead17f6[10]<=ph9cfa;ead17f6[5]<=vk139f;end assign jebdc77 = ead17f6,vx8bfb1 = fn71dda; initial begin kfbe35f = $fopen(".fred"); $fdisplay( kfbe35f, "%3h\n%3h", (fnf63ba >> 4) & fpbaf71, (fnf63ba >> (tj8eebd+4)) & fpbaf71 ); $fclose(kfbe35f); $readmemh(".fred", ay776be); end always @ (jebdc77) begin nedaf8d = ay776be[1]; for (jcf1afd=0; jcf1afd>1,vx8bfb1[0]};iefdc3<=vx8bfb1[1];th7ee18<=vx8bfb1[2];alf70c6<=vx8bfb1[3];dob8635<=vx8bfb1[4];czc31aa<=vx8bfb1[5];wl18d55<=vx8bfb1[6];ipc6aac<={wj6f253>>1,vx8bfb1[7]};ng35564<={ps7929c>>1,vx8bfb1[8]};bnaab22<=vx8bfb1[9];jp55917<=vx8bfb1[10];coac8be<=vx8bfb1[11];nr645f0<=vx8bfb1[12];xl22f87<=vx8bfb1[13];yz17c3f<=vx8bfb1[14];yzbe1fd<=vx8bfb1[15];qgf0fed<=vx8bfb1[16];aa87f69<=vx8bfb1[17];ba3fb48<=vx8bfb1[18];mrfda42<=vx8bfb1[19];aled215<=vx8bfb1[20];zk690ad<=vx8bfb1[21];rg4856b<=vx8bfb1[22];lq42b5a<=vx8bfb1[23];ks15ad2<=vx8bfb1[24];lsad690<=vx8bfb1[25];ld6b483<=vx8bfb1[26];hb5a41e<=vx8bfb1[27];thd20f6<=vx8bfb1[28];gd907b6<=vx8bfb1[29];je83db5<=vx8bfb1[30];vk1edaa<=vx8bfb1[31];fnf6d53<=vx8bfb1[32];mgb6a9e<=vx8bfb1[33];tjb54f0<=vx8bfb1[34];xlaa786<=vx8bfb1[35];ww53c36<=vx8bfb1[36];jr9e1b1<=vx8bfb1[37];gof0d8e<=vx8bfb1[38];zm86c71<=vx8bfb1[39];ux3638a<=vx8bfb1[40];irb1c55<=vx8bfb1[41];rv8e2ad<=vx8bfb1[42];rt7156f<=vx8bfb1[43];gd8ab7e<=vx8bfb1[44];dz55bf4<=vx8bfb1[45];hqadfa6<=vx8bfb1[46];al6fd32<=vx8bfb1[47];bl7e995<=vx8bfb1[48];lqf4cae<=vx8bfb1[49];mga6573<=vx8bfb1[50];lf32b98<=vx8bfb1[51];kf95cc6<=vx8bfb1[52];mtae634<=vx8bfb1[53];ne731a4<=vx8bfb1[54];co98d23<=vx8bfb1[55];enc6918<=vx8bfb1[56];gq348c4<=vx8bfb1[57];ana4621<=vx8bfb1[58];wl2310d<=vx8bfb1[59];mt1886c<=vx8bfb1[60];eac4364<=vx8bfb1[61];gq21b20<=vx8bfb1[62];ohd900<=vx8bfb1[63];rg6c805<=vx8bfb1[64];dz6402a<=vx8bfb1[65];tw20157<=vx8bfb1[66];qiabb<=vx8bfb1[67];co55d9<=vx8bfb1[68];ri2aec8<=vx8bfb1[69];fa57643<=vx8bfb1[70];yzbb21a<=vx8bfb1[71];shd90d5<=vx8bfb1[72];hbc86ad<=vx8bfb1[73];ic4356e<=vx8bfb1[74];qi1ab71<=vx8bfb1[75];psd5b89<=vx8bfb1[76];zmadc4a<=vx8bfb1[77];pf6e252<=vx8bfb1[78];nr71296<=vx8bfb1[79];zm894b6<=vx8bfb1[80];zx4a5b2<=vx8bfb1[81];by52d97<=vx8bfb1[82];vk96cbb<=vx8bfb1[83];ymb65db<=vx8bfb1[84];ngb2ed9<=vx8bfb1[85];ym976ca<=vx8bfb1[86];uxbb650<=vx8bfb1[87];kqdb285<=vx8bfb1[88];qtd9428<=vx8bfb1[89];psca145<=vx8bfb1[90];bl50a2b<=vx8bfb1[91];sj8515e<=vx8bfb1[92];rv28af4<=vx8bfb1[93];dz457a6<=vx8bfb1[94];ym2bd36<=vx8bfb1[95];kd5e9b1<=vx8bfb1[96];tuf4d8d<=vx8bfb1[97];yma6c6b<=vx8bfb1[98];gd36359<=vx8bfb1[99];anb1acd<=vx8bfb1[100];co8d66d<=vx8bfb1[101];xj6b368<=vx8bfb1[102];ww59b46<=vx8bfb1[103];jpcda30<=vx8bfb1[104];cm6d187<=vx8bfb1[105];os68c39<=vx8bfb1[106];cm461c8<=vx8bfb1[107];vk30e41<=vx8bfb1[108];ou8720b<=vx8bfb1[109];oh39059<=vx8bfb1[110];nrc82cc<=vx8bfb1[111];gb41666<=vx8bfb1[112];xyb334<=vx8bfb1[113];kq599a3<=vx8bfb1[114];qtccd18<=vx8bfb1[115];ho668c5<=vx8bfb1[116];ym3462b<=vx8bfb1[117];iea3158<=vx8bfb1[118];ep18ac0<=vx8bfb1[119];tuc5604<=vx8bfb1[120];wy2b022<=vx8bfb1[121];ps58110<=vx8bfb1[122];hoc0883<=vx8bfb1[123];je441b<=vx8bfb1[124];xl220da<=vx8bfb1[125];sw106d6<=vx8bfb1[126];ba836b1<=vx8bfb1[127];ng1b58b<=vx8bfb1[128];nedac5a<=vx8bfb1[129];shd62d3<=vx8bfb1[130];yzb169c<=vx8bfb1[131];lf8b4e4<=vx8bfb1[132];vv5a727<=vx8bfb1[133];ald393e<=vx8bfb1[134];ng9c9f5<=vx8bfb1[135];nee4faa<=vx8bfb1[136];tj27d52<=vx8bfb1[137];qi3ea97<=vx8bfb1[138];ayf54b8<=vx8bfb1[139];bnaa5c0<=vx8bfb1[140];dm52e06<=vx8bfb1[141];ks97033<=vx8bfb1[142];lsb8198<=vx8bfb1[143];nec0cc2<=vx8bfb1[144];kf3309f<=vx8bfb1[145];hd6613<=vx8bfb1[146];ec984fd<=vx8bfb1[147];zxc27e9<=vx8bfb1[148];zz13f4f<=vx8bfb1[149];gd9fa7f<=vx8bfb1[150];offd3fd<=vx8bfb1[151];nre9fec<=vx8bfb1[152];xj4ff66<=vx8bfb1[153];ip7fb36<=vx8bfb1[154];qtfd9b4<=vx8bfb1[155];hbecda5<=vx8bfb1[156];zk66d2e<=vx8bfb1[157];oh36973<=vx8bfb1[158];irb4b9c<=vx8bfb1[159];rva5ce5<=vx8bfb1[160];wy2e72e<=vx8bfb1[161];ps73970<=vx8bfb1[162];pu9cb82<=vx8bfb1[163];gq2e090<=vx8bfb1[164];cme5c12<=vx8bfb1[165];sh70480<=vx8bfb1[166];yz12021<=vx8bfb1[167];ux9010c<=vx8bfb1[168];sj80865<=vx8bfb1[169];tw432d<=vx8bfb1[170];wy2196a<=vx8bfb1[171];ntcb50<=vx8bfb1[172];kd65a87<=vx8bfb1[173];vx2d43c<=vx8bfb1[174];mr6a1e7<=vx8bfb1[175];pf50f3c<=vx8bfb1[176];ym879e6<=vx8bfb1[177];mt3cf30<=vx8bfb1[178];ale7985<=vx8bfb1[179];wl3cc2d<=vx8bfb1[180];pu30b6e<=vx8bfb1[181];dze616d<=vx8bfb1[182];ux85b73<=vx8bfb1[183];lf2db9d<=vx8bfb1[184];ea6dcee<=vx8bfb1[185];xj6b45f<=vx8bfb1[186];tu73b86<=vx8bfb1[187];uk9dc32<=vx8bfb1[188];rgee190<=vx8bfb1[189];cz70c82<=vx8bfb1[190];tw86415<=vx8bfb1[191];db320ab<=vx8bfb1[192];cb9055f<=vx8bfb1[193];co82afd<=vx8bfb1[194];qi157e8<=vx8bfb1[195];mtabf41<=vx8bfb1[196];th5fa0d<=vx8bfb1[197];offd06f<=vx8bfb1[198];mre837c<=vx8bfb1[199];sh41be5<=vx8bfb1[200];of6f96d<=vx8bfb1[201];uxdf2d<=vx8bfb1[202];ho7cb6d<=vx8bfb1[203];kqe5b6b<=vx8bfb1[204];vx2db58<=vx8bfb1[205];go6dac6<=vx8bfb1[206];qg6d630<=vx8bfb1[207];zx6b181<=vx8bfb1[208];ne58c0e<=vx8bfb1[209];ofc6072<=vx8bfb1[210];ng30395<=vx8bfb1[211];bn81caa<=vx8bfb1[212];nge557<=vx8bfb1[213];ic72abb<=vx8bfb1[214];mt955d8<=vx8bfb1[215];hdaaec5<=vx8bfb1[216];dm5762f<=vx8bfb1[217];irbb17a<=vx8bfb1[218];vvd8bd5<=vx8bfb1[219];zkc5eae<=vx8bfb1[220];xy2f573<=vx8bfb1[221];yx7ab9a<=vx8bfb1[222];ned5cd4<=vx8bfb1[223];kfae6a2<=vx8bfb1[224];xw73514<=vx8bfb1[225];gd9a8a3<=vx8bfb1[226];med451d<=vx8bfb1[227];fca28e9<=vx8bfb1[228];je1474b<=vx8bfb1[229];gqa3a5b<=vx8bfb1[230];sj1d2d9<=vx8bfb1[231];hbe96cd<=vx8bfb1[232];en4b66f<=vx8bfb1[233];qt5b37d<=vx8bfb1[234];mrd9bec<=vx8bfb1[235];hbcdf64<=vx8bfb1[236];of6fb27<=vx8bfb1[237];go7d93d<=vx8bfb1[238];fnec9e9<=vx8bfb1[239];ld64f4e<=vx8bfb1[240];db27a76<=vx8bfb1[241];vx3d3b7<= +vx8bfb1[242];rte9dbe<=vx8bfb1[243];cz4edf6<=vx8bfb1[244];vi76fb4<=vx8bfb1[245];lsb7da2<=vx8bfb1[246];kfbed12<=vx8bfb1[247];hbf6894<=vx8bfb1[248];epb44a6<=vx8bfb1[249];fca2534<=vx8bfb1[250];gd129a2<=vx8bfb1[251];lf94d15<=vx8bfb1[252];swa68ae<=vx8bfb1[253];ie34571<=vx8bfb1[254];lsa2b88<=vx8bfb1[255];ec15c43<=vx8bfb1[256];qvae218<=vx8bfb1[257];vv710c4<=vx8bfb1[258];ks88626<=vx8bfb1[259];go43130<=vx8bfb1[260];cb18981<=vx8bfb1[261];cmc4c0c<=vx8bfb1[262];wl26061<=vx8bfb1[263];ls3030c<=vx8bfb1[264];lf81862<=vx8bfb1[265];rvc317<=vx8bfb1[266];nr618be<=vx8bfb1[267];tjc5f6<=vx8bfb1[268];ay62fb6<=vx8bfb1[269];wl17db1<=vx8bfb1[270];irbed8d<=vx8bfb1[271];rtf6c6c<=vx8bfb1[272];ecb6366<=vx8bfb1[273];kfb1b31<=vx8bfb1[274];ec8d98d<=vx8bfb1[275];ps6cc69<=vx8bfb1[276];lq6634a<=vx8bfb1[277];aa31a52<=vx8bfb1[278];co8d291<=vx8bfb1[279];vi69488<=vx8bfb1[280];nr4a443<=vx8bfb1[281];jc5221f<=vx8bfb1[282];fp910fa<=vx8bfb1[283];aa887d7<=vx8bfb1[284];ea43eb8<=vx8bfb1[285];gq1f5c0<=vx8bfb1[286];icfae00<=vx8bfb1[287];rtd7000<=vx8bfb1[288];pub8006<=vx8bfb1[289];tuc0032<=vx8bfb1[290];wy192<=vx8bfb1[291];ukc90<=vx8bfb1[292];lf6481<=vx8bfb1[293];rv3240f<=vx8bfb1[294];ie9207f<=vx8bfb1[295];wl903f8<=vx8bfb1[296];jr81fc5<=vx8bfb1[297];ymfe2f<=vx8bfb1[298];qt7f178<=vx8bfb1[299];gbf8bc5<=vx8bfb1[300];dmc5e2d<=vx8bfb1[301];do2f16b<=vx8bfb1[302];su78b5a<=vx8bfb1[303];tj2d68b<=vx8bfb1[304];zx5a2fe<=vx8bfb1[305];vic5ad1<=vx8bfb1[306];end +always@* begin ead17f6[2047]<=of4e369;ead17f6[2046]<=th71b4d;ead17f6[2044]<=ym8da6f;ead17f6[2043]<=mgbc5df;ead17f6[2040]<=su6d379;ead17f6[2038]<=wje2ef8;ead17f6[2032]<=ne69bc9;ead17f6[2029]<=lfa007e;ead17f6[2017]<=vi4de4a;ead17f6[2013]<=db81b86;ead17f6[2010]<=irbbe2c;ead17f6[2003]<=ps5786e;ead17f6[1990]<=ec886a0;ead17f6[1987]<=wj6f253[0];ead17f6[1982]<=db9b94a;ead17f6[1980]<=ldf3bb1;ead17f6[1979]<=epdc37;ead17f6[1973]<=psdf164;ead17f6[1963]<=qtc9fa5;ead17f6[1958]<=cobc373;ead17f6[1957]<=go566e7;ead17f6[1953]<=phb520a;ead17f6[1942]<=hd8e0dd;ead17f6[1932]<=kq43500;ead17f6[1929]<=cme5ce2;ead17f6[1926]<=ps7929c[0];ead17f6[1923]<=lqda3b1;ead17f6[1921]<=ofe7900;ead17f6[1917]<=qtdca57;ead17f6[1914]<=ribdd56;ead17f6[1913]<=ie9dd8e;ead17f6[1911]<=rt6e1bd;ead17f6[1903]<=zz9edd8;ead17f6[1898]<=enf8b22;ead17f6[1879]<=jp4fd2d;ead17f6[1876]<=uxab07c;ead17f6[1872]<=cb8acc2;ead17f6[1868]<=tue1b98;ead17f6[1866]<=ecb3738;ead17f6[1863]<=an1245f;ead17f6[1858]<=oua9056;ead17f6[1837]<=of706ef;ead17f6[1816]<=gq1a801;ead17f6[1810]<=gq2e710;ead17f6[1805]<=eaffb08;ead17f6[1802]<=qi3ef84;ead17f6[1799]<=wwd1d8a;ead17f6[1795]<=ep3c805;ead17f6[1786]<=kqe52bc;ead17f6[1783]<=thd8f9d;ead17f6[1780]<=neeeab3;ead17f6[1778]<=zkeec70;ead17f6[1775]<=cz70dee;ead17f6[1770]<=ba1bc56;ead17f6[1758]<=ldf6ec7;ead17f6[1748]<=nec5915;ead17f6[1710]<=bl7e96e;ead17f6[1704]<=zk583e4;ead17f6[1701]<=mga32ec;ead17f6[1699]<=tj22ae7;ead17f6[1696]<=ui56614;ead17f6[1689]<=ohdcc2;ead17f6[1685]<=lf9b9c1;ead17f6[1679]<=vk2ff39;ead17f6[1678]<=ie922fc;ead17f6[1668]<=ho482b1;ead17f6[1627]<=hq8377c;ead17f6[1624]<=cm68afe;ead17f6[1605]<=sjae670;ead17f6[1589]<=dm476b4;ead17f6[1584]<=med4009;ead17f6[1573]<=rg73880;ead17f6[1572]<=ec31ecb;ead17f6[1567]<=kq5ca56;ead17f6[1562]<=kdfd840;ead17f6[1557]<=go78dad;ead17f6[1556]<=czf7c20;ead17f6[1551]<=fp8ec50;ead17f6[1548]<=ea49e16;ead17f6[1543]<=nee402d;ead17f6[1524]<=yz295e1;ead17f6[1521]<=sj2621a;ead17f6[1519]<=ldc7cee;ead17f6[1513]<=al7559b;ead17f6[1512]<=ec2ed48;ead17f6[1509]<=rg76383;ead17f6[1504]<=hd2768e;ead17f6[1502]<=tw86f75;ead17f6[1499]<=fa767b7;ead17f6[1493]<=th6eac1;ead17f6[1492]<=ykde2b3;ead17f6[1469]<=jeb763e;ead17f6[1466]<=rg7c6f1;ead17f6[1448]<=gd2c8ab;ead17f6[1421]<=lf3d1da;ead17f6[1417]<=ykf0c7b;ead17f6[1415]<=psf1729;ead17f6[1404]<=rg7c988;ead17f6[1402]<=iebcbb5;ead17f6[1400]<=ww4c9da;ead17f6[1398]<=jr2dd9e;ead17f6[1377]<=wje7c5c;ead17f6[1374]<=hbc2f2e;ead17f6[1373]<=lqf4b76;ead17f6[1361]<=icc1f23;ead17f6[1359]<=nee197b;ead17f6[1355]<=meea83a;ead17f6[1354]<=lf19760;ead17f6[1350]<=qi1573f;ead17f6[1349]<=dm7c8c8;ead17f6[1344]<=mgb30a0;ead17f6[1343]<=gb65ed7;ead17f6[1341]<=ng25393;ead17f6[1330]<=th6e615;ead17f6[1326]<=dba0e8d;ead17f6[1323]<=czdce0f;ead17f6[1322]<=fa5d838;ead17f6[1310]<=mr7f9cb;ead17f6[1308]<=xl917e0;ead17f6[1305]<=qg5cfcd;ead17f6[1301]<=kf2321b;ead17f6[1289]<=kd4158a;ead17f6[1286]<=med1ba0;ead17f6[1280]<=xjc2809;ead17f6[1279]<=jcdaf17;ead17f6[1271]<=qt4e4dc;ead17f6[1224]<=ie98573;ead17f6[1210]<=do3a375;ead17f6[1207]<=je1bbe3;ead17f6[1201]<=aa2bf86;ead17f6[1199]<=zz383e4;ead17f6[1195]<=yx60e17;ead17f6[1193]<=yz270c;ead17f6[1163]<=yk59be9;ead17f6[1162]<=jc73384;ead17f6[1155]<=sw92f;ead17f6[1144]<=kde72e7;ead17f6[1136]<=nr5f83e;ead17f6[1130]<=co3b5a3;ead17f6[1125]<=ng3f345;ead17f6[1120]<=hda0049;ead17f6[1112]<=os7d23d;ead17f6[1110]<=fnc86e7;ead17f6[1104]<=sh708d1;ead17f6[1098]<=fc9c402;ead17f6[1096]<=kf8f659;ead17f6[1086]<=ose52b0;ead17f6[1076]<=ldec205;ead17f6[1067]<=enc6d69;ead17f6[1065]<=qvbe104;ead17f6[1060]<=ui562a0;ead17f6[1054]<=tu76286;ead17f6[1053]<=ri25e58;ead17f6[1051]<=ld7400f;ead17f6[1048]<=rt4f0b1;ead17f6[1039]<=vk2016b;ead17f6[1026]<=nta0273;ead17f6[1023]<=ui49c6d[0];ead17f6[1021]<=nrd78bb;ead17f6[1006]<=xlb0370;ead17f6[1001]<=ld4af0d;ead17f6[995]<=ec310d4;ead17f6[991]<=zm93729;ead17f6[990]<=ks3e776;ead17f6[981]<=qtd93f4;ead17f6[978]<=bnaacdc;ead17f6[976]<=fa76a41;ead17f6[971]<=kfb1c1b;ead17f6[964]<=cb33973;ead17f6[961]<=uk3b476;ead17f6[960]<=ay5cf20;ead17f6[957]<=zz37baa;ead17f6[951]<=qib3dbb;ead17f6[938]<=wj7560f;ead17f6[936]<=xwf1598;ead17f6[931]<=jpc248b;ead17f6[901]<=cb7df0;ead17f6[891]<=yzbb1f3;ead17f6[885]<=lde378a;ead17f6[850]<=sjb465d;ead17f6[849]<=th6455c;ead17f6[839]<=co5fe7;ead17f6[812]<=nr457f0;ead17f6[802]<=ou15cce;ead17f6[794]<=ofe8ed6;ead17f6[786]<=ng863d9;ead17f6[783]<=rv8b94a;ead17f6[778]<=qv8f1b5;ead17f6[774]<=nt93c2;ead17f6[760]<=nee4c43;ead17f6[756]<=sue5da9;ead17f6[752]<=fn64ed1;ead17f6[749]<=rt6ecf6;ead17f6[746]<=ou8dd58;ead17f6[733]<=meef8de;ead17f6[710]<=by47a3b;ead17f6[708]<=zkfe18f;ead17f6[707]<=ou3e2e5;ead17f6[702]<=ief931;ead17f6[701]<=gd17976;ead17f6[700]<=xw6993b;ead17f6[699]<=pha5bb3;ead17f6[688]<=ofdcf8b;ead17f6[687]<=xl385e5;ead17f6[679]<=tw9c32f;ead17f6[677]<=lsbd507;ead17f6[674]<=qif919;ead17f6[671]<=tjcbda;ead17f6[670]<=ba4a72;ead17f6[663]<=sh541d1;ead17f6[661]<=aycbb07;ead17f6[652]<=mtab9f9;ead17f6[650]<=fae4643;ead17f6[643]<=aa1a374;ead17f6[640]<=uk98501;ead17f6[639]<=ng2f6bc;ead17f6[635]<=wl29c9b;ead17f6[612]<=rg730ae;ead17f6[605]<=qv746e;ead17f6[599]<=ene707c;ead17f6[597]<=dzec1c2;ead17f6[596]<=gd804e1;ead17f6[581]<=cmcb37d;ead17f6[577]<=dba0125;ead17f6[572]<=xjfce5c;ead17f6[568]<=rv8bf07;ead17f6[562]<=mre7e68;ead17f6[556]<=cz6fa47;ead17f6[555]<=vx190dc;ead17f6[552]<=osce11a;ead17f6[530]<=coac54;ead17f6[526]<=aa24bcb;ead17f6[525]<=aa8dd00;ead17f6[513]<=do1404e;ead17f6[510]<=xj7b5e2;ead17f6[503]<=ic5606e;ead17f6[495]<=go726e5;ead17f6[490]<=kd5b27e;ead17f6[482]<=ld50ce5;ead17f6[480]<=gocb9e4;ead17f6[465]<=ps58491;ead17f6[450]<=yke0fbe;ead17f6[425]<=uvd68cb;ead17f6[419]<=dz40bfc;ead17f6[406]<=dzcd15f;ead17f6[401]<=fnc2b99;ead17f6[389]<=db163c6;ead17f6[387]<=ls1278;ead17f6[373]<=ead1bab;ead17f6[366]<=nrddf1b;ead17f6[355]<=zk48f47;ead17f6[354]<=bl5fc31;ead17f6[351]<=uic1f26;ead17f6[350]<=doad327;ead17f6[344]<=tw1b9f1;ead17f6[343]<=cb70bc;ead17f6[339]<=rv13865;ead17f6[338]<=dzd7aa0;ead17f6[335]<=ls2094e;ead17f6[321]<=yz2346e;ead17f6[298]<=mg1009c;ead17f6[290]<=ipd966f;ead17f6[288]<=sh54024;ead17f6[278]<=zxcdf48;ead17f6[276]<=xy99c23;ead17f6[263]<=tw4979;ead17f6[251]<=hb4ac0d;ead17f6[245]<=fn6b64f;ead17f6[241]<=tw8672e;ead17f6[240]<=ux3973c;ead17f6[232]<=eacb092;ead17f6[225]<=thfc1f7;ead17f6[212]<=xwdad19;ead17f6[209]<=gd817f;ead17f6[203]<=jpf9a2b;ead17f6[194]<=irb1e36;ead17f6[193]<=ym24f;ead17f6[177]<=nre91e8;ead17f6[175]<=ntb5a64;ead17f6[172]<=su4373e;ead17f6[169]<=qgfaf54;ead17f6[167]<=lf84129;ead17f6[160]<=tj8468d;ead17f6[149]<=gbe2013;ead17f6[145]<=nr7b2cd;ead17f6[144]<=ir8a804;ead17f6[125]<=ep29581;ead17f6[122]<=hd2d6c9;ead17f6[120]<=an8a19c;ead17f6[116]<=xw79612;ead17f6[109]<=ld6e801;ead17f6[104]<=ld6102f;ead17f6[97]<=nrc2c78;ead17f6[87]<=ir36b4c;ead17f6[84]<=ux9f5ea;ead17f6[83]<=eaf0825;ead17f6[72]<=ohb1500;ead17f6[61]<=aa5ad9;ead17f6[60]<=anb1433; +ead17f6[58]<=xy2f2c2;ead17f6[54]<=ec3f7;ead17f6[48]<=os7858f;ead17f6[42]<=jc73ebd;ead17f6[30]<=gqb5b;ead17f6[21]<=al4e7d7;ead17f6[10]<=ph9cfa;ead17f6[5]<=vk139f;end assign jebdc77 = ead17f6,vx8bfb1 = fn71dda; initial begin kfbe35f = $fopen(".fred"); $fdisplay( kfbe35f, "%3h\n%3h", (fnf63ba >> 4) & fpbaf71, (fnf63ba >> (tj8eebd+4)) & fpbaf71 ); $fclose(kfbe35f); $readmemh(".fred", ay776be); end always @ (jebdc77) begin nedaf8d = ay776be[1]; for (jcf1afd=0; jcf1afd>1,vx8bfb1[1]};zkc0833<=vx8bfb1[2];xy419b<={fc3f1d7>>1,vx8bfb1[3]};do20cda<=vx8bfb1[4];rv66d2<=vx8bfb1[5];mt33697<={thc8030>>1,vx8bfb1[6]};xl9b4bd<={dz40186>>1,vx8bfb1[7]};psda5ee<={ymc36>>1,vx8bfb1[8]};fnd2f72<={rv61b1>>1,vx8bfb1[9]};aa97b97<={ls30d8f>>1,vx8bfb1[10]};ngbdcb9<={ng86c7b>>1,vx8bfb1[11]};hoee5cb<=vx8bfb1[12];yk72e5a<=vx8bfb1[13];ie972d0<=vx8bfb1[14];ukb9680<=vx8bfb1[15];gocb400<={jcdab6f>>1,vx8bfb1[16]};hb5a001<=vx8bfb1[17];rgd000e<=vx8bfb1[18];ux80073<={qg6ded2>>1,vx8bfb1[19]};ec39c<=vx8bfb1[20];hq1ce0<=vx8bfb1[21];jee703<={psda427>>1,vx8bfb1[22]};dm7381b<=vx8bfb1[23];xy9c0da<=vx8bfb1[24];sue06d3<=vx8bfb1[25];lf3699<=vx8bfb1[26];pu1b4cf<=vx8bfb1[27];dmda67a<={end69f2>>1,vx8bfb1[28]};mrd33d2<=vx8bfb1[29];ba99e94<=vx8bfb1[30];vicf4a2<=vx8bfb1[31];wj7a513<=vx8bfb1[32];dzd289d<=vx8bfb1[33];nt944ef<=vx8bfb1[34];nga277f<=vx8bfb1[35];tj13bfa<=vx8bfb1[36];ie9dfd7<=vx8bfb1[37];ykefeb8<={vv64785>>1,vx8bfb1[38]};kd7f5c1<=vx8bfb1[39];icfae0d<=vx8bfb1[40];rtd7068<=vx8bfb1[41];pub8346<=vx8bfb1[42];suc1a32<=vx8bfb1[43];uxd191<=vx8bfb1[44];ic68c8c<=vx8bfb1[45];go46460<=vx8bfb1[46];db32301<=vx8bfb1[47];end +always@* begin ead17f6[2047]<=zke4fc7[0];ead17f6[2046]<=force_isolate;ead17f6[2044]<=fc3f1d7[0];ead17f6[2040]<=wjf8ebb;ead17f6[2032]<=dzc75dd;ead17f6[2017]<=thc8030[0];ead17f6[1987]<=dz40186[0];ead17f6[1926]<=ymc36[0];ead17f6[1805]<=hb6b323;ead17f6[1804]<=rv61b1[0];ead17f6[1803]<=fnd213a;ead17f6[1761]<=shf2b59;ead17f6[1668]<=cb85f51;ead17f6[1562]<=yk5991e;ead17f6[1560]<=ls30d8f[0];ead17f6[1558]<=yz909d6;ead17f6[1550]<=jcdab6f[0];ead17f6[1475]<=oh95acc;ead17f6[1464]<=hqa7cad;ead17f6[1288]<=vk2fa8d;ead17f6[1076]<=yxcc8f0;ead17f6[1072]<=ng86c7b[0];ead17f6[1069]<=vx84eb4;ead17f6[1056]<=eaea358;ead17f6[1052]<=lqd5b7b;ead17f6[1023]<=gbe_mode;ead17f6[902]<=riad664;ead17f6[901]<=psda427[0];ead17f6[880]<=ym3e56b;ead17f6[834]<=qgf0bea;ead17f6[775]<=xj7b56d;ead17f6[732]<=uxb4f95;ead17f6[528]<=kq7d46b;ead17f6[450]<=bl7b484;ead17f6[417]<=hq1e17d;ead17f6[387]<=ir8f6ad;ead17f6[366]<=end69f2[0];ead17f6[225]<=uv6f690;ead17f6[208]<=ir23c2f;ead17f6[193]<=uxb1ed5;ead17f6[183]<=ng3ad3e;ead17f6[128]<=ym8d604;ead17f6[112]<=qg6ded2[0];ead17f6[104]<=vv64785[0];ead17f6[96]<=cb363da;ead17f6[91]<=tj275a7;ead17f6[64]<=cz51ac0;ead17f6[56]<=twadbda;end assign jebdc77 = ead17f6,vx8bfb1 = fn71dda; initial begin kfbe35f = $fopen(".fred"); $fdisplay( kfbe35f, "%3h\n%3h", (fnf63ba >> 4) & fpbaf71, (fnf63ba >> (tj8eebd+4)) & fpbaf71 ); $fclose(kfbe35f); $readmemh(".fred", ay776be); end always @ (jebdc77) begin nedaf8d = ay776be[1]; for (jcf1afd=0; jcf1afd>1,vx8bfb1[2]};do20cda<=vx8bfb1[3];rv66d2<=vx8bfb1[4];gb44b77<=vx8bfb1[5];ba25bbd<=vx8bfb1[6];bn2ddea<={wl2340c>>1,vx8bfb1[7]};mt33697<={thc8030>>1,vx8bfb1[8]};xl9b4bd<={dz40186>>1,vx8bfb1[9]};psda5ee<={ymc36>>1,vx8bfb1[10]};fnd2f72<={rv61b1>>1,vx8bfb1[11]};aa97b97<={ls30d8f>>1,vx8bfb1[12]};ngbdcb9<={ng86c7b>>1,vx8bfb1[13]};hoee5cb<=vx8bfb1[14];yk72e5a<=vx8bfb1[15];ie972d0<=vx8bfb1[16];ukb9680<=vx8bfb1[17];vicf4a2<=vx8bfb1[18];wj7a513<=vx8bfb1[19];xjd76af<=vx8bfb1[20];ie9dfd7<=vx8bfb1[21];ykefeb8<={vv64785>>1,vx8bfb1[22]};kd7f5c1<=vx8bfb1[23];fpafd5a<=vx8bfb1[24];pf7ead7<=vx8bfb1[25];ba99e94<=vx8bfb1[26];gocb400<={jcdab6f>>1,vx8bfb1[27]};rgd000e<=vx8bfb1[28];hb5a001<=vx8bfb1[29];sjbe13f<=vx8bfb1[30];uif09fd<=vx8bfb1[31];dmda67a<={end69f2>>1,vx8bfb1[32]};pu1b4cf<=vx8bfb1[33];lf3699<=vx8bfb1[34];czfd3fa<=vx8bfb1[35];vve9fd4<=vx8bfb1[36];jp4fea6<={me629e2>>1,vx8bfb1[37]};al7f536<=vx8bfb1[38];gofa9b5<=vx8bfb1[39];ykd4da8<=vx8bfb1[40];swa6d40<=vx8bfb1[41];tj13bfa<=vx8bfb1[42];nt944ef<=vx8bfb1[43];xya8066<=vx8bfb1[44];icfae0d<=vx8bfb1[45];rtd7068<=vx8bfb1[46];pub8346<=vx8bfb1[47];suc1a32<=vx8bfb1[48];uxd191<=vx8bfb1[49];ic68c8c<=vx8bfb1[50];go46460<=vx8bfb1[51];db32301<=vx8bfb1[52];end +always@* begin ead17f6[2047]<=force_isolate;ead17f6[2046]<=fc3f1d7[0];ead17f6[2044]<=wjf8ebb;ead17f6[2041]<=dzc75dd;ead17f6[2034]<=ym3111a;ead17f6[2021]<=ie888d0;ead17f6[2017]<=yxcc8f0;ead17f6[1995]<=wl2340c[0];ead17f6[1986]<=vv64785[0];ead17f6[1943]<=thc8030[0];ead17f6[1925]<=ir23c2f;ead17f6[1908]<=ng3ad3e;ead17f6[1864]<=me629e2[0];ead17f6[1855]<=ir8f6ad;ead17f6[1838]<=dz40186[0];ead17f6[1803]<=me43082;ead17f6[1769]<=tj275a7;ead17f6[1680]<=ng14f11;ead17f6[1662]<=xj7b56d;ead17f6[1628]<=ymc36[0];ead17f6[1583]<=eaea358;ead17f6[1559]<=yz18411;ead17f6[1501]<=of6f251;ead17f6[1490]<=mr518a7;ead17f6[1487]<=cb363da;ead17f6[1312]<=jea788a;ead17f6[1276]<=ym3e56b;ead17f6[1209]<=rv61b1[0];ead17f6[1155]<=cze229c;ead17f6[1118]<=cz51ac0;ead17f6[1070]<=hqa7cad;ead17f6[1048]<=ww5391d;ead17f6[1023]<=gbe_mode;ead17f6[1008]<=qi31243;ead17f6[954]<=end69f2[0];ead17f6[932]<=ba8c53c;ead17f6[927]<=uxb1ed5;ead17f6[791]<=kq7d46b;ead17f6[750]<=uk8de4a;ead17f6[743]<=ng86c7b[0];ead17f6[577]<=qv3c453;ead17f6[524]<=riad664;ead17f6[504]<=shf2b59;ead17f6[395]<=vk2fa8d;ead17f6[375]<=lqd5b7b;ead17f6[371]<=ls30d8f[0];ead17f6[262]<=yk5991e;ead17f6[197]<=cb85f51;ead17f6[189]<=ym8d604;ead17f6[187]<=twadbda;ead17f6[98]<=qgf0bea;ead17f6[93]<=jcdab6f[0];ead17f6[49]<=hq1e17d;end assign jebdc77 = ead17f6,vx8bfb1 = fn71dda; initial begin kfbe35f = $fopen(".fred"); $fdisplay( kfbe35f, "%3h\n%3h", (fnf63ba >> 4) & fpbaf71, (fnf63ba >> (tj8eebd+4)) & fpbaf71 ); $fclose(kfbe35f); $readmemh(".fred", ay776be); end always @ (jebdc77) begin nedaf8d = ay776be[1]; for (jcf1afd=0; jcf1afd>1,vx8bfb1[3]};do20cda<=vx8bfb1[4];rv66d2<=vx8bfb1[5];jc58788<={wje7ecc>>1,vx8bfb1[6]};mt33697<={thc8030>>1,vx8bfb1[7]};xl9b4bd<={dz40186>>1,vx8bfb1[8]};psda5ee<={ymc36>>1,vx8bfb1[9]};fnd2f72<={rv61b1>>1,vx8bfb1[10]};aa97b97<={ls30d8f>>1,vx8bfb1[11]};ngbdcb9<={ng86c7b>>1,vx8bfb1[12]};hoee5cb<=vx8bfb1[13];yk72e5a<=vx8bfb1[14];ie972d0<=vx8bfb1[15];ukb9680<=vx8bfb1[16];ykefeb8<={vv64785>>1,vx8bfb1[17]};kd7f5c1<=vx8bfb1[18];fpafd5a<=vx8bfb1[19];ba99e94<=vx8bfb1[20];gocb400<={jcdab6f>>1,vx8bfb1[21]};rgd000e<=vx8bfb1[22];hb5a001<=vx8bfb1[23];icfae0d<=vx8bfb1[24];rtd7068<=vx8bfb1[25];pub8346<=vx8bfb1[26];suc1a32<=vx8bfb1[27];uxd191<=vx8bfb1[28];ic68c8c<=vx8bfb1[29];go46460<=vx8bfb1[30];db32301<=vx8bfb1[31];end +always@* begin ead17f6[2047]<=mr7afdb;ead17f6[2046]<=force_isolate;ead17f6[2044]<=fc3f1d7[0];ead17f6[2040]<=wjf8ebb;ead17f6[2032]<=dzc75dd;ead17f6[2017]<=wje7ecc[0];ead17f6[1987]<=thc8030[0];ead17f6[1926]<=dz40186[0];ead17f6[1804]<=ymc36[0];ead17f6[1803]<=lqd5b7b;ead17f6[1560]<=rv61b1[0];ead17f6[1558]<=hq1e17d;ead17f6[1550]<=xj7b56d;ead17f6[1464]<=cz51ac0;ead17f6[1072]<=ls30d8f[0];ead17f6[1069]<=qgf0bea;ead17f6[1052]<=vv64785[0];ead17f6[1023]<=gbe_mode;ead17f6[901]<=twadbda;ead17f6[880]<=ym8d604;ead17f6[775]<=ir8f6ad;ead17f6[732]<=eaea358;ead17f6[450]<=jcdab6f[0];ead17f6[387]<=uxb1ed5;ead17f6[366]<=kq7d46b;ead17f6[225]<=hqa7cad;ead17f6[193]<=cb363da;ead17f6[183]<=vk2fa8d;ead17f6[112]<=me43082;ead17f6[96]<=ng86c7b[0];ead17f6[91]<=cb85f51;ead17f6[56]<=ir23c2f;end assign jebdc77 = ead17f6,vx8bfb1 = fn71dda; initial begin kfbe35f = $fopen(".fred"); $fdisplay( kfbe35f, "%3h\n%3h", (fnf63ba >> 4) & fpbaf71, (fnf63ba >> (tj8eebd+4)) & fpbaf71 ); $fclose(kfbe35f); $readmemh(".fred", ay776be); end always @ (jebdc77) begin nedaf8d = ay776be[1]; for (jcf1afd=0; jcf1afd>1,vx8bfb1[3]};do20cda<=vx8bfb1[4];rv66d2<=vx8bfb1[5];gb44b77<=vx8bfb1[6];ba25bbd<=vx8bfb1[7];jc58788<={wje7ecc>>1,vx8bfb1[8]};mt33697<={thc8030>>1,vx8bfb1[9]};xl9b4bd<={dz40186>>1,vx8bfb1[10]};psda5ee<={ymc36>>1,vx8bfb1[11]};fnd2f72<={rv61b1>>1,vx8bfb1[12]};aa97b97<={ls30d8f>>1,vx8bfb1[13]};ngbdcb9<={ng86c7b>>1,vx8bfb1[14]};hoee5cb<=vx8bfb1[15];yk72e5a<=vx8bfb1[16];ie972d0<=vx8bfb1[17];ukb9680<=vx8bfb1[18];ykefeb8<={vv64785>>1,vx8bfb1[19]};kd7f5c1<=vx8bfb1[20];fpafd5a<=vx8bfb1[21];ba99e94<=vx8bfb1[22];gocb400<={jcdab6f>>1,vx8bfb1[23]};rgd000e<=vx8bfb1[24];hb5a001<=vx8bfb1[25];sjbe13f<=vx8bfb1[26];uif09fd<=vx8bfb1[27];icfae0d<=vx8bfb1[28];rtd7068<=vx8bfb1[29];pub8346<=vx8bfb1[30];suc1a32<=vx8bfb1[31];uxd191<=vx8bfb1[32];ic68c8c<=vx8bfb1[33];go46460<=vx8bfb1[34];db32301<=vx8bfb1[35];end +always@* begin ead17f6[2047]<=force_isolate;ead17f6[2046]<=mr7afdb;ead17f6[2044]<=fc3f1d7[0];ead17f6[2041]<=wjf8ebb;ead17f6[2035]<=dzc75dd;ead17f6[2022]<=ym3111a;ead17f6[1996]<=ie888d0;ead17f6[1945]<=wje7ecc[0];ead17f6[1922]<=lqd5b7b;ead17f6[1842]<=thc8030[0];ead17f6[1797]<=uk8de4a;ead17f6[1776]<=hqa7cad;ead17f6[1637]<=dz40186[0];ead17f6[1622]<=ng86c7b[0];ead17f6[1546]<=of6f251;ead17f6[1504]<=jcdab6f[0];ead17f6[1468]<=ir23c2f;ead17f6[1391]<=xj7b56d;ead17f6[1312]<=cz51ac0;ead17f6[1226]<=ymc36[0];ead17f6[1197]<=cb363da;ead17f6[1044]<=hq1e17d;ead17f6[1023]<=gbe_mode;ead17f6[961]<=twadbda;ead17f6[888]<=me43082;ead17f6[811]<=ls30d8f[0];ead17f6[734]<=vv64785[0];ead17f6[695]<=ir8f6ad;ead17f6[656]<=eaea358;ead17f6[576]<=ym8d604;ead17f6[405]<=rv61b1[0];ead17f6[347]<=uxb1ed5;ead17f6[328]<=kq7d46b;ead17f6[164]<=vk2fa8d;ead17f6[82]<=cb85f51;ead17f6[41]<=qgf0bea;end assign jebdc77 = ead17f6,vx8bfb1 = fn71dda; initial begin kfbe35f = $fopen(".fred"); $fdisplay( kfbe35f, "%3h\n%3h", (fnf63ba >> 4) & fpbaf71, (fnf63ba >> (tj8eebd+4)) & fpbaf71 ); $fclose(kfbe35f); $readmemh(".fred", ay776be); end always @ (jebdc77) begin nedaf8d = ay776be[1]; for (jcf1afd=0; jcf1afd>1,vx8bfb1[6]};by6978f<=vx8bfb1[7];ip4bc7b<=vx8bfb1[8];sh5e3dc<=vx8bfb1[9];byf1ee4<=vx8bfb1[10];mt8f723<=vx8bfb1[11];dz7b91d<={do1e90d>>1,vx8bfb1[12]};czdc8ee<={psf486b>>1,vx8bfb1[13]};dme4774<={uxa435b>>1,vx8bfb1[14]};ux23ba3<={ym21add>>1,vx8bfb1[15]};an1dd1d<={cbd6e8>>1,vx8bfb1[16]};neee8ec<=vx8bfb1[17];bl74763<=vx8bfb1[18];gqa3b1e<=vx8bfb1[19];sj1d8f1<=vx8bfb1[20];dzec78c<=vx8bfb1[21];xw63c67<=vx8bfb1[22];xy1e33b<={zxf64f7>>1,vx8bfb1[23]};psf19da<=vx8bfb1[24];tw8ced3<={pu93dfb>>1,vx8bfb1[25]};ea6769b<=vx8bfb1[26];wy3b4d8<={gbf7edf>>1,vx8bfb1[27]};byda6c1<={xlbf6fc>>1,vx8bfb1[28]};wjd360a<={jcfb7e7>>1,vx8bfb1[29]};fp9b054<={rgdf9d9>>1,vx8bfb1[30]};dzd82a6<={zxfcecb>>1,vx8bfb1[31]};osc1537<={ale765f>>1,vx8bfb1[32]};iea9b8<={qi3b2fc>>1,vx8bfb1[33]};sh54dc0<={gbd97e1>>1,vx8bfb1[34]};wya6e04<={mecbf0d>>1,vx8bfb1[35]};rv37021<=vx8bfb1[36];jeb810f<=vx8bfb1[37];xwc087a<=vx8bfb1[38];hq43d3<=vx8bfb1[39];ec21e9a<=vx8bfb1[40];wyf4d0<=vx8bfb1[41];en7a681<=vx8bfb1[42];ofd340d<=vx8bfb1[43];sj9a06c<=vx8bfb1[44];byd0364<=vx8bfb1[45];xl81b23<=vx8bfb1[46];ird91f<=vx8bfb1[47];vi6c8fd<=vx8bfb1[48];jp647ea<={czfd4ca>>1,vx8bfb1[49]};qv23f57<=vx8bfb1[50];sw1fabd<=vx8bfb1[51];gbfd5e9<=vx8bfb1[52];ykeaf4c<=vx8bfb1[53];jc57a61<=vx8bfb1[54];hqbd30b<={vxa00d5>>1,vx8bfb1[55]};jpe985a<=vx8bfb1[56];os4c2d6<=vx8bfb1[57];pf616b0<=vx8bfb1[58];lsb587<=vx8bfb1[59];vv5ac3b<={vxaf1ca>>1,vx8bfb1[60]};end61df<=vx8bfb1[61];rvb0efc<=vx8bfb1[62];ie877e7<=vx8bfb1[63];qi3bf39<=vx8bfb1[64];bydf9c8<=vx8bfb1[65];blfce43<={wlb1f10>>1,vx8bfb1[66]};qte721f<=vx8bfb1[67];qv390fc<=vx8bfb1[68];dzc87e4<=vx8bfb1[69];cm43f26<={uk10b14>>1,vx8bfb1[70]};end +always@* begin ead17f6[2047]<=sgmii_mode;ead17f6[2046]<=force_unidir;ead17f6[2044]<=mr_main_reset;ead17f6[2040]<=mr_restart_an;ead17f6[2033]<=mr_an_enable;ead17f6[2019]<=mr_adv_ability[1];ead17f6[1999]<=mecbf0d[0];ead17f6[1991]<=ou2150a;ead17f6[1981]<=ic532a0;ead17f6[1958]<=gq6af;ead17f6[1950]<=ldfc347;ead17f6[1947]<=tj9408c;ead17f6[1934]<=ira1445;ead17f6[1914]<=vk99500;ead17f6[1892]<=rgfe7b2;ead17f6[1868]<=zz3578;ead17f6[1852]<=sjd1f2;ead17f6[1851]<=ym21add[0];ead17f6[1847]<=lfa0467;ead17f6[1820]<=gqa22d;ead17f6[1783]<=do3fa99;ead17f6[1780]<=dmca803;ead17f6[1737]<=pff3d93;ead17f6[1689]<=wy1abc7;ead17f6[1657]<=su68f94;ead17f6[1654]<=cbd6e8[0];ead17f6[1647]<=gd233f;ead17f6[1610]<=vkb27bf;ead17f6[1608]<=hocac7c;ead17f6[1593]<=gb51169;ead17f6[1523]<=qi3b2fc[0];ead17f6[1519]<=czfd4ca[1];ead17f6[1513]<=en5401a;ead17f6[1426]<=rv9ec9e;ead17f6[1404]<=zxfcecb[0];ead17f6[1330]<=lqd5e39;ead17f6[1267]<=jc47ca0;ead17f6[1260]<=xj6b744;ead17f6[1246]<=ba119fd;ead17f6[1225]<=go78e56;ead17f6[1199]<=xlbf6fc[0];ead17f6[1173]<=pu93dfb[0];ead17f6[1169]<=ic563e2;ead17f6[1163]<=ps7c42c;ead17f6[1139]<=ie88b4d;ead17f6[1023]<=gbe_mode;ead17f6[999]<=gbd97e1[0];ead17f6[990]<=suea654;ead17f6[979]<=vxa00d5[0];ead17f6[973]<=mrf2811;ead17f6[946]<=fc3fcf6;ead17f6[925]<=uxa435b[0];ead17f6[891]<=os67f53;ead17f6[805]<=zxf64f7[0];ead17f6[804]<=ux3958f;ead17f6[761]<=ale765f[0];ead17f6[702]<=rgdf9d9[0];ead17f6[612]<=vxaf1ca[1];ead17f6[599]<=gbf7edf[0];ead17f6[581]<=yz8f885;ead17f6[556]<=uk10b14[1];ead17f6[486]<=uk3e502;ead17f6[473]<=hbc7f9e;ead17f6[462]<=psf486b[0];ead17f6[445]<=ri8cfea;ead17f6[402]<=fnc72b1;ead17f6[351]<=jcfb7e7[0];ead17f6[299]<=fp9efdb;ead17f6[290]<=wlb1f10[0];ead17f6[278]<=uve2162;ead17f6[231]<=do1e90d[0];end assign jebdc77 = ead17f6,vx8bfb1 = fn71dda; initial begin kfbe35f = $fopen(".fred"); $fdisplay( kfbe35f, "%3h\n%3h", (fnf63ba >> 4) & fpbaf71, (fnf63ba >> (tj8eebd+4)) & fpbaf71 ); $fclose(kfbe35f); $readmemh(".fred", ay776be); end always @ (jebdc77) begin nedaf8d = ay776be[1]; for (jcf1afd=0; jcf1afd>1,vx8bfb1[4]};jc4d47a<=vx8bfb1[5];al6a3d2<=vx8bfb1[6];ip4bc7b<=vx8bfb1[7];ep8f4a4<=vx8bfb1[8];qt7a525<={tu69a7f>>1,vx8bfb1[9]};hbd292d<=vx8bfb1[10];tj9496f<=vx8bfb1[11];gda4b7e<=vx8bfb1[12];ng25bf4<={zz3d20b>>1,vx8bfb1[13]};tj2dfa2<={xje905e>>1,vx8bfb1[14]};sh6fd16<={by482f7>>1,vx8bfb1[15]};pf7e8b5<={of417ba>>1,vx8bfb1[16]};tuf45ae<={jebdd4>>1,vx8bfb1[17]};vka2d72<=vx8bfb1[18];jr16b93<=vx8bfb1[19];jrb5c9f<=vx8bfb1[20];yzae4ff<=vx8bfb1[21];ea727fc<=vx8bfb1[22];je93fe1<=vx8bfb1[23];ir9ff0b<=vx8bfb1[24];cmff85d<=vx8bfb1[25];vvfc2e8<=vx8bfb1[26];pse1746<=vx8bfb1[27];lsba33<=vx8bfb1[28];ps5d19a<=vx8bfb1[29];ipe8cd3<=vx8bfb1[30];go4669c<=vx8bfb1[31];cb334e1<=vx8bfb1[32];ux9a70d<=vx8bfb1[33];shd386c<=vx8bfb1[34];ba9c365<=vx8bfb1[35];zke1b2b<=vx8bfb1[36];kfd95a<=vx8bfb1[37];lq6cad5<=vx8bfb1[38];gb656aa<=vx8bfb1[39];qi2b555<=vx8bfb1[40];vv5aaa8<=vx8bfb1[41];dmd5547<={yx54ea5>>1,vx8bfb1[42]};ntaaa3b<={twa752c>>1,vx8bfb1[43]};bl551df<=vx8bfb1[44];vka8eff<=vx8bfb1[45];ho477fa<=vx8bfb1[46];ie3bfd3<=vx8bfb1[47];psdfe98<=vx8bfb1[48];goff4c3<=vx8bfb1[49];cmfa619<=vx8bfb1[50];yxd30c9<=vx8bfb1[51];sw9864c<=vx8bfb1[52];gbc3261<=vx8bfb1[53];db1930d<=vx8bfb1[54];qtc986f<=vx8bfb1[55];go4c37d<=vx8bfb1[56];dz61be8<=vx8bfb1[57];qvdf46<={mg92a74>>1,vx8bfb1[58]};ip6fa35<={gd953a1>>1,vx8bfb1[59]};qte721f<=vx8bfb1[60];qv390fc<=vx8bfb1[61];qg46b44<=vx8bfb1[62];zm35a20<=vx8bfb1[63];vkad103<=vx8bfb1[64];kq6881b<=vx8bfb1[65];icfae0d<=vx8bfb1[66];rtd7068<=vx8bfb1[67];hd3623<={aa3482d>>1,vx8bfb1[68]};end +always@* begin ead17f6[2047]<=sgmii_mode;ead17f6[2046]<=gbe_mode;ead17f6[2044]<=qif9e9;ead17f6[2040]<=rx_data[0];ead17f6[2032]<=rx_kcntl;ead17f6[2016]<=tj3d21d;ead17f6[1985]<=ira1445;ead17f6[1927]<=th74344;ead17f6[1922]<=rx_even;ead17f6[1867]<=shf7515;ead17f6[1807]<=wla1a26;ead17f6[1804]<=an2c486;ead17f6[1797]<=tu69a7f[0];ead17f6[1761]<=ng3a962;ead17f6[1686]<=tjba8ad;ead17f6[1623]<=gb44892;ead17f6[1567]<=mtd134;ead17f6[1561]<=yk62435;ead17f6[1558]<=vi585b7;ead17f6[1547]<=eca3e4a;ead17f6[1542]<=jeb870d;ead17f6[1505]<=yz8f885;ead17f6[1490]<=jebdd4[0];ead17f6[1475]<=cmd4b12;ead17f6[1413]<=jp71616;ead17f6[1409]<=icdee1c;ead17f6[1400]<=mg92a74[0];ead17f6[1324]<=ykd456e;ead17f6[1200]<=wy15b8b;ead17f6[1199]<=aa24495;ead17f6[1086]<=ww689a4;ead17f6[1074]<=cb121a8;ead17f6[1068]<=fnc2dbb;ead17f6[1047]<=aa1f251;ead17f6[1037]<=yxc386a;ead17f6[1023]<=mr_main_reset;ead17f6[963]<=ps7c42c;ead17f6[933]<=al5eea2;ead17f6[902]<=bna5890;ead17f6[880]<=twa752c[0];ead17f6[811]<=lsa8912;ead17f6[779]<=vx8b0b6;ead17f6[771]<=enf70e1;ead17f6[752]<=gd953a1[0];ead17f6[745]<=of417ba[0];ead17f6[706]<=vv6e2c2;ead17f6[704]<=epbbdc3;ead17f6[700]<=ux1254e;ead17f6[600]<=xya2b71;ead17f6[503]<=aa3482d[1];ead17f6[440]<=yx54ea5[0];ead17f6[405]<=vk35122;ead17f6[372]<=by482f7[0];ead17f6[353]<=doadc58;ead17f6[352]<=ngb77b8;ead17f6[350]<=xl224a9;ead17f6[251]<=qgf0bea;ead17f6[220]<=qt6a9d4;ead17f6[202]<=je86a24;ead17f6[186]<=xje905e[0];ead17f6[176]<=swb6ef7;ead17f6[125]<=hq1e17d;ead17f6[110]<=yzd53a;ead17f6[101]<=an90d44;ead17f6[93]<=zz3d20b[0];ead17f6[88]<=rv16dde;ead17f6[55]<=rge1aa7;ead17f6[46]<=uv511a7;ead17f6[27]<=nt1c354;end assign jebdc77 = ead17f6,vx8bfb1 = fn71dda; initial begin kfbe35f = $fopen(".fred"); $fdisplay( kfbe35f, "%3h\n%3h", (fnf63ba >> 4) & fpbaf71, (fnf63ba >> (tj8eebd+4)) & fpbaf71 ); $fclose(kfbe35f); $readmemh(".fred", ay776be); end always @ (jebdc77) begin nedaf8d = ay776be[1]; for (jcf1afd=0; jcf1afd>1,vx8bfb1[2]};jc4d47a<=vx8bfb1[3];al6a3d2<=vx8bfb1[4];sj3c1ea<={vk25ab1>>1,vx8bfb1[5]};qge0f54<={fp2d58a>>1,vx8bfb1[6]};qv7aa0<={of6ac57>>1,vx8bfb1[7]};bn3d504<=vx8bfb1[8];kqea826<=vx8bfb1[9];qte721f<=vx8bfb1[10];qv390fc<=vx8bfb1[11];fc4c6e<=vx8bfb1[12];ux26373<=vx8bfb1[13];uk31b9c<=vx8bfb1[14];gq8dce1<=vx8bfb1[15];hb6e709<=vx8bfb1[16];zk7384e<=vx8bfb1[17];ri9c272<=vx8bfb1[18];xwe1393<={fpa5308>>1,vx8bfb1[19]};end +always@* begin ead17f6[2047]<=signal_detect;ead17f6[2046]<=rx_data[0];ead17f6[2044]<=rx_kcntl;ead17f6[2040]<=tj3d21d;ead17f6[2033]<=vk25ab1[0];ead17f6[2018]<=fp2d58a[0];ead17f6[1988]<=of6ac57[0];ead17f6[1929]<=go562bd;ead17f6[1811]<=gdb15e8;ead17f6[1789]<=wwd4a61;ead17f6[1574]<=yz8f885;ead17f6[1530]<=fpa5308[1];ead17f6[1247]<=gq246a5;ead17f6[1101]<=ps7c42c;ead17f6[1023]<=mr_main_reset;ead17f6[894]<=ec1a94c;ead17f6[623]<=kd448d4;ead17f6[447]<=sj23529;ead17f6[311]<=she891a;ead17f6[155]<=fcbd123;end assign jebdc77 = ead17f6,vx8bfb1 = fn71dda; initial begin kfbe35f = $fopen(".fred"); $fdisplay( kfbe35f, "%3h\n%3h", (fnf63ba >> 4) & fpbaf71, (fnf63ba >> (tj8eebd+4)) & fpbaf71 ); $fclose(kfbe35f); $readmemh(".fred", ay776be); end always @ (jebdc77) begin nedaf8d = ay776be[1]; for (jcf1afd=0; jcf1afd>1,vx8bfb1[4]};vxa0fa9<={oub66fd>>1,vx8bfb1[5]};ep7d4e<=vx8bfb1[6];gq3ea74<=vx8bfb1[7];ykf53a0<={ux17d83>>1,vx8bfb1[8]};iea9d00<={ea67ca6>>1,vx8bfb1[9]};ip4e800<={aa3e531>>1,vx8bfb1[10]};th74004<=vx8bfb1[11];xla0026<=vx8bfb1[12];wy137<={iea6266>>1,vx8bfb1[13]};uk9b8<=vx8bfb1[14];je4dc1<=vx8bfb1[15];an26e0b<={yk4cc03>>1,vx8bfb1[16]};xl3705d<=vx8bfb1[17];fcb82ef<=vx8bfb1[18];qgc177a<=vx8bfb1[19];zmbbd0<=vx8bfb1[20];xw5de82<=vx8bfb1[21];osef412<=vx8bfb1[22];en7a090<=vx8bfb1[23];ned0485<=vx8bfb1[24];mg8242b<=vx8bfb1[25];ba99e94<=vx8bfb1[26];dmda67a<={end69f2>>1,vx8bfb1[27]};oh85664<=vx8bfb1[28];lf3699<=vx8bfb1[29];go59920<=vx8bfb1[30];kdcc900<=vx8bfb1[31];nr64805<=vx8bfb1[32];qi2402e<=vx8bfb1[33];mrd33d2<=vx8bfb1[34];qib8b<=vx8bfb1[35];co5c59<=vx8bfb1[36];uk2e2c9<=vx8bfb1[37];bl71648<=vx8bfb1[38];jr8b246<=vx8bfb1[39];cm59237<=vx8bfb1[40];ipc91b9<=vx8bfb1[41];rg48dcc<={oua96af>>1,vx8bfb1[42]};xl9b4bd<={dz40186>>1,vx8bfb1[43]};psda5ee<={ymc36>>1,vx8bfb1[44]};mgb98c7<={tud5e6f>>1,vx8bfb1[45]};alcc639<={hdaf37a>>1,vx8bfb1[46]};fa631cc<=vx8bfb1[47];gd18e62<=vx8bfb1[48];ldc7314<=vx8bfb1[49];qv398a7<=vx8bfb1[50];hoee5cb<=vx8bfb1[51];ay629ec<=vx8bfb1[52];vk14f61<=vx8bfb1[53];vka7b0a<=vx8bfb1[54];jr3d853<=vx8bfb1[55];dzec29f<=vx8bfb1[56];zx614ff<=vx8bfb1[57];mga7ff<={ks5e8a>>1,vx8bfb1[58]};ay53ff9<={hq2f451>>1,vx8bfb1[59]};icfae0d<=vx8bfb1[60];rtd7068<=vx8bfb1[61];meff268<={kf8a2a9>>1,vx8bfb1[62]};blf9341<={mr5154d>>1,vx8bfb1[63]};mrc9a0e<=vx8bfb1[64];by4d075<=vx8bfb1[65];me683aa<=vx8bfb1[66];sh41d51<=vx8bfb1[67];twea8d<=vx8bfb1[68];cz7546a<=vx8bfb1[69];rvaa354<=vx8bfb1[70];cz51aa6<=vx8bfb1[71];ym8d534<=vx8bfb1[72];qt6a9a0<=vx8bfb1[73];yx54d05<=vx8bfb1[74];swa682c<=vx8bfb1[75];ie34161<={hqade13>>1,vx8bfb1[76]};nta0b08<={al6f09a>>1,vx8bfb1[77]};end +always@* begin ead17f6[2047]<=an_link_ok;ead17f6[2046]<=lqe16b6;ead17f6[2044]<=gbe_mode;ead17f6[2040]<=operational_rate[0];ead17f6[2032]<=oub66fd[0];ead17f6[2018]<=oua96af[0];ead17f6[2017]<=ksb37e9;ead17f6[1989]<=dz40186[0];ead17f6[1987]<=hd9bf49;ead17f6[1931]<=ymc36[0];ead17f6[1927]<=ux17d83[0];ead17f6[1865]<=yk4cc03[0];ead17f6[1859]<=sw3e17a;ead17f6[1844]<=gd9f920;ead17f6[1815]<=tud5e6f[0];ead17f6[1806]<=ea67ca6[0];ead17f6[1682]<=tu66019;ead17f6[1674]<=ks5e8a[0];ead17f6[1671]<=uxb4f95;ead17f6[1640]<=pffc905;ead17f6[1582]<=hdaf37a[0];ead17f6[1565]<=aa3e531[0];ead17f6[1488]<=pfc8f85;ead17f6[1485]<=cb363da;ead17f6[1326]<=hqa7cad;ead17f6[1317]<=ng300ca;ead17f6[1300]<=hq2f451[0];ead17f6[1297]<=dz5536c;ead17f6[1295]<=ir85e89;ead17f6[1233]<=xwe482f;ead17f6[1210]<=nt9b647;ead17f6[1189]<=xw529fb;ead17f6[1172]<=db3294;ead17f6[1124]<=ri86b78;ead17f6[1116]<=zk79bd6;ead17f6[1105]<=qgf0bea;ead17f6[1094]<=nt38610;ead17f6[1092]<=xw4db38;ead17f6[1087]<=cz7a26a;ead17f6[1082]<=ipf2989;ead17f6[1023]<=mr_main_reset;ead17f6[1009]<=gb6aa5a;ead17f6[932]<=pu89980;ead17f6[929]<=zk47c2f;ead17f6[922]<=ecb3f24;ead17f6[837]<=je20bd1;ead17f6[744]<=gbd91f0;ead17f6[742]<=kd7acfc;ead17f6[663]<=pua7ede;ead17f6[648]<=gd8aa6d;ead17f6[605]<=end69f2[0];ead17f6[594]<=faca53f;ead17f6[586]<=an80652;ead17f6[562]<=ou10d6f;ead17f6[552]<=hq1e17d;ead17f6[547]<=ww670c2;ead17f6[546]<=ksa9b67;ead17f6[543]<=ri2f44d;ead17f6[504]<=ne4d54b;ead17f6[466]<=co31330;ead17f6[418]<=sw2417a;ead17f6[400]<=al6f09a[1];ead17f6[372]<=tj275a7;ead17f6[371]<=sh6f59f;ead17f6[331]<=rv94fdb;ead17f6[324]<=mr5154d[0];ead17f6[297]<=fp194a7;ead17f6[281]<=mt18435;ead17f6[273]<=xw6ce18;ead17f6[252]<=hq89aa9;ead17f6[233]<=iea6266[0];ead17f6[200]<=hqade13[1];ead17f6[185]<=blcdeb3;ead17f6[162]<=kf8a2a9[0];ead17f6[140]<=enc3086;ead17f6[136]<=kq6d9c3;ead17f6[126]<=wwd1355;ead17f6[116]<=nt94c4c;end assign jebdc77 = ead17f6,vx8bfb1 = fn71dda; initial begin kfbe35f = $fopen(".fred"); $fdisplay( kfbe35f, "%3h\n%3h", (fnf63ba >> 4) & fpbaf71, (fnf63ba >> (tj8eebd+4)) & fpbaf71 ); $fclose(kfbe35f); $readmemh(".fred", ay776be); end always @ (jebdc77) begin nedaf8d = ay776be[1]; for (jcf1afd=0; jcf1afd>1,vx8bfb1[1]};ep7d4e<=vx8bfb1[2];gq3ea74<=vx8bfb1[3];ykf53a0<={ux17d83>>1,vx8bfb1[4]};iea9d00<={ea67ca6>>1,vx8bfb1[5]};ip4e800<={aa3e531>>1,vx8bfb1[6]};th74004<=vx8bfb1[7];xla0026<=vx8bfb1[8];wy137<={iea6266>>1,vx8bfb1[9]};uk9b8<=vx8bfb1[10];je4dc1<=vx8bfb1[11];an26e0b<={yk4cc03>>1,vx8bfb1[12]};xl3705d<=vx8bfb1[13];fcb82ef<=vx8bfb1[14];qgc177a<=vx8bfb1[15];zmbbd0<=vx8bfb1[16];xw5de82<=vx8bfb1[17];osef412<=vx8bfb1[18];en7a090<=vx8bfb1[19];ned0485<=vx8bfb1[20];mg8242b<=vx8bfb1[21];ba99e94<=vx8bfb1[22];dmda67a<={end69f2>>1,vx8bfb1[23]};oh85664<=vx8bfb1[24];lf3699<=vx8bfb1[25];go59920<=vx8bfb1[26];kdcc900<=vx8bfb1[27];nr64805<=vx8bfb1[28];qi2402e<=vx8bfb1[29];mrd33d2<=vx8bfb1[30];qib8b<=vx8bfb1[31];co5c59<=vx8bfb1[32];uk2e2c9<=vx8bfb1[33];bl71648<=vx8bfb1[34];jr8b246<=vx8bfb1[35];cm59237<=vx8bfb1[36];ipc91b9<=vx8bfb1[37];rg48dcc<={oua96af>>1,vx8bfb1[38]};twea8d<=vx8bfb1[39];cz7546a<=vx8bfb1[40];rvaa354<=vx8bfb1[41];cz51aa6<=vx8bfb1[42];ym8d534<=vx8bfb1[43];qt6a9a0<=vx8bfb1[44];yx54d05<=vx8bfb1[45];swa682c<=vx8bfb1[46];ie34161<={hqade13>>1,vx8bfb1[47]};nta0b08<={al6f09a>>1,vx8bfb1[48]};end +always@* begin ead17f6[2047]<=oub66fd[0];ead17f6[2046]<=ksb37e9;ead17f6[2044]<=hd9bf49;ead17f6[2040]<=ux17d83[0];ead17f6[2033]<=ea67ca6[0];ead17f6[2019]<=aa3e531[0];ead17f6[1991]<=ipf2989;ead17f6[1934]<=nt94c4c;ead17f6[1929]<=hqade13[1];ead17f6[1898]<=an80652;ead17f6[1821]<=iea6266[0];ead17f6[1810]<=al6f09a[1];ead17f6[1749]<=db3294;ead17f6[1707]<=xw529fb;ead17f6[1666]<=zk47c2f;ead17f6[1630]<=ww670c2;ead17f6[1595]<=co31330;ead17f6[1506]<=ou10d6f;ead17f6[1450]<=fp194a7;ead17f6[1440]<=gbd91f0;ead17f6[1384]<=nt9b647;ead17f6[1370]<=hqa7cad;ead17f6[1366]<=rv94fdb;ead17f6[1284]<=sw3e17a;ead17f6[1212]<=nt38610;ead17f6[1142]<=pu89980;ead17f6[1125]<=gb6aa5a;ead17f6[1041]<=ir85e89;ead17f6[1023]<=mr_main_reset;ead17f6[964]<=ri86b78;ead17f6[949]<=ng300ca;ead17f6[853]<=faca53f;ead17f6[833]<=pfc8f85;ead17f6[815]<=xw6ce18;ead17f6[753]<=mt18435;ead17f6[720]<=tj275a7;ead17f6[692]<=end69f2[0];ead17f6[685]<=pua7ede;ead17f6[562]<=ne4d54b;ead17f6[520]<=uxb4f95;ead17f6[474]<=tu66019;ead17f6[407]<=kq6d9c3;ead17f6[376]<=enc3086;ead17f6[281]<=hq89aa9;ead17f6[237]<=yk4cc03[0];ead17f6[203]<=oua96af[0];ead17f6[140]<=wwd1355;ead17f6[70]<=cz7a26a;ead17f6[35]<=ri2f44d;end assign jebdc77 = ead17f6,vx8bfb1 = fn71dda; initial begin kfbe35f = $fopen(".fred"); $fdisplay( kfbe35f, "%3h\n%3h", (fnf63ba >> 4) & fpbaf71, (fnf63ba >> (tj8eebd+4)) & fpbaf71 ); $fclose(kfbe35f); $readmemh(".fred", ay776be); end always @ (jebdc77) begin nedaf8d = ay776be[1]; for (jcf1afd=0; jcf1afd>1,vx8bfb1[1]};ep7d4e<=vx8bfb1[2];gq3ea74<=vx8bfb1[3];ip4e800<={aa3e531>>1,vx8bfb1[4]};th74004<=vx8bfb1[5];xla0026<=vx8bfb1[6];mg8242b<=vx8bfb1[7];ba99e94<=vx8bfb1[8];dmda67a<={end69f2>>1,vx8bfb1[9]};oh85664<=vx8bfb1[10];lf3699<=vx8bfb1[11];go59920<=vx8bfb1[12];kdcc900<=vx8bfb1[13];nr64805<=vx8bfb1[14];mrd33d2<=vx8bfb1[15];co5c59<=vx8bfb1[16];uk2e2c9<=vx8bfb1[17];bl71648<=vx8bfb1[18];jr8b246<=vx8bfb1[19];cm59237<=vx8bfb1[20];ipc91b9<=vx8bfb1[21];twea8d<=vx8bfb1[22];cz7546a<=vx8bfb1[23];rvaa354<=vx8bfb1[24];cz51aa6<=vx8bfb1[25];end +always@* begin ead17f6[2047]<=oub66fd[0];ead17f6[2046]<=ksb37e9;ead17f6[2044]<=hd9bf49;ead17f6[2040]<=aa3e531[0];ead17f6[2033]<=ipf2989;ead17f6[2019]<=nt94c4c;ead17f6[1990]<=pua7ede;ead17f6[1939]<=wwd1355;ead17f6[1933]<=hqa7cad;ead17f6[1831]<=hq89aa9;ead17f6[1819]<=end69f2[0];ead17f6[1778]<=uxb4f95;ead17f6[1615]<=ne4d54b;ead17f6[1591]<=nt9b647;ead17f6[1508]<=ri2f44d;ead17f6[1271]<=ww670c2;ead17f6[1182]<=gb6aa5a;ead17f6[1135]<=tj275a7;ead17f6[1023]<=mr_main_reset;ead17f6[969]<=cz7a26a;ead17f6[889]<=zk47c2f;ead17f6[635]<=xw6ce18;ead17f6[495]<=nt38610;ead17f6[444]<=pfc8f85;ead17f6[317]<=kq6d9c3;ead17f6[222]<=gbd91f0;end assign jebdc77 = ead17f6,vx8bfb1 = fn71dda; initial begin kfbe35f = $fopen(".fred"); $fdisplay( kfbe35f, "%3h\n%3h", (fnf63ba >> 4) & fpbaf71, (fnf63ba >> (tj8eebd+4)) & fpbaf71 ); $fclose(kfbe35f); $readmemh(".fred", ay776be); end always @ (jebdc77) begin nedaf8d = ay776be[1]; for (jcf1afd=0; jcf1afd>1,vx8bfb1[4]};yz3357c<={aa2e5>>1,vx8bfb1[5]};oh9abe5<=vx8bfb1[6];zkd5f2d<=vx8bfb1[7];dbaf96a<={rv28481>>1,vx8bfb1[8]};xw7cb57<=vx8bfb1[9];ice5abb<=vx8bfb1[10];byda6c1<={xlbf6fc>>1,vx8bfb1[11]};wjd360a<={jcfb7e7>>1,vx8bfb1[12]};wy3b4d8<={gbf7edf>>1,vx8bfb1[13]};ohbb1ea<=vx8bfb1[14];rtd8f55<=vx8bfb1[15];vvc7aae<=vx8bfb1[16];ph3d576<={ba2f3a0>>1,vx8bfb1[17]};sueabb6<={dm79d02>>1,vx8bfb1[18]};pf55db1<=vx8bfb1[19];anaed8e<=vx8bfb1[20];zk76c75<=vx8bfb1[21];qte721f<=vx8bfb1[22];qv390fc<=vx8bfb1[23];vx8ea8d<=vx8bfb1[24];sh7546e<=vx8bfb1[25];cm43f26<={uk10b14>>1,vx8bfb1[26]};end +always@* begin ead17f6[2047]<=force_unidir;ead17f6[2046]<=tx_en;ead17f6[2044]<=tx_er;ead17f6[2040]<=en6005c[0];ead17f6[2032]<=aa2e5[0];ead17f6[2017]<=ba1728;ead17f6[1987]<=yk5ca12;ead17f6[1927]<=rv28481[0];ead17f6[1865]<=yke5e74;ead17f6[1806]<=fa4240f;ead17f6[1682]<=ba2f3a0[0];ead17f6[1565]<=ux1207b;ead17f6[1326]<=uk10b14[1];ead17f6[1317]<=dm79d02[0];ead17f6[1189]<=ps7c42c;ead17f6[1172]<=nr74098;ead17f6[1082]<=xlbf6fc[0];ead17f6[1023]<=mr_main_reset;ead17f6[932]<=ipdcbce;ead17f6[663]<=alc6f70;ead17f6[594]<=yz8f885;ead17f6[586]<=eace813;ead17f6[466]<=hb7b979;ead17f6[331]<=ie98dee;ead17f6[297]<=bna04c6;ead17f6[233]<=gbf7edf[0];ead17f6[116]<=jcfb7e7[0];end assign jebdc77 = ead17f6,vx8bfb1 = fn71dda; initial begin kfbe35f = $fopen(".fred"); $fdisplay( kfbe35f, "%3h\n%3h", (fnf63ba >> 4) & fpbaf71, (fnf63ba >> (tj8eebd+4)) & fpbaf71 ); $fclose(kfbe35f); $readmemh(".fred", ay776be); end always @ (jebdc77) begin nedaf8d = ay776be[1]; for (jcf1afd=0; jcf1afd>1,vx8bfb1[1]};zz9bd9a<=vx8bfb1[2];icdecd7<=vx8bfb1[3];fnf66b9<=vx8bfb1[4];qib35cf<=vx8bfb1[5];cb9ae79<=vx8bfb1[6];jpd73cd<={wj7f18d>>1,vx8bfb1[7]};cob9e6e<=vx8bfb1[8];xwcf371<=vx8bfb1[9];lq79b8b<={ou31b6d>>1,vx8bfb1[10]};thcdc5b<={ks8db69>>1,vx8bfb1[11]};hb6e2df<={kq6db49>>1,vx8bfb1[12]};bl716fe<={ww6da48>>1,vx8bfb1[13]};jr8b7f6<=vx8bfb1[14];en5bfb7<=vx8bfb1[15];xwdfdbd<=vx8bfb1[16];tufedeb<=vx8bfb1[17];blf6f5a<=vx8bfb1[18];hqb7ad6<=vx8bfb1[19];dobd6b2<=vx8bfb1[20];byeb592<=vx8bfb1[21];fn5ac92<=vx8bfb1[22];gbd6497<=vx8bfb1[23];end +always@* begin ead17f6[2047]<=gq10304[0];ead17f6[2046]<=lf81821;ead17f6[2044]<=rvc10f;ead17f6[2040]<=mr6087e;ead17f6[2032]<=je43f4;ead17f6[2016]<=cm62617;ead17f6[1985]<=wj7f18d[0];ead17f6[1922]<=czf8c6d;ead17f6[1796]<=yxc636d;ead17f6[1544]<=ou31b6d[6];ead17f6[1302]<=ho58593;ead17f6[1115]<=fp164de;ead17f6[1105]<=vi48058;ead17f6[1041]<=ks8db69[0];ead17f6[1023]<=hbec4c2;ead17f6[651]<=dob0b2;ead17f6[557]<=xjc2c9b;ead17f6[552]<=cm4900b;ead17f6[325]<=xy1616;ead17f6[276]<=ho69201;ead17f6[162]<=th402c2;ead17f6[138]<=os6d240;ead17f6[69]<=ww6da48[0];ead17f6[34]<=kq6db49[6];end assign jebdc77 = ead17f6,vx8bfb1 = fn71dda; initial begin kfbe35f = $fopen(".fred"); $fdisplay( kfbe35f, "%3h\n%3h", (fnf63ba >> 4) & fpbaf71, (fnf63ba >> (tj8eebd+4)) & fpbaf71 ); $fclose(kfbe35f); $readmemh(".fred", ay776be); end always @ (jebdc77) begin nedaf8d = ay776be[1]; for (jcf1afd=0; jcf1afd>1,vx8bfb1[7]};fa69a8f<={rx_data>>1,vx8bfb1[8]};jc4d47a<=vx8bfb1[9];ep8f4a4<=vx8bfb1[10];ecac00<=vx8bfb1[11];kq56000<=vx8bfb1[12];ntb0000<=vx8bfb1[13];an80006<={tx_d>>1,vx8bfb1[14]};qt7099a<=vx8bfb1[15];db84cd5<=vx8bfb1[16];co5a5e<=vx8bfb1[17];ri14169<=vx8bfb1[18];vxa0b4b<=vx8bfb1[19];qt7a525<={tu69a7f>>1,vx8bfb1[20]};ym387<={xj45a69>>1,vx8bfb1[21]};ls1c38<={jr2d34f>>1,vx8bfb1[22]};al6a3d2<=vx8bfb1[23];al70e1b<={eafa8aa>>1,vx8bfb1[24]};co870dd<=vx8bfb1[25];xl386e9<=vx8bfb1[26];gbc374e<=vx8bfb1[27];ba1ba75<=vx8bfb1[28];bldd3ab<=vx8bfb1[29];ble9d5f<=vx8bfb1[30];en4eafe<=vx8bfb1[31];icfae0d<=vx8bfb1[32];rtd7068<=vx8bfb1[33];pub8346<=vx8bfb1[34];suc1a32<=vx8bfb1[35];uxd191<=vx8bfb1[36];ic68c8c<=vx8bfb1[37];do25e9c<=vx8bfb1[38];pu2f4e2<=vx8bfb1[39];mr7a712<=vx8bfb1[40];ald3895<=vx8bfb1[41];ng9c4ad<=vx8bfb1[42];she256b<=vx8bfb1[43];gd12b5c<=vx8bfb1[44];kf95ae5<={xw52757>>1,vx8bfb1[45]};lsad72c<=vx8bfb1[46];ld6b963<=vx8bfb1[47];ic5cb1f<={kqeae99>>1,vx8bfb1[48]};yke58f8<=vx8bfb1[49];cb2c7c0<=vx8bfb1[50];ps63e05<=vx8bfb1[51];ks1f02b<=vx8bfb1[52];qtf8158<=vx8bfb1[53];byc0ac4<=vx8bfb1[54];mg5623<={jpe3998>>1,vx8bfb1[55]};sw2b118<=vx8bfb1[56];jc588c0<=vx8bfb1[57];goc4602<=vx8bfb1[58];yz23010<=vx8bfb1[59];cb18084<=vx8bfb1[60];end +always@* begin ead17f6[2047]<=sgmii_mode;ead17f6[2046]<=signal_detect;ead17f6[2044]<=debug_link_timer_short;ead17f6[2040]<=force_isolate;ead17f6[2032]<=force_loopback;ead17f6[2017]<=force_unidir;ead17f6[1987]<=operational_rate[0];ead17f6[1926]<=rx_data[0];ead17f6[1805]<=vk2fa8d;ead17f6[1804]<=rx_kcntl;ead17f6[1803]<=tj3d21d;ead17f6[1761]<=hq1e17d;ead17f6[1668]<=cz51293;ead17f6[1562]<=kq7d46b;ead17f6[1560]<=rx_even;ead17f6[1558]<=eafa8aa[0];ead17f6[1550]<=tx_er;ead17f6[1475]<=qgf0bea;ead17f6[1464]<=dob3be;ead17f6[1288]<=do8949d;ead17f6[1242]<=ep331f6;ead17f6[1076]<=eaea358;ead17f6[1072]<=rx_disp_err;ead17f6[1069]<=icd4550;ead17f6[1056]<=xw52757[0];ead17f6[1052]<=mr_an_enable;ead17f6[1028]<=tjba64a;ead17f6[1023]<=gbe_mode;ead17f6[902]<=cb85f51;ead17f6[901]<=jr2d34f[0];ead17f6[880]<=go59df3;ead17f6[874]<=blc7da8;ead17f6[834]<=zkca252;ead17f6[775]<=tx_en;ead17f6[732]<=xl81677;ead17f6[621]<=vve663e;ead17f6[528]<=fn4a4ea;ead17f6[514]<=by574c9;ead17f6[450]<=xj45a69[0];ead17f6[437]<=ie98fb5;ead17f6[417]<=tu7944a;ead17f6[387]<=tx_d[0];ead17f6[366]<=bl502ce;ead17f6[310]<=rv1ccc7;ead17f6[257]<=kqeae99[0];ead17f6[225]<=tu69a7f[0];ead17f6[208]<=do2f289;ead17f6[193]<=rx_err_decode_mode;ead17f6[183]<=hdaa059;ead17f6[155]<=jpe3998[0];ead17f6[128]<=wy9d5d3;ead17f6[112]<=mr_restart_an;ead17f6[104]<=qi5e51;ead17f6[96]<=rx_cv_err;ead17f6[91]<=zma2a81;ead17f6[77]<=ukbc733;ead17f6[64]<=ls93aba;ead17f6[56]<=mr_main_reset;ead17f6[38]<=by578e6;ead17f6[19]<=pu992bc;ead17f6[9]<=end3257;end assign jebdc77 = ead17f6,vx8bfb1 = fn71dda; initial begin kfbe35f = $fopen(".fred"); $fdisplay( kfbe35f, "%3h\n%3h", (fnf63ba >> 4) & fpbaf71, (fnf63ba >> (tj8eebd+4)) & fpbaf71 ); $fclose(kfbe35f); $readmemh(".fred", ay776be); end always @ (jebdc77) begin nedaf8d = ay776be[1]; for (jcf1afd=0; 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 Gew+Xkd_^TbLCPc4U zss4FTJvcgkBWEu>zD!m34$9y{O_;0EV#3{(YRwALO;g>^$FKRpYbf3+SE^rIRHFo{ zw~_OPn1$;8aS;}Os;~Ois0_u>-u$`QJ&;&4z{_T1c z4$q)v46c*=)1p5#Wn|!^5IF{nLTC)wl<0!tOP7FQ2RZwO@)_`Ae^7v%dw3qhupoDP z$RlM}pG(C_*ao8#lIukb@9;I8u+0^dn!E+B-^m$_=5y(}@)3||NA(%_S{v=)41CZ; zrcbF~x6QI8Vj;p#a`p@7Gw8N?A}Hl>hJSAx6(_;9FP!7z11!32E=b?d6}I_NZTCDjoc%B2E;nt3WgLpZ?Vd|+T-KM7$*9S41DxUGEDU7 zc6cK_WEvQDk#k@{-qrKS%V8;}`gTzHUZllsIs=BtbcXHcv~LE6-Q*k;$j>7>!<2tf zR#g5H3?~Go9c+f}WGOS|DKP9I=U|@&gZ9wpwm7^U-b@-z7mP#*@YDX*w+_!$P$f231ef1^Z{=uHyhX?~Pcfo)MP84VxDQ7P3(NsSN!$ncqzH7hV~dtL9BMrF#CaZGkB4wd^NmK?uylSn5%>8nIn!%SD zvzZubSE^SZ>SKrM3^~II3)L&VN3L37Bi3THUa5}my^vRHS#pkyS*Tte`Dd!l(t2%3 zhUKc+blu=+9Znu}*>0Q7iGIOjk$ly93+P7~S{PDm0cqVMexv${pmn!+SYe6sxJ-ZG zyx;4|*MP&wIXZ5Evr|t)uKM5Or1Gp|yHPI*z!}+aS})*W4)K_R?5JC3PmsriA4dmA z>$Gxt!a5aEgLP`3F=je&ipV+6YhfL&AAIz1{t9zh`~VKiE)3=#iTD}To6%2y5`PX{ zc5*%yu;9w*R<5?0a{YbIz{84?oE!Jhx#r2{JdpT*rllF#Hi*-mv7d?Ns^e%o!a=fvbd^ zFL*4tyg@1F=x}M{e_W>EI@Kq+=-6D>0Qsv`X5Y);a*=bQ--7GZqs*m^U`j65BQCkv z_Mo1Qzl~r26SzvrIVohpbw-rS;K$Limo^5=<#BtlY%s^gvNctC+@J1y3%JV2`AXD+ z>+C3(!H=WErHvwUd7O*CvCMTVoUi+Jd#&u%0INQoZrl%BaB1V#N5*w=goon?kCRq^ zbxaBe{1IGl==B8NiRxT$*7%?YxQ-#`n?4J!&S5F1`t~y8x-uZ;39fgey1k}Gb*_6# zE-wOC4ZM|2T5xIa4!EqN!_{44Y4(~H(7C1ubgpfgTK9shCf@r-EVu?FrJ$q3H83XS z3448n^wfp{ou8=uHE!<m$Dfm-haK%Q`w-cY5=*-Sj}&v1xb96zfx=#R`z`JDmC9coV;@`&uG)AzZk4~ZcW7MJ(XrP<{yeU)RsNc% z^4AMQ|m;2Ld@)vzFtYBCk*BMrZw3-QnMlFLIqhM%2 zPQ17`eG!0Z6H-p~8K!t;Siyif6tYyUN$3pM4Y~m%3eJX@V-d7qcs(fPRG;DPfD9`b z)`fM34L+S=b^D7Cg5g-q*oa#&ydRNrs?YGDUxpP7KP7br!#6X}^)ERe42{T{^ja`{ z6qa(T&oC=LKWtWZFnlv}a$omLU}%ilBvy9#B6j2qUj=1YVF%1Tk@;bJL{E!fF1mCG z7>*<7Z&r4gC&h^TUcGX$K<5_>zk3Ze*JnF=b%N^S$%(lodBs8R04+{Q-8>2YbvHlv z5}L~tIJ9`EN+`!Zvb#kAm_et zK8{{tt@3GsH5|)?F&pO1y|&j?9}LQ65tt*WWe$C>;cptpFX&+Z0WioR2c!8gNUFz? zNPOm*5#})ucUu=Xx>aj-Kc*(fa>AS6Yt*x zs?L)DbVhYRSFRCbwBU?JpZfrK5~hA8EdW)k=;#2dUZ()WL{(`)j|pIp8&2RBJQ*`u ztpHVX^5_7n?z#Z1s{k7$t0wW@F8&t**c20WtpHU!{OAB4>&?r9jl;SHo0tGTS^q8m zNI8XykMmk2vFgAa9l+Z8fF~)yQ%nH6hd&+;z-Cl@vK64}`5hfVHL@m>_%sFB(gg5{ zig$Pwd@2>6ZUv~i%tr+fGt%>t*capvN#h374Ao!Fiks?zt2q_7wppZXepM%Gml8Fo z%vq~d{bAC+JcQxSi5GHF@de&rH+MP~T&Gd-xj_rAjbSNA*=uvq=*GGD)K8-upAlj_ zc-T=9_`^a2=`Of1!?e&|Kl~DC)$NH(!F4(nUlg$5+NR4Sn@qwQo`Em?_|DNyS%MaADH4kwJTUsYa%>kxQnPcoKh0k1)wSU2CA#2w zKm_OFKirl+he~k0oR#Se3M0a zH04q=r4DB=sh|H>_Uav!?t*K8w+a_Fm|W9;{GZ_RQSpFyHSG0oxcbNQxNZ+u;llPj zL*|Yf0j}0mJlJc&rCwXAbW~Fmq`jmr{-3+?{AE0Jdtm~)bQkuzD_MmL>Da0H*T;kF zEGoX+BHv@tn3SWq`uU7*T0L=V)aYi-rRrqCH7r%gMa2(A-@p3;48=LyQ1S4jg}vSl z8}(_=AvLQ;+KVsyGy1dUQgxc(!peYxdX;Z5$!4}41Fp7MIbc zYhtVl7wY@(CT+2U>pUucDPV3dEUJ`pbgmLLpNPA0F5|)7IG6F@ZrXEbVOY8gEgO-jo)cVH`)iWFI<4I|8C(}paooyY`Sp^<^)K>$$sRpX1lRm3_M+m2sScA* zyck>;Q}MSJ_A+fpf9RKKA??K%^BLVN>j^Ajll}x(d6jk!75|VL`9cihoPH|)-lCmT zpig@aslij7%b<_DY4z%@QOUsFw0c$b`vljTNR@QNhSgJNFPsCeOQ^W;Wq{20|G2)- zx1r#|(#9%WSmY-U!IktBa#8Wdz+DgZIul$SsQAaIdA`RYLn(*HS+kdFLn(VHeac>D z&mlFID!8`!FvCi$4xP?b9?x?+cCO7?$#YX_}XFR55u;HBDx(9ajRj~hqNO% z)?w^8{*x^mV8@PByw8@O2c#VfY^K?9imw0Y*fGCtQ$0H>n<+ci@+te|>}YuDr|kH8 zQ29faDUC`ymXyY;Wyb}#+=u6s^D-)N6x7v+wPSvH{`dJYzdcwzJ1UzgJJ$0k`$#*g zmxjuY>Lng8*CmZ&x*Z$w-1iUjW65!WK>vBX&3-wR)GMgN4{OK#=g7aeV}6}lJv%C! zDLXbyRkfpf>8R{DPkQ68stPs_3Pl=bVVX`d-=?~R@Q7=m}E zlI8`L%>~z0;|EX08o&AF=0U}Mkcxa4A$mQf?INUa9^{N`Bg}*!HGXaI15{i=rQS$x z^Po^}+n=)OJ}QgF+5Al?nN&8@hh?8$Di+J*%NB;H=!;}-6QHv1qg3|2FSmJ6+0rDH zErpc+$ca=|fvbv8ZcCuDbwMgyn=056=;_7HkQ0^`c*g zP}whWoPmNZfyTbKZZnnr8pG+QvTGw;#t!`2j%_(29{x5{tUfIDU)X;6<5czs;(`E7^}o-^&5}4n1sen%h@D(QZhOLHgP^+G9v?{V z;wVmE!3IIDE$go#cPVt0dJ8rPN_%hULhc$~avu{b*dQocF?c$;YlU!vuzga-($+qF zPnRqIkKA?RI0LyYf!qx}tbK?A7%M{LVZc`rjnGtfIi3pU7d#w}XZXG1TxCwl=^-#(0 zakgNv&~OpQYF#)XU}#^75<860D*hp2Yio{HhaVc0vh^ z`ekG>zp+W%k!{G`C5#jMF7yv`k6lCLeiTZMmsVjFO@jY-PXE5-?qOqV+S>~DXL;$_ zj~Kaorf`N?#p&WTHS!s&Xc4-qyy->c?uFmSBNS!|<}#CWYV_$XV_oF_PYkD@Rh*?~ zri!yt`{xF4BX?ge3=gGg0X@|8fNS%%G334(p>9T~cD~##{EW>U+3o~#_eZGKk%IkM z#+5AZP3~I}uUl=b;*yvis)KJ`#i-B8JqW_i4;1XrvM-qWhTKDZWJes;+3&l zho^9cSw*jq9;#RBvq0oDazDt0d8n*N4^`%jUF|t;G`X=1#yuiT#eD)i^+tNg9gS02 zsq%PCZ13n_UnlnyL2{2yQCTf@t8Q%R=u3K#du$XZ3U)(vt8vVo>^p?qPbG1NsO$uF z>!j4;K1FYm`xyv~Kwz_oj7r&QsX41w`pG>30w+LVD|O44+S&4+UgUle0$+r{wt7Y^ zJ2zD`c>g)%e%VXzNwI=$XD*9vKabp#gXDfSMa6p(JeL1MMSQ2PVB48=>Vi7tehV_* zgp8ME_9bjPvo4LPg6{WVn|GrH+s?GR;oVx~o|?cJEZBCY?Aqs$V6iw(B-m=Nj3u_6 zsh@cmIp8DQ`Y2Ga?M!e{q8qtq#c=uyww*a9^x;}^e;&e#)^OgoGdotW1LU3)B=?u8 zf^BCeJ~aD37@4B3lU2R$()L=_8&<>1AN&U?+ybwg>2)@(NDqeN4m}>5w-l_2PGf_etgm25*|B{V z)5o}3)oT*dR}K|bmaC1fd?(Xa!lGLarjPdp9aeR|^lsf>k+Ne=3)3gMf<*@Fn%L>@ zAZ5mySX9jxEUIo;Q}Mb7w@Ja8BGORD^fl0Z0gfehn{b=;ccI7HI9S~(^KZ57tm-K@ zi|@&MM}M~y|Ka!qCqVF<$-?yYWHo_~zP_93>sv}C(CM1}pQ%jW(8lx)u*t^3lU0Ae z<*SXYzedW$^!K?-CD8fO{!AmLZ|cH-=28iCF2)t^VEX2$qdC@mNC|FQ3t!&+ghNO< z@Sj0VprdbTVfsf^5_WtKR^zz;aB^-b0YmN0Jl;4>_7u!|qHTI*|V5iE6U zbG!{$;y^P$^o1qtZ>DV#>~CZU_UH8VZSk^(LArQX;g&d#-@ipseTG|B?B=eqiB)}7 z=65a4@@ZED%L=V_EPtC-eFZJ;7R|DaBZ6hDRR8n{yiXhWU01VwA(GCR)JMlG#c=>y z4tHpl&lw{4WQ`Z^dK$+WRz7M_E%)L35I#AH35mkC9R~HRhFAOEPChEpeD2VCKHO60 zt?}G<%)lf*>JgUstMF#kCu3pBayG2`36pd#MxU`Vw*-uCiJUB_E%WxHWH~rgRxQPO zY{~jGz_Xp(;U1zyG0d>l%C84%U2zpm#H%r02~|#9Clkji{8}kE zaV3S^H)V!bQ;joYDKli?RrIt;t4mk-#8y~0-OM@EB5t@z58L@oSF@v`Mp8>FA8u&e za0l8awKnqsq~Nr1XnW+IkvYeYG%<>ufpy!v1gDO36CaWJSeJA71S%3)@}xRAZdN%l z#!kYK8jiCyJN~c%nJ+8&sN_^R@%WVV7!HF@IRq!3+2CeV1Hd;kb*O;D7&JgV+@p}A2{csNds`D#h*=bI0WF1jMZx;7hsbg0=MsVsv zc=-n!!j5~=fSapo2+vN_K6T4!)X;~;wRe_0MuHj=O#fU%==dTH^=z7k@a#0>GDi+V z4SiXh#U4dNlKmfR27$=&j~e>3xTnogG=z@r@*k6-J|qn|ucaOjIIk7FZq++_PX*NQ9E!0^S zs1Hd)7kUJssr0X%*Y^!LflUu!aotQ&nyzX1znZqYb$EG?a7)99Ijt@>O>=NK!=m2E z&kxG~8Jix+;(A6q3+kG+>i@Op)v*V+<#ytV)Br_^58rB@p*z&{%TsT9vFSl9uD2!1 zR*NAHcToPOL$ayE>&jtGuitfFQ*3%Li|gl((sVOL75?9wj@aQ3I<>mI>5^$f`s@m< z!KR;QaRW>3Ywgxl^&wfS&bOLwP3i!U^X2b}_AbpI^#snPsyhKg5Bp7sU5RpDU~$j; zO7=uhjwM+A-;opAJd*Q*HB3(S^L_c5FoeZnYP%BS%AlO5f}Q*C$Pq(u-a{lO(-kJi zY`7JNa$aO{!=uUR^e^wM(B`3>XlX+}zCPg*)MaCFqa0DXsjGu;691IHn|jzqO;J~z z$>M2`^Q3E!Hts5sHe}F*H#VTIp)77}sjEqF_w`f4eV6axj-*RGuWGuYqz#!g{i6=3 zYZ!~ON868s-T$sG@x-m_ik3Fyp@pZgUn{=E;wF{44h8#b=)bIMxI^1cez-G}BX}o4aX5>cri*fXjkIfi{+;7%v_x*n3Q z&lK(W3Qrs2u`k++x?W*%OQK!B-m+=iSN`KGlCIG8kaYdW71R}$He^W~y55gwaqmk} z`fIW4-_;em9+IxFtwCL3X+zvceb=zR#;`b?xQ%>1F7f@lxsOwc0_eH7w7<@)w zXA9RAbv{d-rRBDvYr+PTR+luSNkI)^2`Jvm{BRR$u(P-?T_yKfP{SsJ=7;+(pN6kw ztuATEFaU8_qPPWXZv!V*v%-|*l<)G(37{a}jH4?As|pYr#^ZzioSX*d(=hp+?` zz2g?uM-7u$+;(3S4STJcpYm%sV9@H4hMZ78ge9QZ^lqE0sNr=Mx6>6xL$XctQ+^E| zlUA2BTnx@t;Ph^v=^gp=>tq(U%MzvOL%~h>uT4jMbWS&iH_g`s;pLsrRcLtucnEKu zuP1+p8m6$gy=5<>Zz?)`d6Q|?{BRBP4V=rC!?|T<&K=h%x-5(i))F+YJI~4OLel}f zOZdC{GP-)1kFbJzsB0>VOD=VI;&5K*3Z3pDUB8($5u6jcLWcq8xGshZhx1I3*g7hg4-SA=UP#6BXOPa0ZJ`3tPZPNS%b(NZ?CtbJ#F5HfE;WCAAPUs5F zS5beBag^>az);2^eYbW%UDH`yW~pN-s4Fy;64VtopQZJe);|BM^;c<5=sG89JlDm4 z#IV$U1Po<-s+H6Lbj2#BpD8o5b-Ix}I=d ze2ro0;|oKl^acC)>yJ5DE=SQ7nm7&V5-+Z~4z0g5O&S-yze3Ygr0cpflCG2%i+7?f z2aCI5E{CqmK^f)O6`EY+y7)RiHQx%Z<12aL2kf|AE3fklEUu}IQOY4uto+bAiJzF^ zA1*q2$Az9lNnl(^pgw}YwlzO_0tL>+g@)x3C>F8&Gl8K8QWA)(7_}a(9zkH!jc@Zy z+dN$ESRR456s^a~zl#^Uw7Mh^*HUT%Yex{+WLSD@6gZ#7*DQxXb!pK*>%q_?Dhb3D zotnVe}$o+*e7{W_< zf5kb&IWfL0xx^>xZ48&dYIR9h-!k`qp6bWG_~sncwS>j@i+0?HUSo&$V}eQZtsP%H z944IOy7)5OaE``HVat)YF1|vy)bYhbl#s=9RiP<`pe|ha9j+mI zf0->n-tiL({C(kH!BuL^)*=&SdH;E@koae3ARHRG*1{EO~za@BLWv z8Lxc(80xc7KQ?uR_gNnc@3T#Ya8C52TMBV_KaFz*Lu<7! z_uU3jbW^g21>2$x9NvLZ=^Py40lB*#u(J3%N(@VyYGz5(F%CDaFZrhNDNDE{U9DZM z5ei$ugK=5XTM{Zasv)?1u{MU_!meK|$mWc}P@X9c2>rro)$@3={pLckF)Ms5X^#ZQ z_L$J}%47#zNwL9^C-7KhiS-?D;|CjDY>SqVH`<3kLg#?Pe_{W##D=(({Hh_e0G)z1 z^`m7ht9;lE{w+4x`=OazHg)3SbX%!V*e5z~f0?iG=b^BrB3yek8@-SR3h)S5xO76t zJubsA*gOMV|AV((p*nhuwS_H+$G}fD@QN?X=YdyHUEyuF!A0;7yVT$G=D)Sef73g5 zs>B!d@RiE3)9ki&XC|@4cDOm;;`h0p$H1^mg~h&Q57t^}`)tAE z>sjKHRu((O$70_J)mma{e(}?aEb%FH_J*6qzHbQDdS80pw|Oi}>}Y1O3!E(W!%(f| zmXQa$Jj)V0yIAboSZh_N)+%Y+`alzw*v-IVomg{SsMg1hhkRFxSYi)sYndBvzHQ;# zY(=Aw%y4tDoqu~)VXiUzXU%&0>xk;Km&?|JDzC^{@#pb)>#}4!?QuI(5aT zDaJ6dI}dcMMe#Ca!^HLtAANv=Zpwy|kH0PBBDf z!^F&ItE?4)NM*vrex5$Nnuum96DBsPQJuR)NK`xyCSNl1ZN`ufeK0hR2Zdm09Qa3> z)NMv64_kQ9$P!;Ou*B7PAWw1!i(a>7&#jce5+^!X)k{wBPqhb&rkN^zS7i!Id|d(m zNDKI9nuA5NOq;3?U&a!r+Q2_i2EQXzcIGYsILf)3{?!CLcOo6n4UlO@hV zbu+Bsf6E;#T4;l~6Z=`>90mMyu;^`ju;?Ar%ad!SvBbI9);t6F-wUOY1hzJ+b!dFNlQ1Rbt$%}@LF36{7>0sp&J@ULq5ju0gjE8Hym8|4NF{a zhk{%?92@Tl7QN<}amsp}C4PprhGVUXLHWlfn`1h**vAsTutLEYESeH*>)3SPu$^0* zvBXU}D0s~V$7VW%4(G_Ot}o$v^cA+X&;rNa2sxbZaGtNYizR-IZN2M)V+%q>i_9}u zZ9B{ow_;l#Vy(rYwwCxFUZ;D6C4MVG!D_7aUZ|}Poci`ZPGE`Ku&wnvIJV3Zl(E9` z>!j6FS>lh_)<&%LQK+po=1QyPpu(TAtu0t?g$mtuszuP z<)_4t$m8=+l{#9>tjgW4?>>0HQ2Y|TUdG?84;3|V-8sJRG4XTu)v>5asHmy$(zcB+ zvBWGBIy0~;EzCg~EqsGr6Hwuw*v`FJ)HYPq*7sto_wb}TZb4@T2>sG}m4~chzo%ZM z4Tks5cJdxLW5r)#cZB`Md*ysPWIS!v`ZVJi-GupL@%ocv#-E8dK}L72HH1nh_d{1% zVm@kI=!T5GreLkUu1bZyy0b*T0vS)C!@+W}=y~f_Y1msVQIQ~{n-wx%l7dCUEnB|Y zJb)!$a6(2O3uKJ32aCoi#l4T>rT?-EG6td3iJ`V8`Yh=WWwFGo*v>E?WXv!GYt3+e zV(BQc#Ovs6v=jDBq5Ie^17u9VxJ0~hVd&Z-ESqjFm2bh&B=&KJ(T6^2`aP(j#~~zY*ZUlsr8`sT>I2;(a%HL?+LHP%6bDRuU@@!f!Udgu}OTD4Ml~X=eXU0u7g$SY=A3& z`+`MRoVLj^^WlnOV^w}pS2UN+_11J zV|;KmE>slnerNp~JK$=Jk5!rAgsVxeU@fC{&+IiRaJ32+P1C`tSq_~Jt{Nm(WsV(g zO_%Z8m28PszJeL9z>deg;XXU7B4YxX8&1^;i@9le^U9JqxPkH96&m8eN2eWqESBkx zHd3ZR@gyAOTz9kBShH3uwt^Jbc=M}J(A|nPoGiAI5-h6Xm@w*S1IV0>MX~rV-W@E` zJ0^`^^D{HFkXdYH1B*=z6(w1!?A-hdGqki}4J@u1YOAKN(bM}@F+*zwYhY15Iq1+N z4g8=^M`n1`!D8>U!o_$q-^$0)bzKE64p#76%t15Ucu9h*mrZIlgz_JaS`TG0Cowk) z-d?WW(i%hPtJSLRO}Ki=0yiHuLorjdTE#K0eaiIBaP_7YZa%Jq;)?EIQ6*RXxiML2 zjaQ$s3KYkMisEfYCbJt*TtSALuS!syU=P+xG`+EWSS={7fv;dJf%}q%*a+P>&&GWV#Yr}}Ia~qXMt(jQ-(iBAqjYfc3+w^7+CYJuqh&a9 zuaoyje-~VRRDtXlZJLwp7k!6JejK%B3gyan3G%iD zYvpZoEu1}WIi!2=w2)kochRTS%DZIxY3%g^C~jziyzd>5|Cm!N%75GtXWiWliW?iS zh7R%*Ey1Eh$EHo@6;Ry72l?&XkdId?bu;s)D2w*RJ_f}PAe~@?e2XbqWRbfc?Tc-h zv7O0S)X5es>TGDYW@L3Je%J~5Pgo$|7?M%VGBJ<63&pLlMn|mK-xaL&oav;rd@K~V zHA8+9wl~NeEE?pi`0@{Jptyq$^7~1Ue^AR>*%r3Dz3ox~q5H z22k7?Yt=-DGjzeC8A@vPnvX(pR~c&dPd7pSoKUSf?hBn8 z#6q#vjy15>Tq)>qo_+T08T+9acV+%;6QsXl!D_|*t&snQ4-TxrBLIrW*r1>l-v8%W z`L|c_TT?4!DGtp^R*~iXRju=(c(?=w7_^_QvuQ=yI^WdqRu@1n?u4v>3$hKCV39$( zR`cE=klWA)S+^XJ{e&x6WU(dBoqrs1AJ9Q|q7AZp1>4HD>h4>0mkn|s!FJk9kZm#r zYnfbG2VZIfx$UqfoQpFe+w2&zZ&)kH?c#u} z9SUS!4DO?>ONKM`$2Nyts|?u>njkxP2}7vdHGbARkoz2pzu<=K>V}}h>duSJTKopN zFPb4c#tPX_xr0Sdn^(Jcb%5NLQ9?B=?qdxW^)+-Y-t!jZj>8%qWXKK_@EImaTGi-O`KMTXF z5&!m!5C5T;;bbY{HwnLuRCw8LJO0zbCBKV*+h=2jy{Kh`#J?rujK<4m`bl>D=CLwE zs*fcc_wh2X5C5T;iDY>gy&T4f8#5k(lmLJyVhN=o;ORud5)fdjkpz68Ld#(7^I;TE_;)M#U zjL%Yr99OU?*YHv1tRLapeu-5$=Y$(|WNf+eCpdy?YGRdEy7{*sobbn5^jH}37%*SE zJn>Vc49wtn!SQEtL*d5THn@u8pu>9%`0ZLU-c?6i;aqS`$Ktz5K4s=;$hm|!pP?>D zx9j+JUXsuV=c-ciD>Gctfilzthb=PycGU+;O&jd#Ol8+~5IAgyJ#C%5?1m2lP8S@m zLSAl35YXG;z-kwkC4mbH@Ic&K!;Dh$_$_Og3l5ydGALdkv&z3&;CIQ*%Z6H^aFzl` zoF-l`9>3Xf*6L}6mkqQ)@yinYj&~0%OTY)opUm((bMS8lANcXvZ1*LZe>396BVdBv zb}Ro@9a|ry!0s00vj$$BmOJ3k4l^&qt;w5hgMCxUvX%q#e#FEFXQ+ibSZ2pD+YmRm ztZRYXB_`PWu9JT=nIN|UCigjwWt3I{Q{gdPMbrYBIN=?S&p5{iQhSYktn%{)rZf7m zUIo2@Rqlkdi8b&WT-m2%Ro<6b#m>Ae=>Z%)J%N4QkXkTf8Cc--WII~s1gxy`=k~C4 z6g>Zv$azJHC@|+$rQr_lrL~#zmxU#Z=z&N3cmr34X(Fnc@C<59mOMekb-WbiD_Ack z--78P3~)Klf|fVV$SmePD_s7}hTpFIg5OeoaPfr1TX@O|sb4tZy5i#Bp0Pvf83SB6 zgDtS6PF5CsQU{kkWZA{cV)0q~!cE>nQa3D{iRZ(UX8x@QmJM*hh23P?%fMnAnc?uW zPF`kJSj^uhIDOQ{zx9^kD(=IRE^47Kj%w_v`mCFm^_QV|tsPF|R0)0?;D+LwJ~(~Y z$G;82LF!c;i7a*TZ_nG|YN`QF&s6xgAy~E%d-rt*|7OFoIaubD__twJxN331nROQ2 z_N&cYaAObl*>w{y8zI4!V|LiP(aOJ#^udiHEA0K6w7eogMnf$7nZAv2LFQ6C=64ym zpu*_QBpGcK+>kd^&26R;WZb zN}U8wI-@Y02o|K63TDRpWj-COap_K8`I-qbVqJn$r-hUDn)%eQYDbg9EC~-*oFG;? zF-4q|;^Nc9Dn}E=ENQ=!PZq13m@ZB_;!QL@YYHlX7+mgF__iDT6=N_Ls!uFt2lB#(j5KCA7B3usano;;sOoMX5n zPw>A<*)Bf$ta4)dIq9f@PeH33T{l_MF$ceP3QnDvPCBkI%+|s=!0E@XR_@P-7wJ}t zY9}VClTP7GV;d|bJD7{5Ea^0E^P_fQ2iJ2Q^u9U80vCI^gBgmxIddhE8QWnm_K-wv zxQ_Q0{>HqdWyO0dev!nCZCrd7S+iVii(pxyiM(?gGq!T@sc6;mFTWhYGWM0;um8b} zkJ$KpwrY8!sT9F7W?uVbv}|GFlj5r7B^F61`z~S3L1r|Y_{_R$d9tA?f=~Eb8efYU zACUO;ylQ#8hckku?l0xQdS-0u;&c3}rI;u;K922JHSJ=$+=$5^aLQb@6O-mfi;hp6 zYup_&N;f`f=hNpZCnnI1Pocl(R4!VUE?4$-e5G?4Ek`>+O{8=QO@y$lh?ahn}Tzpzx^LgGKq4l`>U;o*Z8Rt9r+`MX;-q{qvvWhac zGU}Xb;}iUvWiL5`W#vy(-|xhX4hw%vpjz%X^Sc@ zY=62PGtQ9s`wG?a&>y}CJ}X=~e!Y+xr@8n`57lyaLvsYn*k2BuzQl}E9Q@6R=JTUS z+aA;Vo$9-o@pT)2{i0b0BKc&_;f1G}aiWgD!%;2wDpG{jq3iRfdNQNk$6o|#KD*i? zSnAr>of^xG<0bw!NwpNOE{tQa_DZ$3c!9x;qYeBehH58XV;IL-S>hU#%88d5#;5Tp zUT5PR-lvWnlY=ees8BoJpKJdJ?w^qgpGwy(^X(BV6XcnT&obi(na{^-meXAkEcMGO zualVZB{!ecS1tD)k7QZ($%E1)W*mw-f00znL+7LjKI88(4xi49FPi!51=aGvFQNSt z+M>AC>yjMI_=17Iqfjl=t~et2tTL|V6XTe1kiuVdXszRLRXf*1J}a-^_u39-93b@Sqgk3FS;ns2H2n=`v>NyuB-L`a!4bh{%zbm4~jb>TT5WzCmJbL;g%vb@nr@J-FW~K<1F)Q~aS7F8&1AkehS+;OQuw-w4SK%Zx z>J6kIm#1cZ(Ad%tGJx-x%dq*4Dm}$f%h(Xxxn(Y zS~!RE&N$g3I9$v$nr7^H5Z@nTZFP!wJc^5cRxxWAiLDh z3=G&gxi(h+i0Nn8Z>Kub&vNr=C*Jz*1`cJxqQ+Q#71FqjBD{5`Ml`AqjjALOEs1kQ znkqi**E?v&P;=RHQ7?44n(5y#l*8o}%_APK=yIMCrm|m)nK9^c4b#szm&4^%pXQTX zzGVn=`JUPKA9T5v>EE)J!{v3&qfoin9_Dh>?20Mqavjqzc9+BDjgl&tIKx~vyBu>1 zU4G2;OXPC6yd`NeX~UiFFqemH-&{kNE~a-Xx9<{X@=CZ|Du=mzbHX>@qsvd2ewpF6 zUGnKb?L#V;D`76vH@z_mU9M;P73SM_iF1l2T&}W)x%}y!#v{??r%b=fdHXJLVzPwG zwe~QVXQdWTq07&hey#hqUGmw@5-vZL!dxz%dtoiQ{G91O!?WNvPe?vRTEgW9Uzp2f zNBiaG$lzjcMV+}XV*-{YH@{##!;T-I=u zaJfwibGf){wK?eWOQ!!pR}PmoZ6#d(p4pW(Vro#*9@&~5pZxe6x;>KV8Xg+DfPsm{|TQ1aPpvxbb-efD1>^YYuZ+ zsqf~Y=<;W#&y~vIvTaF~1x+cFEtWmFUZWJIrN4qe>&t=T!`$s9T%MQ1T-I6BJP%#&WcmxX+joiY_e!|Dq=dP=R@MFky2Kysxa_!Xm;5DR z371#H&+)%apNv7564PIG-M&kF(^$ggbtz2c>X{Y^UH-=OH*~k{lE1Dj;qsO*%q8?M z|`zBvZ5)>Wpe)y>!Qm&ETN*U z94@<ixDTmA6atW7rnZjH?yK-Mkba{{^++{0=%f2O5)^UWn9CV<~Hgx$1OQ<82!)5=H zD(ktzTt4aUScoo@SwcNuIb05Km)P+7QkY9itsy~gPbK?HuQzLd_A+> z{pd24B{VXX!{zh#5-!n2=yv9b9eWjBdRW5!mU6fpQc`6zTbRqE%lLc4iZV-R<|>Cv zTS=7KCT{_$8oy7aPy2c>ej9A+)C;VoQYE(bQQn}sgZSV9ZmZM)=aC`!0&DTTRw z&EAl2_#u|iN_X2X`9h2mF5CFRTz-3{8KBFbP3y3Aq;11;s~%hyV(eBKu3@}pIQi_m2@ zOL*Q@4wn-wR6H}e|ATgf3k$3){-u@e2};#P}@kHr4{)g)pa?X=bYV* zlbB(XW}JIPMh+LiYjye1Het9!+Zt?o{qb*p#ioxUEk$X1cd&Z-o0fbfnjRS(31ZW2 zSJmVr!DB1|Gme+I;|8~SJ8qNsl)veaY})Fvmawh%=Tu&YO&`aFq0yTD#rMyf4#}pb zvHwE*`c3!2S=jUmT!m_hven-Iq3MupYI>p+*7U@>55Iy<<6_lGx+qQmX!_?{eK>fW zVAHfbR^4h$@wjnRa%XJ%BukhU?Fi3u{9jFvmAT*0G)L$N_gJ;Myy;u39NJc6)4e;~ z#U~C=v4mOCwt8!@dbGnVTGRZezQUX4za19Z>Y@V`+hNnES%SkJrNh5>YSqizH2;M% ztuEhczWzDX^fQ@vEW)PGumoHp8tLTHmf>+1rltkfEk~eOI9uHvJb%DE*!z zcwYZ$)0CIL>12mimzp+P!e@$ZT3a*8dE)S3Vz}Tp+)iA>_t`WKo2GT*{8c2rQPYx`;#yv* zwQCUH{2VMVr9n%6iHqJfKfJy927Z4CU9LE{%*?sa)su7h`VhI$#hi2VoSX~Ymw1=( zkR6exi-+u#7C6GNriqt#QZ7sQNGZ90f&xPu8WQ-ZBV05IR9_!+UK6OM5-47lbN;{gU=>-bO9JEEL4onMvI2j5=WKlxSillC zm!}6?1RDtn6z}N&Z-EtpbxB~wkibf=vI1Y*wPi92^s|I--M77qd1Rl~3n77u6wXE8 z#mu1DkwB&ddoU(~z(VQoNhq+8C2Tj`zCesh)EWs1^ef?9RDl@Xr`d6VJTy=}i!n5? zY!6O5Kh%c;11v$Z-@ZVMsMHz>2^0$0okVjQ&c3dEjPb_nN9${$Sc$Nuu6|saA>uq-&5AD=^ zhjiU4!9~->LnO7jTo;dzEv;*JZRxQV^%T@~o+TWzMb@RR3F5xE2D)#kYiKo&U-iO2 z|8<9Ah^}Ufx+vbLw61i$dETJ8{9<>3C1gcA&_bhupe_u_(tK7ZG_ZR-!tM&=$3Js9UtqTLoG=E%|ak*1hMI`$9AJPNyWI*VN z&L0lm8nk5?Zq_A{2#DIlpDp>#g$?pp4xZvC7@a|Be8OTnQnZ9W7|p>G{*+49)4IEF zECo!IP1TdMZoHpIT~Ml?P^3pFF%ZUhge3;T=#H?&KuH-so)}0CU*pji7`_%3cTpiv zOZdYhE->Mbh*9IQ7Cc5REXpF3{)fj`gwp@;$cj+3_naV=zThsdP7wZrFT) z7M_<)cVlU+9H!OlWz*g4SYEJ|mcW<&RrD^t*$rqNebs9?s;z9|qfVY(NMBh_JN)yf zv>3l^x|;`9{q`ZP=r8-L=-<}(VhM!>l>JrodnX;k{g1H)_^aq@x*NV;K9uf;uaxKM zZYU8HkNaUf5md>v8o%c}yOx$0mQAZMxO&Cfe2rp+v>LCybNn@0=vbv9rn{&^Qw4l8 zF|EeJMqgB-)sj`pq}A9uHxU<>;*!fM)#XxYHTsXrNu_n0Wz%W|3P)9@#h+!YVh@tp|l!&C1fbA244eNHm$}T@`^LGoUd$JjoPErM$($VvS~Hu zFB{R7FD#6ZR>QjZxmWn=#0Y6MOa-$W@+FQD(rVPac^KCp*Oeor)oA$5V-xve%Lr*T zwiX9))#AN|u(TSu3Ne&cgVrBnT8*%khdjiS(uVO^F`hQ8RJyEp4SHN)+|(5zUDl=V zZmpx3oU-Y%@*T5|QeaQ)6kn-ySsOlE%P2aiY`Ux^LvCPOk6?y{1E|e7DwHmZM*)S>W%2l*P`WIm1@9oibXh#+CzLLWNBdy9 zEH%LpUz5)h3nem6?)g!ypN@rfTF4aKE^ryJ_gvl#bo7kh+sLyecO z&Em_nBcvO8c6^ule64qcbVIdoj>aYMm{+81x}m!lKI!JG&LgB7+Tiod<4e~gq#Jsu z>mx;c{d(K&NgoI(^XP&spL!=@k47+%- zRiTKpDw8m*^~;-E@nEe83Bx9(_Qti{A2=yt*dL$a7>pS)NuK|68ew9XtQa2gp%Nb= z@xM56#go>6qn#wl+e^~_I>reu=J{}uqdIaAHLlGAz|q; z2%jR`qTmi`dMJEWaAH~tbRv9KaOrlnE``quF2kpC6zVECT*ZVRT<%Yyu7b;UsT_s6 z3ht;u^x(mH~%q86}jmOO0jR0Jq$49n=#F@~QZsar0PVS%unRxQ*R?5iBcgZPuWYu&iWN zeX@Fn2$r#D2IWu}^Rc96*~}EdGRFJZ!25;I7=vcn!V$reJ^J_^(=2+QlLr3l?24hO1gZN@`)1ea){zxeb&+es8�-S+yuI~B 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi_core.v b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi_core.v new file mode 100644 index 0000000..d26445c --- /dev/null +++ b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi_core.v @@ -0,0 +1,230 @@ +//************************************************************************** +// ************************************************************************* +// * LATTICE SEMICONDUCTOR CONFIDENTIAL * +// * PROPRIETARY NOTE * +// * * +// * This software contains information confidential and proprietary * +// * to Lattice Semiconductor Corporation. It shall not be reproduced * +// * in whole or in part, or transferred to other documents, or disclosed * +// * to third parties, or used for any purpose other than that for which * +// * it was obtained, without the prior written consent of Lattice * +// * Semiconductor Corporation. All rights reserved. * +// * * +// ************************************************************************* +//************************************************************************** + +`define SGMII_YES_SINGLE_CLOCK + +module sgmii_channel_smi_core ( + + // Control Interface + rst_n, + signal_detect, + gbe_mode, + sgmii_mode, + operational_rate, + debug_link_timer_short, + force_isolate, + force_loopback, + force_unidir, + + rx_compensation_err, + ctc_drop_flag, + ctc_add_flag, + an_link_ok, + + // G/MII Interface +`ifdef SGMII_YES_SINGLE_CLOCK + tx_clock_enable_sink , + tx_clock_enable_source , + + rx_clock_enable_sink , + rx_clock_enable_source , +`else + tx_clk_mii , + rx_clk_mii , +`endif + tx_clk_125, + tx_d, + tx_en, + tx_er, + + rx_clk_125, + rx_d, + rx_dv, + rx_er, + col, + crs, + + // 8-bit Interface + tx_data, + tx_kcntl, + tx_disparity_cntl, + xmit_autoneg, + + serdes_recovered_clk, + rx_data, + rx_kcntl, + rx_even , + rx_disp_err , + rx_cv_err , + rx_err_decode_mode , + + // Managment Control Outputs + mr_an_complete, + mr_page_rx, + mr_lp_adv_ability, + + // Managment Control Inputs + mr_main_reset, + mr_an_enable, + mr_restart_an, + mr_adv_ability + ); + + + +// Control Interface +input rst_n ; +input signal_detect ; +input gbe_mode ; +input sgmii_mode ; +input [1:0] operational_rate ; +input debug_link_timer_short ; +input force_isolate ; +input force_loopback ; +input force_unidir ; + +output rx_compensation_err ; +output ctc_drop_flag ; +output ctc_add_flag ; +output an_link_ok ; + +// G/MII Interface +`ifdef SGMII_YES_SINGLE_CLOCK + input tx_clock_enable_sink; + output tx_clock_enable_source; + + input rx_clock_enable_sink; + output rx_clock_enable_source; +`else + input tx_clk_mii; + input rx_clk_mii; +`endif + +input tx_clk_125 ; +input [7:0] tx_d ; +input tx_en ; +input tx_er ; + +input rx_clk_125 ; +output [7:0] rx_d ; +output rx_dv ; +output rx_er ; +output col ; +output crs ; + +// 8-bit Interface +output [7:0] tx_data ; +output tx_kcntl; +output tx_disparity_cntl; +output xmit_autoneg; + +input serdes_recovered_clk ; +input [7:0] rx_data ; +input rx_even ; +input rx_kcntl; +input rx_disp_err ; // Displarity error on "rx_data". +input rx_cv_err ; // Code error on "rx_data". +input rx_err_decode_mode ; + +// Managment Control Outputs +output mr_an_complete; +output mr_page_rx; +output [15:0] mr_lp_adv_ability; + +// Managment Control Inputs +input mr_main_reset; +input mr_an_enable; +input mr_restart_an; +input [15:0] mr_adv_ability; + + +parameter STATIC_HI_THRESH = 32; +parameter STATIC_LO_THRESH = 16; +parameter LINK_TIMER_SH = 21'h1fff01; + + + +// SGMII PCS +sgmii_pcs_gda_001 # (.STATIC_HI_THRESH(STATIC_HI_THRESH), .STATIC_LO_THRESH(STATIC_LO_THRESH), .LINK_TIMER_SH(LINK_TIMER_SH)) sgmii_pcs_gda_001 ( + // Clock and Reset + .rst_n ( rst_n ) , + .signal_detect ( signal_detect ) , + .gbe_mode ( gbe_mode ) , + .sgmii_mode ( sgmii_mode ) , + .operational_rate ( operational_rate ) , + .debug_link_timer_short ( debug_link_timer_short ) , + .force_isolate ( force_isolate ) , + .force_loopback ( force_loopback ) , + .force_unidir ( force_unidir ) , + + .rx_compensation_err ( rx_compensation_err ) , + .ctc_drop_flag ( ctc_drop_flag ) , + .ctc_add_flag ( ctc_add_flag ) , + .an_link_ok ( an_link_ok ) , + +`ifdef SGMII_YES_SINGLE_CLOCK + .tx_clock_enable_sink ( tx_clock_enable_sink ), + .tx_clock_enable_source ( tx_clock_enable_source ), + + .rx_clock_enable_sink ( rx_clock_enable_sink ), + .rx_clock_enable_source ( rx_clock_enable_source ), +`else + .tx_clk_mii ( tx_clk_mii ), + .rx_clk_mii ( rx_clk_mii ), +`endif + + // GMII TX Inputs + .tx_clk_125 ( tx_clk_125 ) , + .tx_d ( tx_d) , + .tx_en ( tx_en) , + .tx_er ( tx_er) , + + // GMII RX Outputs + // To GMII/MAC interface + .rx_clk_125 ( rx_clk_125 ) , + .rx_d ( rx_d ) , + .rx_dv ( rx_dv ) , + .rx_er ( rx_er ) , + .col ( col ) , + .crs ( crs ) , + + // 8BI TX Outputs + .tx_data ( tx_data) , + .tx_kcntl ( tx_kcntl) , + .tx_disparity_cntl ( tx_disparity_cntl) , + .xmit_autoneg ( xmit_autoneg) , + + // 8BI RX Inputs + .serdes_recovered_clk ( serdes_recovered_clk ) , + .rx_data ( rx_data ) , + .rx_kcntl ( rx_kcntl ) , + .rx_even ( rx_even ) , + .rx_disp_err ( rx_disp_err ) , + .rx_cv_err ( rx_cv_err ) , + .rx_err_decode_mode ( rx_err_decode_mode ) , + + // Management Interface I/O + .mr_adv_ability (mr_adv_ability), + .mr_an_enable (mr_an_enable), + .mr_main_reset (mr_main_reset), + .mr_restart_an (mr_restart_an), + + .mr_an_complete (mr_an_complete), + .mr_lp_adv_ability (mr_lp_adv_ability), + .mr_page_rx (mr_page_rx) + ); + + +endmodule diff --git a/gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi_core_bb.v b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi_core_bb.v new file mode 100644 index 0000000..553fb71 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi_core_bb.v @@ -0,0 +1,152 @@ +//************************************************************************** +// ************************************************************************* +// * LATTICE SEMICONDUCTOR CONFIDENTIAL * +// * PROPRIETARY NOTE * +// * * +// * This software contains information confidential and proprietary * +// * to Lattice Semiconductor Corporation. It shall not be reproduced * +// * in whole or in part, or transferred to other documents, or disclosed * +// * to third parties, or used for any purpose other than that for which * +// * it was obtained, without the prior written consent of Lattice * +// * Semiconductor Corporation. All rights reserved. * +// * * +// ************************************************************************* +//************************************************************************** + +`define SGMII_YES_SINGLE_CLOCK + +module sgmii_channel_smi_core ( + + // Control Interface + rst_n, + signal_detect, + gbe_mode, + sgmii_mode, + operational_rate, + debug_link_timer_short, + force_isolate, + force_loopback, + force_unidir, + + rx_compensation_err, + ctc_drop_flag, + ctc_add_flag, + an_link_ok, + + // G/MII Interface +`ifdef SGMII_YES_SINGLE_CLOCK + tx_clock_enable_sink , + tx_clock_enable_source , + + rx_clock_enable_sink , + rx_clock_enable_source , +`else + tx_clk_mii , + rx_clk_mii , +`endif + tx_clk_125, + tx_d, + tx_en, + tx_er, + + rx_clk_125, + rx_d, + rx_dv, + rx_er, + col, + crs, + + // 8-bit Interface + tx_data, + tx_kcntl, + tx_disparity_cntl, + xmit_autoneg, + + serdes_recovered_clk, + rx_data, + rx_kcntl, + rx_even , + rx_disp_err , + rx_cv_err , + rx_err_decode_mode , + + // Managment Control Outputs + mr_an_complete, + mr_page_rx, + mr_lp_adv_ability, + + // Managment Control Inputs + mr_main_reset, + mr_an_enable, + mr_restart_an, + mr_adv_ability + ); + + + +// Control Interface +input rst_n ; +input signal_detect ; +input gbe_mode ; +input sgmii_mode ; +input [1:0] operational_rate ; +input debug_link_timer_short ; +input force_isolate ; +input force_loopback ; +input force_unidir ; + +output rx_compensation_err ; +output ctc_drop_flag ; +output ctc_add_flag ; +output an_link_ok ; + +// G/MII Interface +`ifdef SGMII_YES_SINGLE_CLOCK + input tx_clock_enable_sink; + output tx_clock_enable_source; + + input rx_clock_enable_sink; + output rx_clock_enable_source; +`else + input tx_clk_mii; + input rx_clk_mii; +`endif + +input tx_clk_125 ; +input [7:0] tx_d ; +input tx_en ; +input tx_er ; + +input rx_clk_125 ; +output [7:0] rx_d ; +output rx_dv ; +output rx_er ; +output col ; +output crs ; + +// 8-bit Interface +output [7:0] tx_data ; +output tx_kcntl; +output tx_disparity_cntl; +output xmit_autoneg; + +input serdes_recovered_clk ; +input [7:0] rx_data ; +input rx_even ; +input rx_kcntl; +input rx_disp_err ; // Displarity error on "rx_data". +input rx_cv_err ; // Code error on "rx_data". +input rx_err_decode_mode ; + +// Managment Control Outputs +output mr_an_complete; +output mr_page_rx; +output [15:0] mr_lp_adv_ability; + +// Managment Control Inputs +input mr_main_reset; +input mr_an_enable; +input mr_restart_an; +input [15:0] mr_adv_ability; + +endmodule diff --git a/gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi_ngd.asd b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi_ngd.asd new file mode 100644 index 0000000..02edbf1 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi_ngd.asd @@ -0,0 +1,2 @@ +[ActiveSupport NGD] +IP_1 = LSC_IP_SC_HT_SGMII diff --git a/gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi_pcs.v b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi_pcs.v new file mode 100644 index 0000000..32eab38 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi_pcs.v @@ -0,0 +1,476 @@ +// Verilog netlist produced by program ASBGen: Ports rev. 2.30, Attr. rev. 2.70 +// Netlist written on Tue Apr 30 12:09:53 2019 +// +// Verilog Description of module sgmii_channel_smi_pcs +// + +`timescale 1ns/1ps +module sgmii_channel_smi_pcs (hdoutp, hdoutn, hdinp, + hdinn, rxrefclk, rx_pclk, txi_clk, tx_pclk, txdata, + tx_k, xmit, tx_disp_correct, rxdata, rx_k, rx_disp_err, + rx_cv_err, signal_detect_c, lsm_status_s, rx_cdr_lol_s, + sli_rst, tx_pwrup_c, rx_pwrup_c, sci_wrdata, sci_addr, + sci_rddata, sci_en_dual, sci_sel_dual, sci_en, sci_sel, + sci_rd, sci_wrn, sci_int, cyawstn, serdes_pdb, pll_refclki, + rsl_disable, rsl_rst, serdes_rst_dual_c, rst_dual_c, tx_serdes_rst_c, + tx_pcs_rst_c, pll_lol, rx_serdes_rst_c, rx_pcs_rst_c); + output hdoutp; + output hdoutn; + input hdinp; + input hdinn; + input rxrefclk; + output rx_pclk; + input txi_clk; + output tx_pclk; + input [7:0]txdata; + input [0:0]tx_k; + input [0:0]xmit; + input [0:0]tx_disp_correct; + output [7:0]rxdata; + output [0:0]rx_k; + output [0:0]rx_disp_err; + output [0:0]rx_cv_err; + input signal_detect_c; + output lsm_status_s; + output rx_cdr_lol_s; + input sli_rst; + input tx_pwrup_c; + input rx_pwrup_c; + input [7:0]sci_wrdata; + input [5:0]sci_addr; + output [7:0]sci_rddata; + input sci_en_dual; + input sci_sel_dual; + input sci_en; + input sci_sel; + input sci_rd; + input sci_wrn; + output sci_int; + input cyawstn; + input serdes_pdb; + input pll_refclki; + input rsl_disable; + input rsl_rst; + input serdes_rst_dual_c; + input rst_dual_c; + input tx_serdes_rst_c; + input tx_pcs_rst_c; + output pll_lol; + input rx_serdes_rst_c; + input rx_pcs_rst_c; + + + wire n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, + n12, n13, n14, n15, n16, n17, n18, n19, n20, n21, + n22, n23, n24, n25, n26, n27, n28, n29, rsl_tx_pcs_rst_c, + rsl_rx_pcs_rst_c, rsl_rx_serdes_rst_c, rsl_rst_dual_c, rsl_serdes_rst_dual_c, + rsl_tx_serdes_rst_c, n30, n31, n32, n33, n34, n35, n36, + n37, n38, n39, n40, n41, n42, n43, n44, n45, n46, + n47, n48, n49, n50, n51, n52, n53, n54, n55, n56, + n57, n60, n61, n62, n63, n64, n65, n66, n67, n68, + n69, n70, n71, n72, n73, n74, n75, n76, n77, n78, + n79, n80, n81, n82, n83, n84, n85, n86, n87, n88, + n89, n90, n91, n92, n93, n94, n95, n96, n97, n98, + n99, n100, n101, n102, n103, n104, n105, n116, n117, + n118, n119, n120, n121, n122, n123, n124, n125, n126, + _Z; + + DCUA DCU0_inst (.CH0_HDINP(hdinp), .CH1_HDINP(1'b0), .CH0_HDINN(hdinn), + .CH1_HDINN(1'b0), .D_TXBIT_CLKP_FROM_ND(1'b0), .D_TXBIT_CLKN_FROM_ND(1'b0), + .D_SYNC_ND(1'b0), .D_TXPLL_LOL_FROM_ND(1'b0), .CH0_RX_REFCLK(rxrefclk), + .CH1_RX_REFCLK(1'b0), .CH0_FF_RXI_CLK(rx_pclk), .CH1_FF_RXI_CLK(1'b1), + .CH0_FF_TXI_CLK(txi_clk), .CH1_FF_TXI_CLK(1'b1), .CH0_FF_EBRD_CLK(1'b1), + .CH1_FF_EBRD_CLK(1'b1), .CH0_FF_TX_D_0(txdata[0]), .CH1_FF_TX_D_0(1'b0), + .CH0_FF_TX_D_1(txdata[1]), .CH1_FF_TX_D_1(1'b0), .CH0_FF_TX_D_2(txdata[2]), + .CH1_FF_TX_D_2(1'b0), .CH0_FF_TX_D_3(txdata[3]), .CH1_FF_TX_D_3(1'b0), + .CH0_FF_TX_D_4(txdata[4]), .CH1_FF_TX_D_4(1'b0), .CH0_FF_TX_D_5(txdata[5]), + .CH1_FF_TX_D_5(1'b0), .CH0_FF_TX_D_6(txdata[6]), .CH1_FF_TX_D_6(1'b0), + .CH0_FF_TX_D_7(txdata[7]), .CH1_FF_TX_D_7(1'b0), .CH0_FF_TX_D_8(tx_k[0]), + .CH1_FF_TX_D_8(1'b0), .CH0_FF_TX_D_9(1'b0), .CH1_FF_TX_D_9(1'b0), + .CH0_FF_TX_D_10(xmit[0]), .CH1_FF_TX_D_10(1'b0), .CH0_FF_TX_D_11(tx_disp_correct[0]), + .CH1_FF_TX_D_11(1'b0), .CH0_FF_TX_D_12(1'b0), .CH1_FF_TX_D_12(1'b0), + .CH0_FF_TX_D_13(1'b0), .CH1_FF_TX_D_13(1'b0), .CH0_FF_TX_D_14(1'b0), + .CH1_FF_TX_D_14(1'b0), .CH0_FF_TX_D_15(1'b0), .CH1_FF_TX_D_15(1'b0), + .CH0_FF_TX_D_16(1'b0), .CH1_FF_TX_D_16(1'b0), .CH0_FF_TX_D_17(1'b0), + .CH1_FF_TX_D_17(1'b0), .CH0_FF_TX_D_18(1'b0), .CH1_FF_TX_D_18(1'b0), + .CH0_FF_TX_D_19(1'b0), .CH1_FF_TX_D_19(1'b0), .CH0_FF_TX_D_20(1'b0), + .CH1_FF_TX_D_20(1'b0), .CH0_FF_TX_D_21(1'b0), .CH1_FF_TX_D_21(1'b0), + .CH0_FF_TX_D_22(1'b0), .CH1_FF_TX_D_22(1'b0), .CH0_FF_TX_D_23(1'b0), + .CH1_FF_TX_D_23(1'b0), .CH0_FFC_EI_EN(1'b0), .CH1_FFC_EI_EN(1'b0), + .CH0_FFC_PCIE_DET_EN(1'b0), .CH1_FFC_PCIE_DET_EN(1'b0), .CH0_FFC_PCIE_CT(1'b0), + .CH1_FFC_PCIE_CT(1'b0), .CH0_FFC_SB_INV_RX(1'b0), .CH1_FFC_SB_INV_RX(1'b0), + .CH0_FFC_ENABLE_CGALIGN(1'b0), .CH1_FFC_ENABLE_CGALIGN(1'b0), .CH0_FFC_SIGNAL_DETECT(signal_detect_c), + .CH1_FFC_SIGNAL_DETECT(1'b0), .CH0_FFC_FB_LOOPBACK(1'b0), .CH1_FFC_FB_LOOPBACK(1'b0), + .CH0_FFC_SB_PFIFO_LP(1'b0), .CH1_FFC_SB_PFIFO_LP(1'b0), .CH0_FFC_PFIFO_CLR(1'b0), + .CH1_FFC_PFIFO_CLR(1'b0), .CH0_FFC_RATE_MODE_RX(1'b0), .CH1_FFC_RATE_MODE_RX(1'b0), + .CH0_FFC_RATE_MODE_TX(1'b0), .CH1_FFC_RATE_MODE_TX(1'b0), .CH0_FFC_DIV11_MODE_RX(1'b0), + .CH1_FFC_DIV11_MODE_RX(1'b0), .CH0_FFC_DIV11_MODE_TX(1'b0), .CH1_FFC_DIV11_MODE_TX(1'b0), + .CH0_FFC_RX_GEAR_MODE(1'b0), .CH1_FFC_RX_GEAR_MODE(1'b0), .CH0_FFC_TX_GEAR_MODE(1'b0), + .CH1_FFC_TX_GEAR_MODE(1'b0), .CH0_FFC_LDR_CORE2TX_EN(1'b0), .CH1_FFC_LDR_CORE2TX_EN(1'b0), + .CH0_FFC_LANE_TX_RST(rsl_tx_pcs_rst_c), .CH1_FFC_LANE_TX_RST(1'b0), + .CH0_FFC_LANE_RX_RST(rsl_rx_pcs_rst_c), .CH1_FFC_LANE_RX_RST(1'b0), + .CH0_FFC_RRST(rsl_rx_serdes_rst_c), .CH1_FFC_RRST(1'b0), .CH0_FFC_TXPWDNB(tx_pwrup_c), + .CH1_FFC_TXPWDNB(1'b0), .CH0_FFC_RXPWDNB(rx_pwrup_c), .CH1_FFC_RXPWDNB(1'b0), + .CH0_LDR_CORE2TX(1'b0), .CH1_LDR_CORE2TX(1'b0), .D_SCIWDATA0(sci_wrdata[0]), + .D_SCIWDATA1(sci_wrdata[1]), .D_SCIWDATA2(sci_wrdata[2]), .D_SCIWDATA3(sci_wrdata[3]), + .D_SCIWDATA4(sci_wrdata[4]), .D_SCIWDATA5(sci_wrdata[5]), .D_SCIWDATA6(sci_wrdata[6]), + .D_SCIWDATA7(sci_wrdata[7]), .D_SCIADDR0(sci_addr[0]), .D_SCIADDR1(sci_addr[1]), + .D_SCIADDR2(sci_addr[2]), .D_SCIADDR3(sci_addr[3]), .D_SCIADDR4(sci_addr[4]), + .D_SCIADDR5(sci_addr[5]), .D_SCIENAUX(sci_en_dual), .D_SCISELAUX(sci_sel_dual), + .CH0_SCIEN(sci_en), .CH1_SCIEN(1'b0), .CH0_SCISEL(sci_sel), .CH1_SCISEL(1'b0), + .D_SCIRD(sci_rd), .D_SCIWSTN(sci_wrn), .D_CYAWSTN(cyawstn), .D_FFC_SYNC_TOGGLE(1'b0), + .D_FFC_DUAL_RST(rsl_rst_dual_c), .D_FFC_MACRO_RST(rsl_serdes_rst_dual_c), + .D_FFC_MACROPDB(serdes_pdb), .D_FFC_TRST(rsl_tx_serdes_rst_c), + .CH0_FFC_CDR_EN_BITSLIP(1'b0), .CH1_FFC_CDR_EN_BITSLIP(1'b0), .D_SCAN_ENABLE(1'b0), + .D_SCAN_IN_0(1'b0), .D_SCAN_IN_1(1'b0), .D_SCAN_IN_2(1'b0), .D_SCAN_IN_3(1'b0), + .D_SCAN_IN_4(1'b0), .D_SCAN_IN_5(1'b0), .D_SCAN_IN_6(1'b0), .D_SCAN_IN_7(1'b0), + .D_SCAN_MODE(1'b0), .D_SCAN_RESET(1'b0), .D_CIN0(1'b0), .D_CIN1(1'b0), + .D_CIN2(1'b0), .D_CIN3(1'b0), .D_CIN4(1'b0), .D_CIN5(1'b0), + .D_CIN6(1'b0), .D_CIN7(1'b0), .D_CIN8(1'b0), .D_CIN9(1'b0), + .D_CIN10(1'b0), .D_CIN11(1'b0), .CH0_HDOUTP(hdoutp), .CH1_HDOUTP(n61), + .CH0_HDOUTN(hdoutn), .CH1_HDOUTN(n62), .D_TXBIT_CLKP_TO_ND(n1), + .D_TXBIT_CLKN_TO_ND(n2), .D_SYNC_PULSE2ND(n3), .D_TXPLL_LOL_TO_ND(n4), + .CH0_FF_RX_F_CLK(n5), .CH1_FF_RX_F_CLK(n63), .CH0_FF_RX_H_CLK(n6), + .CH1_FF_RX_H_CLK(n64), .CH0_FF_TX_F_CLK(n7), .CH1_FF_TX_F_CLK(n65), + .CH0_FF_TX_H_CLK(n8), .CH1_FF_TX_H_CLK(n66), .CH0_FF_RX_PCLK(rx_pclk), + .CH1_FF_RX_PCLK(n67), .CH0_FF_TX_PCLK(tx_pclk), .CH1_FF_TX_PCLK(n68), + .CH0_FF_RX_D_0(rxdata[0]), .CH1_FF_RX_D_0(n69), .CH0_FF_RX_D_1(rxdata[1]), + .CH1_FF_RX_D_1(n70), .CH0_FF_RX_D_2(rxdata[2]), .CH1_FF_RX_D_2(n71), + .CH0_FF_RX_D_3(rxdata[3]), .CH1_FF_RX_D_3(n72), .CH0_FF_RX_D_4(rxdata[4]), + .CH1_FF_RX_D_4(n73), .CH0_FF_RX_D_5(rxdata[5]), .CH1_FF_RX_D_5(n74), + .CH0_FF_RX_D_6(rxdata[6]), .CH1_FF_RX_D_6(n75), .CH0_FF_RX_D_7(rxdata[7]), + .CH1_FF_RX_D_7(n76), .CH0_FF_RX_D_8(rx_k[0]), .CH1_FF_RX_D_8(n77), + .CH0_FF_RX_D_9(rx_disp_err[0]), .CH1_FF_RX_D_9(n78), .CH0_FF_RX_D_10(rx_cv_err[0]), + .CH1_FF_RX_D_10(n79), .CH0_FF_RX_D_11(n9), .CH1_FF_RX_D_11(n80), + .CH0_FF_RX_D_12(n10), .CH1_FF_RX_D_12(n81), .CH0_FF_RX_D_13(n11), + .CH1_FF_RX_D_13(n82), .CH0_FF_RX_D_14(n12), .CH1_FF_RX_D_14(n83), + .CH0_FF_RX_D_15(n13), .CH1_FF_RX_D_15(n84), .CH0_FF_RX_D_16(n14), + .CH1_FF_RX_D_16(n85), .CH0_FF_RX_D_17(n15), .CH1_FF_RX_D_17(n86), + .CH0_FF_RX_D_18(n16), .CH1_FF_RX_D_18(n87), .CH0_FF_RX_D_19(n17), + .CH1_FF_RX_D_19(n88), .CH0_FF_RX_D_20(n18), .CH1_FF_RX_D_20(n89), + .CH0_FF_RX_D_21(n19), .CH1_FF_RX_D_21(n90), .CH0_FF_RX_D_22(n20), + .CH1_FF_RX_D_22(n91), .CH0_FF_RX_D_23(n21), .CH1_FF_RX_D_23(n92), + .CH0_FFS_PCIE_DONE(n22), .CH1_FFS_PCIE_DONE(n93), .CH0_FFS_PCIE_CON(n23), + .CH1_FFS_PCIE_CON(n94), .CH0_FFS_RLOS(n95), .CH1_FFS_RLOS(n96), + .CH0_FFS_LS_SYNC_STATUS(lsm_status_s), .CH1_FFS_LS_SYNC_STATUS(n97), + .CH0_FFS_CC_UNDERRUN(n24), .CH1_FFS_CC_UNDERRUN(n98), .CH0_FFS_CC_OVERRUN(n25), + .CH1_FFS_CC_OVERRUN(n99), .CH0_FFS_RXFBFIFO_ERROR(n26), .CH1_FFS_RXFBFIFO_ERROR(n100), + .CH0_FFS_TXFBFIFO_ERROR(n27), .CH1_FFS_TXFBFIFO_ERROR(n101), .CH0_FFS_RLOL(rx_cdr_lol_s), + .CH1_FFS_RLOL(n102), .CH0_FFS_SKP_ADDED(n28), .CH1_FFS_SKP_ADDED(n103), + .CH0_FFS_SKP_DELETED(n29), .CH1_FFS_SKP_DELETED(n104), .CH0_LDR_RX2CORE(n105), + .CH1_LDR_RX2CORE(n116), .D_SCIRDATA0(sci_rddata[0]), .D_SCIRDATA1(sci_rddata[1]), + .D_SCIRDATA2(sci_rddata[2]), .D_SCIRDATA3(sci_rddata[3]), .D_SCIRDATA4(sci_rddata[4]), + .D_SCIRDATA5(sci_rddata[5]), .D_SCIRDATA6(sci_rddata[6]), .D_SCIRDATA7(sci_rddata[7]), + .D_SCIINT(sci_int), .D_SCAN_OUT_0(n30), .D_SCAN_OUT_1(n31), .D_SCAN_OUT_2(n32), + .D_SCAN_OUT_3(n33), .D_SCAN_OUT_4(n34), .D_SCAN_OUT_5(n35), .D_SCAN_OUT_6(n36), + .D_SCAN_OUT_7(n37), .D_COUT0(n38), .D_COUT1(n39), .D_COUT2(n40), + .D_COUT3(n41), .D_COUT4(n42), .D_COUT5(n43), .D_COUT6(n44), + .D_COUT7(n45), .D_COUT8(n46), .D_COUT9(n47), .D_COUT10(n48), + .D_COUT11(n49), .D_COUT12(n50), .D_COUT13(n51), .D_COUT14(n52), + .D_COUT15(n53), .D_COUT16(n54), .D_COUT17(n55), .D_COUT18(n56), + .D_COUT19(n57), .D_REFCLKI(pll_refclki), .D_FFS_PLOL(n60)) /* synthesis LOC=DCU0 CHAN=CH0 */ ; + defparam DCU0_inst.D_MACROPDB = "0b1"; + defparam DCU0_inst.D_IB_PWDNB = "0b1"; + defparam DCU0_inst.D_XGE_MODE = "0b0"; + defparam DCU0_inst.D_LOW_MARK = "0d4"; + defparam DCU0_inst.D_HIGH_MARK = "0d12"; + defparam DCU0_inst.D_BUS8BIT_SEL = "0b0"; + defparam DCU0_inst.D_CDR_LOL_SET = "0b00"; + defparam DCU0_inst.D_TXPLL_PWDNB = "0b1"; + defparam DCU0_inst.D_BITCLK_LOCAL_EN = "0b1"; + defparam DCU0_inst.D_BITCLK_ND_EN = "0b0"; + defparam DCU0_inst.D_BITCLK_FROM_ND_EN = "0b0"; + defparam DCU0_inst.D_SYNC_LOCAL_EN = "0b1"; + defparam DCU0_inst.D_SYNC_ND_EN = "0b0"; + defparam DCU0_inst.CH0_UC_MODE = "0b0"; + defparam DCU0_inst.CH0_PCIE_MODE = "0b0"; + defparam DCU0_inst.CH0_RIO_MODE = "0b0"; + defparam DCU0_inst.CH0_WA_MODE = "0b0"; + defparam DCU0_inst.CH0_INVERT_RX = "0b0"; + defparam DCU0_inst.CH0_INVERT_TX = "0b0"; + defparam DCU0_inst.CH0_PRBS_SELECTION = "0b0"; + defparam DCU0_inst.CH0_GE_AN_ENABLE = "0b1"; + defparam DCU0_inst.CH0_PRBS_LOCK = "0b0"; + defparam DCU0_inst.CH0_PRBS_ENABLE = "0b0"; + defparam DCU0_inst.CH0_ENABLE_CG_ALIGN = "0b1"; + defparam DCU0_inst.CH0_TX_GEAR_MODE = "0b0"; + defparam DCU0_inst.CH0_RX_GEAR_MODE = "0b0"; + defparam DCU0_inst.CH0_PCS_DET_TIME_SEL = "0b00"; + defparam DCU0_inst.CH0_PCIE_EI_EN = "0b0"; + defparam DCU0_inst.CH0_TX_GEAR_BYPASS = "0b0"; + defparam DCU0_inst.CH0_ENC_BYPASS = "0b0"; + defparam DCU0_inst.CH0_SB_BYPASS = "0b0"; + defparam DCU0_inst.CH0_RX_SB_BYPASS = "0b0"; + defparam DCU0_inst.CH0_WA_BYPASS = "0b0"; + defparam DCU0_inst.CH0_DEC_BYPASS = "0b0"; + defparam DCU0_inst.CH0_CTC_BYPASS = "0b1"; + defparam DCU0_inst.CH0_RX_GEAR_BYPASS = "0b0"; + defparam DCU0_inst.CH0_LSM_DISABLE = "0b0"; + defparam DCU0_inst.CH0_MATCH_2_ENABLE = "0b0"; + defparam DCU0_inst.CH0_MATCH_4_ENABLE = "0b0"; + defparam DCU0_inst.CH0_MIN_IPG_CNT = "0b11"; + defparam DCU0_inst.CH0_CC_MATCH_1 = "0x000"; + defparam DCU0_inst.CH0_CC_MATCH_2 = "0x000"; + defparam DCU0_inst.CH0_CC_MATCH_3 = "0x000"; + defparam DCU0_inst.CH0_CC_MATCH_4 = "0x000"; + defparam DCU0_inst.CH0_UDF_COMMA_MASK = "0x3ff"; + defparam DCU0_inst.CH0_UDF_COMMA_A = "0x283"; + defparam DCU0_inst.CH0_UDF_COMMA_B = "0x17C"; + defparam DCU0_inst.CH0_RX_DCO_CK_DIV = "0b000"; + defparam DCU0_inst.CH0_RCV_DCC_EN = "0b0"; + defparam DCU0_inst.CH0_TPWDNB = "0b1"; + defparam DCU0_inst.CH0_RATE_MODE_TX = "0b1"; + defparam DCU0_inst.CH0_RTERM_TX = "0d19"; + defparam DCU0_inst.CH0_TX_CM_SEL = "0b00"; + defparam DCU0_inst.CH0_TDRV_PRE_EN = "0b0"; + defparam DCU0_inst.CH0_TDRV_SLICE0_SEL = "0b01"; + defparam DCU0_inst.CH0_TDRV_SLICE1_SEL = "0b00"; + defparam DCU0_inst.CH0_TDRV_SLICE2_SEL = "0b01"; + defparam DCU0_inst.CH0_TDRV_SLICE3_SEL = "0b01"; + defparam DCU0_inst.CH0_TDRV_SLICE4_SEL = "0b01"; + defparam DCU0_inst.CH0_TDRV_SLICE5_SEL = "0b00"; + defparam DCU0_inst.CH0_TDRV_SLICE0_CUR = "0b011"; + defparam DCU0_inst.CH0_TDRV_SLICE1_CUR = "0b000"; + defparam DCU0_inst.CH0_TDRV_SLICE2_CUR = "0b11"; + defparam DCU0_inst.CH0_TDRV_SLICE3_CUR = "0b11"; + defparam DCU0_inst.CH0_TDRV_SLICE4_CUR = "0b11"; + defparam DCU0_inst.CH0_TDRV_SLICE5_CUR = "0b00"; + defparam DCU0_inst.CH0_TDRV_DAT_SEL = "0b00"; + defparam DCU0_inst.CH0_TX_DIV11_SEL = "0b0"; + defparam DCU0_inst.CH0_RPWDNB = "0b1"; + defparam DCU0_inst.CH0_RATE_MODE_RX = "0b1"; + defparam DCU0_inst.CH0_RX_DIV11_SEL = "0b0"; + defparam DCU0_inst.CH0_SEL_SD_RX_CLK = "0b1"; + defparam DCU0_inst.CH0_FF_RX_H_CLK_EN = "0b0"; + defparam DCU0_inst.CH0_FF_RX_F_CLK_DIS = "0b0"; + defparam DCU0_inst.CH0_FF_TX_H_CLK_EN = "0b0"; + defparam DCU0_inst.CH0_FF_TX_F_CLK_DIS = "0b0"; + defparam DCU0_inst.CH0_TDRV_POST_EN = "0b0"; + defparam DCU0_inst.CH0_TX_POST_SIGN = "0b0"; + defparam DCU0_inst.CH0_TX_PRE_SIGN = "0b0"; + defparam DCU0_inst.CH0_REQ_LVL_SET = "0b01"; + defparam DCU0_inst.CH0_REQ_EN = "0b1"; + defparam DCU0_inst.CH0_RTERM_RX = "0d22"; + defparam DCU0_inst.CH0_RXTERM_CM = "0b11"; + defparam DCU0_inst.CH0_PDEN_SEL = "0b1"; + defparam DCU0_inst.CH0_RXIN_CM = "0b11"; + defparam DCU0_inst.CH0_LEQ_OFFSET_SEL = "0b0"; + defparam DCU0_inst.CH0_LEQ_OFFSET_TRIM = "0b000"; + defparam DCU0_inst.CH0_RLOS_SEL = "0b1"; + defparam DCU0_inst.CH0_RX_LOS_LVL = "0b010"; + defparam DCU0_inst.CH0_RX_LOS_CEQ = "0b11"; + defparam DCU0_inst.CH0_RX_LOS_HYST_EN = "0b0"; + defparam DCU0_inst.CH0_RX_LOS_EN = "0b0"; + defparam DCU0_inst.CH0_LDR_RX2CORE_SEL = "0b0"; + defparam DCU0_inst.CH0_LDR_CORE2TX_SEL = "0b0"; + defparam DCU0_inst.D_TX_MAX_RATE = "2.5"; + defparam DCU0_inst.CH0_CDR_MAX_RATE = "2.5"; + defparam DCU0_inst.CH0_TXAMPLITUDE = "0d6"; + defparam DCU0_inst.CH0_TXDEPRE = "DISABLED"; + defparam DCU0_inst.CH0_TXDEPOST = "DISABLED"; + defparam DCU0_inst.CH0_PROTOCOL = "SGMII"; + defparam DCU0_inst.D_ISETLOS = "0d0"; + defparam DCU0_inst.D_SETIRPOLY_AUX = "0b00"; + defparam DCU0_inst.D_SETICONST_AUX = "0b00"; + defparam DCU0_inst.D_SETIRPOLY_CH = "0b00"; + defparam DCU0_inst.D_SETICONST_CH = "0b00"; + defparam DCU0_inst.D_REQ_ISET = "0b000"; + defparam DCU0_inst.D_PD_ISET = "0b00"; + defparam DCU0_inst.D_DCO_CALIB_TIME_SEL = "0b00"; + defparam DCU0_inst.CH0_CDR_CNT4SEL = "0b00"; + defparam DCU0_inst.CH0_CDR_CNT8SEL = "0b00"; + defparam DCU0_inst.CH0_DCOATDCFG = "0b00"; + defparam DCU0_inst.CH0_DCOATDDLY = "0b00"; + defparam DCU0_inst.CH0_DCOBYPSATD = "0b1"; + defparam DCU0_inst.CH0_DCOCALDIV = "0b001"; + defparam DCU0_inst.CH0_DCOCTLGI = "0b010"; + defparam DCU0_inst.CH0_DCODISBDAVOID = "0b0"; + defparam DCU0_inst.CH0_DCOFLTDAC = "0b01"; + defparam DCU0_inst.CH0_DCOFTNRG = "0b110"; + defparam DCU0_inst.CH0_DCOIOSTUNE = "0b000"; + defparam DCU0_inst.CH0_DCOITUNE = "0b00"; + defparam DCU0_inst.CH0_DCOITUNE4LSB = "0b111"; + defparam DCU0_inst.CH0_DCOIUPDNX2 = "0b1"; + defparam DCU0_inst.CH0_DCONUOFLSB = "0b101"; + defparam DCU0_inst.CH0_DCOSCALEI = "0b00"; + defparam DCU0_inst.CH0_DCOSTARTVAL = "0b000"; + defparam DCU0_inst.CH0_DCOSTEP = "0b00"; + defparam DCU0_inst.CH0_BAND_THRESHOLD = "0d0"; + defparam DCU0_inst.CH0_AUTO_FACQ_EN = "0b1"; + defparam DCU0_inst.CH0_AUTO_CALIB_EN = "0b1"; + defparam DCU0_inst.CH0_CALIB_CK_MODE = "0b0"; + defparam DCU0_inst.CH0_REG_BAND_OFFSET = "0d0"; + defparam DCU0_inst.CH0_REG_BAND_SEL = "0d0"; + defparam DCU0_inst.CH0_REG_IDAC_SEL = "0d0"; + defparam DCU0_inst.CH0_REG_IDAC_EN = "0b0"; + defparam DCU0_inst.D_CMUSETISCL4VCO = "0b000"; + defparam DCU0_inst.D_CMUSETI4VCO = "0b00"; + defparam DCU0_inst.D_CMUSETINITVCT = "0b00"; + defparam DCU0_inst.D_CMUSETZGM = "0b000"; + defparam DCU0_inst.D_CMUSETP2AGM = "0b000"; + defparam DCU0_inst.D_CMUSETP1GM = "0b000"; + defparam DCU0_inst.D_CMUSETI4CPZ = "0d3"; + defparam DCU0_inst.D_CMUSETI4CPP = "0d3"; + defparam DCU0_inst.D_CMUSETICP4Z = "0b101"; + defparam DCU0_inst.D_CMUSETICP4P = "0b01"; + defparam DCU0_inst.D_CMUSETBIASI = "0b00"; + defparam DCU0_inst.D_SETPLLRC = "0d1"; + defparam DCU0_inst.CH0_RX_RATE_SEL = "0d8"; + defparam DCU0_inst.D_REFCK_MODE = "0b000"; + defparam DCU0_inst.D_TX_VCO_CK_DIV = "0b000"; + defparam DCU0_inst.D_PLL_LOL_SET = "0b00"; + defparam DCU0_inst.D_RG_EN = "0b0"; + defparam DCU0_inst.D_RG_SET = "0b00"; + assign n1 = 1'bz; + assign n2 = 1'bz; + assign n3 = 1'bz; + assign n4 = 1'bz; + assign n5 = 1'bz; + assign n6 = 1'bz; + assign n7 = 1'bz; + assign n8 = 1'bz; + assign n9 = 1'bz; + assign n10 = 1'bz; + assign n11 = 1'bz; + assign n12 = 1'bz; + assign n13 = 1'bz; + assign n14 = 1'bz; + assign n15 = 1'bz; + assign n16 = 1'bz; + assign n17 = 1'bz; + assign n18 = 1'bz; + assign n19 = 1'bz; + assign n20 = 1'bz; + assign n21 = 1'bz; + assign n22 = 1'bz; + assign n23 = 1'bz; + assign n24 = 1'bz; + assign n25 = 1'bz; + assign n26 = 1'bz; + assign n27 = 1'bz; + assign n28 = 1'bz; + assign n29 = 1'bz; + assign n30 = 1'bz; + assign n31 = 1'bz; + assign n32 = 1'bz; + assign n33 = 1'bz; + assign n34 = 1'bz; + assign n35 = 1'bz; + assign n36 = 1'bz; + assign n37 = 1'bz; + assign n38 = 1'bz; + assign n39 = 1'bz; + assign n40 = 1'bz; + assign n41 = 1'bz; + assign n42 = 1'bz; + assign n43 = 1'bz; + assign n44 = 1'bz; + assign n45 = 1'bz; + assign n46 = 1'bz; + assign n47 = 1'bz; + assign n48 = 1'bz; + assign n49 = 1'bz; + assign n50 = 1'bz; + assign n51 = 1'bz; + assign n52 = 1'bz; + assign n53 = 1'bz; + assign n54 = 1'bz; + assign n55 = 1'bz; + assign n56 = 1'bz; + assign n57 = 1'bz; + assign n60 = 1'bz; + assign n61 = 1'bz; + assign n62 = 1'bz; + assign n63 = 1'bz; + assign n64 = 1'bz; + assign n65 = 1'bz; + assign n66 = 1'bz; + assign n67 = 1'bz; + assign n68 = 1'bz; + assign n69 = 1'bz; + assign n70 = 1'bz; + assign n71 = 1'bz; + assign n72 = 1'bz; + assign n73 = 1'bz; + assign n74 = 1'bz; + assign n75 = 1'bz; + assign n76 = 1'bz; + assign n77 = 1'bz; + assign n78 = 1'bz; + assign n79 = 1'bz; + assign n80 = 1'bz; + assign n81 = 1'bz; + assign n82 = 1'bz; + assign n83 = 1'bz; + assign n84 = 1'bz; + assign n85 = 1'bz; + assign n86 = 1'bz; + assign n87 = 1'bz; + assign n88 = 1'bz; + assign n89 = 1'bz; + assign n90 = 1'bz; + assign n91 = 1'bz; + assign n92 = 1'bz; + assign n93 = 1'bz; + assign n94 = 1'bz; + assign n95 = 1'bz; + assign n96 = 1'bz; + assign n97 = 1'bz; + assign n98 = 1'bz; + assign n99 = 1'bz; + assign n100 = 1'bz; + assign n101 = 1'bz; + assign n102 = 1'bz; + assign n103 = 1'bz; + assign n104 = 1'bz; + assign n105 = 1'bz; + assign n116 = 1'bz; + sgmii_channel_smi_pcsrsl_core rsl_inst (.rui_rst(rsl_rst), .rui_serdes_rst_dual_c(serdes_rst_dual_c), + .rui_rst_dual_c(rst_dual_c), .rui_rsl_disable(rsl_disable), + .rui_tx_ref_clk(pll_refclki), .rui_tx_serdes_rst_c(tx_serdes_rst_c), + .rui_tx_pcs_rst_c({3'b000, tx_pcs_rst_c}), .rdi_pll_lol(pll_lol), + .rui_rx_ref_clk(rxrefclk), .rui_rx_serdes_rst_c({3'b000, rx_serdes_rst_c}), + .rui_rx_pcs_rst_c({3'b000, rx_pcs_rst_c}), .rdi_rx_los_low_s({4'b0000}), + .rdi_rx_cdr_lol_s({3'b000, rx_cdr_lol_s}), .rdo_serdes_rst_dual_c(rsl_serdes_rst_dual_c), + .rdo_rst_dual_c(rsl_rst_dual_c), .ruo_tx_rdy(n117), .rdo_tx_serdes_rst_c(rsl_tx_serdes_rst_c), + .rdo_tx_pcs_rst_c({n118, n119, n120, rsl_tx_pcs_rst_c}), + .ruo_rx_rdy(n121), .rdo_rx_serdes_rst_c({n122, n123, n124, + rsl_rx_serdes_rst_c}), .rdo_rx_pcs_rst_c({n125, n126, _Z, + rsl_rx_pcs_rst_c})); + defparam rsl_inst.pnum_channels = 1; + defparam rsl_inst.pprotocol = "SGMII"; + defparam rsl_inst.pserdes_mode = "RX AND TX"; + defparam rsl_inst.pport_tx_rdy = "DISABLED"; + defparam rsl_inst.pwait_tx_rdy = 3000; + defparam rsl_inst.pport_rx_rdy = "DISABLED"; + defparam rsl_inst.pwait_rx_rdy = 3000; + assign n117 = 1'bz; + assign n118 = 1'bz; + assign n119 = 1'bz; + assign n120 = 1'bz; + assign n121 = 1'bz; + assign n122 = 1'bz; + assign n123 = 1'bz; + assign n124 = 1'bz; + assign n125 = 1'bz; + assign n126 = 1'bz; + assign _Z = 1'bz; + sgmii_channel_smi_pcssll_core sll_inst (.sli_rst(sli_rst), .sli_refclk(pll_refclki), + .sli_pclk(tx_pclk), .sli_div2_rate(1'b0), .sli_div11_rate(1'b0), + .sli_gear_mode(1'b0), .sli_cpri_mode({3'b000}), .sli_pcie_mode(1'b0), + .slo_plol(pll_lol)); + defparam sll_inst.PPROTOCOL = "SGMII"; + defparam sll_inst.PLOL_SETTING = 0; + defparam sll_inst.PDYN_RATE_CTRL = "DISABLED"; + defparam sll_inst.PPCIE_MAX_RATE = "2.5"; + defparam sll_inst.PDIFF_VAL_LOCK = 19; + defparam sll_inst.PDIFF_VAL_UNLOCK = 39; + defparam sll_inst.PPCLK_TC = 65536; + defparam sll_inst.PDIFF_DIV11_VAL_LOCK = 0; + defparam sll_inst.PDIFF_DIV11_VAL_UNLOCK = 0; + defparam sll_inst.PPCLK_DIV11_TC = 0; + +endmodule + + + diff --git a/gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi_pcs_bb.v b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi_pcs_bb.v new file mode 100644 index 0000000..eb97d6c --- /dev/null +++ b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_channel_smi_pcs_bb.v @@ -0,0 +1,57 @@ +// Verilog netlist produced by program ASBGen: Ports rev. 2.22, Attr. rev. 2.25 +// Netlist written on Mon Mar 10 15:35:03 2014 +// +// Verilog Description of module pcs_serdes +// + +`timescale 1ns/1ps +module sgmii_channel_smi_pcs (hdoutp, hdoutn, hdinp, hdinn, + rxrefclk, rx_pclk, tx_pclk, txdata, tx_k, xmit, tx_disp_correct, + rxdata, rx_k, rx_disp_err, rx_cv_err, lsm_status_s, rx_cdr_lol_s, + tx_pcs_rst_c, rx_pcs_rst_c, rx_serdes_rst_c, tx_pwrup_c, + rx_pwrup_c, sci_wrdata, sci_addr, sci_rddata, sci_en_dual, + sci_sel_dual, sci_en, sci_sel, sci_rd, sci_wrn, sci_int, + cyawstn,rst_dual_c, serdes_rst_dual_c, serdes_pdb, tx_serdes_rst_c, + pll_refclki, pll_lol) /*synthesis syn_black_box black_box_pad_pin="hdoutp,hdoutn,hdinp,hdinn"*/; + output hdoutp; + output hdoutn; + input hdinp; + input hdinn; + input rxrefclk; + output rx_pclk; + output tx_pclk; + input [7:0]txdata; + input [0:0]tx_k; + input [0:0]xmit; + input [0:0]tx_disp_correct; + output [7:0]rxdata; + output [0:0]rx_k; + output [0:0]rx_disp_err; + output [0:0]rx_cv_err; + output lsm_status_s; + output rx_cdr_lol_s; + input tx_pcs_rst_c; + input rx_pcs_rst_c; + input rx_serdes_rst_c; + input tx_pwrup_c; + input rx_pwrup_c; + input [7:0]sci_wrdata; + input [5:0]sci_addr; + output [7:0]sci_rddata; + input sci_en_dual; + input sci_sel_dual; + input sci_en; + input sci_sel; + input sci_rd; + input sci_wrn; + output sci_int; + input cyawstn; + input rst_dual_c; + input serdes_rst_dual_c; + input serdes_pdb; + input tx_serdes_rst_c; + input pll_refclki; + output pll_lol; + + +endmodule diff --git a/gbe/cores/sgmii/sgmii_channel_smi/sgmii_defines.v b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_defines.v new file mode 100644 index 0000000..ef2ca4e --- /dev/null +++ b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_defines.v @@ -0,0 +1,4 @@ +`define SGMII_NO_ENC +`define SGMII_YES_CTC_DYNAMIC +`define SGMII_YES_SINGLE_CLOCK +`define SGMII_FIFO_FAMILY_ECP5 diff --git a/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/models/ecp5um/pcs_serdes/sgmii_channel_smi_pcs.lpc b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/models/ecp5um/pcs_serdes/sgmii_channel_smi_pcs.lpc new file mode 100644 index 0000000..40438e0 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/models/ecp5um/pcs_serdes/sgmii_channel_smi_pcs.lpc @@ -0,0 +1,97 @@ +[Device] +Family=sa5p00m +PartType=LFE5UM-85F +PartName=LFE5UM-85F-8BG756C +SpeedGrade=8 +Package=CABGA756 +OperatingCondition=COM +Status=P + +[IP] +VendorName=Lattice Semiconductor Corporation +CoreType=IPCFG +CoreStatus=Demo +CoreName=PCS +CoreRevision=4.1 +ModuleName=sgmii_channel_smi_pcs +SourceFormat=vhdl +ParameterFileVersion=1.0 +Date=04/30/2019 +Time=12:09:53 + +[Parameters] +;ACHARA=0 00H +;ACHARB=0 00H +;ACHARM=0 00H +;RXMCAENABLE=Disabled +CDRLOLACTION=Full Recalibration +CDRLOLRANGE=0 +CDR_MAX_RATE=2.5 +CDR_MULT=20X +CDR_REF_RATE=125.0000 +CH_MODE=Rx and Tx +Destination=Synplicity +EDIF=1 +Expression=BusA(0 to 7) +IO=0 +IO_TYPE=SGMII +LEQ=1 +LOOPBACK=Disabled +LOSPORT=Disabled +NUM_CHS=1 +Order=Big Endian [MSB:LSB] +PPORT_RX_RDY=Disabled +PPORT_TX_RDY=Disabled +PROTOCOL=SGMII +PWAIT_RX_RDY=3000 +PWAIT_TX_RDY=3000 +RCSRC=Disabled +REFCLK_RATE=125.0000 +RSTSEQSEL=Enabled +RX8B10B=Enabled +RXCOMMAA=1100000101 +RXCOMMAB=0011111010 +RXCOMMAM=1111111111 +RXCOUPLING=AC +RXCTC=Disabled +RXCTCBYTEN=0 00H +RXCTCBYTEN1=0 00H +RXCTCBYTEN2=0 00H +RXCTCBYTEN3=0 00H +RXCTCMATCHPATTERN=M1-S1 +RXDIFFTERM=50 ohms +RXFIFO_ENABLE=Enabled +RXINVPOL=Non-invert +RXLDR=Off +RXLOSTHRESHOLD=2 +RXLSM=Enabled +RXSC=K28P5 +RXWA=Barrel Shift +RX_DATA_WIDTH=8/10-Bit +RX_FICLK_RATE=125.0000 +RX_LINE_RATE=1.2500 +RX_RATE_DIV=Div2 Rate +SCIPORT=Enabled +SOFTLOL=Enabled +TX8B10B=Enabled +TXAMPLITUDE=6 +TXDEPOST=Disabled +TXDEPRE=Disabled +TXDIFFTERM=50 ohms +TXFIFO_ENABLE=Enabled +TXINVPOL=Non-invert +TXLDR=Off +TXPLLLOLTHRESHOLD=0 +TXPLLMULT=20X +TX_DATA_WIDTH=8/10-Bit +TX_FICLK_RATE=125.0000 +TX_LINE_RATE=1.2500 +TX_MAX_RATE=2.5 +TX_RATE_DIV=Div2 Rate +VHDL=0 +Verilog=1 + +[SYSTEMPNR] +LN0=DCU0_CH0 + + diff --git a/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/models/ecp5um/pcs_serdes/sgmii_channel_smi_pcs.v b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/models/ecp5um/pcs_serdes/sgmii_channel_smi_pcs.v new file mode 100644 index 0000000..32eab38 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/models/ecp5um/pcs_serdes/sgmii_channel_smi_pcs.v @@ -0,0 +1,476 @@ +// Verilog netlist produced by program ASBGen: Ports rev. 2.30, Attr. rev. 2.70 +// Netlist written on Tue Apr 30 12:09:53 2019 +// +// Verilog Description of module sgmii_channel_smi_pcs +// + +`timescale 1ns/1ps +module sgmii_channel_smi_pcs (hdoutp, hdoutn, hdinp, + hdinn, rxrefclk, rx_pclk, txi_clk, tx_pclk, txdata, + tx_k, xmit, tx_disp_correct, rxdata, rx_k, rx_disp_err, + rx_cv_err, signal_detect_c, lsm_status_s, rx_cdr_lol_s, + sli_rst, tx_pwrup_c, rx_pwrup_c, sci_wrdata, sci_addr, + sci_rddata, sci_en_dual, sci_sel_dual, sci_en, sci_sel, + sci_rd, sci_wrn, sci_int, cyawstn, serdes_pdb, pll_refclki, + rsl_disable, rsl_rst, serdes_rst_dual_c, rst_dual_c, tx_serdes_rst_c, + tx_pcs_rst_c, pll_lol, rx_serdes_rst_c, rx_pcs_rst_c); + output hdoutp; + output hdoutn; + input hdinp; + input hdinn; + input rxrefclk; + output rx_pclk; + input txi_clk; + output tx_pclk; + input [7:0]txdata; + input [0:0]tx_k; + input [0:0]xmit; + input [0:0]tx_disp_correct; + output [7:0]rxdata; + output [0:0]rx_k; + output [0:0]rx_disp_err; + output [0:0]rx_cv_err; + input signal_detect_c; + output lsm_status_s; + output rx_cdr_lol_s; + input sli_rst; + input tx_pwrup_c; + input rx_pwrup_c; + input [7:0]sci_wrdata; + input [5:0]sci_addr; + output [7:0]sci_rddata; + input sci_en_dual; + input sci_sel_dual; + input sci_en; + input sci_sel; + input sci_rd; + input sci_wrn; + output sci_int; + input cyawstn; + input serdes_pdb; + input pll_refclki; + input rsl_disable; + input rsl_rst; + input serdes_rst_dual_c; + input rst_dual_c; + input tx_serdes_rst_c; + input tx_pcs_rst_c; + output pll_lol; + input rx_serdes_rst_c; + input rx_pcs_rst_c; + + + wire n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, + n12, n13, n14, n15, n16, n17, n18, n19, n20, n21, + n22, n23, n24, n25, n26, n27, n28, n29, rsl_tx_pcs_rst_c, + rsl_rx_pcs_rst_c, rsl_rx_serdes_rst_c, rsl_rst_dual_c, rsl_serdes_rst_dual_c, + rsl_tx_serdes_rst_c, n30, n31, n32, n33, n34, n35, n36, + n37, n38, n39, n40, n41, n42, n43, n44, n45, n46, + n47, n48, n49, n50, n51, n52, n53, n54, n55, n56, + n57, n60, n61, n62, n63, n64, n65, n66, n67, n68, + n69, n70, n71, n72, n73, n74, n75, n76, n77, n78, + n79, n80, n81, n82, n83, n84, n85, n86, n87, n88, + n89, n90, n91, n92, n93, n94, n95, n96, n97, n98, + n99, n100, n101, n102, n103, n104, n105, n116, n117, + n118, n119, n120, n121, n122, n123, n124, n125, n126, + _Z; + + DCUA DCU0_inst (.CH0_HDINP(hdinp), .CH1_HDINP(1'b0), .CH0_HDINN(hdinn), + .CH1_HDINN(1'b0), .D_TXBIT_CLKP_FROM_ND(1'b0), .D_TXBIT_CLKN_FROM_ND(1'b0), + .D_SYNC_ND(1'b0), .D_TXPLL_LOL_FROM_ND(1'b0), .CH0_RX_REFCLK(rxrefclk), + .CH1_RX_REFCLK(1'b0), .CH0_FF_RXI_CLK(rx_pclk), .CH1_FF_RXI_CLK(1'b1), + .CH0_FF_TXI_CLK(txi_clk), .CH1_FF_TXI_CLK(1'b1), .CH0_FF_EBRD_CLK(1'b1), + .CH1_FF_EBRD_CLK(1'b1), .CH0_FF_TX_D_0(txdata[0]), .CH1_FF_TX_D_0(1'b0), + .CH0_FF_TX_D_1(txdata[1]), .CH1_FF_TX_D_1(1'b0), .CH0_FF_TX_D_2(txdata[2]), + .CH1_FF_TX_D_2(1'b0), .CH0_FF_TX_D_3(txdata[3]), .CH1_FF_TX_D_3(1'b0), + .CH0_FF_TX_D_4(txdata[4]), .CH1_FF_TX_D_4(1'b0), .CH0_FF_TX_D_5(txdata[5]), + .CH1_FF_TX_D_5(1'b0), .CH0_FF_TX_D_6(txdata[6]), .CH1_FF_TX_D_6(1'b0), + .CH0_FF_TX_D_7(txdata[7]), .CH1_FF_TX_D_7(1'b0), .CH0_FF_TX_D_8(tx_k[0]), + .CH1_FF_TX_D_8(1'b0), .CH0_FF_TX_D_9(1'b0), .CH1_FF_TX_D_9(1'b0), + .CH0_FF_TX_D_10(xmit[0]), .CH1_FF_TX_D_10(1'b0), .CH0_FF_TX_D_11(tx_disp_correct[0]), + .CH1_FF_TX_D_11(1'b0), .CH0_FF_TX_D_12(1'b0), .CH1_FF_TX_D_12(1'b0), + .CH0_FF_TX_D_13(1'b0), .CH1_FF_TX_D_13(1'b0), .CH0_FF_TX_D_14(1'b0), + .CH1_FF_TX_D_14(1'b0), .CH0_FF_TX_D_15(1'b0), .CH1_FF_TX_D_15(1'b0), + .CH0_FF_TX_D_16(1'b0), .CH1_FF_TX_D_16(1'b0), .CH0_FF_TX_D_17(1'b0), + .CH1_FF_TX_D_17(1'b0), .CH0_FF_TX_D_18(1'b0), .CH1_FF_TX_D_18(1'b0), + .CH0_FF_TX_D_19(1'b0), .CH1_FF_TX_D_19(1'b0), .CH0_FF_TX_D_20(1'b0), + .CH1_FF_TX_D_20(1'b0), .CH0_FF_TX_D_21(1'b0), .CH1_FF_TX_D_21(1'b0), + .CH0_FF_TX_D_22(1'b0), .CH1_FF_TX_D_22(1'b0), .CH0_FF_TX_D_23(1'b0), + .CH1_FF_TX_D_23(1'b0), .CH0_FFC_EI_EN(1'b0), .CH1_FFC_EI_EN(1'b0), + .CH0_FFC_PCIE_DET_EN(1'b0), .CH1_FFC_PCIE_DET_EN(1'b0), .CH0_FFC_PCIE_CT(1'b0), + .CH1_FFC_PCIE_CT(1'b0), .CH0_FFC_SB_INV_RX(1'b0), .CH1_FFC_SB_INV_RX(1'b0), + .CH0_FFC_ENABLE_CGALIGN(1'b0), .CH1_FFC_ENABLE_CGALIGN(1'b0), .CH0_FFC_SIGNAL_DETECT(signal_detect_c), + .CH1_FFC_SIGNAL_DETECT(1'b0), .CH0_FFC_FB_LOOPBACK(1'b0), .CH1_FFC_FB_LOOPBACK(1'b0), + .CH0_FFC_SB_PFIFO_LP(1'b0), .CH1_FFC_SB_PFIFO_LP(1'b0), .CH0_FFC_PFIFO_CLR(1'b0), + .CH1_FFC_PFIFO_CLR(1'b0), .CH0_FFC_RATE_MODE_RX(1'b0), .CH1_FFC_RATE_MODE_RX(1'b0), + .CH0_FFC_RATE_MODE_TX(1'b0), .CH1_FFC_RATE_MODE_TX(1'b0), .CH0_FFC_DIV11_MODE_RX(1'b0), + .CH1_FFC_DIV11_MODE_RX(1'b0), .CH0_FFC_DIV11_MODE_TX(1'b0), .CH1_FFC_DIV11_MODE_TX(1'b0), + .CH0_FFC_RX_GEAR_MODE(1'b0), .CH1_FFC_RX_GEAR_MODE(1'b0), .CH0_FFC_TX_GEAR_MODE(1'b0), + .CH1_FFC_TX_GEAR_MODE(1'b0), .CH0_FFC_LDR_CORE2TX_EN(1'b0), .CH1_FFC_LDR_CORE2TX_EN(1'b0), + .CH0_FFC_LANE_TX_RST(rsl_tx_pcs_rst_c), .CH1_FFC_LANE_TX_RST(1'b0), + .CH0_FFC_LANE_RX_RST(rsl_rx_pcs_rst_c), .CH1_FFC_LANE_RX_RST(1'b0), + .CH0_FFC_RRST(rsl_rx_serdes_rst_c), .CH1_FFC_RRST(1'b0), .CH0_FFC_TXPWDNB(tx_pwrup_c), + .CH1_FFC_TXPWDNB(1'b0), .CH0_FFC_RXPWDNB(rx_pwrup_c), .CH1_FFC_RXPWDNB(1'b0), + .CH0_LDR_CORE2TX(1'b0), .CH1_LDR_CORE2TX(1'b0), .D_SCIWDATA0(sci_wrdata[0]), + .D_SCIWDATA1(sci_wrdata[1]), .D_SCIWDATA2(sci_wrdata[2]), .D_SCIWDATA3(sci_wrdata[3]), + .D_SCIWDATA4(sci_wrdata[4]), .D_SCIWDATA5(sci_wrdata[5]), .D_SCIWDATA6(sci_wrdata[6]), + .D_SCIWDATA7(sci_wrdata[7]), .D_SCIADDR0(sci_addr[0]), .D_SCIADDR1(sci_addr[1]), + .D_SCIADDR2(sci_addr[2]), .D_SCIADDR3(sci_addr[3]), .D_SCIADDR4(sci_addr[4]), + .D_SCIADDR5(sci_addr[5]), .D_SCIENAUX(sci_en_dual), .D_SCISELAUX(sci_sel_dual), + .CH0_SCIEN(sci_en), .CH1_SCIEN(1'b0), .CH0_SCISEL(sci_sel), .CH1_SCISEL(1'b0), + .D_SCIRD(sci_rd), .D_SCIWSTN(sci_wrn), .D_CYAWSTN(cyawstn), .D_FFC_SYNC_TOGGLE(1'b0), + .D_FFC_DUAL_RST(rsl_rst_dual_c), .D_FFC_MACRO_RST(rsl_serdes_rst_dual_c), + .D_FFC_MACROPDB(serdes_pdb), .D_FFC_TRST(rsl_tx_serdes_rst_c), + .CH0_FFC_CDR_EN_BITSLIP(1'b0), .CH1_FFC_CDR_EN_BITSLIP(1'b0), .D_SCAN_ENABLE(1'b0), + .D_SCAN_IN_0(1'b0), .D_SCAN_IN_1(1'b0), .D_SCAN_IN_2(1'b0), .D_SCAN_IN_3(1'b0), + .D_SCAN_IN_4(1'b0), .D_SCAN_IN_5(1'b0), .D_SCAN_IN_6(1'b0), .D_SCAN_IN_7(1'b0), + .D_SCAN_MODE(1'b0), .D_SCAN_RESET(1'b0), .D_CIN0(1'b0), .D_CIN1(1'b0), + .D_CIN2(1'b0), .D_CIN3(1'b0), .D_CIN4(1'b0), .D_CIN5(1'b0), + .D_CIN6(1'b0), .D_CIN7(1'b0), .D_CIN8(1'b0), .D_CIN9(1'b0), + .D_CIN10(1'b0), .D_CIN11(1'b0), .CH0_HDOUTP(hdoutp), .CH1_HDOUTP(n61), + .CH0_HDOUTN(hdoutn), .CH1_HDOUTN(n62), .D_TXBIT_CLKP_TO_ND(n1), + .D_TXBIT_CLKN_TO_ND(n2), .D_SYNC_PULSE2ND(n3), .D_TXPLL_LOL_TO_ND(n4), + .CH0_FF_RX_F_CLK(n5), .CH1_FF_RX_F_CLK(n63), .CH0_FF_RX_H_CLK(n6), + .CH1_FF_RX_H_CLK(n64), .CH0_FF_TX_F_CLK(n7), .CH1_FF_TX_F_CLK(n65), + .CH0_FF_TX_H_CLK(n8), .CH1_FF_TX_H_CLK(n66), .CH0_FF_RX_PCLK(rx_pclk), + .CH1_FF_RX_PCLK(n67), .CH0_FF_TX_PCLK(tx_pclk), .CH1_FF_TX_PCLK(n68), + .CH0_FF_RX_D_0(rxdata[0]), .CH1_FF_RX_D_0(n69), .CH0_FF_RX_D_1(rxdata[1]), + .CH1_FF_RX_D_1(n70), .CH0_FF_RX_D_2(rxdata[2]), .CH1_FF_RX_D_2(n71), + .CH0_FF_RX_D_3(rxdata[3]), .CH1_FF_RX_D_3(n72), .CH0_FF_RX_D_4(rxdata[4]), + .CH1_FF_RX_D_4(n73), .CH0_FF_RX_D_5(rxdata[5]), .CH1_FF_RX_D_5(n74), + .CH0_FF_RX_D_6(rxdata[6]), .CH1_FF_RX_D_6(n75), .CH0_FF_RX_D_7(rxdata[7]), + .CH1_FF_RX_D_7(n76), .CH0_FF_RX_D_8(rx_k[0]), .CH1_FF_RX_D_8(n77), + .CH0_FF_RX_D_9(rx_disp_err[0]), .CH1_FF_RX_D_9(n78), .CH0_FF_RX_D_10(rx_cv_err[0]), + .CH1_FF_RX_D_10(n79), .CH0_FF_RX_D_11(n9), .CH1_FF_RX_D_11(n80), + .CH0_FF_RX_D_12(n10), .CH1_FF_RX_D_12(n81), .CH0_FF_RX_D_13(n11), + .CH1_FF_RX_D_13(n82), .CH0_FF_RX_D_14(n12), .CH1_FF_RX_D_14(n83), + .CH0_FF_RX_D_15(n13), .CH1_FF_RX_D_15(n84), .CH0_FF_RX_D_16(n14), + .CH1_FF_RX_D_16(n85), .CH0_FF_RX_D_17(n15), .CH1_FF_RX_D_17(n86), + .CH0_FF_RX_D_18(n16), .CH1_FF_RX_D_18(n87), .CH0_FF_RX_D_19(n17), + .CH1_FF_RX_D_19(n88), .CH0_FF_RX_D_20(n18), .CH1_FF_RX_D_20(n89), + .CH0_FF_RX_D_21(n19), .CH1_FF_RX_D_21(n90), .CH0_FF_RX_D_22(n20), + .CH1_FF_RX_D_22(n91), .CH0_FF_RX_D_23(n21), .CH1_FF_RX_D_23(n92), + .CH0_FFS_PCIE_DONE(n22), .CH1_FFS_PCIE_DONE(n93), .CH0_FFS_PCIE_CON(n23), + .CH1_FFS_PCIE_CON(n94), .CH0_FFS_RLOS(n95), .CH1_FFS_RLOS(n96), + .CH0_FFS_LS_SYNC_STATUS(lsm_status_s), .CH1_FFS_LS_SYNC_STATUS(n97), + .CH0_FFS_CC_UNDERRUN(n24), .CH1_FFS_CC_UNDERRUN(n98), .CH0_FFS_CC_OVERRUN(n25), + .CH1_FFS_CC_OVERRUN(n99), .CH0_FFS_RXFBFIFO_ERROR(n26), .CH1_FFS_RXFBFIFO_ERROR(n100), + .CH0_FFS_TXFBFIFO_ERROR(n27), .CH1_FFS_TXFBFIFO_ERROR(n101), .CH0_FFS_RLOL(rx_cdr_lol_s), + .CH1_FFS_RLOL(n102), .CH0_FFS_SKP_ADDED(n28), .CH1_FFS_SKP_ADDED(n103), + .CH0_FFS_SKP_DELETED(n29), .CH1_FFS_SKP_DELETED(n104), .CH0_LDR_RX2CORE(n105), + .CH1_LDR_RX2CORE(n116), .D_SCIRDATA0(sci_rddata[0]), .D_SCIRDATA1(sci_rddata[1]), + .D_SCIRDATA2(sci_rddata[2]), .D_SCIRDATA3(sci_rddata[3]), .D_SCIRDATA4(sci_rddata[4]), + .D_SCIRDATA5(sci_rddata[5]), .D_SCIRDATA6(sci_rddata[6]), .D_SCIRDATA7(sci_rddata[7]), + .D_SCIINT(sci_int), .D_SCAN_OUT_0(n30), .D_SCAN_OUT_1(n31), .D_SCAN_OUT_2(n32), + .D_SCAN_OUT_3(n33), .D_SCAN_OUT_4(n34), .D_SCAN_OUT_5(n35), .D_SCAN_OUT_6(n36), + .D_SCAN_OUT_7(n37), .D_COUT0(n38), .D_COUT1(n39), .D_COUT2(n40), + .D_COUT3(n41), .D_COUT4(n42), .D_COUT5(n43), .D_COUT6(n44), + .D_COUT7(n45), .D_COUT8(n46), .D_COUT9(n47), .D_COUT10(n48), + .D_COUT11(n49), .D_COUT12(n50), .D_COUT13(n51), .D_COUT14(n52), + .D_COUT15(n53), .D_COUT16(n54), .D_COUT17(n55), .D_COUT18(n56), + .D_COUT19(n57), .D_REFCLKI(pll_refclki), .D_FFS_PLOL(n60)) /* synthesis LOC=DCU0 CHAN=CH0 */ ; + defparam DCU0_inst.D_MACROPDB = "0b1"; + defparam DCU0_inst.D_IB_PWDNB = "0b1"; + defparam DCU0_inst.D_XGE_MODE = "0b0"; + defparam DCU0_inst.D_LOW_MARK = "0d4"; + defparam DCU0_inst.D_HIGH_MARK = "0d12"; + defparam DCU0_inst.D_BUS8BIT_SEL = "0b0"; + defparam DCU0_inst.D_CDR_LOL_SET = "0b00"; + defparam DCU0_inst.D_TXPLL_PWDNB = "0b1"; + defparam DCU0_inst.D_BITCLK_LOCAL_EN = "0b1"; + defparam DCU0_inst.D_BITCLK_ND_EN = "0b0"; + defparam DCU0_inst.D_BITCLK_FROM_ND_EN = "0b0"; + defparam DCU0_inst.D_SYNC_LOCAL_EN = "0b1"; + defparam DCU0_inst.D_SYNC_ND_EN = "0b0"; + defparam DCU0_inst.CH0_UC_MODE = "0b0"; + defparam DCU0_inst.CH0_PCIE_MODE = "0b0"; + defparam DCU0_inst.CH0_RIO_MODE = "0b0"; + defparam DCU0_inst.CH0_WA_MODE = "0b0"; + defparam DCU0_inst.CH0_INVERT_RX = "0b0"; + defparam DCU0_inst.CH0_INVERT_TX = "0b0"; + defparam DCU0_inst.CH0_PRBS_SELECTION = "0b0"; + defparam DCU0_inst.CH0_GE_AN_ENABLE = "0b1"; + defparam DCU0_inst.CH0_PRBS_LOCK = "0b0"; + defparam DCU0_inst.CH0_PRBS_ENABLE = "0b0"; + defparam DCU0_inst.CH0_ENABLE_CG_ALIGN = "0b1"; + defparam DCU0_inst.CH0_TX_GEAR_MODE = "0b0"; + defparam DCU0_inst.CH0_RX_GEAR_MODE = "0b0"; + defparam DCU0_inst.CH0_PCS_DET_TIME_SEL = "0b00"; + defparam DCU0_inst.CH0_PCIE_EI_EN = "0b0"; + defparam DCU0_inst.CH0_TX_GEAR_BYPASS = "0b0"; + defparam DCU0_inst.CH0_ENC_BYPASS = "0b0"; + defparam DCU0_inst.CH0_SB_BYPASS = "0b0"; + defparam DCU0_inst.CH0_RX_SB_BYPASS = "0b0"; + defparam DCU0_inst.CH0_WA_BYPASS = "0b0"; + defparam DCU0_inst.CH0_DEC_BYPASS = "0b0"; + defparam DCU0_inst.CH0_CTC_BYPASS = "0b1"; + defparam DCU0_inst.CH0_RX_GEAR_BYPASS = "0b0"; + defparam DCU0_inst.CH0_LSM_DISABLE = "0b0"; + defparam DCU0_inst.CH0_MATCH_2_ENABLE = "0b0"; + defparam DCU0_inst.CH0_MATCH_4_ENABLE = "0b0"; + defparam DCU0_inst.CH0_MIN_IPG_CNT = "0b11"; + defparam DCU0_inst.CH0_CC_MATCH_1 = "0x000"; + defparam DCU0_inst.CH0_CC_MATCH_2 = "0x000"; + defparam DCU0_inst.CH0_CC_MATCH_3 = "0x000"; + defparam DCU0_inst.CH0_CC_MATCH_4 = "0x000"; + defparam DCU0_inst.CH0_UDF_COMMA_MASK = "0x3ff"; + defparam DCU0_inst.CH0_UDF_COMMA_A = "0x283"; + defparam DCU0_inst.CH0_UDF_COMMA_B = "0x17C"; + defparam DCU0_inst.CH0_RX_DCO_CK_DIV = "0b000"; + defparam DCU0_inst.CH0_RCV_DCC_EN = "0b0"; + defparam DCU0_inst.CH0_TPWDNB = "0b1"; + defparam DCU0_inst.CH0_RATE_MODE_TX = "0b1"; + defparam DCU0_inst.CH0_RTERM_TX = "0d19"; + defparam DCU0_inst.CH0_TX_CM_SEL = "0b00"; + defparam DCU0_inst.CH0_TDRV_PRE_EN = "0b0"; + defparam DCU0_inst.CH0_TDRV_SLICE0_SEL = "0b01"; + defparam DCU0_inst.CH0_TDRV_SLICE1_SEL = "0b00"; + defparam DCU0_inst.CH0_TDRV_SLICE2_SEL = "0b01"; + defparam DCU0_inst.CH0_TDRV_SLICE3_SEL = "0b01"; + defparam DCU0_inst.CH0_TDRV_SLICE4_SEL = "0b01"; + defparam DCU0_inst.CH0_TDRV_SLICE5_SEL = "0b00"; + defparam DCU0_inst.CH0_TDRV_SLICE0_CUR = "0b011"; + defparam DCU0_inst.CH0_TDRV_SLICE1_CUR = "0b000"; + defparam DCU0_inst.CH0_TDRV_SLICE2_CUR = "0b11"; + defparam DCU0_inst.CH0_TDRV_SLICE3_CUR = "0b11"; + defparam DCU0_inst.CH0_TDRV_SLICE4_CUR = "0b11"; + defparam DCU0_inst.CH0_TDRV_SLICE5_CUR = "0b00"; + defparam DCU0_inst.CH0_TDRV_DAT_SEL = "0b00"; + defparam DCU0_inst.CH0_TX_DIV11_SEL = "0b0"; + defparam DCU0_inst.CH0_RPWDNB = "0b1"; + defparam DCU0_inst.CH0_RATE_MODE_RX = "0b1"; + defparam DCU0_inst.CH0_RX_DIV11_SEL = "0b0"; + defparam DCU0_inst.CH0_SEL_SD_RX_CLK = "0b1"; + defparam DCU0_inst.CH0_FF_RX_H_CLK_EN = "0b0"; + defparam DCU0_inst.CH0_FF_RX_F_CLK_DIS = "0b0"; + defparam DCU0_inst.CH0_FF_TX_H_CLK_EN = "0b0"; + defparam DCU0_inst.CH0_FF_TX_F_CLK_DIS = "0b0"; + defparam DCU0_inst.CH0_TDRV_POST_EN = "0b0"; + defparam DCU0_inst.CH0_TX_POST_SIGN = "0b0"; + defparam DCU0_inst.CH0_TX_PRE_SIGN = "0b0"; + defparam DCU0_inst.CH0_REQ_LVL_SET = "0b01"; + defparam DCU0_inst.CH0_REQ_EN = "0b1"; + defparam DCU0_inst.CH0_RTERM_RX = "0d22"; + defparam DCU0_inst.CH0_RXTERM_CM = "0b11"; + defparam DCU0_inst.CH0_PDEN_SEL = "0b1"; + defparam DCU0_inst.CH0_RXIN_CM = "0b11"; + defparam DCU0_inst.CH0_LEQ_OFFSET_SEL = "0b0"; + defparam DCU0_inst.CH0_LEQ_OFFSET_TRIM = "0b000"; + defparam DCU0_inst.CH0_RLOS_SEL = "0b1"; + defparam DCU0_inst.CH0_RX_LOS_LVL = "0b010"; + defparam DCU0_inst.CH0_RX_LOS_CEQ = "0b11"; + defparam DCU0_inst.CH0_RX_LOS_HYST_EN = "0b0"; + defparam DCU0_inst.CH0_RX_LOS_EN = "0b0"; + defparam DCU0_inst.CH0_LDR_RX2CORE_SEL = "0b0"; + defparam DCU0_inst.CH0_LDR_CORE2TX_SEL = "0b0"; + defparam DCU0_inst.D_TX_MAX_RATE = "2.5"; + defparam DCU0_inst.CH0_CDR_MAX_RATE = "2.5"; + defparam DCU0_inst.CH0_TXAMPLITUDE = "0d6"; + defparam DCU0_inst.CH0_TXDEPRE = "DISABLED"; + defparam DCU0_inst.CH0_TXDEPOST = "DISABLED"; + defparam DCU0_inst.CH0_PROTOCOL = "SGMII"; + defparam DCU0_inst.D_ISETLOS = "0d0"; + defparam DCU0_inst.D_SETIRPOLY_AUX = "0b00"; + defparam DCU0_inst.D_SETICONST_AUX = "0b00"; + defparam DCU0_inst.D_SETIRPOLY_CH = "0b00"; + defparam DCU0_inst.D_SETICONST_CH = "0b00"; + defparam DCU0_inst.D_REQ_ISET = "0b000"; + defparam DCU0_inst.D_PD_ISET = "0b00"; + defparam DCU0_inst.D_DCO_CALIB_TIME_SEL = "0b00"; + defparam DCU0_inst.CH0_CDR_CNT4SEL = "0b00"; + defparam DCU0_inst.CH0_CDR_CNT8SEL = "0b00"; + defparam DCU0_inst.CH0_DCOATDCFG = "0b00"; + defparam DCU0_inst.CH0_DCOATDDLY = "0b00"; + defparam DCU0_inst.CH0_DCOBYPSATD = "0b1"; + defparam DCU0_inst.CH0_DCOCALDIV = "0b001"; + defparam DCU0_inst.CH0_DCOCTLGI = "0b010"; + defparam DCU0_inst.CH0_DCODISBDAVOID = "0b0"; + defparam DCU0_inst.CH0_DCOFLTDAC = "0b01"; + defparam DCU0_inst.CH0_DCOFTNRG = "0b110"; + defparam DCU0_inst.CH0_DCOIOSTUNE = "0b000"; + defparam DCU0_inst.CH0_DCOITUNE = "0b00"; + defparam DCU0_inst.CH0_DCOITUNE4LSB = "0b111"; + defparam DCU0_inst.CH0_DCOIUPDNX2 = "0b1"; + defparam DCU0_inst.CH0_DCONUOFLSB = "0b101"; + defparam DCU0_inst.CH0_DCOSCALEI = "0b00"; + defparam DCU0_inst.CH0_DCOSTARTVAL = "0b000"; + defparam DCU0_inst.CH0_DCOSTEP = "0b00"; + defparam DCU0_inst.CH0_BAND_THRESHOLD = "0d0"; + defparam DCU0_inst.CH0_AUTO_FACQ_EN = "0b1"; + defparam DCU0_inst.CH0_AUTO_CALIB_EN = "0b1"; + defparam DCU0_inst.CH0_CALIB_CK_MODE = "0b0"; + defparam DCU0_inst.CH0_REG_BAND_OFFSET = "0d0"; + defparam DCU0_inst.CH0_REG_BAND_SEL = "0d0"; + defparam DCU0_inst.CH0_REG_IDAC_SEL = "0d0"; + defparam DCU0_inst.CH0_REG_IDAC_EN = "0b0"; + defparam DCU0_inst.D_CMUSETISCL4VCO = "0b000"; + defparam DCU0_inst.D_CMUSETI4VCO = "0b00"; + defparam DCU0_inst.D_CMUSETINITVCT = "0b00"; + defparam DCU0_inst.D_CMUSETZGM = "0b000"; + defparam DCU0_inst.D_CMUSETP2AGM = "0b000"; + defparam DCU0_inst.D_CMUSETP1GM = "0b000"; + defparam DCU0_inst.D_CMUSETI4CPZ = "0d3"; + defparam DCU0_inst.D_CMUSETI4CPP = "0d3"; + defparam DCU0_inst.D_CMUSETICP4Z = "0b101"; + defparam DCU0_inst.D_CMUSETICP4P = "0b01"; + defparam DCU0_inst.D_CMUSETBIASI = "0b00"; + defparam DCU0_inst.D_SETPLLRC = "0d1"; + defparam DCU0_inst.CH0_RX_RATE_SEL = "0d8"; + defparam DCU0_inst.D_REFCK_MODE = "0b000"; + defparam DCU0_inst.D_TX_VCO_CK_DIV = "0b000"; + defparam DCU0_inst.D_PLL_LOL_SET = "0b00"; + defparam DCU0_inst.D_RG_EN = "0b0"; + defparam DCU0_inst.D_RG_SET = "0b00"; + assign n1 = 1'bz; + assign n2 = 1'bz; + assign n3 = 1'bz; + assign n4 = 1'bz; + assign n5 = 1'bz; + assign n6 = 1'bz; + assign n7 = 1'bz; + assign n8 = 1'bz; + assign n9 = 1'bz; + assign n10 = 1'bz; + assign n11 = 1'bz; + assign n12 = 1'bz; + assign n13 = 1'bz; + assign n14 = 1'bz; + assign n15 = 1'bz; + assign n16 = 1'bz; + assign n17 = 1'bz; + assign n18 = 1'bz; + assign n19 = 1'bz; + assign n20 = 1'bz; + assign n21 = 1'bz; + assign n22 = 1'bz; + assign n23 = 1'bz; + assign n24 = 1'bz; + assign n25 = 1'bz; + assign n26 = 1'bz; + assign n27 = 1'bz; + assign n28 = 1'bz; + assign n29 = 1'bz; + assign n30 = 1'bz; + assign n31 = 1'bz; + assign n32 = 1'bz; + assign n33 = 1'bz; + assign n34 = 1'bz; + assign n35 = 1'bz; + assign n36 = 1'bz; + assign n37 = 1'bz; + assign n38 = 1'bz; + assign n39 = 1'bz; + assign n40 = 1'bz; + assign n41 = 1'bz; + assign n42 = 1'bz; + assign n43 = 1'bz; + assign n44 = 1'bz; + assign n45 = 1'bz; + assign n46 = 1'bz; + assign n47 = 1'bz; + assign n48 = 1'bz; + assign n49 = 1'bz; + assign n50 = 1'bz; + assign n51 = 1'bz; + assign n52 = 1'bz; + assign n53 = 1'bz; + assign n54 = 1'bz; + assign n55 = 1'bz; + assign n56 = 1'bz; + assign n57 = 1'bz; + assign n60 = 1'bz; + assign n61 = 1'bz; + assign n62 = 1'bz; + assign n63 = 1'bz; + assign n64 = 1'bz; + assign n65 = 1'bz; + assign n66 = 1'bz; + assign n67 = 1'bz; + assign n68 = 1'bz; + assign n69 = 1'bz; + assign n70 = 1'bz; + assign n71 = 1'bz; + assign n72 = 1'bz; + assign n73 = 1'bz; + assign n74 = 1'bz; + assign n75 = 1'bz; + assign n76 = 1'bz; + assign n77 = 1'bz; + assign n78 = 1'bz; + assign n79 = 1'bz; + assign n80 = 1'bz; + assign n81 = 1'bz; + assign n82 = 1'bz; + assign n83 = 1'bz; + assign n84 = 1'bz; + assign n85 = 1'bz; + assign n86 = 1'bz; + assign n87 = 1'bz; + assign n88 = 1'bz; + assign n89 = 1'bz; + assign n90 = 1'bz; + assign n91 = 1'bz; + assign n92 = 1'bz; + assign n93 = 1'bz; + assign n94 = 1'bz; + assign n95 = 1'bz; + assign n96 = 1'bz; + assign n97 = 1'bz; + assign n98 = 1'bz; + assign n99 = 1'bz; + assign n100 = 1'bz; + assign n101 = 1'bz; + assign n102 = 1'bz; + assign n103 = 1'bz; + assign n104 = 1'bz; + assign n105 = 1'bz; + assign n116 = 1'bz; + sgmii_channel_smi_pcsrsl_core rsl_inst (.rui_rst(rsl_rst), .rui_serdes_rst_dual_c(serdes_rst_dual_c), + .rui_rst_dual_c(rst_dual_c), .rui_rsl_disable(rsl_disable), + .rui_tx_ref_clk(pll_refclki), .rui_tx_serdes_rst_c(tx_serdes_rst_c), + .rui_tx_pcs_rst_c({3'b000, tx_pcs_rst_c}), .rdi_pll_lol(pll_lol), + .rui_rx_ref_clk(rxrefclk), .rui_rx_serdes_rst_c({3'b000, rx_serdes_rst_c}), + .rui_rx_pcs_rst_c({3'b000, rx_pcs_rst_c}), .rdi_rx_los_low_s({4'b0000}), + .rdi_rx_cdr_lol_s({3'b000, rx_cdr_lol_s}), .rdo_serdes_rst_dual_c(rsl_serdes_rst_dual_c), + .rdo_rst_dual_c(rsl_rst_dual_c), .ruo_tx_rdy(n117), .rdo_tx_serdes_rst_c(rsl_tx_serdes_rst_c), + .rdo_tx_pcs_rst_c({n118, n119, n120, rsl_tx_pcs_rst_c}), + .ruo_rx_rdy(n121), .rdo_rx_serdes_rst_c({n122, n123, n124, + rsl_rx_serdes_rst_c}), .rdo_rx_pcs_rst_c({n125, n126, _Z, + rsl_rx_pcs_rst_c})); + defparam rsl_inst.pnum_channels = 1; + defparam rsl_inst.pprotocol = "SGMII"; + defparam rsl_inst.pserdes_mode = "RX AND TX"; + defparam rsl_inst.pport_tx_rdy = "DISABLED"; + defparam rsl_inst.pwait_tx_rdy = 3000; + defparam rsl_inst.pport_rx_rdy = "DISABLED"; + defparam rsl_inst.pwait_rx_rdy = 3000; + assign n117 = 1'bz; + assign n118 = 1'bz; + assign n119 = 1'bz; + assign n120 = 1'bz; + assign n121 = 1'bz; + assign n122 = 1'bz; + assign n123 = 1'bz; + assign n124 = 1'bz; + assign n125 = 1'bz; + assign n126 = 1'bz; + assign _Z = 1'bz; + sgmii_channel_smi_pcssll_core sll_inst (.sli_rst(sli_rst), .sli_refclk(pll_refclki), + .sli_pclk(tx_pclk), .sli_div2_rate(1'b0), .sli_div11_rate(1'b0), + .sli_gear_mode(1'b0), .sli_cpri_mode({3'b000}), .sli_pcie_mode(1'b0), + .slo_plol(pll_lol)); + defparam sll_inst.PPROTOCOL = "SGMII"; + defparam sll_inst.PLOL_SETTING = 0; + defparam sll_inst.PDYN_RATE_CTRL = "DISABLED"; + defparam sll_inst.PPCIE_MAX_RATE = "2.5"; + defparam sll_inst.PDIFF_VAL_LOCK = 19; + defparam sll_inst.PDIFF_VAL_UNLOCK = 39; + defparam sll_inst.PPCLK_TC = 65536; + defparam sll_inst.PDIFF_DIV11_VAL_LOCK = 0; + defparam sll_inst.PDIFF_DIV11_VAL_UNLOCK = 0; + defparam sll_inst.PPCLK_DIV11_TC = 0; + +endmodule + + + diff --git a/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/models/ecp5um/pcs_serdes/sgmii_channel_smi_pcs_softlogic.v b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/models/ecp5um/pcs_serdes/sgmii_channel_smi_pcs_softlogic.v new file mode 100644 index 0000000..37a1f5b --- /dev/null +++ b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/models/ecp5um/pcs_serdes/sgmii_channel_smi_pcs_softlogic.v @@ -0,0 +1,2003 @@ + + +// =========================================================================== +// >>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< +// --------------------------------------------------------------------------- +// Copyright (c) 2016 by Lattice Semiconductor Corporation +// ALL RIGHTS RESERVED +// ------------------------------------------------------------------ +// +// Permission: +// +// Lattice SG Pte. Ltd. grants permission to use this code +// pursuant to the terms of the Lattice Reference Design License Agreement. +// +// +// Disclaimer: +// +// This VHDL or Verilog source code is intended as a design reference +// which illustrates how these types of functions can be implemented. +// It is the user's responsibility to verify their design for +// consistency and functionality through the use of formal +// verification methods. Lattice provides no warranty +// regarding the use or functionality of this code. +// +// --------------------------------------------------------------------------- +// +// Lattice SG Pte. Ltd. +// 101 Thomson Road, United Square #07-02 +// Singapore 307591 +// +// +// TEL: 1-800-Lattice (USA and Canada) +// +65-6631-2000 (Singapore) +// +1-503-268-8001 (other locations) +// +// web: http://www.latticesemi.com/ +// email: techsupport@latticesemi.com +// +// --------------------------------------------------------------------------- +// +// ============================================================================= +// FILE DETAILS +// Project : RSL- Reset Sequence Logic +// File : rsl_core.v +// Title : Top-level file for RSL +// Dependencies : 1. +// : 2. +// Description : +// ============================================================================= +// REVISION HISTORY +// Version : 1.0 +// Author(s) : BM +// Mod. Date : October 28, 2013 +// Changes Made : Initial Creation +// ----------------------------------------------------------------------------- +// Version : 1.1 +// Author(s) : BM +// Mod. Date : November 06, 2013 +// Changes Made : Tx/Rx separation, ready port code exclusion +// ----------------------------------------------------------------------------- +// Version : 1.2 +// Author(s) : BM +// Mod. Date : June 13, 2014 +// Changes Made : Updated Rx PCS reset method +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// Version : 1.3 +// Author(s) : UA +// Mod. Date : Dec 19, 2014 +// Changes Made : Added new parameter fro PCIE +// ----------------------------------------------------------------------------- +// Version : 1.31 +// Author(s) : BM/UM +// Mod. Date : Feb 23, 2016 +// Changes Made : Behavior of rx_rdy output modified. The output rx_rdy +// and the rx_rdy wait counter are reset to zero on +// LOL or LOS. Reverted back the counter value change for PCIE. +// ----------------------------------------------------------------------------- +// Version : 1.4 +// Author(s) : EB +// Mod. Date: : March 21, 2017 +// Changes Made : +// ----------------------------------------------------------------------------- +// Version : 1.5 +// Author(s) : ES +// Mod. Date: : May 8, 2017 +// Changes Made : Implemented common RSL behaviour as proposed by BM. +// ============================================================================= + +`timescale 1ns/10ps + +module sgmii_channel_smi_pcsrsl_core ( + // ------------ Inputs + // Common + rui_rst, // Active high reset for the RSL module + rui_serdes_rst_dual_c, // SERDES macro reset user command + rui_rst_dual_c, // PCS dual reset user command + rui_rsl_disable, // Active high signal that disables all reset outputs of RSL + // Tx + rui_tx_ref_clk, // Tx reference clock + rui_tx_serdes_rst_c, // Tx SERDES reset user command + rui_tx_pcs_rst_c, // Tx lane reset user command + rdi_pll_lol, // Tx PLL Loss of Lock status input from the SERDES + // Rx + rui_rx_ref_clk, // Rx reference clock + rui_rx_serdes_rst_c, // SERDES Receive channel reset user command + rui_rx_pcs_rst_c, // Rx lane reset user command + rdi_rx_los_low_s, // Receive loss of signal status input from SERDES + rdi_rx_cdr_lol_s, // Receive CDR loss of lock status input from SERDES + + // ------------ Outputs + // Common + rdo_serdes_rst_dual_c, // SERDES macro reset command output + rdo_rst_dual_c, // PCS dual reset command output + // Tx + ruo_tx_rdy, // Tx lane ready status output + rdo_tx_serdes_rst_c, // SERDES Tx reset command output + rdo_tx_pcs_rst_c, // PCS Tx lane reset command output + // Rx + ruo_rx_rdy, // Rx lane ready status output + rdo_rx_serdes_rst_c, // SERDES Rx channel reset command output + rdo_rx_pcs_rst_c // PCS Rx lane reset command output + ); + +// ------------ Module parameters +`ifdef NUM_CHANNELS + parameter pnum_channels = `NUM_CHANNELS; // 1,2,4 +`else + parameter pnum_channels = 1; +`endif + +`ifdef PCIE + parameter pprotocol = "PCIE"; +`else + parameter pprotocol = ""; +`endif + +`ifdef RX_ONLY + parameter pserdes_mode = "RX ONLY"; +`else + `ifdef TX_ONLY + parameter pserdes_mode = "TX ONLY"; + `else + parameter pserdes_mode = "RX AND TX"; + `endif +`endif + +`ifdef PORT_TX_RDY + parameter pport_tx_rdy = "ENABLED"; +`else + parameter pport_tx_rdy = "DISABLED"; +`endif + +`ifdef WAIT_TX_RDY + parameter pwait_tx_rdy = `WAIT_TX_RDY; +`else + parameter pwait_tx_rdy = 3000; +`endif + +`ifdef PORT_RX_RDY + parameter pport_rx_rdy = "ENABLED"; +`else + parameter pport_rx_rdy = "DISABLED"; +`endif + +`ifdef WAIT_RX_RDY + parameter pwait_rx_rdy = `WAIT_RX_RDY; +`else + parameter pwait_rx_rdy = 3000; +`endif + +// ------------ Local parameters + localparam wa_num_cycles = 1024; + localparam dac_num_cycles = 3; + localparam lreset_pwidth = 3; // reset pulse width-1, default=4-1=3 + localparam lwait_b4_trst = 781250; // 5ms wait with worst-case Fmax=156 MHz + localparam lwait_b4_trst_s = 781; // for simulation + localparam lplol_cnt_width = 20; // width for lwait_b4_trst + localparam lwait_after_plol0 = 4; + localparam lwait_b4_rrst = 180224; // total calibration time + localparam lrrst_wait_width = 20; + localparam lwait_after_rrst = 800000; // For CPRI- unused + localparam lwait_b4_rrst_s = 460; // wait cycles provided by design team + localparam lrlol_cnt_width = 19; // width for lwait_b4_rrst + localparam lwait_after_lols = (16384 * dac_num_cycles) + wa_num_cycles; // 16384 cycles * dac_num_cycles + 1024 cycles + localparam lwait_after_lols_s = 150; // wait cycles provided by design team + localparam llols_cnt_width = 18; // lols count width + localparam lrdb_max = 15; // maximum debounce count + localparam ltxr_wait_width = 12; // width of tx ready wait counter + localparam lrxr_wait_width = 12; // width of tx ready wait counter + +// ------------ input ports + input rui_rst; + input rui_serdes_rst_dual_c; + input rui_rst_dual_c; + input rui_rsl_disable; + + input rui_tx_ref_clk; + input rui_tx_serdes_rst_c; + input [3:0] rui_tx_pcs_rst_c; + input rdi_pll_lol; + + input rui_rx_ref_clk; + input [3:0] rui_rx_serdes_rst_c; + input [3:0] rui_rx_pcs_rst_c; + input [3:0] rdi_rx_los_low_s; + input [3:0] rdi_rx_cdr_lol_s; + +// ------------ output ports + output rdo_serdes_rst_dual_c; + output rdo_rst_dual_c; + + output ruo_tx_rdy; + output rdo_tx_serdes_rst_c; + output [3:0] rdo_tx_pcs_rst_c; + + output ruo_rx_rdy; + output [3:0] rdo_rx_serdes_rst_c; + output [3:0] rdo_rx_pcs_rst_c; + +// ------------ Internal registers and wires + // inputs + wire rui_rst; + wire rui_serdes_rst_dual_c; + wire rui_rst_dual_c; + wire rui_rsl_disable; + wire rui_tx_ref_clk; + wire rui_tx_serdes_rst_c; + wire [3:0] rui_tx_pcs_rst_c; + wire rdi_pll_lol; + wire rui_rx_ref_clk; + wire [3:0] rui_rx_serdes_rst_c; + wire [3:0] rui_rx_pcs_rst_c; + wire [3:0] rdi_rx_los_low_s; + wire [3:0] rdi_rx_cdr_lol_s; + + // outputs + wire rdo_serdes_rst_dual_c; + wire rdo_rst_dual_c; + wire ruo_tx_rdy; + wire rdo_tx_serdes_rst_c; + wire [3:0] rdo_tx_pcs_rst_c; + wire ruo_rx_rdy; + wire [3:0] rdo_rx_serdes_rst_c; + wire [3:0] rdo_rx_pcs_rst_c; + + // internal signals + // common + wire rsl_enable; + wire [lplol_cnt_width-1:0] wait_b4_trst; + wire [lrlol_cnt_width-1:0] wait_b4_rrst; + wire [llols_cnt_width-1:0] wait_after_lols; + reg pll_lol_p1; + reg pll_lol_p2; + reg pll_lol_p3; + // ------------ Tx + // rdo_tx_serdes_rst_c + reg [lplol_cnt_width-1:0] plol_cnt; + wire plol_cnt_tc; + + reg [2:0] txs_cnt; + reg txs_rst; + wire txs_cnt_tc; + // rdo_tx_pcs_rst_c + wire plol_fedge; + wire plol_redge; + reg waita_plol0; + reg [2:0] plol0_cnt; + wire plol0_cnt_tc; + reg [2:0] txp_cnt; + reg txp_rst; + wire txp_cnt_tc; + // ruo_tx_rdy + wire dual_or_serd_rst; + wire tx_any_pcs_rst; + wire tx_any_rst; + reg txsr_appd /* synthesis syn_keep=1 */; + reg txdpr_appd; + reg [pnum_channels-1:0] txpr_appd; + reg txr_wt_en; + reg [ltxr_wait_width-1:0] txr_wt_cnt; + wire txr_wt_tc; + reg ruo_tx_rdyr; + + // ------------ Rx + wire comb_rlos; + wire comb_rlol; + //wire rlols; + wire rx_all_well; + + //reg rlols_p1; + //reg rlols_p2; + //reg rlols_p3; + + reg rlol_p1; + reg rlol_p2; + reg rlol_p3; + reg rlos_p1; + reg rlos_p2; + reg rlos_p3; + + //reg [3:0] rdb_cnt; + //wire rdb_cnt_max; + //wire rdb_cnt_zero; + //reg rlols_db; + //reg rlols_db_p1; + + reg [3:0] rlol_db_cnt; + wire rlol_db_cnt_max; + wire rlol_db_cnt_zero; + reg rlol_db; + reg rlol_db_p1; + + reg [3:0] rlos_db_cnt; + wire rlos_db_cnt_max; + wire rlos_db_cnt_zero; + reg rlos_db; + reg rlos_db_p1; + + // rdo_rx_serdes_rst_c + reg [lrlol_cnt_width-1:0] rlol1_cnt; + wire rlol1_cnt_tc; + reg [2:0] rxs_cnt; + reg rxs_rst; + wire rxs_cnt_tc; + reg [lrrst_wait_width-1:0] rrst_cnt; + wire rrst_cnt_tc; + reg rrst_wait; + // rdo_rx_pcs_rst_c + //wire rlols_fedge; + //wire rlols_redge; + wire rlol_fedge; + wire rlol_redge; + wire rlos_fedge; + wire rlos_redge; + + reg wait_calib; + reg waita_rlols0; + reg [llols_cnt_width-1:0] rlols0_cnt; + wire rlols0_cnt_tc; + reg [2:0] rxp_cnt; + reg rxp_rst; + wire rxp_cnt_tc; + + wire rx_any_serd_rst; + reg [llols_cnt_width-1:0] rlolsz_cnt; + wire rlolsz_cnt_tc; + reg [2:0] rxp_cnt2; + reg rxp_rst2; + wire rxp_cnt2_tc; + reg [15:0] data_loop_b_cnt; + reg data_loop_b; + wire data_loop_b_tc; + + // ruo_rx_rdy + reg [pnum_channels-1:0] rxsr_appd; + reg [pnum_channels-1:0] rxpr_appd; + reg rxsdr_appd /* synthesis syn_keep=1 */; + reg rxdpr_appd; + wire rxsdr_or_sr_appd; + wire dual_or_rserd_rst; + wire rx_any_pcs_rst; + wire rx_any_rst; + reg rxr_wt_en; + reg [lrxr_wait_width-1:0] rxr_wt_cnt; + wire rxr_wt_tc; + reg ruo_rx_rdyr; + +// ================================================================== +// Start of code +// ================================================================== + assign rsl_enable = ~rui_rsl_disable; + +// ------------ rdo_serdes_rst_dual_c + assign rdo_serdes_rst_dual_c = (rui_rst&rsl_enable) | rui_serdes_rst_dual_c; + +// ------------ rdo_rst_dual_c + assign rdo_rst_dual_c = rui_rst_dual_c; + +// ------------ Setting counter values for RSL_SIM_MODE + `ifdef RSL_SIM_MODE + assign wait_b4_trst = lwait_b4_trst_s; + assign wait_b4_rrst = lwait_b4_rrst_s; + assign wait_after_lols = lwait_after_lols_s; + `else + assign wait_b4_trst = lwait_b4_trst; + assign wait_b4_rrst = lwait_b4_rrst; + assign wait_after_lols = lwait_after_lols; + `endif + +// ================================================================== +// Tx +// ================================================================== + generate + if((pserdes_mode=="RX AND TX")||(pserdes_mode=="TX ONLY")) begin + +// ------------ Synchronizing pll_lol to the tx clock + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) begin + pll_lol_p1 <= 1'd0; + pll_lol_p2 <= 1'd0; + pll_lol_p3 <= 1'd0; + end + else begin + pll_lol_p1 <= rdi_pll_lol; + pll_lol_p2 <= pll_lol_p1; + pll_lol_p3 <= pll_lol_p2; + end + end + +// ------------ rdo_tx_serdes_rst_c + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) + plol_cnt <= 'd0; + else if((pll_lol_p2==0)||(plol_cnt_tc==1)||(rdo_tx_serdes_rst_c==1)) + plol_cnt <= 'd0; + else + plol_cnt <= plol_cnt+1; + end + assign plol_cnt_tc = (plol_cnt==wait_b4_trst)?1'b1:1'b0; + + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) begin + txs_cnt <= 'd0; // tx serdes reset pulse count + txs_rst <= 1'b0; // tx serdes reset + end + else if(plol_cnt_tc==1) + txs_rst <= 1'b1; + else if(txs_cnt_tc==1) begin + txs_cnt <= 'd0; + txs_rst <= 1'b0; + end + else if(txs_rst==1) + txs_cnt <= txs_cnt+1; + end + assign txs_cnt_tc = (txs_cnt==lreset_pwidth)?1'b1:1'b0; + + assign rdo_tx_serdes_rst_c = (rsl_enable&txs_rst)| rui_tx_serdes_rst_c; + +// ------------ rdo_tx_pcs_rst_c + assign plol_fedge = ~pll_lol_p2 & pll_lol_p3; + assign plol_redge = pll_lol_p2 & ~pll_lol_p3; + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) + waita_plol0 <= 1'd0; + else if(plol_fedge==1'b1) + waita_plol0 <= 1'b1; + else if((plol0_cnt_tc==1)||(plol_redge==1)) + waita_plol0 <= 1'd0; + end + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) + plol0_cnt <= 'd0; + else if((pll_lol_p2==1)||(plol0_cnt_tc==1)) + plol0_cnt <= 'd0; + else if(waita_plol0==1'b1) + plol0_cnt <= plol0_cnt+1; + end + assign plol0_cnt_tc = (plol0_cnt==lwait_after_plol0)?1'b1:1'b0; + + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) begin + txp_cnt <= 'd0; // tx serdes reset pulse count + txp_rst <= 1'b0; // tx serdes reset + end + else if(plol0_cnt_tc==1) + txp_rst <= 1'b1; + else if(txp_cnt_tc==1) begin + txp_cnt <= 'd0; + txp_rst <= 1'b0; + end + else if(txp_rst==1) + txp_cnt <= txp_cnt+1; + end + assign txp_cnt_tc = (txp_cnt==lreset_pwidth)?1'b1:1'b0; + + genvar i; + for(i=0;i>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< +// --------------------------------------------------------------------------- +// Copyright (c) 2015 by Lattice Semiconductor Corporation +// ALL RIGHTS RESERVED +// ------------------------------------------------------------------ +// +// Permission: +// +// Lattice SG Pte. Ltd. grants permission to use this code +// pursuant to the terms of the Lattice Reference Design License Agreement. +// +// +// Disclaimer: +// +// This VHDL or Verilog source code is intended as a design reference +// which illustrates how these types of functions can be implemented. +// It is the user's responsibility to verify their design for +// consistency and functionality through the use of formal +// verification methods. Lattice provides no warranty +// regarding the use or functionality of this code. +// +// --------------------------------------------------------------------------- +// +// Lattice SG Pte. Ltd. +// 101 Thomson Road, United Square #07-02 +// Singapore 307591 +// +// +// TEL: 1-800-Lattice (USA and Canada) +// +65-6631-2000 (Singapore) +// +1-503-268-8001 (other locations) +// +// web: http://www.latticesemi.com/ +// email: techsupport@latticesemi.com +// +// --------------------------------------------------------------------------- +// +// ============================================================================= +// FILE DETAILS +// Project : SLL - Soft Loss Of Lock(LOL) Logic +// File : sll_core.v +// Title : Top-level file for SLL +// Dependencies : 1. +// : 2. +// Description : +// ============================================================================= +// REVISION HISTORY +// Version : 1.0 +// Author(s) : AV +// Mod. Date : March 2, 2015 +// Changes Made : Initial Creation +// ============================================================================= +// REVISION HISTORY +// Version : 1.1 +// Author(s) : AV +// Mod. Date : June 8, 2015 +// Changes Made : Following updates were made +// : 1. Changed all the PLOL status logic and FSM to run +// : on sli_refclk. +// : 2. Added the HB logic for presence of tx_pclk +// : 3. Changed the lparam assignment scheme for +// : simulation purposes. +// ============================================================================= +// REVISION HISTORY +// Version : 1.2 +// Author(s) : AV +// Mod. Date : June 24, 2015 +// Changes Made : Updated the gearing logic for SDI dynamic rate change +// ============================================================================= +// REVISION HISTORY +// Version : 1.3 +// Author(s) : AV +// Mod. Date : July 14, 2015 +// Changes Made : Added the logic for dynamic rate change in CPRI +// ============================================================================= +// REVISION HISTORY +// Version : 1.4 +// Author(s) : AV +// Mod. Date : August 21, 2015 +// Changes Made : Added the logic for dynamic rate change of 5G CPRI & +// PCIe. +// ============================================================================= +// REVISION HISTORY +// Version : 1.5 +// Author(s) : ES/EB +// Mod. Date : March 21, 2017 +// Changes Made : 1. Added pdiff_sync signal to syncrhonize pcount_diff +// : to sli_refclk. +// : 2. Updated terminal count logic for PCIe 5G +// : 3. Modified checking of pcount_diff in SLL state +// : machine to cover actual count +// : (from 16-bits to 22-bits) +// ============================================================================= +// REVISION HISTORY +// Version : 1.6 +// Author(s) : ES +// Mod. Date : April 19, 2017 +// Changes Made : 1. Added registered lock and unlock signal from +// pdiff_sync to totally decouple pcount_diff from +// SLL state machine. +// : 2. Modified LPCLK_TC_4 to 1:1 clock ratio when CPRI +// is operating @ 4.9125Gbps data rate. +// ============================================================================= +`timescale 1ns/10ps + +module sgmii_channel_smi_pcssll_core ( + //Reset and Clock inputs + sli_rst, //Active high asynchronous reset input + sli_refclk, //Refclk input to the Tx PLL + sli_pclk, //Tx pclk output from the PCS + + //Control inputs + sli_div2_rate, //Divide by 2 control; 0 - Full rate; 1 - Half rate + sli_div11_rate, //Divide by 11 control; 0 - Full rate; 1 - Div by 11 + sli_gear_mode, //Gear mode control for PCS; 0 - 8/10; 1- 16/20 + sli_cpri_mode, //Mode of operation specific to CPRI protocol + sli_pcie_mode, //Mode of operation specific to PCIe mode (2.5G or 5G) + + //LOL Output + slo_plol //Tx PLL Loss of Lock output to the user logic + ); + +// Inputs +input sli_rst; +input sli_refclk; +input sli_pclk; +input sli_div2_rate; +input sli_div11_rate; +input sli_gear_mode; +input [2:0] sli_cpri_mode; +input sli_pcie_mode; + +// Outputs +output slo_plol; + + +// Parameters +parameter PPROTOCOL = "PCIE"; //Protocol selected by the User +parameter PLOL_SETTING = 0; //PLL LOL setting. Possible values are 0,1,2,3 +parameter PDYN_RATE_CTRL = "DISABLED"; //PCS Dynamic Rate control +parameter PPCIE_MAX_RATE = "2.5"; //PCIe max data rate +parameter PDIFF_VAL_LOCK = 20; //Differential count value for Lock +parameter PDIFF_VAL_UNLOCK = 39; //Differential count value for Unlock +parameter PPCLK_TC = 65535; //Terminal count value for counter running on sli_pclk +parameter PDIFF_DIV11_VAL_LOCK = 3; //Differential count value for Lock for SDI Div11 +parameter PDIFF_DIV11_VAL_UNLOCK = 3; //Differential count value for Unlock for SDI Div11 +parameter PPCLK_DIV11_TC = 2383; //Terminal count value (SDI Div11) for counter running on sli_pclk + + +// Local Parameters +localparam [1:0] LPLL_LOSS_ST = 2'b00; //PLL Loss state +localparam [1:0] LPLL_PRELOSS_ST = 2'b01; //PLL Pre-Loss state +localparam [1:0] LPLL_PRELOCK_ST = 2'b10; //PLL Pre-Lock state +localparam [1:0] LPLL_LOCK_ST = 2'b11; //PLL Lock state +`ifdef RSL_SIM_MODE +localparam [15:0] LRCLK_TC = 16'd63; //Terminal count value for counter running on sli_refclk +`else +localparam [15:0] LRCLK_TC = 16'd65535; //Terminal count value for counter running on sli_refclk +`endif +localparam [15:0] LRCLK_TC_PUL_WIDTH = 16'd50; //Pulse width for the Refclk terminal count pulse +localparam [7:0] LHB_WAIT_CNT = 8'd255; //Wait count for the Heartbeat signal + +// Local Parameters related to the CPRI dynamic modes +// Terminal count values for the four CPRI modes +localparam LPCLK_TC_0 = 32768; +localparam LPCLK_TC_1 = 65536; +localparam LPCLK_TC_2 = 131072; +localparam LPCLK_TC_3 = 163840; +localparam LPCLK_TC_4 = 65536; + +// Lock values count values for the four CPRI modes and four PLOL settings (4x5) +// CPRI rate mode 0 CPRI rate mode 1 CPRI rate mode 2 CPRI rate mode 3 CPRI rate mode 4 +localparam LPDIFF_LOCK_00 = 9; localparam LPDIFF_LOCK_10 = 19; localparam LPDIFF_LOCK_20 = 39; localparam LPDIFF_LOCK_30 = 49; localparam LPDIFF_LOCK_40 = 19; +localparam LPDIFF_LOCK_01 = 9; localparam LPDIFF_LOCK_11 = 19; localparam LPDIFF_LOCK_21 = 39; localparam LPDIFF_LOCK_31 = 49; localparam LPDIFF_LOCK_41 = 19; +localparam LPDIFF_LOCK_02 = 49; localparam LPDIFF_LOCK_12 = 98; localparam LPDIFF_LOCK_22 = 196; localparam LPDIFF_LOCK_32 = 245; localparam LPDIFF_LOCK_42 = 98; +localparam LPDIFF_LOCK_03 = 131; localparam LPDIFF_LOCK_13 = 262; localparam LPDIFF_LOCK_23 = 524; localparam LPDIFF_LOCK_33 = 655; localparam LPDIFF_LOCK_43 = 262; + +// Unlock values count values for the four CPRI modes and four PLOL settings (4x5) +// CPRI rate mode 0 CPRI rate mode 1 CPRI rate mode 2 CPRI rate mode 3 CPRI rate mode 4 +localparam LPDIFF_UNLOCK_00 = 19; localparam LPDIFF_UNLOCK_10 = 39; localparam LPDIFF_UNLOCK_20 = 78; localparam LPDIFF_UNLOCK_30 = 98; localparam LPDIFF_UNLOCK_40 = 39; +localparam LPDIFF_UNLOCK_01 = 65; localparam LPDIFF_UNLOCK_11 = 131; localparam LPDIFF_UNLOCK_21 = 262; localparam LPDIFF_UNLOCK_31 = 327; localparam LPDIFF_UNLOCK_41 = 131; +localparam LPDIFF_UNLOCK_02 = 72; localparam LPDIFF_UNLOCK_12 = 144; localparam LPDIFF_UNLOCK_22 = 288; localparam LPDIFF_UNLOCK_32 = 360; localparam LPDIFF_UNLOCK_42 = 144; +localparam LPDIFF_UNLOCK_03 = 196; localparam LPDIFF_UNLOCK_13 = 393; localparam LPDIFF_UNLOCK_23 = 786; localparam LPDIFF_UNLOCK_33 = 983; localparam LPDIFF_UNLOCK_43 = 393; + +// Input and Output reg and wire declarations +wire sli_rst; +wire sli_refclk; +wire sli_pclk; +wire sli_div2_rate; +wire sli_div11_rate; +wire sli_gear_mode; +wire [2:0] sli_cpri_mode; +wire sli_pcie_mode; +wire slo_plol; + +//-------------- Internal signals reg and wire declarations -------------------- + +//Signals running on sli_refclk +reg [15:0] rcount; //16-bit Counter +reg rtc_pul; //Terminal count pulse +reg rtc_pul_p1; //Terminal count pulse pipeline +reg rtc_ctrl; //Terminal count pulse control + +reg [7:0] rhb_wait_cnt; //Heartbeat wait counter + +//Heatbeat synchronization and pipeline registers +wire rhb_sync; +reg rhb_sync_p2; +reg rhb_sync_p1; + +//Pipeling registers for dynamic control mode +wire rgear; +wire rdiv2; +wire rdiv11; +reg rgear_p1; +reg rdiv2_p1; +reg rdiv11_p1; + +reg rstat_pclk; //Pclk presence/absence status + +reg [21:0] rcount_tc; //Tx_pclk terminal count register +reg [15:0] rdiff_comp_lock; //Differential comparison value for Lock +reg [15:0] rdiff_comp_unlock; //Differential compariosn value for Unlock + +wire rpcie_mode; //PCIe mode signal synchronized to refclk +reg rpcie_mode_p1; //PCIe mode pipeline register + +wire rcpri_mod_ch_sync; //CPRI mode change synchronized to refclk +reg rcpri_mod_ch_p1; //CPRI mode change pipeline register +reg rcpri_mod_ch_p2; //CPRI mode change pipeline register +reg rcpri_mod_ch_st; //CPRI mode change status + +reg [1:0] sll_state; //Current-state register for LOL FSM + +reg pll_lock; //PLL Lock signal + +//Signals running on sli_pclk +//Synchronization and pipeline registers +wire ppul_sync; +reg ppul_sync_p1; +reg ppul_sync_p2; +reg ppul_sync_p3; + +wire pdiff_sync; +reg pdiff_sync_p1; + +reg [21:0] pcount; //22-bit counter +reg [21:0] pcount_diff; //Differential value between Tx_pclk counter and theoritical value + +//Heartbeat counter and heartbeat signal running on pclk +reg [2:0] phb_cnt; +reg phb; + +//CPRI dynamic mode releated signals +reg [2:0] pcpri_mode; +reg pcpri_mod_ch; + +//Assignment scheme changed mainly for simulation purpose +wire [15:0] LRCLK_TC_w; +assign LRCLK_TC_w = LRCLK_TC; + +reg unlock; +reg lock; + +//Heartbeat synchronization +sync # (.PDATA_RST_VAL(0)) phb_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (phb), + .data_out(rhb_sync) + ); + + +//Terminal count pulse synchronization +sync # (.PDATA_RST_VAL(0)) rtc_sync_inst ( + .clk (sli_pclk), + .rst (sli_rst), + .data_in (rtc_pul), + .data_out(ppul_sync) + ); + +//Differential value logic update synchronization +sync # (.PDATA_RST_VAL(0)) pdiff_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (ppul_sync), + .data_out(pdiff_sync) + ); + +//Gear mode synchronization +sync # (.PDATA_RST_VAL(0)) gear_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (sli_gear_mode), + .data_out(rgear) + ); + +//Div2 synchronization +sync # (.PDATA_RST_VAL(0)) div2_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (sli_div2_rate), + .data_out(rdiv2) + ); + +//Div11 synchronization +sync # (.PDATA_RST_VAL(0)) div11_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (sli_div11_rate), + .data_out(rdiv11) + ); + +//CPRI mode change synchronization +sync # (.PDATA_RST_VAL(0)) cpri_mod_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (pcpri_mod_ch), + .data_out(rcpri_mod_ch_sync) + ); + +//PCIe mode change synchronization +sync # (.PDATA_RST_VAL(0)) pcie_mod_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (sli_pcie_mode), + .data_out(rpcie_mode) + ); + +// ============================================================================= +// Synchronized Lock/Unlock signals +// ============================================================================= +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + unlock <= 1'b0; + lock <= 1'b0; + pdiff_sync_p1 <= 1'b0; + end + else begin + pdiff_sync_p1 <= pdiff_sync; + if (unlock) begin + unlock <= ~pdiff_sync && pdiff_sync_p1 ? 1'b0 : unlock; + end + else begin + unlock <= pdiff_sync ? (pcount_diff[21:0] > {6'd0, rdiff_comp_unlock}) : 1'b0; + end + if (lock) begin + lock <= ~pdiff_sync && pdiff_sync_p1 ? 1'b0 : lock; + end + else begin + lock <= pdiff_sync ? (pcount_diff[21:0] <= {6'd0, rdiff_comp_lock}) : 1'b0; + end + end +end + +// ============================================================================= +// Refclk Counter, pulse generation logic and Heartbeat monitor logic +// ============================================================================= +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rcount <= 16'd0; + rtc_pul <= 1'b0; + rtc_ctrl <= 1'b0; + rtc_pul_p1 <= 1'b0; + end + else begin + //Counter logic + if ((rgear_p1^rgear == 1'b1) || (rdiv2_p1^rdiv2 == 1'b1) || (rdiv11_p1^rdiv11 == 1'b1) || (rcpri_mod_ch_p1^rcpri_mod_ch_p2 == 1'b1) || (rpcie_mode_p1^rpcie_mode == 1'b1)) begin + if (rtc_ctrl == 1'b1) begin + rcount <= LRCLK_TC_PUL_WIDTH; + end + end + else begin + if (rcount != LRCLK_TC_w) begin + rcount <= rcount + 1; + end + else begin + rcount <= 16'd0; + end + end + + //Pulse control logic + if (rcount == LRCLK_TC_w - 1) begin + rtc_ctrl <= 1'b1; + end + + //Pulse Generation logic + if (rtc_ctrl == 1'b1) begin + if ((rcount == LRCLK_TC_w) || (rcount < LRCLK_TC_PUL_WIDTH)) begin + rtc_pul <= 1'b1; + end + else begin + rtc_pul <= 1'b0; + end + end + + rtc_pul_p1 <= rtc_pul; + end +end + + +// ============================================================================= +// Heartbeat synchronization & monitor logic and Dynamic mode pipeline logic +// ============================================================================= +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rhb_sync_p1 <= 1'b0; + rhb_sync_p2 <= 1'b0; + rhb_wait_cnt <= 8'd0; + rstat_pclk <= 1'b0; + rgear_p1 <= 1'b0; + rdiv2_p1 <= 1'b0; + rdiv11_p1 <= 1'b0; + rcpri_mod_ch_p1 <= 1'b0; + rcpri_mod_ch_p2 <= 1'b0; + rcpri_mod_ch_st <= 1'b0; + rpcie_mode_p1 <= 1'b0; + + end + else begin + //Pipeline stages for the Heartbeat + rhb_sync_p1 <= rhb_sync; + rhb_sync_p2 <= rhb_sync_p1; + + //Pipeline stages of the Dynamic rate control signals + rgear_p1 <= rgear; + rdiv2_p1 <= rdiv2; + rdiv11_p1 <= rdiv11; + + //Pipeline stage for PCIe mode + rpcie_mode_p1 <= rpcie_mode; + + //Pipeline stage for CPRI mode change + rcpri_mod_ch_p1 <= rcpri_mod_ch_sync; + rcpri_mod_ch_p2 <= rcpri_mod_ch_p1; + + //CPRI mode change status logic + if (rcpri_mod_ch_p1^rcpri_mod_ch_sync == 1'b1) begin + rcpri_mod_ch_st <= 1'b1; + end + + //Heartbeat wait counter and monitor logic + if (rtc_ctrl == 1'b1) begin + if (rhb_sync_p1 == 1'b1 && rhb_sync_p2 == 1'b0) begin + rhb_wait_cnt <= 8'd0; + rstat_pclk <= 1'b1; + end + else if (rhb_wait_cnt == LHB_WAIT_CNT) begin + rhb_wait_cnt <= 8'd0; + rstat_pclk <= 1'b0; + end + else begin + rhb_wait_cnt <= rhb_wait_cnt + 1; + end + end + end +end + + +// ============================================================================= +// Pipleline registers for the TC pulse and CPRI mode change logic +// ============================================================================= +always @(posedge sli_pclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + ppul_sync_p1 <= 1'b0; + ppul_sync_p2 <= 1'b0; + ppul_sync_p3 <= 1'b0; + pcpri_mode <= 3'b0; + pcpri_mod_ch <= 1'b0; + end + else begin + ppul_sync_p1 <= ppul_sync; + ppul_sync_p2 <= ppul_sync_p1; + ppul_sync_p3 <= ppul_sync_p2; + + //CPRI mode change logic + pcpri_mode <= sli_cpri_mode; + + if (pcpri_mode != sli_cpri_mode) begin + pcpri_mod_ch <= ~pcpri_mod_ch; + end + end +end + + +// ============================================================================= +// Terminal count logic +// ============================================================================= + +//For SDI protocol with Dynamic rate control enabled +generate +if ((PDYN_RATE_CTRL == "ENABLED") && (PPROTOCOL == "SDI")) begin +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rcount_tc <= 22'd0; + rdiff_comp_lock <= 16'd0; + rdiff_comp_unlock <= 16'd0; + end + else begin + //Terminal count logic + //Div by 11 is enabled + if (rdiv11 == 1'b1) begin + //Gear mode is 16/20 + if (rgear == 1'b1) begin + rcount_tc <= PPCLK_DIV11_TC; + rdiff_comp_lock <= PDIFF_DIV11_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_DIV11_VAL_UNLOCK; + end + else begin + rcount_tc <= {PPCLK_DIV11_TC[20:0], 1'b0}; + rdiff_comp_lock <= {PDIFF_DIV11_VAL_LOCK[14:0], 1'b0}; + rdiff_comp_unlock <= {PDIFF_DIV11_VAL_UNLOCK[14:0], 1'b0}; + end + end + //Div by 2 is enabled + else if (rdiv2 == 1'b1) begin + //Gear mode is 16/20 + if (rgear == 1'b1) begin + rcount_tc <= {1'b0,PPCLK_TC[21:1]}; + rdiff_comp_lock <= {1'b0,PDIFF_VAL_LOCK[15:1]}; + rdiff_comp_unlock <= {1'b0,PDIFF_VAL_UNLOCK[15:1]}; + end + else begin + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end + end + //Both div by 11 and div by 2 are disabled + else begin + //Gear mode is 16/20 + if (rgear == 1'b1) begin + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end + else begin + rcount_tc <= {PPCLK_TC[20:0],1'b0}; + rdiff_comp_lock <= {PDIFF_VAL_LOCK[14:0],1'b0}; + rdiff_comp_unlock <= {PDIFF_VAL_UNLOCK[14:0],1'b0}; + end + end + end +end +end +endgenerate + +//For G8B10B protocol with Dynamic rate control enabled +generate +if ((PDYN_RATE_CTRL == "ENABLED") && (PPROTOCOL == "G8B10B")) begin +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rcount_tc <= 22'd0; + rdiff_comp_lock <= 16'd0; + rdiff_comp_unlock <= 16'd0; + end + else begin + //Terminal count logic + //Div by 2 is enabled + if (rdiv2 == 1'b1) begin + rcount_tc <= {1'b0,PPCLK_TC[21:1]}; + rdiff_comp_lock <= {1'b0,PDIFF_VAL_LOCK[15:1]}; + rdiff_comp_unlock <= {1'b0,PDIFF_VAL_UNLOCK[15:1]}; + end + else begin + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end + end +end +end +endgenerate + + +//For CPRI protocol with Dynamic rate control is disabled +generate +if ((PDYN_RATE_CTRL == "DISABLED") && (PPROTOCOL == "CPRI")) begin +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rcount_tc <= 22'd0; + rdiff_comp_lock <= 16'd0; + rdiff_comp_unlock <= 16'd0; + end + else begin + //Terminal count logic for CPRI protocol + //Only if there is a change in the rate mode from the default + if (rcpri_mod_ch_st == 1'b1) begin + if (rcpri_mod_ch_p1^rcpri_mod_ch_p2 == 1'b1) begin + case(sli_cpri_mode) + 3'd0 : begin //For 0.6Gbps + rcount_tc <= LPCLK_TC_0; + case(PLOL_SETTING) + 'd0 : begin + rdiff_comp_lock <= LPDIFF_LOCK_00; + rdiff_comp_unlock <= LPDIFF_UNLOCK_00; + end + + 'd1 : begin + rdiff_comp_lock <= LPDIFF_LOCK_01; + rdiff_comp_unlock <= LPDIFF_UNLOCK_01; + end + + 'd2 : begin + rdiff_comp_lock <= LPDIFF_LOCK_02; + rdiff_comp_unlock <= LPDIFF_UNLOCK_02; + end + + 'd3 : begin + rdiff_comp_lock <= LPDIFF_LOCK_03; + rdiff_comp_unlock <= LPDIFF_UNLOCK_03; + end + + default : begin + rdiff_comp_lock <= LPDIFF_LOCK_00; + rdiff_comp_unlock <= LPDIFF_UNLOCK_00; + end + endcase + end + + 3'd1 : begin //For 1.2Gbps + rcount_tc <= LPCLK_TC_1; + case(PLOL_SETTING) + 'd0 : begin + rdiff_comp_lock <= LPDIFF_LOCK_10; + rdiff_comp_unlock <= LPDIFF_UNLOCK_10; + end + + 'd1 : begin + rdiff_comp_lock <= LPDIFF_LOCK_11; + rdiff_comp_unlock <= LPDIFF_UNLOCK_11; + end + + 'd2 : begin + rdiff_comp_lock <= LPDIFF_LOCK_12; + rdiff_comp_unlock <= LPDIFF_UNLOCK_12; + end + + 'd3 : begin + rdiff_comp_lock <= LPDIFF_LOCK_13; + rdiff_comp_unlock <= LPDIFF_UNLOCK_13; + end + + default : begin + rdiff_comp_lock <= LPDIFF_LOCK_10; + rdiff_comp_unlock <= LPDIFF_UNLOCK_10; + end + endcase + end + + 3'd2 : begin //For 2.4Gbps + rcount_tc <= LPCLK_TC_2; + case(PLOL_SETTING) + 'd0 : begin + rdiff_comp_lock <= LPDIFF_LOCK_20; + rdiff_comp_unlock <= LPDIFF_UNLOCK_20; + end + + 'd1 : begin + rdiff_comp_lock <= LPDIFF_LOCK_21; + rdiff_comp_unlock <= LPDIFF_UNLOCK_21; + end + + 'd2 : begin + rdiff_comp_lock <= LPDIFF_LOCK_22; + rdiff_comp_unlock <= LPDIFF_UNLOCK_22; + end + + 'd3 : begin + rdiff_comp_lock <= LPDIFF_LOCK_23; + rdiff_comp_unlock <= LPDIFF_UNLOCK_23; + end + + default : begin + rdiff_comp_lock <= LPDIFF_LOCK_20; + rdiff_comp_unlock <= LPDIFF_UNLOCK_20; + end + endcase + end + + 3'd3 : begin //For 3.07Gbps + rcount_tc <= LPCLK_TC_3; + case(PLOL_SETTING) + 'd0 : begin + rdiff_comp_lock <= LPDIFF_LOCK_30; + rdiff_comp_unlock <= LPDIFF_UNLOCK_30; + end + + 'd1 : begin + rdiff_comp_lock <= LPDIFF_LOCK_31; + rdiff_comp_unlock <= LPDIFF_UNLOCK_31; + end + + 'd2 : begin + rdiff_comp_lock <= LPDIFF_LOCK_32; + rdiff_comp_unlock <= LPDIFF_UNLOCK_32; + end + + 'd3 : begin + rdiff_comp_lock <= LPDIFF_LOCK_33; + rdiff_comp_unlock <= LPDIFF_UNLOCK_33; + end + endcase + end + + 3'd4 : begin //For 4.9125bps + rcount_tc <= LPCLK_TC_4; + case(PLOL_SETTING) + 'd0 : begin + rdiff_comp_lock <= LPDIFF_LOCK_40; + rdiff_comp_unlock <= LPDIFF_UNLOCK_40; + end + + 'd1 : begin + rdiff_comp_lock <= LPDIFF_LOCK_41; + rdiff_comp_unlock <= LPDIFF_UNLOCK_41; + end + + 'd2 : begin + rdiff_comp_lock <= LPDIFF_LOCK_42; + rdiff_comp_unlock <= LPDIFF_UNLOCK_42; + end + + 'd3 : begin + rdiff_comp_lock <= LPDIFF_LOCK_43; + rdiff_comp_unlock <= LPDIFF_UNLOCK_43; + end + + default : begin + rdiff_comp_lock <= LPDIFF_LOCK_40; + rdiff_comp_unlock <= LPDIFF_UNLOCK_40; + end + endcase + end + + default : begin + rcount_tc <= LPCLK_TC_0; + rdiff_comp_lock <= LPDIFF_LOCK_00; + rdiff_comp_unlock <= LPDIFF_UNLOCK_00; + end + endcase + end + end + else begin + //If there is no change in the CPRI rate mode from default + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end + end +end +end +endgenerate + +//For PCIe protocol with Dynamic rate control disabled +generate +if ((PDYN_RATE_CTRL == "DISABLED") && (PPROTOCOL == "PCIE")) begin +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rcount_tc <= 22'd0; + rdiff_comp_lock <= 16'd0; + rdiff_comp_unlock <= 16'd0; + end + else begin + //Terminal count logic + if (PPCIE_MAX_RATE == "2.5") begin + //2.5G mode is enabled + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end + else begin + //5G mode is enabled + if (rpcie_mode == 1'b1) begin + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end + else begin + //2.5G mode is enabled + rcount_tc <= {1'b0,PPCLK_TC[21:1]}; + rdiff_comp_lock <= {1'b0,PDIFF_VAL_LOCK[15:1]}; + rdiff_comp_unlock <= {1'b0,PDIFF_VAL_UNLOCK[15:1]}; + end + end + end +end +end +endgenerate + +//For all protocols other than CPRI & PCIe +generate +if ((PDYN_RATE_CTRL == "DISABLED") && ((PPROTOCOL != "CPRI") && (PPROTOCOL != "PCIE"))) begin +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rcount_tc <= 22'd0; + rdiff_comp_lock <= 16'd0; + rdiff_comp_unlock <= 16'd0; + end + else begin + //Terminal count logic for all protocols other than CPRI & PCIe + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end +end +end +endgenerate + + +// ============================================================================= +// Tx_pclk counter, Heartbeat and Differential value logic +// ============================================================================= +always @(posedge sli_pclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + pcount <= 22'd0; + pcount_diff <= 22'd65535; + phb_cnt <= 3'd0; + phb <= 1'b0; + end + else begin + //Counter logic + if (ppul_sync_p1 == 1'b1 && ppul_sync_p2 == 1'b0) begin + pcount <= 22'd0; + end + else begin + pcount <= pcount + 1; + end + + //Heartbeat logic + phb_cnt <= phb_cnt + 1; + + if ((phb_cnt < 3'd4) && (phb_cnt >= 3'd0)) begin + phb <= 1'b1; + end + else begin + phb <= 1'b0; + end + + //Differential value logic + if (ppul_sync_p1 == 1'b1 && ppul_sync_p2 == 1'b0) begin + pcount_diff <= rcount_tc + ~(pcount) + 1; + end + else if (ppul_sync_p2 == 1'b1 && ppul_sync_p3 == 1'b0) begin + if (pcount_diff[21] == 1'b1) begin + pcount_diff <= ~(pcount_diff) + 1; + end + end + end +end + + +// ============================================================================= +// State transition logic for SLL FSM +// ============================================================================= +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + sll_state <= LPLL_LOSS_ST; + end + else begin + //Reasons to declare an immediate loss - Absence of Tx_pclk, Dynamic rate change for SDI or CPRI + if ((rstat_pclk == 1'b0) || (rgear_p1^rgear == 1'b1) || (rdiv2_p1^rdiv2 == 1'b1) || + (rdiv11_p1^rdiv11 == 1'b1) || (rcpri_mod_ch_p1^rcpri_mod_ch_p2 == 1'b1) || (rpcie_mode_p1^rpcie_mode == 1'b1)) begin + sll_state <= LPLL_LOSS_ST; + end + else begin + case(sll_state) + LPLL_LOSS_ST : begin + if (rtc_pul_p1 == 1'b1 && rtc_pul == 1'b0) begin + if (unlock) begin + sll_state <= LPLL_LOSS_ST; + end + else if (lock) begin + if (PLOL_SETTING == 2'd0) begin + sll_state <= LPLL_PRELOCK_ST; + end + else begin + sll_state <= LPLL_LOCK_ST; + end + end + end + end + + LPLL_LOCK_ST : begin + if (rtc_pul_p1 == 1'b1 && rtc_pul == 1'b0) begin + if (lock) begin + sll_state <= LPLL_LOCK_ST; + end + else begin + if (PLOL_SETTING == 2'd0) begin + sll_state <= LPLL_LOSS_ST; + end + else begin + sll_state <= LPLL_PRELOSS_ST; + end + end + end + end + + LPLL_PRELOCK_ST : begin + if (rtc_pul_p1 == 1'b1 && rtc_pul == 1'b0) begin + if (lock) begin + sll_state <= LPLL_LOCK_ST; + end + else begin + sll_state <= LPLL_PRELOSS_ST; + end + end + end + + LPLL_PRELOSS_ST : begin + if (rtc_pul_p1 == 1'b1 && rtc_pul == 1'b0) begin + if (unlock) begin + sll_state <= LPLL_PRELOSS_ST; + end + else if (lock) begin + sll_state <= LPLL_LOCK_ST; + end + end + end + + default: begin + sll_state <= LPLL_LOSS_ST; + end + endcase + end + end +end + + +// ============================================================================= +// Logic for Tx PLL Lock +// ============================================================================= +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + pll_lock <= 1'b0; + end + else begin + case(sll_state) + LPLL_LOSS_ST : begin + pll_lock <= 1'b0; + end + + LPLL_LOCK_ST : begin + pll_lock <= 1'b1; + end + + LPLL_PRELOSS_ST : begin + pll_lock <= 1'b0; + end + + default: begin + pll_lock <= 1'b0; + end + endcase + end +end + +assign slo_plol = ~(pll_lock); + +endmodule + + +// =========================================================================== +// >>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< +// --------------------------------------------------------------------------- +// Copyright (c) 2015 by Lattice Semiconductor Corporation +// ALL RIGHTS RESERVED +// ------------------------------------------------------------------ +// +// Permission: +// +// Lattice SG Pte. Ltd. grants permission to use this code +// pursuant to the terms of the Lattice Reference Design License Agreement. +// +// +// Disclaimer: +// +// This VHDL or Verilog source code is intended as a design reference +// which illustrates how these types of functions can be implemented. +// It is the user's responsibility to verify their design for +// consistency and functionality through the use of formal +// verification methods. Lattice provides no warranty +// regarding the use or functionality of this code. +// +// --------------------------------------------------------------------------- +// +// Lattice SG Pte. Ltd. +// 101 Thomson Road, United Square #07-02 +// Singapore 307591 +// +// +// TEL: 1-800-Lattice (USA and Canada) +// +65-6631-2000 (Singapore) +// +1-503-268-8001 (other locations) +// +// web: http://www.latticesemi.com/ +// email: techsupport@latticesemi.com +// +// --------------------------------------------------------------------------- +// +// ============================================================================= +// FILE DETAILS +// Project : Synchronizer Logic +// File : sync.v +// Title : Synchronizer module +// Description : +// ============================================================================= +// REVISION HISTORY +// Version : 1.0 +// Author(s) : AV +// Mod. Date : July 7, 2015 +// Changes Made : Initial Creation +// ----------------------------------------------------------------------------- +// Version : 1.1 +// Author(s) : EB +// Mod. Date : March 21, 2017 +// Changes Made : +// ============================================================================= + +`ifndef PCS_SYNC_MODULE +`define PCS_SYNC_MODULE +module sync ( + clk, + rst, + data_in, + data_out + ); + +input clk; //Clock in which the async data needs to be synchronized to +input rst; //Active high reset +input data_in; //Asynchronous data +output data_out; //Synchronized data + +parameter PDATA_RST_VAL = 0; //Reset value for the registers + +reg data_p1; +reg data_p2; + +// ============================================================================= +// Synchronization logic +// ============================================================================= +always @(posedge clk or posedge rst) begin + if (rst == 1'b1) begin + data_p1 <= PDATA_RST_VAL; + data_p2 <= PDATA_RST_VAL; + end + else begin + data_p1 <= data_in; + data_p2 <= data_p1; + end +end + +assign data_out = data_p2; + +endmodule +`endif + diff --git a/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/models/ecp5um/pmi_fifo_dc/pmi_fifo_dc.v b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/models/ecp5um/pmi_fifo_dc/pmi_fifo_dc.v new file mode 100644 index 0000000..01ea781 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/models/ecp5um/pmi_fifo_dc/pmi_fifo_dc.v @@ -0,0 +1,629 @@ +// -------------------------------------------------------------------- +// >>>>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<< +// -------------------------------------------------------------------- +// Copyright (c) 2005-2010 by Lattice Semiconductor Corporation +// -------------------------------------------------------------------- +// +// +// Lattice Semiconductor Corporation +// 5555 NE Foore Court +// Hillsboro, OR 97214 +// U.S.A. +// +// TEL: 1-800-Lattice (USA and Canada) +// 1-408-826-6000 (other locations) +// +// web: http://www.latticesemi.com/ +// email: techsupport@latticesemi.com +// +// -------------------------------------------------------------------- +// +// Simulation Library File for FIFO Dual Clock PMI Block +// +// Parameter Definition +//Name Value Default +/* +------------------------------------------------------------------------------ +pmi_data_width_w 18 +pmi_data_width_r 18 +pmi_data_depth_w 256 +pmi_data_depth_r 256 +pmi_full_flag 256 +pmi_empty_flag 0 +pmi_almost_full_flag 252 +pmi_almost_empty_flag 4 +pmi_regmode "reg"|"noreg"|"outreg"|"outreg_rden" "reg" +pmi_resetmode "async"|"sync" "async" +pmi_family "EC"|"XP"|"XP2"|"SC"|"SCM"|"ECP"|"ECP2"|"ECP2M"|"ECP3"|"XO"|"XO2"|"LPTM" "EC" +pmi_implementation "EBR"|"LUT" "EBR" +------------------------------------------------------------------------------ +WARNING: Do not change the default parameters in this model. Parameter +redefinition must be done using defparam or in-line (#) paramater +redefinition in a top level file that instantiates this model. + +NOTE: The purpose of RPReset (Read Point Reset) is to indicate a retransmit, +and it is more commonly used in "packetized" communications. In this +application, the user must keep careful track of when the packet is written +into or read from fifo. + +RPReset does not affect the write port, nor any data that has been written +into the fifo. However, using RPReset imposes two restrictions on the write +operation: + + - Packet size must not exceed the maximum FIFO depth. + + - The write pointer should be reset (using Reset) before writing each new + packet to replace the previous one. + + +These restrictions prevent the read and write pointers from recirculating +around the address space and back to location 0 at any time during packet +storage. Such a pointer wraparound would lose the packet's original starting +point from which to retransmit. These restrictions are only required when +using the retransmit function. + +*/ +// fpga\verilog\pkg\versclibs\data\pmi\pmi_fifo_dc.v 1.26 07-NOV-2012 18:51:50 PYAO + +`timescale 1ns / 1ps +module pmi_fifo_dc #( + parameter pmi_data_width_w = 18, + parameter pmi_data_width_r = 18, + parameter pmi_data_depth_w = 256, + parameter pmi_data_depth_r = 256, + parameter pmi_full_flag = 256, + parameter pmi_empty_flag = 0, + parameter pmi_almost_full_flag = 252, + parameter pmi_almost_empty_flag = 4, + parameter pmi_regmode = "reg", + parameter pmi_resetmode = "async", + parameter pmi_family = "EC" , + parameter module_type = "pmi_fifo_dc", + parameter pmi_implementation = "EBR" + ) + + (input [pmi_data_width_w-1:0] Data, + input WrClock, + input RdClock, + input WrEn, + input RdEn, + input Reset, + input RPReset, + output reg [pmi_data_width_r-1:0] Q = 0, + output Empty, + output Full, + output AlmostEmpty, + output AlmostFull)/*synthesis syn_black_box */; + +//pragma translate_off + localparam pmi_array_size_w = pmi_data_width_w * pmi_data_depth_w; + localparam pmi_array_size_r = pmi_data_width_r * pmi_data_depth_r; + + localparam r_w_ratio = pmi_data_width_w/pmi_data_width_r; + localparam w_r_ratio = pmi_data_width_r/pmi_data_width_w; + +// tri1 GSR_sig = GSR_INST.GSRNET; +// tri1 PUR_sig = PUR_INST.PURNET; +// reg SRN; + wire RST_sig, RPRST_sig; + + reg [pmi_array_size_w-1:0] fifo_mem = {pmi_array_size_w{1'b0}}; + + reg [pmi_data_width_w-1:0] Data_reg = 0; + reg [pmi_data_width_w-1:0] Data_reg_sync = 0; + reg [pmi_data_width_w-1:0] Data_reg_async = 0; + reg [pmi_data_width_r-1:0] Q_reg = 0; + reg [pmi_data_width_r-1:0] Q_reg_sync = 0; + reg [pmi_data_width_r-1:0] Q_reg_async = 0; + reg [pmi_data_width_r-1:0] Q_node = 0; + reg [pmi_data_width_r-1:0] Q_int = 0; + + localparam pmi_addr_width_w = + (pmi_data_depth_w == 2) ? 1 : (pmi_data_depth_w == 4) ? 2 : (pmi_data_depth_w == 8) ? 3 : + (pmi_data_depth_w == 16) ? 4 : (pmi_data_depth_w == 32) ? 5 : (pmi_data_depth_w == 64) ? 6 : + (pmi_data_depth_w == 128) ? 7 : (pmi_data_depth_w == 256) ? 8 : (pmi_data_depth_w == 512) ? 9 : + (pmi_data_depth_w == 1024) ? 10 : (pmi_data_depth_w == 2048) ? 11 : (pmi_data_depth_w == 4096) ? 12 : + (pmi_data_depth_w == 8192) ? 13 : (pmi_data_depth_w == 16384) ? 14 : (pmi_data_depth_w == 32768) ? 15 : + (pmi_data_depth_w == 65536) ? 16 : 17 ; + + localparam pmi_addr_width_r = + (pmi_data_depth_r == 2) ? 1 : (pmi_data_depth_r == 4) ? 2 : (pmi_data_depth_r == 8) ? 3 : + (pmi_data_depth_r == 16) ? 4 : (pmi_data_depth_r == 32) ? 5 : (pmi_data_depth_r == 64) ? 6 : + (pmi_data_depth_r == 128) ? 7 : (pmi_data_depth_r == 256) ? 8 : (pmi_data_depth_r == 512) ? 9 : + (pmi_data_depth_r == 1024) ? 10 : (pmi_data_depth_r == 2048) ? 11 : (pmi_data_depth_r == 4096) ? 12 : + (pmi_data_depth_r == 8192) ? 13 : (pmi_data_depth_r == 16384) ? 14 : (pmi_data_depth_r == 32768) ? 15 : + (pmi_data_depth_r == 65536) ? 16 : 17 ; + + localparam bit_ptr_extra_width_w = + (pmi_data_width_w == 1) ? 0 : (pmi_data_width_w == 2) ? 1 : (pmi_data_width_w <= 4) ? 2 : + (pmi_data_width_w <= 8) ? 3: (pmi_data_width_w <= 16) ? 4 : (pmi_data_width_w <= 32) ? 5 : + (pmi_data_width_w <= 64) ? 6 : (pmi_data_width_w <= 128) ? 7 : 8; + + localparam bit_ptr_width = pmi_addr_width_w + bit_ptr_extra_width_w; + + reg [pmi_addr_width_w:0] wr_pointer = {(pmi_addr_width_w+1){1'b1}}; + reg [pmi_addr_width_r:0] rd_pointer = {(pmi_addr_width_r+1){1'b1}}; + reg [pmi_addr_width_w:0] wr_pointer_sync = {(pmi_addr_width_w+1){1'b1}}; + reg [pmi_addr_width_r:0] rd_pointer_sync = {(pmi_addr_width_r+1){1'b1}}; + reg [pmi_addr_width_w:0] wr_pointer_sync1 = {(pmi_addr_width_w+1){1'b1}}, wr_pointer_sync2 = {(pmi_addr_width_w+1){1'b1}}; + reg [pmi_addr_width_r:0] rd_pointer_sync1 = {(pmi_addr_width_r+1){1'b1}}, rd_pointer_sync2 = {(pmi_addr_width_r+1){1'b1}}; + + reg [bit_ptr_width:0] wr_pointer_lsb = 0, rd_pointer_lsb = 0; + reg [bit_ptr_width:0] wr_pointer_bit = 0, wr_pointer_sync_bit = 0; + reg [bit_ptr_width:0] rd_pointer_bit = 0, rd_pointer_sync_bit = 0; + + wire [pmi_addr_width_w:0] wr_pointer_1 = wr_pointer + 1; + wire [pmi_addr_width_r:0] rd_pointer_1 = rd_pointer + 1; + + reg [pmi_addr_width_w:0] wr_pointer_var, wr_pointer_sync_var; + reg [pmi_addr_width_r:0] rd_pointer_var, rd_pointer_sync_var; + + wire [bit_ptr_width:0] fifo_words_used_syncr, fifo_words_used_syncw; + wire [bit_ptr_width:0] ae_ptr, empty_ptr, af_ptr, full_ptr; + + integer i, j; + + reg RPRST_reg1 = 0; + + +//For SC/M +//Task to check if proper fifo depth is set. + task sc_depth_check (input integer depth_w, depth_r); + begin + if ((depth_w != 2) && (depth_w != 4) && (depth_w != 8) && (depth_w != 16) && (depth_w != 32) && (depth_w != 64)&& (depth_w != 128) && (depth_w != 256) && (depth_w!= 512) && (depth_w != 1024) && (depth_w != 2048) && (depth_w != 4096) && (depth_w != 8192) && (depth_w != 16384) && (depth_w != 32768) && (depth_w != 65536) && (depth_w != 131072)) + begin + $display("\nError! Invalid Write Port Depth!"); + $display("\nValid values are: 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072."); + $stop; + end + + if ((depth_r != 2) && (depth_r != 4) && (depth_r != 8) && (depth_r != 16) && (depth_r != 32) && (depth_r != 64)&& (depth_r != 128) && (depth_r != 256) && (depth_r!= 512) && (depth_r != 1024) && (depth_r != 2048) && (depth_r != 4096) && (depth_r != 8192) && (depth_r != 16384) && (depth_r != 32768) && (depth_r != 65536) && (depth_r != 131072)) + begin + $display("\nError! Invalid Read Port Depth!"); + $display("\nValid values are: 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072."); + $stop; + end + end + endtask // sc_depth_check + +//For XO +//Task to check if proper fifo depth is set. + task xo_depth_check (input integer depth_w, depth_r); + begin + if ((depth_w != 2) && (depth_w != 4) && (depth_w != 8) && (depth_w != 16) && (depth_w != 32) && (depth_w != 64)&& (depth_w != 128) && (depth_w != 256) && (depth_w!= 512) && (depth_w != 1024) && (depth_w != 2048) && (depth_w != 4096) && (depth_w != 8192) && (depth_w != 16384)) + begin + $display("\nError! Invalid Write Port Depth!"); + $display("\nValid values are: 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384."); + $stop; + end + + if ((depth_r != 2) && (depth_r != 4) && (depth_r != 8) && (depth_r != 16) && (depth_r != 32) && (depth_r != 64)&& (depth_r != 128) && (depth_r != 256) && (depth_r!= 512) && (depth_r != 1024) && (depth_r != 2048) && (depth_r != 4096) && (depth_r != 8192) && (depth_r != 16384)) + begin + $display("\nError! Invalid Read Port Depth!"); + $display("\nValid values are: 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384."); + $stop; + end + end + endtask // xo_depth_check + +//Task to check if Depth * Width are same for read and write ports + task sc_array_check (input integer array_w, array_r); + begin + if (array_w != array_r) + begin + $display("\nError! Total value of (Depth * Width) must be the same for read set and write set ports."); + $stop; + end + end + endtask // sc_array_check + + +//For All Other families +//Task to check if proper fifo depth is set. + task ec_depth_check (input integer depth_w, depth_r, width_w, width_r); + begin + if (depth_w > 8192 && pmi_implementation == "LUT") + begin + $display("\nError! Fifo depth is too large! Maximum Fifo depth can be 8192."); + $stop; + end + else if (depth_w > 65536 && (pmi_family == "EC" || pmi_family == "XP" || pmi_family == "ECP")) + begin + $display("\nError! Fifo depth is too large! Maximum Fifo depth can be 65536."); + $stop; + end + else if (depth_w > 131072) + begin + $display("\nError! Fifo depth is too large! Maximum Fifo depth can be 131072."); + $stop; + end + + if ((depth_w != 2) && (depth_w != 4) && (depth_w != 8) && (depth_w != 16) && (depth_w != 32) && (depth_w != 64)&& (depth_w != 128) && (depth_w != 256) && (depth_w!= 512) && (depth_w != 1024) && (depth_w != 2048) && (depth_w != 4096) && (depth_w != 8192) && (depth_w != 16384) && (depth_w != 32768) && (depth_w != 65536) && (depth_w != 131072)/* && (depth_w != 262144) && (depth_w != 524288)*/) + begin + $display("\nError! Fifo depth can only be power of 2!"); + $stop; + end + end + endtask // ec_depth_check + +// Error Checks + initial begin + if (pmi_empty_flag != 0) + begin + $display("\nError! Empty Flag must be set to 0!"); + $stop; + end + + if (pmi_full_flag !== pmi_data_depth_w) + begin + $display("\nError! Full Flag must equal the total depth of the FIFO!"); + $stop; + end + + if ( ( ((pmi_family != "SC") && (pmi_family != "SCM") && + (pmi_family != "XO") && (pmi_family != "XO2") && (pmi_family != "LPTM")) || + (pmi_implementation == "LUT") ) && (pmi_resetmode == "sync") ) + begin + $display("\nError! Synchronous Reset is not supported for this family or implementation!"); + $stop; + end + + if ( ((pmi_family == "SC") || (pmi_family == "SCM") || + (pmi_family == "XO") || (pmi_family == "XO2") || (pmi_family == "LPTM")) && + (pmi_implementation == "EBR") ) begin + sc_array_check(pmi_array_size_w, pmi_array_size_r); + end + + if ( ((pmi_family == "SC") || (pmi_family == "SCM")) && + (pmi_implementation == "EBR") ) begin + sc_depth_check(pmi_data_depth_w, pmi_data_depth_r); + end + + if ( ((pmi_family == "XO") || (pmi_family == "XO2") || (pmi_family == "LPTM")) && + (pmi_implementation == "EBR") ) begin + xo_depth_check(pmi_data_depth_w, pmi_data_depth_r); + end + + if ( ((pmi_family != "SC") && (pmi_family != "SCM") && + (pmi_family != "XO") && (pmi_family != "XO2") && (pmi_family != "LPTM")) || + (pmi_implementation == "LUT") ) begin + ec_depth_check(pmi_data_depth_w, pmi_data_depth_r, pmi_data_width_w, pmi_data_width_r); + end + + end // initial begin + +//Following commented out code for pmi_gsr is for future compatibility +/* always @ (GSR_sig or PUR_sig ) begin + if (pmi_gsr == "enable") begin + SRN = GSR_sig & PUR_sig ; + end + else if (pmi_gsr == "disable") + SRN = PUR_sig; + end + + not INST0 (SR1, SRN); + or INST1 (RST_sig, Reset, SR1); + or INST2 (RPRST_sig, RPReset, SR1); + + always @(SR1 or Data) + begin + if (SR1 == 1) + begin + assign Data_reg = 0; + assign Q_reg = 0; + end + else + begin + deassign Data_reg; + deassign Q_reg; + end + end // always @ (SR1 or Data) +*/ + buf INST1 (RST_sig, Reset); + buf INST2 (RPRST_sig, RPReset); + + always @(posedge WrClock) + begin + RPRST_reg1 <= RPRST_sig; + end + + always @(RST_sig or RPRST_sig or RPRST_reg1) + begin + if (RST_sig == 1) + begin + assign wr_pointer = {(pmi_addr_width_w+1){1'b1}}; + assign wr_pointer_sync = {(pmi_addr_width_w+1){1'b1}}; + assign wr_pointer_sync1 = {(pmi_addr_width_w+1){1'b1}}; + assign wr_pointer_sync2 = {(pmi_addr_width_w+1){1'b1}}; + assign wr_pointer_lsb = 0; + assign wr_pointer_bit = 0; + assign wr_pointer_sync_bit = 0; + end + else + begin + deassign wr_pointer; + deassign wr_pointer_sync; + deassign wr_pointer_sync1; + deassign wr_pointer_sync2; + deassign wr_pointer_lsb; + deassign wr_pointer_bit; + deassign wr_pointer_sync_bit; + end // else: !if(RST_sig == 1) + + if (RST_sig == 1 || RPRST_sig == 1) + begin + assign rd_pointer = {(pmi_addr_width_r+1){1'b1}}; + assign rd_pointer_lsb = 0; + assign rd_pointer_bit = 0; + end + else + begin + deassign rd_pointer; + deassign rd_pointer_lsb; + deassign rd_pointer_bit; + end // else: !if(RPRST_sig == 1 || RST_sig == 1) + + if (RPRST_reg1 == 1 || RST_sig == 1) + begin + assign rd_pointer_sync = {(pmi_addr_width_r+1){1'b1}}; + assign rd_pointer_sync1 = {(pmi_addr_width_r+1){1'b1}}; + assign rd_pointer_sync2 = {(pmi_addr_width_r+1){1'b1}}; + assign rd_pointer_sync_bit = 0; + end + else + begin + deassign rd_pointer_sync; + deassign rd_pointer_sync1; + deassign rd_pointer_sync2; + deassign rd_pointer_sync_bit; + end + end + + //Additional Warning checks for RPRST Usage +/* + always @(RPRST_sig) + begin + if (wr_pointer > pmi_data_depth_w) + begin + $display("\nWarning! Illegal Operation! RPReset is being asserted when the packet size has exceeded fifo depth!"); + $display("\nSimulation mismatches are possible at time: %d !", $time); + $display("\nPlease refer to the header information of pmi_fifo_dc.v model for proper RPReset usage."); + end + end // always @ (RPRST_sig) +*/ + +//Asynchronous Reset + always @(posedge RST_sig or posedge WrClock) + begin + if (RST_sig == 1) + begin + Data_reg_async <= 0; + end + else + begin + if (WrEn == 1 && Full != 1) + Data_reg_async <= Data; + end + end + +//Synchronous Reset + always @(posedge WrClock) + begin + if (RST_sig == 1) + begin + Data_reg_sync <= 0; + end + else + begin + if (WrEn == 1 && Full != 1) + Data_reg_sync <= Data; + end + end + +//Choice between Async and Sync Reset + always @(Data_reg_sync or Data_reg_async) + begin + if (pmi_resetmode == "async") + Data_reg = Data_reg_async; + else + Data_reg = Data_reg_sync; + end + +//Write and Read Pointers + +always @(posedge WrClock) + begin + if (WrEn == 1) + begin + if (Full != 1) + begin + wr_pointer <= wr_pointer_1; + wr_pointer_lsb <= (wr_pointer_1 % pmi_data_depth_w) * pmi_data_width_w; + end + end + end + +always @(posedge RdClock) + begin + if (RdEn == 1) + begin + if (Empty != 1) + begin + rd_pointer <= rd_pointer_1; + rd_pointer_lsb <= (rd_pointer_1 % pmi_data_depth_r) * pmi_data_width_r; + end // if (Empty != 1) + end // if (RdEn == 1) + end // always @ (posedge RdClock) + + +//Synchronization Logic + +//Sync Write Pointer to Rd Clock +//Delayed by 2 clock cycles for EC based families + always @(posedge RdClock) + if ( ((pmi_family == "SC") || (pmi_family == "SCM") || + (pmi_family == "XO") || (pmi_family == "XO2") || (pmi_family == "LPTM")) && + (pmi_implementation == "EBR") ) + begin + wr_pointer_sync <= wr_pointer; + end + else begin + wr_pointer_sync1 <= wr_pointer; + wr_pointer_sync2 <= wr_pointer_sync1; + wr_pointer_sync <= wr_pointer_sync2; + end + +//Sync Read Pointer to Wr Clock +//Delayed by 2 clock cycles for EC based families. +//For SC and XO, rd_pointer_sync depends on the adjusted rd_pointer +//which depends on pmi_data_depth_w and pmi_data_depth_r + + always @(posedge WrClock) + if ( ((pmi_family == "SC") || (pmi_family == "SCM") || + (pmi_family == "XO") || (pmi_family == "XO2") || (pmi_family == "LPTM")) && + (pmi_implementation == "EBR") ) + begin + rd_pointer_sync <= rd_pointer; + end + else begin + rd_pointer_sync1 <= rd_pointer; + rd_pointer_sync2 <= rd_pointer_sync1; + rd_pointer_sync <= rd_pointer_sync2; + end + + //Write Data into FIFO + always @(Data_reg, wr_pointer, wr_pointer_lsb) + begin + for (i = 0; i < pmi_data_width_w; i = i + 1) + fifo_mem[wr_pointer_lsb + i] = Data_reg[i]; + end + + //Read from FIFO + always @(rd_pointer, rd_pointer_lsb, posedge RST_sig, posedge RPRST_sig) begin + if (RST_sig == 1'b1 || RPRST_sig == 1'b1) + Q_node = 0; + else if (RST_sig == 0 && RPRST_sig == 0) begin + for (j = 0; j < pmi_data_width_r; j = j + 1) + Q_node[j] = fifo_mem[rd_pointer_lsb + j]; + end // if (RST_sig == 0 && RPRST_sig == 0) + end // always @ (rd_pointer, posedge RST_sig, posedge RPRST_sig) + + +//Asynchronous Reset + always @(posedge RST_sig or posedge RPRST_sig or posedge RdClock) + begin + if (RST_sig == 1 || RPRST_sig == 1) + begin + Q_reg_async <= 0; + end + else + begin + if (pmi_regmode == "outreg_rden") + begin + if (RdEn == 1) //cr45303 + Q_reg_async <= Q_node; + end + else + begin + Q_reg_async <= Q_node; + end + end + end + +//Synchronous Reset + always @(posedge RdClock) + begin + if (RST_sig == 1 || RPRST_sig == 1) + begin + Q_reg_sync <= 0; + end + else + begin + if (pmi_regmode == "outreg_rden") + begin + if (RdEn == 1) //cr45303 + Q_reg_sync <= Q_node; + end + else + begin + Q_reg_sync <= Q_node; + end + end + end + +//Choice between Async and Sync Reset + always @(Q_reg_sync or Q_reg_async) + begin + if (pmi_resetmode == "async") + Q_reg = Q_reg_async; + else + Q_reg = Q_reg_sync; + end + + always @(Q_reg or Q_node) + begin + if (pmi_regmode == "noreg") + begin + Q_int = Q_node; + end + else + begin + Q_int = Q_reg; + end + end + + always @(Q_int) + begin + Q = Q_int ; + end + + +//Flag Generation + + always @(wr_pointer) + begin + wr_pointer_var = wr_pointer + 1; + wr_pointer_bit <= wr_pointer_var * pmi_data_width_w; + end + + always @(wr_pointer_sync, posedge RPRST_sig, posedge RdClock) + begin + if (RPRST_sig == 1) + wr_pointer_sync_bit <= 0; + else + begin + wr_pointer_sync_var = wr_pointer_sync + 1; + wr_pointer_sync_bit <= wr_pointer_sync_var * pmi_data_width_w; + end + end + + always @(rd_pointer) + begin + rd_pointer_var = rd_pointer + 1; + rd_pointer_bit <= rd_pointer_var * pmi_data_width_r; + end + + always @(rd_pointer_sync) + begin + rd_pointer_sync_var = rd_pointer_sync + 1; + rd_pointer_sync_bit <= rd_pointer_sync_var * pmi_data_width_r; + end + + assign fifo_words_used_syncr = (wr_pointer_sync_bit < pmi_array_size_w) && (rd_pointer_bit >= pmi_array_size_w) ? + (wr_pointer_sync_bit + pmi_array_size_w) - (rd_pointer_bit - pmi_array_size_w) : wr_pointer_sync_bit - rd_pointer_bit; + assign fifo_words_used_syncw = (wr_pointer_bit < pmi_array_size_w) && (rd_pointer_sync_bit >= pmi_array_size_w) ? + (wr_pointer_bit + pmi_array_size_w) - (rd_pointer_sync_bit - pmi_array_size_w) : wr_pointer_bit - rd_pointer_sync_bit; + + assign ae_ptr = (pmi_almost_empty_flag * pmi_data_width_r) + (pmi_data_width_r - 1); + assign empty_ptr = pmi_data_width_r - 1; + assign af_ptr = (pmi_almost_full_flag * pmi_data_width_w) - (pmi_data_width_w - 1); + assign full_ptr = pmi_array_size_w - (pmi_data_width_w - 1); + + assign Empty = (fifo_words_used_syncr <= empty_ptr); + assign AlmostEmpty = (fifo_words_used_syncr <= ae_ptr); + assign AlmostFull = (fifo_words_used_syncw >= af_ptr); + assign Full = (fifo_words_used_syncw >= full_ptr); +//pragma translate_on + +endmodule + diff --git a/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/readme.htm b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/readme.htm new file mode 100644 index 0000000..479a87e --- /dev/null +++ b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/readme.htm @@ -0,0 +1,1314 @@ + + + + + + + + + + + + + +SGMII/Gb Ethernet PCS Readme + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    + +
    + +

    SGMII/Gb +Ethernet PCS ReadMe

    + +

     

    + +

    General Information

    + +
    + +


    +
    Copyright Notice

    + + + + + +
    +

    Copyright + 2000-2014© Lattice Semiconductor Corporation. ALL RIGHTS RESERVED. This + confidential and proprietary software may be used only as authorized by a licensing + agreement from Lattice Semiconductor Corporation. The entire notice above + must be reproduced on all authorized copies and copies may only be made to + the extent permitted by a licensing agreement from Lattice Semiconductor + Corporation.

    +
    + +
    + +


    +
    Contacting Lattice

    + +
    + +

     

    + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Mail:

    +
    +

    Lattice + Semiconductor Corporation
    +5555 NE Moore Court
    +Hillsboro, OR +  97124
    +U.S.A.

    +
    +

    Telephone:

    +
    +

    1-800-Lattice + (USA and Canada)

    +
    +

     

    +
    +

    1-503-268-8001 + (other locations)

    +
    +

    Website:

    +
    +

    http://www.latticesemi.com

    +
    +

    E-mail:

    +
    +

    techsupport@latticesemi.com

    +
    + +

     

    + +
    + +

    IP Module Information

    + +
    + +


    +
    About this Module

    + + + + + + + + + + + + + + + + + + + +
    +

    IP Name:

    +
    +

    SGMII/Gb + Ethernet PCS

    +
    +

    IP + Version:

    +
    +

    4.1

    +
    +

    IP + Release Date:

    +
    +

    June + 2015

    +
    +

    Target + Technology:

    +
    +

    LatticeECP3,ECP5UM

    +
    + +


    +
    Software Requirements

    + + + + + + + + + + + + + + + +
    +

    Synthesis Tools + Supported:

    +
    +

    Synplify Pro I-2014.03L-SP1
    + Lattice Synthesis Engine (ECP5UM only)
    + Precision RTL Synthesis 2010a_Update2.254(ECP3/Windows only)

    +
    +

    Simulation + Tools Supported:

    +
    +

    Active-HDL + 9.3SP1(Windows only)
    + ModelSim SE 10.2c

    +
    +

    Lattice + Tool Supported:

    +
    +

    Diamond + 3.5

    +
    + +

     

    + +
    + +

    Implementing the IP Module Using +Diamond SW

    + +
    + +


    +
    Instantiating the Core

    + + + + + +
    +

    The + generated SGMII core package includes black-box (<user_name>_bb.v) and + instance (<username>_inst.v) templates that can be used to instantiate + the core in a top-level design.

    +

    An + example RTL top-level reference source file(top_smi.v[vhd]) that can be used + as an instantiation template for the IP core is provided in <project_dir>\sgmii_pcs_eval\<username>\src\rtl\top\[device]. + Users may also use this top-level reference as the starting template for the + top-level for their complete design.

    +
    + +


    +
    Hardware Evaluation

    + + + + + +
    +

    Lattice's IP hardware evaluation capability makes it + possible to create IP cores that operate in hardware for a limited period of + time (approximately four hours) without requiring the purchase on an IP + license. The hardware evaluation capability is enabled by default. It can be + disabled by right clicking on "Build Database" in the "Process + for current sources" window of the Project Navigator. The setting is + called "Hardware Evaluation" and the options are "Enable" + or "Disable".
    +   
    + When the Hardware Evaluation feature is enabled in the design, it will + generate a programming file that may be downloaded into the device. After + initialization, the IP core will be operational for approximately four hours. + After four hours, the device will stop working and it will be necessary to + reprogram the device to re-enable operation. This hardware evaluation + capability is only enabled if the core has not been licensed. During + implementation, a license check is performed. If the hardware evaluation + feature is disabled, a pop-up window will be displayed indicating a license + failure. Click"OK" in the window and the + bitstream will not be generated. If a license is detected, no pop-up window + is displayed and core generation is completed with no restrictions.

    +

     

    +
    + +


    +
    Implementing the core only design in a Top-Level Design

    + + + + + + + + +
    +

    As + described previously, the top-level file top_pcs_core_only.v + provided in <project_dir>\sgmii_pcs_eval\<username>\src\rtl\top\[device] supports the ability to implement + just the SGMII IP core.

    +

    Push-button + top-level implementation of this top-level is supported via the Diamond + project file <username>_core_only_eval.ldf + located in <project_dir>\sgmii_pcs_eval\<username>\impl\core_only\[vendor].

    +

    This + design is intended only to provide an accurate indication of the device + utilization associated with the core itself and should not be used as an actual + implementation example.

    +
    +


    + To use the + project file:

    +
      +
    • Select File->Open->Project + in Lattice Diamond.
    • +
    • Browse to <project_dir>\sgmii_pcs_eval\<username>\impl\core_only\[vendor] + in the Open Project dialog box.
    • +
    • Select and + open <username>_core_only_eval.ldf.At + this point, all of the files needed to support top-level synthesis and + implementation will be imported to the project.
    • +
    • Implement + the complete design via the standard Lattice Diamond GUI flow.
    • +
    +

     

    +
    + +

     

    + +

    Implementing the reference design in a Top-Level +Design

    + + + + + + + + +
    +

    Push-button + top-level implementation of a sample reference design is also supported via + the Diamond project file <username>_reference_eval.ldf + located in <project_dir>\sgmii_pcs_eval\<username>\impl\reference\[vendor]. +

    +
    +


    + To use the + project file:

    +
      +
    • Select + File->Open->Project in Lattice Diamond.
    • +
    • Browse to <project_dir>\sgmii_pcs_eval\<username>\impl\reference\[vendor] in the Open Project + dialog box.
    • +
    • Select and + open <username>_reference_eval.ldf.At + this point, all of the files needed to support top-level synthesis and + implementation will be imported to the project.
    • +
    • Implement + the complete design via the standard Lattice Diamond GUI flow.
    • +
    +

     

    +
    + +


    +
    Running Functional and Post + Route Timing Simulation

    + + + + + + + + +
    +

    The + functional simulation includes a configuration-specific behavioral model of + the SGMII, which is instantiated in an FPGA top level along with some + test logic (PLLs, and registers with Read/Write Interface). This FPGA top is + instantiated in an eval testbench that configures FPGA test logic registers + and SGMII IP core registers. The testbench files can be found in <project_dir>\sgmii_pcs_eval\testbench.

    +
    +

    Functional + Simulation
    + The + generated IP core package includes the configuration-specific behavior model + (<username>_beh.v) for functional simulation. ModelSim simulation is + supported via testbench files provided in <project_dir>\sgmii_pcs_eval\testbench. + Models required for simulation are provided in the <project_dir>\sgmii_pcs_eval\models\[device] folder.
    + Users may run the eval simulation by doing the following with
    ModelSim + SE:

    +
      +
    • Open + ModelSim.
    • +
    • Under the File + tab, select Change Directory
    • +
    • Set the + directory to <project_dir>\sgmii_pcs_eval\<username>\sim\modelsim.
    • +
    • Select OK. +
    • +
    • Under the + Tools tab, select TCL, then select Execute Macro.
    • +
    • Select file + <username>_reference_eval_se.do for ModelSim SE.
    • +
    +

    Users + may run the eval simulation by doing the following with Active-HDL:

    +
      +
    • Open + Active-HDL.
    • +
    • Under the tools + tab, select Execute Macro...
    • +
    • Select file + <project_dir>\sgmii_pcs_eval\<username>\sim\aldec\<username>_reference_eval.do
    • +
    +

    Post Route Timing Simulation

    +

    No post route + timing simulation is supported in this version.

    +
    + +

     

    + +


    +
    Reference Information
    +

    +The following documents provide more information on +implementing this core:

    + + + +

     

    + +
    + + + + diff --git a/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/impl/core_only/synplify/sgmii_channel_smi_core_only_eval.ldf b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/impl/core_only/synplify/sgmii_channel_smi_core_only_eval.ldf new file mode 100644 index 0000000..bb391d4 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/impl/core_only/synplify/sgmii_channel_smi_core_only_eval.ldf @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/impl/core_only/synplify/sgmii_channel_smi_core_only_eval.lpf b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/impl/core_only/synplify/sgmii_channel_smi_core_only_eval.lpf new file mode 100644 index 0000000..1310d50 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/impl/core_only/synplify/sgmii_channel_smi_core_only_eval.lpf @@ -0,0 +1,5 @@ +block RESETPATHS; +block ASYNCPATHS; +FREQUENCY NET "tx_clk_125_c" 125.0 MHz PAR_ADJ 25; +FREQUENCY NET "rx_clk_125_c" 125.0 MHz PAR_ADJ 25; +FREQUENCY NET "serdes_recovered_clk_c" 125.0 MHz PAR_ADJ 25; diff --git a/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/impl/core_only/synplify/sgmii_channel_smi_core_only_eval.sty b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/impl/core_only/synplify/sgmii_channel_smi_core_only_eval.sty new file mode 100644 index 0000000..b7c8175 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/impl/core_only/synplify/sgmii_channel_smi_core_only_eval.sty @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/impl/reference/synplify/sgmii_channel_smi_reference_eval.ldf b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/impl/reference/synplify/sgmii_channel_smi_reference_eval.ldf new file mode 100644 index 0000000..2218a5e --- /dev/null +++ b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/impl/reference/synplify/sgmii_channel_smi_reference_eval.ldf @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + diff --git a/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/impl/reference/synplify/sgmii_channel_smi_reference_eval.lpf b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/impl/reference/synplify/sgmii_channel_smi_reference_eval.lpf new file mode 100644 index 0000000..c34d25a --- /dev/null +++ b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/impl/reference/synplify/sgmii_channel_smi_reference_eval.lpf @@ -0,0 +1,9 @@ +block RESETPATHS; +block ASYNCPATHS; +# +FREQUENCY NET "in_clk_125_c" 125.0 MHz PAR_ADJ 25; +FREQUENCY NET "out_clk_125_c" 125.0 MHz PAR_ADJ 25; +FREQUENCY NET "hclk_c" 50.0 MHz PAR_ADJ 25; +FREQUENCY NET "*serdes_recovered_clk" 125.0 MHz PAR_ADJ 25; +# +# diff --git a/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/impl/reference/synplify/sgmii_channel_smi_reference_eval.sty b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/impl/reference/synplify/sgmii_channel_smi_reference_eval.sty new file mode 100644 index 0000000..97aabce --- /dev/null +++ b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/impl/reference/synplify/sgmii_channel_smi_reference_eval.sty @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/sim/modelsim/sgmii_channel_smi_reference_eval_se.do b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/sim/modelsim/sgmii_channel_smi_reference_eval_se.do new file mode 100644 index 0000000..9991117 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/sim/modelsim/sgmii_channel_smi_reference_eval_se.do @@ -0,0 +1,76 @@ +if {!0} { + vlib work +} +vmap work work +vmap ecp5u_black_boxes "/home/soft/lattice/diamond/3.10_x64/cae_library/simulation/blackbox/ecp5u_black_boxes" + +# compile the IP core ############### +vlog -novopt -y /home/soft/lattice/diamond/3.10_x64/cae_library/simulation/verilog/ecp5u +libext+.v ../../../../sgmii_channel_smi_beh.v +vcom ../../../../sgmii_channel_smi.vhd + +# compile components of an sgmii channel ############### +vlog -novopt -y /home/soft/lattice/diamond/3.10_x64/cae_library/simulation/verilog/ecp5u +libext+.v ../../src/rtl/template/ecp5um/register_interface_hb.v +vlog -novopt -y /home/soft/lattice/diamond/3.10_x64/cae_library/simulation/verilog/ecp5u +libext+.v ../../src/rtl/template/ecp5um/rate_resolution.v + +# compile top level hardware components ############### +vlog +define+RSL_SIM_MODE -novopt -y /home/soft/lattice/diamond/3.10_x64/cae_library/simulation/verilog/ecp5u +libext+.v ../../../models/ecp5um/pcs_serdes/sgmii_channel_smi_pcs_softlogic.v +vlog -novopt -y /home/soft/lattice/diamond/3.10_x64/cae_library/simulation/verilog/ecp5u +libext+.v ../../../models/ecp5um/pcs_serdes/sgmii_channel_smi_pcs.v +vlog -novopt -y /home/soft/lattice/diamond/3.10_x64/cae_library/simulation/verilog/ecp5u +libext+.v ../../../models/ecp5um/pmi_fifo_dc/pmi_fifo_dc.v + +# compile top level wrapper ############### +vlog -novopt -y /home/soft/lattice/diamond/3.10_x64/cae_library/simulation/verilog/ecp5u +libext+.v ../../src/rtl/top/ecp5um/top_hb.v + +# compile testbench components of sgmii_node ############### +vlog -novopt -y /home/soft/lattice/diamond/3.10_x64/cae_library/simulation/verilog/ecp5u +libext+.v ../../../testbench/sgmii_node.v + +# compile testbench components of mii monitor ############### +vlog -novopt -y /home/soft/lattice/diamond/3.10_x64/cae_library/simulation/verilog/ecp5u +libext+.v ../../../testbench/port_parser_mii.v +vlog -novopt -y /home/soft/lattice/diamond/3.10_x64/cae_library/simulation/verilog/ecp5u +libext+.v ../../../testbench/port_monitor.v +vlog -novopt -y /home/soft/lattice/diamond/3.10_x64/cae_library/simulation/verilog/ecp5u +libext+.v ../../../testbench/mii_monitor.v + +# compile the testbench ############### +vlog -novopt -y /home/soft/lattice/diamond/3.10_x64/cae_library/simulation/verilog/ecp5u +libext+.v ../../../testbench/tb_hb.v + + +#start the simulator +vsim -novopt -t ps -L ecp5u_black_boxes tb -l testcase.log + + +# list waves +view wave +onerror {resume} +add wave -divider {Control Signals} +add wave -format Logic -radix hexadecimal sim:/tb/top/rst_n +add wave -format Logic -radix hexadecimal sim:/tb/top/sgmii_mode +add wave -divider {Host Bus Signals} +add wave -format Logic -radix hexadecimal sim:/tb/top/hcs_n +add wave -format Logic -radix hexadecimal sim:/tb/top/hwrite_n +add wave -format Logic -radix hexadecimal sim:/tb/top/haddr +add wave -format Logic -radix hexadecimal sim:/tb/top/hdatain +add wave -format Logic -radix hexadecimal sim:/tb/top/hdataout +add wave -format Logic -radix hexadecimal sim:/tb/top/hready_n +add wave -divider {(G)MII Inbound Signals} +add wave -format Logic -radix hexadecimal sim:/tb/top/in_ce_source +add wave -format Logic -radix hexadecimal sim:/tb/top/in_ce_sink +add wave -format Logic -radix hexadecimal sim:/tb/top/en_in_mii +add wave -format Literal -radix hexadecimal sim:/tb/top/data_in_mii +add wave -format Logic -radix hexadecimal sim:/tb/top/err_in_mii +add wave -divider {(G)MII Outbound Signals} +add wave -format Logic -radix hexadecimal sim:/tb/top/out_ce_source +add wave -format Logic -radix hexadecimal sim:/tb/top/out_ce_sink +add wave -format Logic -radix hexadecimal sim:/tb/top/dv_out_mii +add wave -format Literal -radix hexadecimal sim:/tb/top/data_out_mii +add wave -format Logic -radix hexadecimal sim:/tb/top/err_out_mii +add wave -format Logic -radix hexadecimal sim:/tb/top/col_out_mii +add wave -format Logic -radix hexadecimal sim:/tb/top/crs_out_mii +add wave -divider {SERDES Outbound Signals} +add wave -format Logic -radix hexadecimal sim:/tb/top/hdoutp0 +add wave -format Logic -radix hexadecimal sim:/tb/top/hdoutn0 +add wave -divider {SERDES Inbound Signals} +add wave -format Logic -radix hexadecimal sim:/tb/top/hdinp0 +add wave -format Logic -radix hexadecimal sim:/tb/top/hdinn0 + + +# run simulation cycles +run -all + diff --git a/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/src/rtl/template/ecp5um/rate_resolution.v b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/src/rtl/template/ecp5um/rate_resolution.v new file mode 100644 index 0000000..b9edbef --- /dev/null +++ b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/src/rtl/template/ecp5um/rate_resolution.v @@ -0,0 +1,66 @@ +//************************************************************************** +// ************************************************************************* +// * LATTICE SEMICONDUCTOR CONFIDENTIAL * +// * PROPRIETARY NOTE * +// * * +// * This software contains information confidential and proprietary * +// * to Lattice Semiconductor Corporation. It shall not be reproduced * +// * in whole or in part, or transferred to other documents, or disclosed * +// * to third parties, or used for any purpose other than that for which * +// * it was obtained, without the prior written consent of Lattice * +// * Semiconductor Corporation. All rights reserved. * +// * * +// ************************************************************************* +//************************************************************************** + +`timescale 1ns/100ps + +module rate_resolution ( + gbe_mode, + sgmii_mode, + an_enable, + advertised_rate, + link_partner_rate, + non_an_rate, + + operational_rate +); + +input gbe_mode; +input sgmii_mode; +input an_enable; +input [1:0] advertised_rate; // 00=10Mbps 01=100Mbps 10=1Gbps +input [1:0] link_partner_rate; +input [1:0] non_an_rate; + +output [1:0] operational_rate; +reg [1:0] operational_rate; + + + +always @(gbe_mode or sgmii_mode or an_enable or advertised_rate or link_partner_rate or non_an_rate) begin + if (gbe_mode) begin + operational_rate <= 2'b10; // 1Gbps + end + else begin + if (an_enable) begin + if (sgmii_mode) begin + // PHY Mode + operational_rate <= advertised_rate; + end + else begin + // MAC Mode + operational_rate <= link_partner_rate; + end + end + else begin + // If auto-negotiation disabled, then this becomes active rate + operational_rate <= non_an_rate; + end + end +end + + + +endmodule + diff --git a/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/src/rtl/template/ecp5um/register_interface_hb.v b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/src/rtl/template/ecp5um/register_interface_hb.v new file mode 100644 index 0000000..028d806 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/src/rtl/template/ecp5um/register_interface_hb.v @@ -0,0 +1,1393 @@ +//************************************************************************** +// ************************************************************************* +// * LATTICE SEMICONDUCTOR CONFIDENTIAL * +// * PROPRIETARY NOTE * +// * * +// * This software contains information confidential and proprietary * +// * to Lattice Semiconductor Corporation. It shall not be reproduced * +// * in whole or in part, or transferred to other documents, or disclosed * +// * to third parties, or used for any purpose other than that for which * +// * it was obtained, without the prior written consent of Lattice * +// * Semiconductor Corporation. All rights reserved. * +// * * +// ************************************************************************* +//************************************************************************** + +`timescale 1ns/100ps + +module register_interface_hb ( + + // Control Signals + rst_n, + hclk, + gbe_mode, + sgmii_mode, + + // Host Bus + hcs_n, + hwrite_n, + haddr, + hdatain, + + hdataout, + hready_n, + + // Register Inputs + mr_stat_1000base_x_fd, + mr_stat_1000base_x_hd, + mr_stat_1000base_t_fd, + mr_stat_1000base_t_hd, + + mr_stat_100base_t4, + mr_stat_100base_x_fd, + mr_stat_100base_x_hd, + mr_stat_10mbps_fd, + mr_stat_10mbps_hd, + mr_stat_100base_t2_fd, + mr_stat_100base_t2_hd, + + mr_stat_extended_stat, + mr_stat_unidir_able, + mr_stat_preamb_supr, + mr_stat_an_complete, + mr_stat_remote_fault, + mr_stat_an_able, + mr_stat_link_stat, + mr_stat_jab_det, + mr_stat_extended_cap, + + mr_page_rx, + mr_lp_adv_ability, + + // Register Outputs + mr_main_reset, + mr_loopback_enable, + mr_speed_selection, + mr_an_enable, + mr_power_down, + mr_isolate, + mr_restart_an, + mr_duplex_mode, + mr_col_test, + mr_unidir_enable, + mr_adv_ability + ); + + +input rst_n ; +input hclk ; +input gbe_mode ; +input sgmii_mode ; + +input hcs_n; +input hwrite_n; +input [5:0] haddr; +input [7:0] hdatain; + +output [7:0] hdataout; +output hready_n; + +input mr_stat_1000base_x_fd; +input mr_stat_1000base_x_hd; +input mr_stat_1000base_t_fd; +input mr_stat_1000base_t_hd; + +input mr_stat_100base_t4; +input mr_stat_100base_x_fd; +input mr_stat_100base_x_hd; +input mr_stat_10mbps_fd; +input mr_stat_10mbps_hd; +input mr_stat_100base_t2_fd; +input mr_stat_100base_t2_hd; + +input mr_stat_extended_stat; +input mr_stat_unidir_able; +input mr_stat_preamb_supr; +input mr_stat_an_complete; +input mr_stat_remote_fault; +input mr_stat_an_able; +input mr_stat_link_stat; +input mr_stat_jab_det; +input mr_stat_extended_cap; + +input mr_page_rx; +input [15:0] mr_lp_adv_ability; + +output mr_main_reset; +output mr_loopback_enable; +output [1:0] mr_speed_selection; +output mr_an_enable; +output mr_power_down; +output mr_isolate; +output mr_restart_an; +output mr_duplex_mode; +output mr_col_test; +output mr_unidir_enable; +output [15:0] mr_adv_ability; + +regs_hb regs ( + .rst_n (rst_n), + .hclk (hclk), + + .gbe_mode (gbe_mode), + .sgmii_mode (sgmii_mode), + + .hcs_n (hcs_n), + .hwrite_n (hwrite_n), + .haddr (haddr), + .hdatain (hdatain), + + .hdataout (hdataout), + .hready_n (hready_n), + + .mr_stat_1000base_x_fd (mr_stat_1000base_x_fd), + .mr_stat_1000base_x_hd (mr_stat_1000base_x_hd), + .mr_stat_1000base_t_fd (mr_stat_1000base_t_fd), + .mr_stat_1000base_t_hd (mr_stat_1000base_t_hd), + + .mr_stat_100base_t4 (mr_stat_100base_t4), + .mr_stat_100base_x_fd (mr_stat_100base_x_fd), + .mr_stat_100base_x_hd (mr_stat_100base_x_hd), + .mr_stat_10mbps_fd (mr_stat_10mbps_fd), + .mr_stat_10mbps_hd (mr_stat_10mbps_hd), + .mr_stat_100base_t2_fd (mr_stat_100base_t2_fd), + .mr_stat_100base_t2_hd (mr_stat_100base_t2_hd), + + .mr_stat_extended_stat (mr_stat_extended_stat), + .mr_stat_unidir_able (mr_stat_unidir_able), + .mr_stat_preamb_supr (mr_stat_preamb_supr), + .mr_stat_an_complete (mr_stat_an_complete), + .mr_stat_remote_fault (mr_stat_remote_fault), + .mr_stat_an_able (mr_stat_an_able), + .mr_stat_link_stat (mr_stat_link_stat), + .mr_stat_jab_det (mr_stat_jab_det), + .mr_stat_extended_cap (mr_stat_extended_cap), + + .mr_page_rx (mr_page_rx), + .mr_lp_adv_ability (mr_lp_adv_ability), + + .mr_main_reset (mr_main_reset), + .mr_loopback_enable (mr_loopback_enable), + .mr_speed_selection (mr_speed_selection), + .mr_an_enable (mr_an_enable), + .mr_power_down (mr_power_down), + .mr_isolate (mr_isolate), + .mr_restart_an (mr_restart_an), + .mr_duplex_mode (mr_duplex_mode), + .mr_col_test (mr_col_test), + .mr_unidir_enable (mr_unidir_enable), + + .mr_adv_ability (mr_adv_ability) +); +endmodule + + + + + + +module register_0_hb ( + rst_n, + clk, + gbe_mode, + cs_0, + cs_1, + write, + ready, + data_in, + + data_out, + mr_main_reset, + mr_loopback_enable, + mr_speed_selection, + mr_an_enable, + mr_power_down, + mr_isolate, + mr_restart_an, + mr_duplex_mode, + mr_col_test, + mr_unidir_enable +); + +input rst_n; +input clk; +input gbe_mode; +input cs_0; +input cs_1; +input write; +input ready; +input [15:0] data_in; + +output [15:0] data_out; +output mr_main_reset; // bit D15 // R/W // Self Clearing +output mr_loopback_enable; // bit D14 // R/W +output [1:0] mr_speed_selection; // bit D13 LSB bit D6 MSB // R/W +output mr_an_enable; // bit D12 // R/W +output mr_power_down; // bit D11 // R/W +output mr_isolate; // bit D10 // R/W +output mr_restart_an; // bit D09 // R/W // Self Clearing +output mr_duplex_mode; // bit D08 // STUCK HIGH +output mr_col_test; // bit D08 // STUCK LOW +output mr_unidir_enable; // bit D05 // STUCK LOW + +reg [15:0] data_out; +reg mr_main_reset; +reg mr_loopback_enable; +reg [1:0] mr_speed_selection; +reg mr_an_enable; +reg mr_power_down = 1'b0; +reg mr_isolate; +reg mr_restart_an; +reg mr_duplex_mode; +reg mr_col_test; +reg mr_unidir_enable; +reg m_m_r; +reg m_r_a; +reg gbe_mode_d1; +reg gbe_mode_d2; + + + +// Deboggle +always @(posedge clk or negedge rst_n) begin + if (rst_n == 1'b0) begin + gbe_mode_d1 <= 0; + gbe_mode_d2 <= 0; + end + else begin + gbe_mode_d1 <= gbe_mode; + gbe_mode_d2 <= gbe_mode_d1; + end +end + + + +// Write Operations + + // Low Portion of Register[D7:D0] has no + // implemented bits. Therefore, no write + // operations here. + + // High Portion of Register[D15:D8] + always @(posedge clk or negedge rst_n) begin + if (rst_n == 1'b0) begin + mr_main_reset <= 1'b0; + mr_loopback_enable <= 1'b0; + mr_speed_selection <= 2'b10; + mr_an_enable <= 1'b1; + mr_power_down <= 1'b0; + mr_isolate <= 1'b0; + mr_restart_an <= 1'b0; + mr_duplex_mode <= 1'b1; + mr_col_test <= 1'b0; + mr_unidir_enable <= 1'b0; + m_m_r <= 0; + m_r_a <= 0; + end + else begin + + // defaults + mr_duplex_mode <= 1'b1; // STUCK HIGH + mr_col_test <= 1'b0; // STUCK LOW + + // Do the Writes + if (cs_1 && ready && write) begin + mr_main_reset <= data_in[15]; + mr_loopback_enable <= data_in[14]; + mr_an_enable <= data_in[12]; + mr_power_down <= data_in[11]; + mr_isolate <= data_in[10]; + mr_restart_an <= data_in[9]; + end + + + // Manage Writes to Speed Selection Based on GBE MODE + if (gbe_mode_d2) begin + mr_speed_selection[1:0] <= 2'b10; // STUCK AT 1GBPS + end + else begin + if (cs_1 && ready && write) begin + mr_speed_selection[0] <= data_in[13]; + end + if (cs_0 && ready && write) begin + mr_speed_selection[1] <= data_in[6]; + mr_unidir_enable <= data_in[5]; + end + end + + + + // Delay the Self Clearing Register Bits + m_m_r <= mr_main_reset; + m_r_a <= mr_restart_an; + + // Do the Self Clearing + if (m_m_r) + mr_main_reset <= 0; + + if (m_r_a) + mr_restart_an <= 0; + end + end + + + + + +// Read Operations + always @(*) begin + data_out[7] <= mr_col_test; + data_out[6] <= mr_speed_selection[1]; + data_out[5] <= mr_unidir_enable; + data_out[4] <= 1'b0; + data_out[3] <= 1'b0; + data_out[2] <= 1'b0; + data_out[1] <= 1'b0; + data_out[0] <= 1'b0; + + data_out[15] <= mr_main_reset; + data_out[14] <= mr_loopback_enable; + data_out[13] <= mr_speed_selection[0]; + data_out[12] <= mr_an_enable; + data_out[11] <= mr_power_down; + data_out[10] <= mr_isolate; + data_out[9] <= mr_restart_an; + data_out[8] <= mr_duplex_mode; + end +endmodule + +module register_1_hb ( + rst_n, + clk, + cs_0, + cs_1, + write, + ready, + + + mr_stat_100base_t4, + mr_stat_100base_x_fd, + mr_stat_100base_x_hd, + mr_stat_10mbps_fd, + mr_stat_10mbps_hd, + mr_stat_100base_t2_fd, + mr_stat_100base_t2_hd, + + mr_stat_extended_stat, + mr_stat_unidir_able, + mr_stat_preamb_supr, + mr_stat_an_complete, + mr_stat_remote_fault, + mr_stat_an_able, + mr_stat_link_stat, + mr_stat_jab_det, + mr_stat_extended_cap, + + data_out +); + +input rst_n; +input clk; +input cs_0; +input cs_1; +input write; +input ready; +input mr_stat_100base_t4; // bit D15 // Read-Only +input mr_stat_100base_x_fd; // bit D14 // Read-Only +input mr_stat_100base_x_hd; // bit D13 // Read-Only +input mr_stat_10mbps_fd; // bit D12 // Read-Only +input mr_stat_10mbps_hd; // bit D11 // Read-Only +input mr_stat_100base_t2_fd; // bit D10 // Read-Only +input mr_stat_100base_t2_hd; // bit D9 // Read-Only + +input mr_stat_extended_stat; // bit D8 // Read-Only +input mr_stat_unidir_able; // bit D7 // Read-Only +input mr_stat_preamb_supr; // bit D6 // Read-Only +input mr_stat_an_complete; // bit D5 // Read-Only +input mr_stat_remote_fault; // bit D4 // Read-Only +input mr_stat_an_able; // bit D3 // Read-Only +input mr_stat_link_stat; // bit D2 // Read-Only // Latch-On-Zero // Clear-On-Read +input mr_stat_jab_det; // bit D1 // Read-Only +input mr_stat_extended_cap; // bit D0 // Read-Only + +output [15:0] data_out; + +reg [15:0] data_out; + +reg link_stat_d1; +reg link_stat_d2; +reg clear_on_read; +reg read_detect; +reg rd_d1; +reg rd_d2; +reg allow_link_stat; +reg link_ok_status; +// metastability filter + always @(posedge clk or negedge rst_n) begin + if (rst_n == 1'b0) begin + link_stat_d1 <= 1'b0; + link_stat_d2 <= 1'b0; + end + else begin + link_stat_d1 <= mr_stat_link_stat; + link_stat_d2 <= link_stat_d1; + end + end + +// generate clear-on-read signal + always @(posedge clk or negedge rst_n) begin + if (rst_n == 1'b0) begin + clear_on_read <= 1'b0; + read_detect <= 1'b0; + rd_d1 <= 1'b0; + rd_d2 <= 1'b0; + end + else begin + if (!write && ready && cs_0) + read_detect <= 1'b1; + else + read_detect <= 1'b0; + + rd_d1 <= read_detect; + rd_d2 <= rd_d1; + + // assert on falling edge of rd_d2 + clear_on_read <= !rd_d1 & rd_d2; + end + end + + +// Latch and Clear + always @(posedge clk or negedge rst_n) begin + if (rst_n == 1'b0) begin + allow_link_stat <= 1'b0; + link_ok_status <= 1'b0; + end + else begin + + case (allow_link_stat) + 1'b0: begin + if (clear_on_read) begin + allow_link_stat<= 1'b1; + end + end + + 1'b1: begin + if (!link_stat_d2) begin + allow_link_stat <= 1'b0; + end + end + endcase + + + if (allow_link_stat) begin + // allow status shoot-thru after clear-on-read + link_ok_status <= link_stat_d2; + end + else begin + // force status low when link IS NOT_OKAY + link_ok_status <= 1'b0; + end + + end + end + + +// Read Operations + + always @(*) begin + data_out[7] <= mr_stat_unidir_able; + data_out[6] <= mr_stat_preamb_supr; + data_out[5] <= mr_stat_an_complete; + data_out[4] <= mr_stat_remote_fault; + data_out[3] <= mr_stat_an_able; + data_out[2] <= link_ok_status; + data_out[1] <= mr_stat_jab_det; + data_out[0] <= mr_stat_extended_cap; + + data_out[15] <= mr_stat_100base_t4; + data_out[14] <= mr_stat_100base_x_fd; + data_out[13] <= mr_stat_100base_x_hd; + data_out[12] <= mr_stat_10mbps_fd; + data_out[11] <= mr_stat_10mbps_hd; + data_out[10] <= mr_stat_100base_t2_fd; + data_out[9] <= mr_stat_100base_t2_hd; + data_out[8] <= mr_stat_extended_stat; + end +endmodule + +module register_4_hb ( + rst_n, + clk, + gbe_mode, + sgmii_mode, + cs_0, + cs_1, + write, + ready, + data_in, + + data_out, + mr_adv_ability +); + +parameter [15:0] initval_gbe = 16'h0020; +parameter [15:0] initval_phy = 16'hd801; +parameter [15:0] initval_mac = 16'h4001; + +input rst_n; +input clk; +input gbe_mode; +input sgmii_mode; +input cs_0; +input cs_1; +input write; +input ready; +input [15:0] data_in; + +output [15:0] data_out; +output [15:0] mr_adv_ability; // When sgmii_mode == 1 == PHY + // all bits D15-D0 are R/W, + /////////////////////////////////// + // D15 = Link Status (1=up, 0=down) + // D14 = Can be written but has no effect + // on autonegotiation. Instead + // the autonegotiation state machine + // controls the utilization of this bit. + // D12 = Duplex Mode (1=full, 0=half) + // D11:10 = Speed (11=reserved) + // (10=1000Mbps) + // (01=100 Mbps) + // (00=10 Mbps) + // D0 = 1 + // all other bits = 0 + /////////////////////////////////// + //When sgmii_mode == 0 = MAC + // all bits D15-D0 are R/W, + // D14 = Can be written but has no effect + // on autonegotiation. Instead + // the autonegotiation state machine + // controls the utilization of this bit. + // D0 = 1 + // all other bits = 0 + /////////////////////////////////// + + +reg [15:0] data_out; +reg [15:0] mr_adv_ability; +reg rst_d1; +reg rst_d2; +reg rst_d3; +reg rst_d4; +reg rst_d5; +reg rst_d6; +reg rst_d7; +reg rst_d8; +reg sync_reset; +reg sgmii_mode_d1; +reg sgmii_mode_d2; +reg sgmii_mode_d3; +reg sgmii_mode_d4; +reg sgmii_mode_change; +reg gbe_mode_d1; +reg gbe_mode_d2; +reg gbe_mode_d3; +reg gbe_mode_d4; +reg gbe_mode_change; + +// generate a synchronous reset signal +// note: this method is used so that +// an initval can be applied during +// device run-time, instead of at compile time +always @(posedge clk or negedge rst_n) begin + if (rst_n == 1'b0) begin + rst_d1 <= 0; + rst_d2 <= 0; + rst_d3 <= 0; + rst_d4 <= 0; + rst_d5 <= 0; + rst_d6 <= 0; + rst_d7 <= 0; + rst_d8 <= 0; + sync_reset <= 0; + end + else begin + rst_d1 <= 1; + rst_d2 <= rst_d1; + rst_d3 <= rst_d2; + rst_d4 <= rst_d3; + rst_d5 <= rst_d4; + rst_d6 <= rst_d5; + rst_d7 <= rst_d6; + rst_d8 <= rst_d7; + + // asserts on rising edge of rst_d8 + sync_reset <= !rst_d8 & rst_d7; + end +end + + +// Detect change in sgmii_mode +always @(posedge clk or negedge rst_n) begin + if (rst_n == 1'b0) begin + sgmii_mode_d1 <= 0; + sgmii_mode_d2 <= 0; + sgmii_mode_d3 <= 0; + sgmii_mode_d4 <= 0; + sgmii_mode_change <= 0; + end + else begin + + // deboggle + sgmii_mode_d1 <= sgmii_mode; + sgmii_mode_d2 <= sgmii_mode_d1; + + // delay + sgmii_mode_d3 <= sgmii_mode_d2; + sgmii_mode_d4 <= sgmii_mode_d3; + + // detect change + if (sgmii_mode_d3 != sgmii_mode_d4) + sgmii_mode_change <= 1; + else + sgmii_mode_change <= 0; + end +end + + +// Detect change in gbe_mode +always @(posedge clk or negedge rst_n) begin + if (rst_n == 1'b0) begin + gbe_mode_d1 <= 0; + gbe_mode_d2 <= 0; + gbe_mode_d3 <= 0; + gbe_mode_d4 <= 0; + gbe_mode_change <= 0; + end + else begin + + // deboggle + gbe_mode_d1 <= gbe_mode; + gbe_mode_d2 <= gbe_mode_d1; + + // delay + gbe_mode_d3 <= gbe_mode_d2; + gbe_mode_d4 <= gbe_mode_d3; + + // detect change + if (gbe_mode_d3 != gbe_mode_d4) + gbe_mode_change <= 1; + else + gbe_mode_change <= 0; + end +end + + +// Write Operations + // Low Portion of Register[D7:D0] + always @(posedge clk or negedge rst_n) begin + if (rst_n == 1'b0) begin + mr_adv_ability[7:0] <= 8'h01; + end + else if (sync_reset || sgmii_mode_change || gbe_mode_change) begin + if (gbe_mode_d4) + mr_adv_ability[7:0] <= initval_gbe[7:0]; + else if (sgmii_mode) + mr_adv_ability[7:0] <= initval_phy[7:0]; + else + mr_adv_ability[7:0] <= initval_mac[7:0]; + end + else begin + if (cs_0 && ready && write && (sgmii_mode || gbe_mode)) begin + mr_adv_ability[7:0] <= data_in[7:0]; + end + end + end + + + // High Portion of Register[D15:D8] + always @(posedge clk or negedge rst_n) begin + if (rst_n == 1'b0) begin + mr_adv_ability[15:8] <= 8'h40; // default + end + else if (sync_reset || sgmii_mode_change || gbe_mode_change) begin + if (gbe_mode_d4) + mr_adv_ability[15:8] <= initval_gbe[15:8]; + else if (sgmii_mode) + mr_adv_ability[15:8] <= initval_phy[15:8]; + else + mr_adv_ability[15:8] <= initval_mac[15:8]; + end + else begin + if (cs_1 && ready && write && (sgmii_mode || gbe_mode)) begin + mr_adv_ability[15:8] <= data_in[15:8]; + end + end + end + + + + + + + + + +// Read Operations + + always @(*) begin + data_out[7:0] <= mr_adv_ability[7:0]; + data_out[15:8] <= mr_adv_ability[15:8]; + end + +endmodule + + + + + + +module register_5_hb ( + rst_n, + mr_lp_adv_ability, + cs_0, + cs_1, + ready, + + data_out +); + +input rst_n; +input cs_0; +input cs_1; +input ready; +input [15:0] mr_lp_adv_ability; + // This entire register is read-only + /////////////////////////////////// + // When sgmii_mode == 0 == MAC + /////////////////////////////////// + // D15 = PHY Link Status (1=up, 0=down) + // D14 = PHY Autonegotiation Handshake + // D12 = PHY Duplex Mode (1=full, 0=half) + // D11:10 = PHY Speed (11=reserved) + // (10=1000Mbps) + // (01=100 Mbps) + // (00=10 Mbps) + // D0 = 1 + // all other bits = 0 + /////////////////////////////////// + //When sgmii_mode == 1 = PHY + // D14 = MAC Autonegotiation Handshake + // D0 = 1 + // all other bits = 0 + /////////////////////////////////// +output [15:0] data_out; + +reg [15:0] data_out; + +// Read Operations + + always @(*) begin + data_out[7:0] <= mr_lp_adv_ability[7:0]; + data_out[15:8] <= mr_lp_adv_ability[15:8]; + end +endmodule + +module register_6_hb ( + rst_n, + clk, + mr_page_rx, + cs_0, + cs_1, + write, + ready, + + data_out +); + +input rst_n; +input clk; +input cs_0; +input cs_1; +input write; +input ready; +input mr_page_rx; +output [15:0] data_out; + +reg [15:0] data_out; +reg mr_page_rx_latched; +reg clear_on_read; +reg read_detect; +reg rd_d1; +reg rd_d2; + +// generate clear-on-read signal + always @(posedge clk or negedge rst_n) begin + if (rst_n == 1'b0) begin + clear_on_read <= 0; + read_detect <= 0; + rd_d1 <= 0; + rd_d2 <= 0; + end + else begin + if (!write && ready && cs_0) + read_detect <= 1; + else + read_detect <= 0; + + rd_d1 <= read_detect; + rd_d2 <= rd_d1; + + // assert on falling edge of rd_d2 + clear_on_read <= !rd_d1 & rd_d2; + end + end + + +// Latch and Clear + always @(posedge clk or negedge rst_n) begin + if (rst_n == 1'b0) begin + mr_page_rx_latched <= 0; + end + else begin + if (clear_on_read) + mr_page_rx_latched <= 0; + else if (mr_page_rx) + mr_page_rx_latched <= 1; + end + end + + +// Read Operations + + always @(*) begin + data_out[15:2] <= 14'd0; + data_out[1] <= mr_page_rx_latched; + data_out[0] <= 0; + end +endmodule + + +module register_f_hb ( + rst_n, + cs_0, + cs_1, + + mr_stat_1000base_x_fd, + mr_stat_1000base_x_hd, + mr_stat_1000base_t_fd, + mr_stat_1000base_t_hd, + + data_out +); + +input rst_n; +input cs_0; +input cs_1; + +input mr_stat_1000base_x_fd; // bit D15 // Read-Only +input mr_stat_1000base_x_hd; // bit D14 // Read-Only +input mr_stat_1000base_t_fd; // bit D13 // Read-Only +input mr_stat_1000base_t_hd; // bit D12 // Read-Only + +output [15:0] data_out; + +reg [15:0] data_out; + + +// Read Operations + + always @(*) begin + data_out[7] <= 1'b0; + data_out[6] <= 1'b0; + data_out[5] <= 1'b0; + data_out[4] <= 1'b0; + data_out[3] <= 1'b0; + data_out[2] <= 1'b0; + data_out[1] <= 1'b0; + data_out[0] <= 1'b0; + + data_out[15] <= mr_stat_1000base_x_fd; + data_out[14] <= mr_stat_1000base_x_hd; + data_out[13] <= mr_stat_1000base_t_fd; + data_out[12] <= mr_stat_1000base_t_hd; + data_out[11] <= 1'b0; + data_out[10] <= 1'b0; + data_out[9] <= 1'b0; + data_out[8] <= 1'b0; + end +endmodule + + +module regs_hb ( + rst_n, + hclk, + gbe_mode, + sgmii_mode, + hcs_n, + hwrite_n, + haddr, + hdatain, + + hdataout, + hready_n, + + mr_stat_1000base_x_fd, + mr_stat_1000base_x_hd, + mr_stat_1000base_t_fd, + mr_stat_1000base_t_hd, + + mr_stat_100base_t4, + mr_stat_100base_x_fd, + mr_stat_100base_x_hd, + mr_stat_10mbps_fd, + mr_stat_10mbps_hd, + mr_stat_100base_t2_fd, + mr_stat_100base_t2_hd, + + mr_stat_extended_stat, + mr_stat_unidir_able, + mr_stat_preamb_supr, + mr_stat_an_complete, + mr_stat_remote_fault, + mr_stat_an_able, + mr_stat_link_stat, + mr_stat_jab_det, + mr_stat_extended_cap, + + mr_page_rx, + mr_lp_adv_ability, + + mr_main_reset, + mr_loopback_enable, + mr_speed_selection, + mr_an_enable, + mr_power_down, + mr_isolate, + mr_restart_an, + mr_duplex_mode, + mr_col_test, + mr_unidir_enable, + mr_adv_ability +); + +input rst_n; +input hclk; +input gbe_mode; +input sgmii_mode; +input hcs_n; +input hwrite_n; +input [5:0] haddr; +input [7:0] hdatain; + +output [7:0] hdataout; +output hready_n; + +input mr_stat_1000base_x_fd; +input mr_stat_1000base_x_hd; +input mr_stat_1000base_t_fd; +input mr_stat_1000base_t_hd; + +input mr_stat_100base_t4; +input mr_stat_100base_x_fd; +input mr_stat_100base_x_hd; +input mr_stat_10mbps_fd; +input mr_stat_10mbps_hd; +input mr_stat_100base_t2_fd; +input mr_stat_100base_t2_hd; + +input mr_stat_extended_stat; +input mr_stat_unidir_able; +input mr_stat_preamb_supr; +input mr_stat_an_complete; +input mr_stat_remote_fault; +input mr_stat_an_able; +input mr_stat_link_stat; +input mr_stat_jab_det; +input mr_stat_extended_cap; + +input mr_page_rx; +input [15:0] mr_lp_adv_ability; + +output mr_main_reset; +output mr_loopback_enable; +output [1:0] mr_speed_selection; +output mr_an_enable; +output mr_power_down; +output mr_isolate; +output mr_restart_an; +output mr_duplex_mode; +output mr_col_test; +output mr_unidir_enable; +output [15:0] mr_adv_ability; + +/////////////////////////////////// + + + +reg [7:0] hdataout; +reg hr; +reg hready_n; + +reg hcs_n_delayed; + +wire reg0_cs_0; +wire reg0_cs_1; + +wire reg1_cs_0; +wire reg1_cs_1; + +wire reg4_cs_0; +wire reg4_cs_1; + +wire reg5_cs_0; +wire reg5_cs_1; + +wire reg6_cs_0; +wire reg6_cs_1; + +wire regf_cs_0; +wire regf_cs_1; + +wire [15:0] data_out_reg_0; +wire [15:0] data_out_reg_1; +wire [15:0] data_out_reg_4; +wire [15:0] data_out_reg_5; +wire [15:0] data_out_reg_6; +wire [15:0] data_out_reg_f; + + + +register_addr_decoder ad_dec ( + .rst_n(rst_n), + .addr(haddr), + .cs_in(~hcs_n), + + .reg0_cs_0 (reg0_cs_0), + .reg0_cs_1 (reg0_cs_1), + .reg1_cs_0 (reg1_cs_0), + .reg1_cs_1 (reg1_cs_1), + .reg4_cs_0 (reg4_cs_0), + .reg4_cs_1 (reg4_cs_1), + .reg5_cs_0 (reg5_cs_0), + .reg5_cs_1 (reg5_cs_1), + .reg6_cs_0 (reg6_cs_0), + .reg6_cs_1 (reg6_cs_1), + .regf_cs_0 (regf_cs_0), + .regf_cs_1 (regf_cs_1) +); + + +register_0_hb register_0 ( + .rst_n (rst_n), + .clk (hclk), + .gbe_mode (gbe_mode), + .cs_0 (reg0_cs_0), + .cs_1 (reg0_cs_1), + .write (~hwrite_n), + .ready (1'b1), + .data_in ({hdatain, hdatain}), + + .data_out (data_out_reg_0), + .mr_main_reset (mr_main_reset), + .mr_loopback_enable (mr_loopback_enable), + .mr_speed_selection (mr_speed_selection), + .mr_an_enable (mr_an_enable), + .mr_power_down (mr_power_down), + .mr_isolate (mr_isolate), + .mr_restart_an (mr_restart_an), + .mr_duplex_mode (mr_duplex_mode), + .mr_col_test (mr_col_test), + .mr_unidir_enable (mr_unidir_enable) +); + + +register_1_hb register_1 ( + .rst_n (rst_n), + .clk (hclk), + .cs_0 (reg1_cs_0), + .cs_1 (reg1_cs_1), + .write (~hwrite_n), + .ready (1'b1), + + .mr_stat_100base_t4 (mr_stat_100base_t4), + .mr_stat_100base_x_fd (mr_stat_100base_x_fd), + .mr_stat_100base_x_hd (mr_stat_100base_x_hd), + .mr_stat_10mbps_fd (mr_stat_10mbps_fd), + .mr_stat_10mbps_hd (mr_stat_10mbps_hd), + .mr_stat_100base_t2_fd (mr_stat_100base_t2_fd), + .mr_stat_100base_t2_hd (mr_stat_100base_t2_hd), + + .mr_stat_extended_stat (mr_stat_extended_stat), + .mr_stat_unidir_able (mr_stat_unidir_able), + .mr_stat_preamb_supr (mr_stat_preamb_supr), + .mr_stat_an_complete (mr_stat_an_complete), + .mr_stat_remote_fault (mr_stat_remote_fault), + .mr_stat_an_able (mr_stat_an_able), + .mr_stat_link_stat (mr_stat_link_stat), + .mr_stat_jab_det (mr_stat_jab_det), + .mr_stat_extended_cap (mr_stat_extended_cap), + + .data_out (data_out_reg_1) +); + + +register_4_hb register_4 ( + .rst_n (rst_n), + .clk (hclk), + .gbe_mode (gbe_mode), + .sgmii_mode (sgmii_mode), + .cs_0 (reg4_cs_0), + .cs_1 (reg4_cs_1), + .write (~hwrite_n), + .ready (1'b1), + .data_in ({hdatain, hdatain}), + + .data_out (data_out_reg_4), + .mr_adv_ability (mr_adv_ability) +); + + +register_5_hb register_5 ( + .rst_n (rst_n), + .mr_lp_adv_ability (mr_lp_adv_ability), + .cs_0 (reg5_cs_0), + .cs_1 (reg5_cs_1), + .ready (1'b1), + + .data_out (data_out_reg_5) +); + + +register_6_hb register_6 ( + .rst_n (rst_n), + .clk (hclk), + .mr_page_rx (mr_page_rx), + .cs_0 (reg6_cs_0), + .cs_1 (reg6_cs_1), + .write (~hwrite_n), + .ready (1'b1), + + .data_out (data_out_reg_6) +); + + + +register_f_hb register_f ( + .rst_n (rst_n), + .cs_0 (regf_cs_0), + .cs_1 (regf_cs_1), + + .mr_stat_1000base_x_fd (mr_stat_1000base_x_fd), + .mr_stat_1000base_x_hd (mr_stat_1000base_x_hd), + .mr_stat_1000base_t_fd (mr_stat_1000base_t_fd), + .mr_stat_1000base_t_hd (mr_stat_1000base_t_hd), + + .data_out (data_out_reg_f) +); + + +// generate an ack +always @(posedge hclk or negedge rst_n) begin + if (rst_n == 1'b0) begin + hcs_n_delayed <= 1'b1; + hr <= 1'b1; + hready_n <= 1'b1; + end + else begin + hcs_n_delayed <= hcs_n; + + //assert on falling edge of delayed chip select + hr <= ~hcs_n & hcs_n_delayed; + hready_n <= ~hr; + end +end + + + +// Mux Register Read-Data Outputs +always @(posedge hclk or negedge rst_n) +begin + if (rst_n == 1'b0) begin + hdataout <= 8'd0; + end + else begin + case (haddr[5:0]) + + 6'd0: + begin + hdataout <= data_out_reg_0[7:0]; + end + + + 6'd1: + begin + hdataout <= data_out_reg_0[15:8]; + end + + ///////////////////////////////////////////// + + 6'd2: + begin + hdataout <= data_out_reg_1[7:0]; + end + + + 6'd3: + begin + hdataout <= data_out_reg_1[15:8]; + end + + ///////////////////////////////////////////// + + 6'd8: + begin + hdataout <= data_out_reg_4[7:0]; + end + + + 6'd9: + begin + hdataout <= data_out_reg_4[15:8]; + end + + ///////////////////////////////////////////// + + 6'd10: + begin + hdataout <= data_out_reg_5[7:0]; + end + + + 6'd11: + begin + hdataout <= data_out_reg_5[15:8]; + end + + ///////////////////////////////////////////// + + 6'd12: + begin + hdataout <= data_out_reg_6[7:0]; + end + + + 6'd13: + begin + hdataout <= data_out_reg_6[15:8]; + end + + ///////////////////////////////////////////// + + 6'd30: + begin + hdataout <= data_out_reg_f[7:0]; + end + + + 6'd31: + begin + hdataout <= data_out_reg_f[15:8]; + end + + ///////////////////////////////////////////// + + default: + begin + hdataout <= 8'd0; + end + endcase + end +end + +endmodule + +module register_addr_decoder ( + rst_n, + addr, + cs_in, + + reg0_cs_0, + reg0_cs_1, + + reg1_cs_0, + reg1_cs_1, + + reg4_cs_0, + reg4_cs_1, + + reg5_cs_0, + reg5_cs_1, + + reg6_cs_0, + reg6_cs_1, + + regf_cs_0, + regf_cs_1 +); + +input rst_n; +input cs_in; +input [5:0] addr; + +output reg0_cs_0; +output reg0_cs_1; + +output reg1_cs_0; +output reg1_cs_1; + +output reg4_cs_0; +output reg4_cs_1; + +output reg5_cs_0; +output reg5_cs_1; + +output reg6_cs_0; +output reg6_cs_1; + +output regf_cs_0; +output regf_cs_1; + +////////////////////////// + +wire reg0_cs_0; +wire reg0_cs_1; + +wire reg1_cs_0; +wire reg1_cs_1; + +wire reg4_cs_0; +wire reg4_cs_1; + +wire reg5_cs_0; +wire reg5_cs_1; + +wire reg6_cs_0; +wire reg6_cs_1; + +wire regf_cs_0; +wire regf_cs_1; + +////////////////////////// + +assign reg0_cs_0 = (addr == 6'h00) ? cs_in : 1'b0; +assign reg0_cs_1 = (addr == 6'h01) ? cs_in : 1'b0; + +assign reg1_cs_0 = (addr == 6'h02) ? cs_in : 1'b0; +assign reg1_cs_1 = (addr == 6'h03) ? cs_in : 1'b0; + +assign reg4_cs_0 = (addr == 6'h08) ? cs_in : 1'b0; +assign reg4_cs_1 = (addr == 6'h09) ? cs_in : 1'b0; + +assign reg5_cs_0 = (addr == 6'h0a) ? cs_in : 1'b0; +assign reg5_cs_1 = (addr == 6'h0b) ? cs_in : 1'b0; + +assign reg6_cs_0 = (addr == 6'h0c) ? cs_in : 1'b0; +assign reg6_cs_1 = (addr == 6'h0d) ? cs_in : 1'b0; + +assign regf_cs_0 = (addr == 6'h1e) ? cs_in : 1'b0; +assign regf_cs_1 = (addr == 6'h1f) ? cs_in : 1'b0; + + +endmodule + diff --git a/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/src/rtl/template/ecp5um/sgmii_channel_smi.v b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/src/rtl/template/ecp5um/sgmii_channel_smi.v new file mode 100644 index 0000000..54ee87a --- /dev/null +++ b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/src/rtl/template/ecp5um/sgmii_channel_smi.v @@ -0,0 +1,280 @@ +//************************************************************************** +// ************************************************************************* +// * LATTICE SEMICONDUCTOR CONFIDENTIAL * +// * PROPRIETARY NOTE * +// * * +// * This software contains information confidential and proprietary * +// * to Lattice Semiconductor Corporation. It shall not be reproduced * +// * in whole or in part, or transferred to other documents, or disclosed * +// * to third parties, or used for any purpose other than that for which * +// * it was obtained, without the prior written consent of Lattice * +// * Semiconductor Corporation. All rights reserved. * +// * * +// ************************************************************************* +//************************************************************************** + +`timescale 1ns/100ps + +module sgmii_channel_smi ( + + // Control Interface + rst_n, + gbe_mode, + sgmii_mode, + signal_detect, + debug_link_timer_short, + rx_compensation_err, + + // G/MII Interface + in_clk_gmii, + in_clk_mii, + data_in_mii, + en_in_mii, + err_in_mii, + + out_clk_gmii, + out_clk_mii, + data_out_mii, + dv_out_mii, + err_out_mii, + col_out_mii, + crs_out_mii, + + // 8-bit Interface + data_out_8bi, + kcntl_out_8bi, + disparity_cntl_out_8bi, + + serdes_recovered_clk, + data_in_8bi, + kcntl_in_8bi, + even_in_8bi, + disp_err_in_8bi, + cv_err_in_8bi, + err_decode_mode_8bi, + + // MDIO Port + mdc, + mdio, + port_id + ); + + + +// I/O Declarations +input rst_n ; // System Reset, Active Low +input signal_detect ; +input gbe_mode ; // GBE Mode (0=SGMII 1=GBE) +input sgmii_mode ; // SGMII PCS Mode (0=MAC 1=PHY) +input debug_link_timer_short ; // (0=NORMAL 1=SHORT) +output rx_compensation_err; // Active high pulse indicating RX_CTC_FIFO either underflowed or overflowed + +input in_clk_mii ; // G/MII Transmit clock 2.5Mhz/25Mhz/125Mhz +input [7:0] data_in_mii ; // G/MII Tx data +input en_in_mii ; // G/MII data valid +input err_in_mii ; // G/MII Tx error + +input out_clk_mii ; // G/MII Receice clock 2.5Mhz/25Mhz/125MHz +output [7:0] data_out_mii ; // G/MII Rx data +output dv_out_mii ; // G/MII Rx data valid +output err_out_mii ; // G/MII Rx error +output col_out_mii ; // G/MII collision detect +output crs_out_mii ; // G/MII carrier sense detect + +output [7:0] data_out_8bi ; // 8BI Tx Data +output kcntl_out_8bi ; // 8BI Tx Kcntl +output disparity_cntl_out_8bi ; // 8BI Tx Kcntl + +input serdes_recovered_clk ; +input [7:0] data_in_8bi ; // 8BI Rx Data +input kcntl_in_8bi ; // 8BI Rx Kcntl +input even_in_8bi ; // 8BI Rx Even +input disp_err_in_8bi ; // 8BI Rx Disparity Error +input cv_err_in_8bi ; // 8BI Rx Coding Violation Error +input err_decode_mode_8bi ; // 8BI Error Decode Mode (0=NORMAL, 1=DECODE_MODE) + +input in_clk_gmii ; // GMII Transmit clock 125Mhz +input out_clk_gmii ; // GMII Receive clock 125Mhz + +input mdc; +inout mdio; +input [4:0] port_id; + + +wire mdin; +wire mdout; +wire mdout_en; + +// Internal Signals + +wire mr_an_complete; +wire mr_page_rx; +wire [15:0] mr_lp_adv_ability; + +wire mr_main_reset; +wire mr_an_enable; +wire mr_restart_an; +wire [15:0] mr_adv_ability; +wire mr_loopback_enable; +wire [1:0] mr_speed_selection; +wire mr_power_down; +wire mr_isolate; +wire mr_duplex_mode; +wire mr_col_test; +wire mr_unidir_enable; +wire an_link_ok; + +wire [1:0] operational_rate; + + + + + + + + +// SGMII PCS +USER_NAME USER_NAME_U ( + // Clock and Reset + .rst_n (rst_n ), + .signal_detect (signal_detect), + .gbe_mode (gbe_mode), + .sgmii_mode (sgmii_mode), + .debug_link_timer_short (debug_link_timer_short), + .force_isolate (mr_isolate), + .force_loopback (mr_loopback_enable), + .force_unidir (mr_unidir_enable), + .operational_rate (operational_rate), + .rx_compensation_err (rx_compensation_err), + .ctc_drop_flag (), + .ctc_add_flag (), + .an_link_ok (an_link_ok), + .tx_clk_125 (in_clk_gmii), + .serdes_recovered_clk (serdes_recovered_clk), + .rx_clk_125 (out_clk_gmii), + + // Control + + + // (G)MII TX Port + .tx_clk_mii (in_clk_mii), + .tx_d (data_in_mii), + .tx_en (en_in_mii), + .tx_er (err_in_mii), + + // (G)MII RX Port + .rx_clk_mii (out_clk_mii), + .rx_d (data_out_mii), + .rx_dv (dv_out_mii), + .rx_er (err_out_mii), + .col (col_out_mii), + .crs (crs_out_mii), + + // 8BI TX Port + .tx_data (data_out_8bi), + .tx_kcntl (kcntl_out_8bi), + .tx_disparity_cntl (disparity_cntl_out_8bi), + .xmit_autoneg (), + + // 8BI RX Port + .rx_data (data_in_8bi), + .rx_kcntl (kcntl_in_8bi), + .rx_even (even_in_8bi), + .rx_disp_err (disp_err_in_8bi), + .rx_cv_err (cv_err_in_8bi), + .rx_err_decode_mode (err_decode_mode_8bi), + + // Management Interface I/O + .mr_adv_ability (mr_adv_ability), + .mr_an_enable (mr_an_enable), + .mr_main_reset (mr_main_reset), + .mr_restart_an (mr_restart_an), + + .mr_an_complete (mr_an_complete), + .mr_lp_adv_ability (mr_lp_adv_ability), + .mr_page_rx (mr_page_rx) + ); + + + +// SMI Register Interface for SGMII IP Core +register_interface_smi ri ( + + // Control Signals + .rst_n (rst_n), + .gbe_mode (gbe_mode), + .sgmii_mode (sgmii_mode), + + // MDIO Port + .mdc (mdc), + .mdin (mdin), + .mdout (mdout), + .mdout_en (mdout_en), + .port_id (port_id), + + // Register Outputs + .mr_main_reset (mr_main_reset), + .mr_loopback_enable (mr_loopback_enable), + .mr_speed_selection (mr_speed_selection), + .mr_an_enable (mr_an_enable), + .mr_power_down (mr_power_down), + .mr_isolate (mr_isolate), + .mr_restart_an (mr_restart_an), + .mr_duplex_mode (mr_duplex_mode), + .mr_col_test (mr_col_test), + .mr_unidir_enable (mr_unidir_enable), + + .mr_adv_ability (mr_adv_ability), + + // Register Inputs + .mr_stat_1000base_x_fd (1'b1), // SUPPORTED + .mr_stat_1000base_x_hd (1'b0), + .mr_stat_1000base_t_fd (1'b0), + .mr_stat_1000base_t_hd (1'b0), + + .mr_stat_100base_t4 (1'b0), + .mr_stat_100base_x_fd (1'b0), + .mr_stat_100base_x_hd (1'b0), + .mr_stat_10mbps_fd (1'b0), + .mr_stat_10mbps_hd (1'b0), + .mr_stat_100base_t2_fd (1'b0), + .mr_stat_100base_t2_hd (1'b0), + + .mr_stat_extended_stat (1'b1), // SUPPORTED + .mr_stat_unidir_able (mr_unidir_enable), + .mr_stat_preamb_supr (1'b0), + .mr_stat_an_complete (mr_an_complete), + .mr_stat_remote_fault (1'b0), + .mr_stat_an_able (1'b1), // SUPPORTED + .mr_stat_link_stat (an_link_ok), + .mr_stat_jab_det (1'b0), + .mr_stat_extended_cap (1'b0), + + .mr_page_rx (mr_page_rx), + .mr_lp_adv_ability (mr_lp_adv_ability) + ); + + + +// (G)MII Rate Resolution for SGMII IP Core +rate_resolution rate_resolution ( + .gbe_mode (gbe_mode), + .sgmii_mode (sgmii_mode), + .an_enable (mr_an_enable), + .advertised_rate (mr_adv_ability[11:10]), + .link_partner_rate (mr_lp_adv_ability[11:10]), + .non_an_rate (mr_speed_selection), // speed selected when auto-negotiation disabled + + .operational_rate (operational_rate) +); + + + + + +// Bidirectional Assignments +assign mdio = mdout_en ? mdout : 1'bz; // MDIO Output +assign mdin = mdio; // MDIO Input + +endmodule + diff --git a/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/src/rtl/top/ecp5um/top_hb.v b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/src/rtl/top/ecp5um/top_hb.v new file mode 100644 index 0000000..cba77f6 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/src/rtl/top/ecp5um/top_hb.v @@ -0,0 +1,404 @@ +//************************************************************************** +// ************************************************************************* +// * LATTICE SEMICONDUCTOR CONFIDENTIAL * +// * PROPRIETARY NOTE * +// * * +// * This software contains information confidential and proprietary * +// * to Lattice Semiconductor Corporation. It shall not be reproduced * +// * in whole or in part, or transferred to other documents, or disclosed * +// * to third parties, or used for any purpose other than that for which * +// * it was obtained, without the prior written consent of Lattice * +// * Semiconductor Corporation. All rights reserved. * +// * * +// ************************************************************************* +//************************************************************************** + +`timescale 1ns/100ps + +module top_hb ( + + // G/MII Interface + data_in_mii, + en_in_mii, + err_in_mii, + + data_out_mii, + dv_out_mii, + err_out_mii, + col_out_mii, + crs_out_mii, + + // GB Timing References + in_clk_125, + in_ce_sink, + in_ce_source, + out_clk_125, + out_ce_sink, + out_ce_source, + + // SERIAL GMII Interface + refclkp, + refclkn, + hdinp0, + hdinn0, + hdoutp0, + hdoutn0, + + // Control Interface + gbe_mode, + sgmii_mode, + rst_n, + + // Host Bus + hclk, + hcs_n, + hwrite_n, + haddr, + hdatain, + + hdataout, + hready_n, + + //Debug Port + debug_link_timer_short, + mr_an_complete + ); + + + +// I/O Declarations +input rst_n; // System Reset, Active Low +input hclk; +input gbe_mode ; // GBE Mode (0=SGMII 1=GBE) +input sgmii_mode ; // SGMII PCS Mode (0=MAC 1=PHY) + +input in_clk_125 ; // GMII Input Data Path clock 125Mhz +input in_ce_sink ; +output in_ce_source ; +input [7:0] data_in_mii; // G/MII Incoming Data +input en_in_mii; // G/MII Incoming Data Valid +input err_in_mii; // G/MII Incoming Error + +input out_clk_125 ; // GMII Output Data Path clock 125Mhz +input out_ce_sink ; +output out_ce_source ; +output [7:0] data_out_mii; // G/MII Outgoing Data +output dv_out_mii; // G/MII Outgoing Data Valid +output err_out_mii; // G/MII Outgoing Error +output col_out_mii; // G/MII Collision Detect +output crs_out_mii; // G/MII Carrier Sense Detect + +input refclkp; +input refclkn; +// exemplar attribute refclkp NOPAD true +// exemplar attribute refclkn NOPAD true + +input hdinp0; // Incoming SGMII (on SERDES) +input hdinn0; // Incoming SGMII (on SERDES) +// exemplar attribute hdinp0 NOPAD true +// exemplar attribute hdinn0 NOPAD true + +output hdoutp0; // Outgoing SGMII (on SERDES) +output hdoutn0; // Outgoing SGMII (on SERDES) +// exemplar attribute hdoutp0 NOPAD true +// exemplar attribute hdoutn0 NOPAD true + +input hcs_n; +input hwrite_n; +input [5:0] haddr; +input [7:0] hdatain; + +output [7:0] hdataout; +output hready_n; + +input debug_link_timer_short; +output mr_an_complete; + +// Primary G/MII Outputs -- Latched Before Leaving FPGA +reg [7:0] data_out_mii; +reg dv_out_mii; +reg err_out_mii; +reg col_out_mii; +reg crs_out_mii; + +// G/MII Signals from input latches to SGMII channel +reg [7:0] data_buf2chan; +reg en_buf2chan; +reg err_buf2chan; + +// G/MII Signals from SGMII channel to output latches +wire [7:0] data_chan2buf; +wire dv_chan2buf; +wire err_chan2buf; +wire col_chan2buf; +wire crs_chan2buf; + +// 8-bit Interface Signals from SGMII channel to QuadPCS/SERDES +//wire [7:0] data_chan2quad; +//wire kcntl_chan2quad; +//wire disparity_cntl_chan2quad; +//wire xmit_autoneg; + +// 8-bit Interface Signals from QuadPCS/SERDES to SGMII channel +//wire [7:0] data_quad2chan; +//wire kcntl_quad2chan; +//wire disp_err_quad2chan; +//wire cv_err_quad2chan; +//wire link_status; +//wire serdes_recovered_clk; +wire clk_125; + +// Misc Signals +wire mdin; +wire mdout; +wire mdout_en; + +wire mr_an_enable; +wire mr_restart_an; +wire [15:0] mr_adv_ability; + +wire mr_an_complete; +wire mr_page_rx; +wire [15:0] mr_lp_adv_ability; +wire mr_main_reset; +wire mr_loopback_enable; +wire [1:0] mr_speed_selection; +wire mr_power_down; +wire mr_isolate; +wire mr_duplex_mode; +wire mr_col_test; +wire mr_unidir_enable; +wire an_link_ok; + +wire debug_link_timer_short; +wire [1:0] operational_rate; + +wire tx_pll_lol; +wire rx_cdr_lol; +wire quad_rst; +wire tx_pcs_rst; +wire rx_pcs_rst; +wire rx_serdes_rst; + +wire nc_1; +wire nc_2; +wire nc_3; + +wire sli_rst; +wire serdes_rst_dual_c; +wire tx_serdes_rst_c; +wire serdes_pdb; +wire tx_pwrup_c; + +assign sli_rst = serdes_rst_dual_c || tx_serdes_rst_c || (!serdes_pdb) || (!tx_pwrup_c); + + +// Active High Reset +wire rst; +assign rst = ~rst_n; + +// Instantiate Global Reset Controller +GSR GSR_INST (.GSR(rst_n)); +PUR PUR_INST (.PUR(1'b1)); + +// Buffer Incoming MII Data at Primary I/O +always @(posedge in_clk_125 or negedge rst_n) +begin + if (rst_n == 1'b0) begin + data_buf2chan <= 8'd0; + en_buf2chan <= 0; + err_buf2chan <= 0; + end + else begin + data_buf2chan <= data_in_mii; + en_buf2chan <= en_in_mii; + err_buf2chan <= err_in_mii; + end +end + +// Buffer Outgoing MII Data at Primary I/O +always @(posedge out_clk_125 or negedge rst_n) +begin + if (rst_n == 1'b0) begin + data_out_mii <= 8'd0; + dv_out_mii <= 0; + err_out_mii <= 0; + col_out_mii <= 0; + crs_out_mii <= 0; + end + else begin + data_out_mii <= data_chan2buf; + dv_out_mii <= dv_chan2buf; + err_out_mii <= err_chan2buf; + col_out_mii <= col_chan2buf; + crs_out_mii <= crs_chan2buf; + end +end + + +// Host Bus Register Interface for SGMII IP Core +register_interface_hb ri ( + + // Control Signals + .rst_n (rst_n), + .hclk (hclk), + .gbe_mode (gbe_mode), + .sgmii_mode (sgmii_mode), + + // Host Bus + .hcs_n (hcs_n), + .hwrite_n (hwrite_n), + .haddr (haddr), + .hdatain (hdatain), + + .hdataout (hdataout), + .hready_n (hready_n), + + // Register Outputs + .mr_main_reset (mr_main_reset), + .mr_loopback_enable (mr_loopback_enable), + .mr_speed_selection (mr_speed_selection), + .mr_an_enable (mr_an_enable), + .mr_power_down (mr_power_down), + .mr_isolate (mr_isolate), + .mr_restart_an (mr_restart_an), + .mr_duplex_mode (mr_duplex_mode), + .mr_col_test (mr_col_test), + .mr_unidir_enable (mr_unidir_enable), + + .mr_adv_ability (mr_adv_ability), + + // Register Inputs + .mr_stat_1000base_x_fd (1'b1), // SUPPORTED + .mr_stat_1000base_x_hd (1'b0), + .mr_stat_1000base_t_fd (1'b0), + .mr_stat_1000base_t_hd (1'b0), + + .mr_stat_100base_t4 (1'b0), + .mr_stat_100base_x_fd (1'b0), + .mr_stat_100base_x_hd (1'b0), + .mr_stat_10mbps_fd (1'b0), + .mr_stat_10mbps_hd (1'b0), + .mr_stat_100base_t2_fd (1'b0), + .mr_stat_100base_t2_hd (1'b0), + + .mr_stat_extended_stat (1'b1), // SUPPORTED + .mr_stat_unidir_able (mr_unidir_enable), + .mr_stat_preamb_supr (1'b0), + .mr_stat_an_complete (mr_an_complete), + .mr_stat_remote_fault (1'b0), + .mr_stat_an_able (1'b1), // SUPPORTED + .mr_stat_link_stat (an_link_ok), + .mr_stat_jab_det (1'b0), + .mr_stat_extended_cap (1'b0), + + .mr_page_rx (mr_page_rx), + .mr_lp_adv_ability (mr_lp_adv_ability) + ); + + + +// (G)MII Rate Resolution for SGMII IP Core +rate_resolution rate_resolution ( + .gbe_mode (gbe_mode), + .sgmii_mode (sgmii_mode), + .an_enable (mr_an_enable), + .advertised_rate (mr_adv_ability[11:10]), + .link_partner_rate (mr_lp_adv_ability[11:10]), + .non_an_rate (mr_speed_selection), // speed selected when auto-negotiation disabled + + .operational_rate (operational_rate) +); + +ILVDS ILVDS_X ( + .A (refclkp), + .AN(refclkn), + .Z (clk_125)); + +sgmii_channel_smi u_sgmii( + +//-----------USERNAME CORE-------------PART PORTS + // Control Interface + .rst_n (rst_n), + .gbe_mode (gbe_mode), + .sgmii_mode (sgmii_mode), + .operational_rate (operational_rate), + .debug_link_timer_short (debug_link_timer_short), + .force_isolate (mr_isolate), + .force_loopback (mr_loopback_enable), + .force_unidir (mr_unidir_enable), + .tx_clock_enable_sink (in_ce_sink), + .tx_clock_enable_source (in_ce_source), + .rx_clock_enable_sink (out_ce_sink), + .rx_clock_enable_source (out_ce_source), + + + .an_link_ok (an_link_ok), + + // G/MII Interface + .tx_d(data_buf2chan), + .tx_en (en_buf2chan), + .tx_er (err_buf2chan), + .tx_clk_125(in_clk_125), + .rx_clk_125(out_clk_125), + .rx_d (data_chan2buf), + .rx_dv (dv_chan2buf), + .rx_er (err_chan2buf), + .col (col_chan2buf), + .crs (crs_chan2buf), + + // Managment Control Outputs + .mr_an_complete (mr_an_complete), + .mr_lp_adv_ability (mr_lp_adv_ability), + .mr_page_rx (mr_page_rx), + + // Managment Control Inputs + .mr_adv_ability (mr_adv_ability), + .mr_an_enable (mr_an_enable), + .mr_main_reset (mr_main_reset), + .mr_restart_an (mr_restart_an), + +//-----------USERNAME PCS-------------PART PORTS + .hdinp(hdinp0), + .hdinn(hdinn0), + // outputs + .hdoutp(hdoutp0), + .hdoutn(hdoutn0), + + .sli_rst (sli_rst), + .serdes_rst_dual_c (serdes_rst_dual_c), + .tx_serdes_rst_c (tx_serdes_rst_c), + .serdes_pdb (serdes_pdb), + .tx_pwrup_c (tx_pwrup_c), + + + .pll_refclki (clk_125), + .rxrefclk (clk_125), + + //SCI interface + .cyawstn (1'b0), + .sci_en (1'b0), + .sci_en_dual (1'b0), + .sci_sel_dual (1'b0), + .sci_sel (1'b0), + .sci_wrdata (8'd0), + .sci_addr (6'd0), + .sci_rddata (), + .sci_rd (1'b0), + .sci_wrn (1'b1), + .sci_int (), + + .rx_cdr_lol_s (rx_cdr_lol), + + .tx_pcs_rst_c (1'b0), + .rx_pcs_rst_c (1'b0), + .rx_serdes_rst_c (1'b0), + + .rst_dual_c (~rst_n), + .pll_lol (tx_pll_lol), + + //New added + .mr_power_down(mr_power_down) +); +endmodule + diff --git a/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/src/rtl/top/ecp5um/top_pcs_core_only.v b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/src/rtl/top/ecp5um/top_pcs_core_only.v new file mode 100644 index 0000000..df7a705 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/sgmii_channel_smi/src/rtl/top/ecp5um/top_pcs_core_only.v @@ -0,0 +1,203 @@ +//************************************************************************** +// ************************************************************************* +// * LATTICE SEMICONDUCTOR CONFIDENTIAL * +// * PROPRIETARY NOTE * +// * * +// * This software contains information confidential and proprietary * +// * to Lattice Semiconductor Corporation. It shall not be reproduced * +// * in whole or in part, or transferred to other documents, or disclosed * +// * to third parties, or used for any purpose other than that for which * +// * it was obtained, without the prior written consent of Lattice * +// * Semiconductor Corporation. All rights reserved. * +// * * +// ************************************************************************* +//************************************************************************** + +module top_pcs_core_only ( + + // Control Interface + rst_n, + signal_detect, + gbe_mode, + sgmii_mode, + force_isolate, + force_loopback, + force_unidir, + operational_rate, + + rx_compensation_err, + ctc_drop_flag, + ctc_add_flag, + an_link_ok, + + // G/MII Interface + tx_clk_125, + tx_clock_enable_source, + tx_clock_enable_sink, + tx_d, + tx_en, + tx_er, + + rx_clk_125, + rx_clock_enable_source, + rx_clock_enable_sink, + rx_d, + rx_dv, + rx_er, + col, + crs, + + // 8-bit Interface + tx_data, + tx_kcntl, + tx_disparity_cntl, + xmit_autoneg, + + serdes_recovered_clk, + rx_data, + rx_kcntl, + rx_disp_err , + rx_cv_err , + + // Managment Control Outputs + mr_an_complete, + mr_page_rx, + mr_lp_adv_ability, + + // Managment Control Inputs + mr_main_reset, + mr_an_enable, + mr_restart_an, + mr_adv_ability + ); + + + +// Control Interface +input rst_n ; +input signal_detect ; +input gbe_mode ; +input sgmii_mode ; +input force_isolate ; +input force_loopback ; +input force_unidir ; +input [1:0] operational_rate ; + +output rx_compensation_err ; +output ctc_drop_flag ; +output ctc_add_flag ; +output an_link_ok ; + +// G/MII Interface +input tx_clk_125 ; +output tx_clock_enable_source ; +input tx_clock_enable_sink ; +input [7:0] tx_d ; +input tx_en ; +input tx_er ; + +input rx_clk_125 ; +output rx_clock_enable_source ; +input rx_clock_enable_sink ; +output [7:0] rx_d ; +output rx_dv ; +output rx_er ; +output col ; +output crs ; + +// 8-bit Interface +output [7:0] tx_data ; +output tx_kcntl; +output tx_disparity_cntl; +output xmit_autoneg; + +input serdes_recovered_clk ; +input [7:0] rx_data ; +input rx_kcntl; +input rx_disp_err ; // Displarity error on "rx_data". +input rx_cv_err ; // Code error on "rx_data". + +// Managment Control Outputs +output mr_an_complete; +output mr_page_rx; +output [15:0] mr_lp_adv_ability; + +// Managment Control Inputs +input mr_main_reset; +input mr_an_enable; +input mr_restart_an; +input [15:0] mr_adv_ability; + + + +// Instantiate Global Reset Controller +GSR GSR_INST (.GSR(rst_n)); +PUR PUR_INST (.PUR(1'b1)); + + +// SGMII PCS +sgmii_channel_smi_core sgmii_channel_smi_core ( + // Clock and Reset + .rst_n ( rst_n ) , + .signal_detect ( signal_detect ) , + .gbe_mode ( gbe_mode ) , + .sgmii_mode ( sgmii_mode ) , + .force_isolate ( force_isolate ) , + .force_loopback ( force_loopback ) , + .force_unidir ( force_unidir ) , + .operational_rate ( operational_rate ) , + .debug_link_timer_short ( 1'b0 ) , + + .rx_compensation_err ( rx_compensation_err ) , + .ctc_drop_flag ( ctc_drop_flag ) , + .ctc_add_flag ( ctc_add_flag ) , + .an_link_ok ( an_link_ok ) , + + .tx_clk_125 ( tx_clk_125 ) , + .tx_clock_enable_source ( tx_clock_enable_source ) , + .tx_clock_enable_sink ( tx_clock_enable_sink ) , + .serdes_recovered_clk ( serdes_recovered_clk ) , + .rx_clk_125 ( rx_clk_125 ) , + .rx_clock_enable_source ( rx_clock_enable_source ) , + .rx_clock_enable_sink ( rx_clock_enable_sink ) , + + // GMII TX Inputs + .tx_d ( tx_d) , + .tx_en ( tx_en) , + .tx_er ( tx_er) , + + // GMII RX Outputs + // To GMII/MAC interface + .rx_d ( rx_d ) , + .rx_dv ( rx_dv ) , + .rx_er ( rx_er ) , + .col ( col ) , + .crs ( crs ) , + + // 8BI TX Outputs + .tx_data ( tx_data) , + .tx_kcntl ( tx_kcntl) , + .tx_disparity_cntl ( tx_disparity_cntl) , + .xmit_autoneg ( xmit_autoneg) , + + // 8BI RX Inputs + .rx_data ( rx_data ) , + .rx_kcntl ( rx_kcntl ) , + .rx_even ( 1'b0 ) , + .rx_disp_err ( rx_disp_err ) , + .rx_cv_err ( rx_cv_err ) , + .rx_err_decode_mode ( 1'b0 ) , + + // Management Interface I/O + .mr_adv_ability (mr_adv_ability), + .mr_an_enable (mr_an_enable), + .mr_main_reset (mr_main_reset), + .mr_restart_an (mr_restart_an), + + .mr_an_complete (mr_an_complete), + .mr_lp_adv_ability (mr_lp_adv_ability), + .mr_page_rx (mr_page_rx) + ); + + +endmodule diff --git a/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/testbench/mii_monitor.v b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/testbench/mii_monitor.v new file mode 100644 index 0000000..bc0e2a7 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/testbench/mii_monitor.v @@ -0,0 +1,118 @@ +//************************************************************************** +// ************************************************************************* +// * LATTICE SEMICONDUCTOR CONFIDENTIAL * +// * PROPRIETARY NOTE * +// * * +// * This software contains information confidential and proprietary * +// * to Lattice Semiconductor Corporation. It shall not be reproduced * +// * in whole or in part, or transferred to other documents, or disclosed * +// * to third parties, or used for any purpose other than that for which * +// * it was obtained, without the prior written consent of Lattice * +// * Semiconductor Corporation. All rights reserved. * +// * * +// ************************************************************************* +//************************************************************************** + +//`timescale 1ns/100ps +`timescale 1ps/1ps + +module mii_monitor ( + rst_n, + clk, + GBspeed, + + data_in_ref, + dv_in_ref, + err_in_ref, + + data_in_dut, + dv_in_dut, + err_in_dut +); + +input rst_n; +input clk; +input GBspeed; + +input [7:0] data_in_ref; +input dv_in_ref; +input err_in_ref; + +input [7:0] data_in_dut; +input dv_in_dut; +input err_in_dut; + + + +wire [16:0] len_ref_pp; +wire len_write_ref_pp; + +wire [7:0] data_ref_pp; +wire err_ref_pp; +wire data_write_ref_pp; + +wire [16:0] len_dut_pp; +wire len_write_dut_pp; + +wire [7:0] data_dut_pp; +wire err_dut_pp; +wire data_write_dut_pp; + +wire dv_in_dut; +wire [7:0] data_in_dut; +wire err_in_dut; + + +port_parser_mii pp_ref ( + .rst_n (rst_n), + .clk (clk), + .GBspeed (GBspeed), + .enable_in (dv_in_ref), + .data_in (data_in_ref), + .err_in (err_in_ref), + + .err_out (err_ref_pp), + .data_out (data_ref_pp), + .length_out (len_ref_pp), + .dat_wr (data_write_ref_pp), + .len_wr (len_write_ref_pp) +); + +port_parser_mii pp_dut ( + .rst_n (rst_n), + .clk (clk), + .GBspeed (GBspeed), + .enable_in (dv_in_dut), + .data_in (data_in_dut), + .err_in (err_in_dut), + + .err_out (err_dut_pp), + .data_out (data_dut_pp), + .length_out (len_dut_pp), + .dat_wr (data_write_dut_pp), + .len_wr (len_write_dut_pp) +); + + + + +port_monitor port_monitor ( + .rst_n (rst_n), + .clk (clk), + + .len_in_ref (len_ref_pp), + .len_write_en_ref (len_write_ref_pp), + + .data_in_ref (data_ref_pp), + .data_write_en_ref (data_write_ref_pp), + .err_in_ref (err_ref_pp), + + .len_in_dut (len_dut_pp), + .len_write_en_dut (len_write_dut_pp), + + .data_in_dut (data_dut_pp), + .data_write_en_dut (data_write_dut_pp), + .err_in_dut (err_dut_pp) +); + +endmodule diff --git a/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/testbench/port_monitor.v b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/testbench/port_monitor.v new file mode 100644 index 0000000..53e1391 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/testbench/port_monitor.v @@ -0,0 +1,827 @@ +//************************************************************************** +// ************************************************************************* +// * LATTICE SEMICONDUCTOR CONFIDENTIAL * +// * PROPRIETARY NOTE * +// * * +// * This software contains information confidential and proprietary * +// * to Lattice Semiconductor Corporation. It shall not be reproduced * +// * in whole or in part, or transferred to other documents, or disclosed * +// * to third parties, or used for any purpose other than that for which * +// * it was obtained, without the prior written consent of Lattice * +// * Semiconductor Corporation. All rights reserved. * +// * * +// ************************************************************************* +//************************************************************************** + +//`timescale 1ns/100ps +`timescale 1ps/1ps + +module port_monitor ( + rst_n, + clk, + + len_in_ref, + len_write_en_ref, + + data_in_ref, + data_write_en_ref, + err_in_ref, + + len_in_dut, + len_write_en_dut, + + data_in_dut, + data_write_en_dut, + err_in_dut +); + +input rst_n; +input clk; + +input [16:0] len_in_ref; +input len_write_en_ref; + +input [7:0] data_in_ref; +input data_write_en_ref; +input err_in_ref; + +input [16:0] len_in_dut; +input len_write_en_dut; + +input [7:0] data_in_dut; +input data_write_en_dut; +input err_in_dut; + +///////////////////////// + +parameter + READY = 4'd0, + CHECK_DUT_LEN = 4'd1, + PREAMBLE_REF = 4'd2, + PREAMBLE_DUT = 4'd3, + DEST_ADD = 4'd4, + SRC_ADD = 4'd5, + LEN = 4'd6, + SEQ_NUM = 4'd7, + PAYLD = 4'd8, + CHECK_FCS = 4'd9, + CHECK_CAR_EXT = 4'd10, + SUMMARY = 4'd11; +reg [3:0] fsm; + +integer i; +integer preamb_count_ref; +integer preamb_count_dut; + +reg [15:0] payld_count_ref; +reg [15:0] payld_count_dut; + +reg [47:0] dest_add_ref; +reg [47:0] dest_add_dut; + +reg [47:0] src_add_ref; +reg [47:0] src_add_dut; + +reg [15:0] fr_len_ref; +reg [15:0] fr_len_dut; + +reg [7:0] seq_num_ref; +reg [7:0] seq_num_dut; + +reg [31:0] fcs_dut; + +reg [31:0] FCS_d0_ref; +reg [31:0] FCS_d1_ref; +reg [31:0] FCS_d2_ref; +reg [31:0] FCS_d3_ref; +reg [31:0] FCS_d4_ref; + +reg [31:0] FCS_d0_dut; +reg [31:0] FCS_d1_dut; +reg [31:0] FCS_d2_dut; +reg [31:0] FCS_d3_dut; +reg [31:0] FCS_d4_dut; + +reg [7:0] data_in_ref_d1; +reg [7:0] data_in_ref_d2; +reg [7:0] data_in_ref_d3; +reg [7:0] data_in_ref_d4; + +reg [16:0] len_ref_fifo [0:2560]; +reg [7:0] data_ref_fifo [0:256000]; +reg err_ref_fifo [0:256000]; + +reg [16:0] len_dut_fifo [0:2560]; +reg [7:0] data_dut_fifo [0:256000]; +reg err_dut_fifo [0:256000]; + +integer hr, tr; // head for ref fifo, tail for ref fifo +integer hd, td; // head for dut fifo, tail for dut fifo + +integer l_hr, l_tr; // head for ref length fifo, tail for ref length fifo +integer l_hd, l_td; // head for dut length fifo, tail for dut length fifo + +integer words_available_ref; +integer words_available_dut; +integer len_words_available_ref; +integer len_words_available_dut; + +reg data_read_en_ref; +reg data_read_en_dut; +reg len_read_en_ref; +reg len_read_en_dut; +reg [16:0] total_len_ref; +reg [16:0] total_len_dut; + +reg [16:0] total_count_ref; +reg [16:0] total_count_dut; + +wire [16:0] len_ref_fifo_out; +wire [7:0] data_ref_fifo_out; +wire err_ref_fifo_out; + +wire [16:0] len_dut_fifo_out; +wire [7:0] data_dut_fifo_out; +wire err_dut_fifo_out; +wire read_inhibit_ref; +wire read_inhibit_dut; +reg data_mismatch; +reg capt_first_mismatch; +reg [7:0] data_capt_ref; +reg [7:0] data_capt_dut; +reg [15:0] mismatch_byte_num; + +reg fcs_fail_ref; +reg fcs_fail_dut; + +reg dest_add_fail; +reg src_add_fail; +reg fr_len_fail; +reg seq_num_fail; +reg car_ext_dut; + + + +// capture incoming data +always @(posedge clk or negedge rst_n) +begin + if (rst_n == 1'b0) begin + hr <= 0; // head for ref fifo + tr <= 0; // tail for ref fifo + + hd <= 0; // head for dut fifo + td <= 0; // tail for dut fifo + + l_hr <= 0; // head for ref length fifo + l_tr <= 0; // tail for ref length fifo + + l_hd <= 0; // head for dut length fifo + l_td <= 0; // tail for dut length fifo + + words_available_ref <= 0; + words_available_dut <= 0; + len_words_available_ref <= 0; + len_words_available_dut <= 0; + end + + else begin + + // defaults + words_available_ref <= hr - tr; + words_available_dut <= hd - td; + len_words_available_ref <= l_hr - l_tr; + len_words_available_dut <= l_hd - l_td; + + //////////////////////// + // FIFO WRITES + //////////////////////// + + // capture reference data + if (data_write_en_ref) begin + data_ref_fifo[hr] <= data_in_ref; + err_ref_fifo[hr] <= err_in_ref; + if (hr == 256000) begin + hr <= 0; + end + else begin + hr <= hr + 1; + end + end + + // capture dut data + if (data_write_en_dut) begin + data_dut_fifo[hd] <= data_in_dut; + err_dut_fifo[hd] <= err_in_dut; + if (hd == 256000) begin + hd <= 0; + end + else begin + hd <= hd + 1; + end + end + + // capture reference lengths + if (len_write_en_ref) begin + len_ref_fifo[l_hr] <= len_in_ref; + if (l_hr == 2560) begin + l_hr <= 0; + end + else begin + l_hr <= l_hr + 1; + end + end + + // capture dut lengths + if (len_write_en_dut) begin + len_dut_fifo[l_hd] <= len_in_dut; + if (l_hd == 2560) begin + l_hd <= 0; + end + else begin + l_hd <= l_hd + 1; + end + end + + ///////////////////////////// + // FIFO READ ADDRESS CONTROL + ///////////////////////////// + if (data_read_en_ref) begin + if (tr == 256000) begin + tr <= 0; + end + else begin + tr <= tr + 1; + end + end + if (data_read_en_dut) begin + if (td == 256000) begin + td <= 0; + end + else begin + td <= td + 1; + end + end + if (len_read_en_ref) begin + if (l_tr == 2560) begin + l_tr <= 0; + end + else begin + l_tr <= l_tr + 1; + end + end + if (len_read_en_dut) begin + if (l_td == 2560) begin + l_td <= 0; + end + else begin + l_td <= l_td + 1; + end + end + + + + + end +end + + +always @(posedge clk or negedge rst_n) +begin + if (rst_n == 1'b0) begin + fsm <= READY; + i <= 0; + preamb_count_ref <= 0; + preamb_count_dut <= 0; + + payld_count_ref <= 0; + payld_count_dut <= 0; + + dest_add_ref <= 0; + dest_add_dut <= 0; + + src_add_ref <= 0; + src_add_dut <= 0; + + fr_len_ref <= 0; + fr_len_dut <= 0; + + seq_num_ref <= 0; + seq_num_dut <= 0; + + fcs_dut <= 0; + + FCS_d0_ref <= 0; + FCS_d1_ref <= 0; + FCS_d2_ref <= 0; + FCS_d3_ref <= 0; + FCS_d4_ref <= 0; + + FCS_d0_dut <= 0; + FCS_d1_dut <= 0; + FCS_d2_dut <= 0; + FCS_d3_dut <= 0; + FCS_d4_dut <= 0; + + data_in_ref_d1 <= 0; + data_in_ref_d2 <= 0; + data_in_ref_d3 <= 0; + data_in_ref_d4 <= 0; + + data_read_en_ref <= 0; + data_read_en_dut <= 0; + len_read_en_ref <= 0; + len_read_en_dut <= 0; + + total_len_ref <= 0; + total_len_dut <= 0; + + total_count_ref <= 0; + total_count_dut <= 0; + + data_mismatch <= 0; + capt_first_mismatch <= 0; + data_capt_ref <= 0; + data_capt_dut <= 0; + mismatch_byte_num <= 0; + + fcs_fail_ref <= 0; + fcs_fail_dut <= 0; + + car_ext_dut <= 0; + + end + else begin + + // defaults + FCS_d1_ref <= FCS_d0_ref; + FCS_d2_ref <= FCS_d1_ref; + FCS_d3_ref <= FCS_d2_ref; + FCS_d4_ref <= FCS_d3_ref; + + FCS_d1_dut <= FCS_d0_dut; + FCS_d2_dut <= FCS_d1_dut; + FCS_d3_dut <= FCS_d2_dut; + FCS_d4_dut <= FCS_d3_dut; + + data_in_ref_d1 <= data_in_ref; + data_in_ref_d2 <= data_in_ref_d1; + data_in_ref_d3 <= data_in_ref_d2; + data_in_ref_d4 <= data_in_ref_d3; + + data_read_en_ref <= 0; + data_read_en_dut <= 0; + len_read_en_ref <= 0; + len_read_en_dut <= 0; + + data_mismatch <= 0; + + case(fsm) + READY: + begin + preamb_count_ref <= 0; + preamb_count_dut <= 0; + + payld_count_ref <= 0; + payld_count_dut <= 0; + + dest_add_ref <= 0; + dest_add_dut <= 0; + + src_add_ref <= 0; + src_add_dut <= 0; + + fr_len_ref <= 0; + fr_len_dut <= 0; + + seq_num_ref <= 0; + seq_num_dut <= 0; + + fcs_dut <= 0; + + FCS_d0_ref <= 0; + FCS_d0_dut <= 0; + + total_count_ref <= 0; + total_count_dut <= 0; + + data_mismatch <= 0; + capt_first_mismatch <= 0; + data_capt_ref <= 0; + data_capt_dut <= 0; + mismatch_byte_num <= 0; + + fcs_fail_ref <= 0; + fcs_fail_dut <= 0; + + car_ext_dut <= 0; + + if (len_words_available_ref > 0) begin + len_read_en_ref <= 1; + total_len_ref <= len_ref_fifo_out; + fsm <= CHECK_DUT_LEN; + end + end + + CHECK_DUT_LEN: + begin + + if (len_words_available_dut > 0) begin + len_read_en_dut <= 1; + total_len_dut <= len_dut_fifo_out; + + data_read_en_ref <= 1; + + fsm <= PREAMBLE_REF; + end + + end + + PREAMBLE_REF: + begin + total_count_ref <= total_count_ref + 1; + + if (data_ref_fifo_out == 8'hd5) begin + data_read_en_ref <= 0; + data_read_en_dut <= 1; + fsm <= PREAMBLE_DUT; + end + else begin + data_read_en_ref <= 1; + preamb_count_ref <= preamb_count_ref + 1; + end + end + + + PREAMBLE_DUT: + begin + total_count_dut <= total_count_dut + 1; + data_read_en_dut <= 1; + + if (data_dut_fifo_out == 8'hd5) begin + data_read_en_ref <= 1; + i <= 1; + fsm <= DEST_ADD; + end + else begin + preamb_count_dut <= preamb_count_dut + 1; + end + end + + + + DEST_ADD: + begin + data_read_en_ref <= ~read_inhibit_ref; + data_read_en_dut <= ~read_inhibit_dut; + + if (!read_inhibit_ref) begin + total_count_ref <= total_count_ref + 1; + end + + if (!read_inhibit_dut) begin + total_count_dut <= total_count_dut + 1; + end + + i <= i + 1; + case (i) + 1: begin dest_add_ref[47:40] <= data_ref_fifo_out; FCS_d0_ref <= FCS_d0_ref + data_ref_fifo_out; end + 2: begin dest_add_ref[39:32] <= data_ref_fifo_out; FCS_d0_ref <= FCS_d0_ref + data_ref_fifo_out; end + 3: begin dest_add_ref[31:24] <= data_ref_fifo_out; FCS_d0_ref <= FCS_d0_ref + data_ref_fifo_out; end + 4: begin dest_add_ref[23:16] <= data_ref_fifo_out; FCS_d0_ref <= FCS_d0_ref + data_ref_fifo_out; end + 5: begin dest_add_ref[15:8] <= data_ref_fifo_out; FCS_d0_ref <= FCS_d0_ref + data_ref_fifo_out; end + 6: begin dest_add_ref[7:0] <= data_ref_fifo_out; FCS_d0_ref <= FCS_d0_ref + data_ref_fifo_out; end + default: dest_add_ref<= dest_add_ref; + endcase + case (i) + 1: begin dest_add_dut[47:40] <= data_dut_fifo_out; FCS_d0_dut <= FCS_d0_dut + data_dut_fifo_out; end + 2: begin dest_add_dut[39:32] <= data_dut_fifo_out; FCS_d0_dut <= FCS_d0_dut + data_dut_fifo_out; end + 3: begin dest_add_dut[31:24] <= data_dut_fifo_out; FCS_d0_dut <= FCS_d0_dut + data_dut_fifo_out; end + 4: begin dest_add_dut[23:16] <= data_dut_fifo_out; FCS_d0_dut <= FCS_d0_dut + data_dut_fifo_out; end + 5: begin dest_add_dut[15:8] <= data_dut_fifo_out; FCS_d0_dut <= FCS_d0_dut + data_dut_fifo_out; end + 6: begin dest_add_dut[7:0] <= data_dut_fifo_out; FCS_d0_dut <= FCS_d0_dut + data_dut_fifo_out; end + default: dest_add_dut<= dest_add_dut; + endcase + + if (i == 6) begin + i <= 1; + fsm <= SRC_ADD; + end + end + + SRC_ADD: + begin + data_read_en_ref <= ~read_inhibit_ref; + data_read_en_dut <= ~read_inhibit_dut; + + if (!read_inhibit_ref) begin + total_count_ref <= total_count_ref + 1; + end + + if (!read_inhibit_dut) begin + total_count_dut <= total_count_dut + 1; + end + + i <= i + 1; + case (i) + 1: begin src_add_ref[47:40] <= data_ref_fifo_out; FCS_d0_ref <= FCS_d0_ref + data_ref_fifo_out; end + 2: begin src_add_ref[39:32] <= data_ref_fifo_out; FCS_d0_ref <= FCS_d0_ref + data_ref_fifo_out; end + 3: begin src_add_ref[31:24] <= data_ref_fifo_out; FCS_d0_ref <= FCS_d0_ref + data_ref_fifo_out; end + 4: begin src_add_ref[23:16] <= data_ref_fifo_out; FCS_d0_ref <= FCS_d0_ref + data_ref_fifo_out; end + 5: begin src_add_ref[15:8] <= data_ref_fifo_out; FCS_d0_ref <= FCS_d0_ref + data_ref_fifo_out; end + 6: begin src_add_ref[7:0] <= data_ref_fifo_out; FCS_d0_ref <= FCS_d0_ref + data_ref_fifo_out; end + default: src_add_ref<= src_add_ref; + endcase + case (i) + 1: begin src_add_dut[47:40] <= data_dut_fifo_out; FCS_d0_dut <= FCS_d0_dut + data_dut_fifo_out; end + 2: begin src_add_dut[39:32] <= data_dut_fifo_out; FCS_d0_dut <= FCS_d0_dut + data_dut_fifo_out; end + 3: begin src_add_dut[31:24] <= data_dut_fifo_out; FCS_d0_dut <= FCS_d0_dut + data_dut_fifo_out; end + 4: begin src_add_dut[23:16] <= data_dut_fifo_out; FCS_d0_dut <= FCS_d0_dut + data_dut_fifo_out; end + 5: begin src_add_dut[15:8] <= data_dut_fifo_out; FCS_d0_dut <= FCS_d0_dut + data_dut_fifo_out; end + 6: begin src_add_dut[7:0] <= data_dut_fifo_out; FCS_d0_dut <= FCS_d0_dut + data_dut_fifo_out; end + default: src_add_dut<= src_add_dut; + endcase + if (i == 6) begin + i <= 1; + fsm <= LEN; + end + end + + LEN: + begin + data_read_en_ref <= ~read_inhibit_ref; + data_read_en_dut <= ~read_inhibit_dut; + + if (!read_inhibit_ref) begin + total_count_ref <= total_count_ref + 1; + end + + if (!read_inhibit_dut) begin + total_count_dut <= total_count_dut + 1; + end + + i <= i + 1; + case (i) + 1: begin fr_len_ref[15:8] <= data_ref_fifo_out; FCS_d0_ref <= FCS_d0_ref + data_ref_fifo_out; end + 2: begin fr_len_ref[7:0] <= data_ref_fifo_out; FCS_d0_ref <= FCS_d0_ref + data_ref_fifo_out; end + default: fr_len_ref <= fr_len_ref; + endcase + case (i) + 1: begin fr_len_dut[15:8] <= data_dut_fifo_out; FCS_d0_dut <= FCS_d0_dut + data_dut_fifo_out; end + 2: begin fr_len_dut[7:0] <= data_dut_fifo_out; FCS_d0_dut <= FCS_d0_dut + data_dut_fifo_out; end + default: fr_len_dut <= fr_len_dut; + endcase + if (i == 2) begin + i <= 1; + fsm <= SEQ_NUM; + end + end + + SEQ_NUM: + begin + data_read_en_ref <= ~read_inhibit_ref; + data_read_en_dut <= ~read_inhibit_dut; + + if (!read_inhibit_ref) begin + total_count_ref <= total_count_ref + 1; + end + + if (!read_inhibit_dut) begin + total_count_dut <= total_count_dut + 1; + end + + seq_num_ref <= data_ref_fifo_out; + FCS_d0_ref <= FCS_d0_ref + data_ref_fifo_out; + payld_count_ref <= 2; + + seq_num_dut <= data_dut_fifo_out; + FCS_d0_dut <= FCS_d0_dut + data_dut_fifo_out; + payld_count_dut <= 2; + + fsm <= PAYLD; + end + + PAYLD: + begin + data_read_en_ref <= ~read_inhibit_ref; + data_read_en_dut <= ~read_inhibit_dut; + + if (!read_inhibit_ref) begin + total_count_ref <= total_count_ref + 1; + end + + if (!read_inhibit_dut) begin + total_count_dut <= total_count_dut + 1; + end + + FCS_d0_ref <= FCS_d0_ref + data_ref_fifo_out; + FCS_d0_dut <= FCS_d0_dut + data_dut_fifo_out; + + //if (total_count_ref >= (total_len_ref - 5)) begin + if (payld_count_ref == (fr_len_ref)) begin + i <= 1; + fsm <= CHECK_FCS; + end + else begin + payld_count_ref <= payld_count_ref + 1; + payld_count_dut <= payld_count_dut + 1; + end + + if (data_ref_fifo_out != data_dut_fifo_out) begin + + if (!capt_first_mismatch) begin + capt_first_mismatch <= 1; + data_capt_ref <= data_ref_fifo_out; + data_capt_dut <= data_dut_fifo_out; + mismatch_byte_num <= payld_count_ref; + end + + data_mismatch <= 1; + end + + end + + CHECK_FCS: + begin + if ((i >= 1) && (i <= 3)) begin + data_read_en_ref <= ~read_inhibit_ref; + data_read_en_dut <= ~read_inhibit_dut; + end + + if (!read_inhibit_ref) begin + total_count_ref <= total_count_ref + 1; + end + + if (!read_inhibit_dut) begin + total_count_dut <= total_count_dut + 1; + end + + case (i) + 1: begin if (FCS_d0_ref[31:24] != data_ref_fifo_out) fcs_fail_ref <= 1; end + 2: begin if (FCS_d0_ref[23:16] != data_ref_fifo_out) fcs_fail_ref <= 1; end + 3: begin if (FCS_d0_ref[15:8] != data_ref_fifo_out) fcs_fail_ref <= 1; end + 4: begin if (FCS_d0_ref[7:0] != data_ref_fifo_out) fcs_fail_ref <= 1; end + default: fcs_fail_ref <= fcs_fail_ref; + endcase + case (i) + 1: begin fcs_dut[31:24] <= data_dut_fifo_out; if (FCS_d0_dut[31:24] != data_dut_fifo_out) fcs_fail_dut <= 1; end + 2: begin fcs_dut[23:16] <= data_dut_fifo_out; if (FCS_d0_dut[23:16] != data_dut_fifo_out) fcs_fail_dut <= 1; end + 3: begin fcs_dut[15:8] <= data_dut_fifo_out; if (FCS_d0_dut[15:8] != data_dut_fifo_out) fcs_fail_dut <= 1; end + 4: begin fcs_dut[7:0] <= data_dut_fifo_out; if (FCS_d0_dut[7:0] != data_dut_fifo_out) fcs_fail_dut <= 1; end + default: fcs_fail_dut <= fcs_fail_dut; + endcase + + i <= i + 1; + + if (i == 4) begin + if ((total_len_dut - total_count_dut) > 1) begin + data_read_en_dut <= 1; + fsm <= CHECK_CAR_EXT; + end + else begin + fsm <= SUMMARY; + end + end + end + + CHECK_CAR_EXT: + begin + + if (!read_inhibit_dut) begin + total_count_dut <= total_count_dut + 1; + end + + if ((data_dut_fifo_out == 8'h0f) && (err_dut_fifo_out == 1'b1)) begin + car_ext_dut <= 1; + end + + + if ((total_len_dut - total_count_dut) > 1) begin + data_read_en_dut <= 1; + end + else begin + fsm <= SUMMARY; + end + + end + + SUMMARY: + begin + if (dest_add_fail || src_add_fail || fr_len_fail || seq_num_fail || capt_first_mismatch || fcs_fail_dut) begin + $display("PORT MONITOR: recvd frame : ***** FAILED ***** @ %t", $time); + if (dest_add_fail) begin + $display(" expected_dest_addr 0x%0h : actual_dest_addr 0x%0h", dest_add_ref, dest_add_dut); + end + if (src_add_fail) begin + $display(" expected_src_addr 0x%0h : actual_src_addr 0x%0h", src_add_ref, src_add_dut); + end + if (fr_len_fail) begin + $display(" expected_frame_length 0x%0h : actual_frame_length 0x%0h", fr_len_ref, fr_len_dut); + end + if (seq_num_fail) begin + $display(" expected_sequence_number 0x%0h : actual_sequence_number 0x%0h", seq_num_ref, seq_num_dut); + end + if (capt_first_mismatch) begin + $display(" expected_data 0x%0h : actual_data 0x%0h @ byte_number %d", data_capt_ref, data_capt_dut, mismatch_byte_num); + end + if (fcs_fail_dut) begin + $display(" expected_FCS 0x%0h : actual_FCS 0x%0h", FCS_d0_ref, fcs_dut); + end + end + else if (car_ext_dut) begin + $display("\tPORT MONITOR: recvd frame : GOOD ---- CARRIER EXTENSION PRESENT ---- @ %t", $time); + end + + else begin + $display("\tPORT MONITOR: recvd frame : GOOD @ %t", $time); + end + + //$display("--------------------------------------------------"); + $display(" preamble_size %0d", preamb_count_dut); + $display(" dest_addr 0x%0h : src_addr 0x%0h", dest_add_dut, src_add_dut); + $display(" sequence_num %0d : payload_len %0d : FCS 0x%0h ", seq_num_dut, payld_count_dut, FCS_d0_dut); + $display(" "); + + fsm <= READY; + end + + + + default : + begin + fsm <= READY; + end + endcase + end +end + +always @(*) begin + + if (dest_add_ref == dest_add_dut) + dest_add_fail <= 0; + else + dest_add_fail <= 1; + + + if (src_add_ref == src_add_dut) + src_add_fail <= 0; + else + src_add_fail <= 1; + + + if (fr_len_ref == fr_len_dut) + fr_len_fail <= 0; + else + fr_len_fail <= 1; + + + if (seq_num_ref == seq_num_dut) + seq_num_fail <= 0; + else + seq_num_fail <= 1; + + +end + + +// assign FIFO data out +assign len_ref_fifo_out = len_ref_fifo[l_tr]; +assign data_ref_fifo_out = data_ref_fifo [tr]; +assign err_ref_fifo_out = err_ref_fifo [tr]; + +assign len_dut_fifo_out = len_dut_fifo[l_td]; +assign data_dut_fifo_out = data_dut_fifo [td]; +assign err_dut_fifo_out = err_dut_fifo [td]; + +// continuous assignments +assign read_inhibit_ref = (total_count_ref <= total_len_ref) ? 0 : 1; +assign read_inhibit_dut = (total_count_dut <= total_len_dut) ? 0 : 1; + + +// synopsys translate_off +reg [(22*8):1] fsm_monitor; +always @(*) begin + case (fsm) + READY : fsm_monitor = "READY"; + CHECK_DUT_LEN : fsm_monitor = "CHECK_DUT_LEN"; + PREAMBLE_REF : fsm_monitor = "PREAMBLE_REF"; + PREAMBLE_DUT : fsm_monitor = "PREAMBLE_DUT"; + DEST_ADD : fsm_monitor = "DEST_ADD"; + SRC_ADD : fsm_monitor = "SRC_ADD"; + LEN : fsm_monitor = "LEN"; + SEQ_NUM : fsm_monitor = "SEQ_NUM"; + PAYLD : fsm_monitor = "PAYLD"; + CHECK_FCS : fsm_monitor = "CHECK_FCS"; + CHECK_CAR_EXT : fsm_monitor = "CHECK_CAR_EXT"; + SUMMARY : fsm_monitor = "SUMMARY"; + + default : fsm_monitor = "***ERROR***"; + endcase +end +// synopsys translate_on + + +endmodule +// ============================================================================= + + + diff --git a/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/testbench/port_parser_mii.v b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/testbench/port_parser_mii.v new file mode 100644 index 0000000..972508c --- /dev/null +++ b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/testbench/port_parser_mii.v @@ -0,0 +1,237 @@ +//************************************************************************** +// ************************************************************************* +// * LATTICE SEMICONDUCTOR CONFIDENTIAL * +// * PROPRIETARY NOTE * +// * * +// * This software contains information confidential and proprietary * +// * to Lattice Semiconductor Corporation. It shall not be reproduced * +// * in whole or in part, or transferred to other documents, or disclosed * +// * to third parties, or used for any purpose other than that for which * +// * it was obtained, without the prior written consent of Lattice * +// * Semiconductor Corporation. All rights reserved. * +// * * +// ************************************************************************* +//************************************************************************** + +//`timescale 1ns/100ps +`timescale 1ps/1ps + +module port_parser_mii ( + rst_n, + clk, + enable_in, + data_in, + err_in, + GBspeed, + + err_out, + data_out, + length_out, + dat_wr, + len_wr +); + +input rst_n; +input clk; +input enable_in; +input err_in; +input [7:0] data_in; +input GBspeed; + +output err_out; +output [7:0] data_out; +output [16:0] length_out; +output dat_wr; +output len_wr; + +reg err_out; +reg [7:0] data_out; +reg dat_wr; +reg len_wr; + +reg [16:0] count; + +parameter + SEEK_EN = 3'd0, + DO_WRITE_LO = 3'd1, + DO_WRITE_HI = 3'd2, + CAR_EXT_LO = 3'd3, + CAR_EXT_HI = 3'd4, + DO_WRITE_GB = 3'd5, + CAR_EXT_GB = 3'd6; +reg [2:0] cfsm; + + + +always @(posedge clk or negedge rst_n) +begin + if (rst_n == 1'b0) begin + cfsm <= SEEK_EN; + count <= 17'd0; + data_out <= 8'd0; + err_out <= 1'b0; + dat_wr <= 1'b0; + len_wr <= 1'b0; + end + else begin + // defaults + //data_out <= data_in; + err_out <= err_in; + dat_wr <= 1'b0; + len_wr <= 1'b0; + + case(cfsm) + SEEK_EN: + begin + count <= 17'd1; + if (enable_in) begin + if (GBspeed) begin + // 1GBPS Mode + dat_wr <= 1'b1; + data_out <= data_in; + cfsm <= DO_WRITE_GB; + end + else begin + // 100MBPS or 10MBPS Mode + data_out[3:0] <= data_in[3:0]; + cfsm <= DO_WRITE_HI; + end + end + end + + + + + + DO_WRITE_LO: + begin + data_out[3:0] <= data_in[3:0]; + + if (enable_in) begin + count <= count + 1; + cfsm <= DO_WRITE_HI; + end + else begin + if (err_in) begin + count <= count + 1; + cfsm <= CAR_EXT_HI; + end + else begin + cfsm <= DO_WRITE_HI; + end + end + end + DO_WRITE_HI: + begin + if (enable_in) begin + dat_wr <= 1'b1; + data_out[7:4] <= data_in[3:0]; + cfsm <= DO_WRITE_LO; + end + else begin + if (err_in) begin + dat_wr <= 1'b1; + cfsm <= CAR_EXT_LO; + end + else begin + len_wr <= 1'b1; + cfsm <= SEEK_EN; + end + end + end + + + + CAR_EXT_LO: + begin + if (err_in) begin + count <= count + 1; + end + data_out[3:0] <= data_in[3:0]; + cfsm <= CAR_EXT_HI; + end + CAR_EXT_HI: + begin + if (err_in) begin + dat_wr <= 1'b1; + data_out[7:4] <= data_in[3:0]; + cfsm <= CAR_EXT_LO; + end + else begin + len_wr <= 1'b1; + cfsm <= SEEK_EN; + end + end + + + DO_WRITE_GB: + begin + data_out <= data_in; + if (enable_in) begin + dat_wr <= 1'b1; + count <= count + 1; + end + else begin + if (err_in) begin + dat_wr <= 1'b1; + count <= count + 1; + cfsm <= CAR_EXT_GB; + end + else begin + len_wr <= 1'b1; + cfsm <= SEEK_EN; + end + end + end + CAR_EXT_GB: + begin + data_out <= data_in; + if (err_in) begin + dat_wr <= 1'b1; + count <= count + 1; + cfsm <= CAR_EXT_GB; + end + else begin + len_wr <= 1'b1; + cfsm <= SEEK_EN; + end + end + + + + + default : + begin + cfsm <= SEEK_EN; + end + endcase + end +end + + +assign length_out = count; + + + +// synopsys translate_off +reg [(22*8):1] cfsm_monitor; +always @(*) begin + case (cfsm) + SEEK_EN : cfsm_monitor = "SEEK_EN"; + DO_WRITE_LO : cfsm_monitor = "DO_WRITE_LO"; + DO_WRITE_HI : cfsm_monitor = "DO_WRITE_HI"; + CAR_EXT_LO : cfsm_monitor = "CAR_EXT_LO"; + CAR_EXT_HI : cfsm_monitor = "CAR_EXT_HI"; + DO_WRITE_GB : cfsm_monitor = "DO_WRITE_GB"; + CAR_EXT_GB : cfsm_monitor = "CAR_EXT_GB"; + + default : cfsm_monitor = "***ERROR***"; + endcase +end +// synopsys translate_on + +endmodule +// ============================================================================= + + + diff --git a/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/testbench/sgmii_node.v b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/testbench/sgmii_node.v new file mode 100644 index 0000000..914fafc --- /dev/null +++ b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/testbench/sgmii_node.v @@ -0,0 +1,302 @@ +//************************************************************************** +// ************************************************************************* +// * LATTICE SEMICONDUCTOR CONFIDENTIAL * +// * PROPRIETARY NOTE * +// * * +// * This software contains information confidential and proprietary * +// * to Lattice Semiconductor Corporation. It shall not be reproduced * +// * in whole or in part, or transferred to other documents, or disclosed * +// * to third parties, or used for any purpose other than that for which * +// * it was obtained, without the prior written consent of Lattice * +// * Semiconductor Corporation. All rights reserved. * +// * * +// ************************************************************************* +//************************************************************************** + +`timescale 1ns/100ps + +module sgmii_node ( + // Control Interface + gbe_mode, + sgmii_mode, + force_loopback, + rst_n, + phy_speed, + + // G/MII Interface + data_in_mii, + en_in_mii, + err_in_mii, + + data_out_mii, + dv_out_mii, + err_out_mii, + + // GMII Timing References + tx_clk_125, + tx_ce_sink, + tx_ce_source, + + rx_clk_125, + rx_ce_sink, + rx_ce_source, + + // SERIAL GMII Interface + refclkp, + refclkn, + hdinp0, + hdinn0, + hdoutp0, + hdoutn0 + ); + + + +// I/O Declarations +input rst_n; // System Reset, Active Low +input gbe_mode ; // GBE Mode (0=SGMII 1=GBE) +input sgmii_mode ; // SGMII PCS Mode (0=MAC 1=PHY) +input force_loopback ; +input [1:0] phy_speed; + +input refclkp, refclkn ; +input tx_clk_125 ; // GMII Transmit clock 125Mhz +input tx_ce_sink ; +output tx_ce_source ; + +input [7:0] data_in_mii; // G/MII Incoming Data +input en_in_mii; // G/MII Incoming Data Valid +input err_in_mii; // G/MII Incoming Error + +input rx_clk_125 ; // GMII Receive clock 125Mhz +input rx_ce_sink ; +output rx_ce_source ; + +output [7:0] data_out_mii; // G/MII Outgoing Data +output dv_out_mii; // G/MII Outgoing Data Valid +output err_out_mii; // G/MII Outgoing Error + +input hdinp0; // Incoming SGMII (on SERDES) +input hdinn0; // Incoming SGMII (on SERDES) + +output hdoutp0; // Outgoing SGMII (on SERDES) +output hdoutn0; // Outgoing SGMII (on SERDES) + + + +// 8-bit Interface Signals from SGMII channel to QuadPCS/SERDES +wire [7:0] data_chan2quad; +wire kcntl_chan2quad; +wire disparity_cntl_chan2quad; + +// 8-bit Interface Signals from QuadPCS/SERDES to SGMII channel +wire [7:0] data_quad2chan; +wire kcntl_quad2chan; +wire disp_err_quad2chan; +wire cv_err_quad2chan; +wire link_status; +wire serdes_recovered_clk; +wire refclk2fpga; +wire xmit_autoneg; + +wire adv_link_status; +wire adv_duplex_mode; +wire [1:0] adv_link_speed; + +// Active High Reset +wire rst; +assign rst = ~rst_n; + + +wire debug_link_timer_short; +wire [1:0] operational_rate; +wire [15:0] mr_lp_adv_ability; +wire mr_an_complete; + + +wire sli_rst; +assign sli_rst = ~rst_n; + + +// Control Advertised Ability +// When in PHY mode, choose appropriate values +// When in MAC mode, always set to zeros +assign adv_link_status = gbe_mode ? 1'b0 : sgmii_mode ? 1'b1 : 1'b0; +assign adv_duplex_mode = gbe_mode ? 1'b0 : sgmii_mode ? 1'b1 : 1'b0; +assign adv_link_speed = gbe_mode ? 2'd0 : sgmii_mode ? phy_speed : 2'd0; +wire [7:0] gbe_bits; +assign gbe_bits = gbe_mode ? 8'h20 : 8'h01; + +assign debug_link_timer_short = 1'b0; //0= normal operation + // when running simulation + // will override this value to 1'b1 + // so that autonegotion completes + +// Instantiate Global Reset Controller +GSR GSR_INST (.GSR(rst_n)); +PUR PUR_INST (.PUR(1'b1)); + +// Instantiate SGMII IP Core +sgmii_channel_smi_core u_sgmii_core ( + // Clock and Reset + .rst_n (rst_n ), + .tx_clk_125 (tx_clk_125), + .tx_clock_enable_sink (tx_ce_sink), + .tx_clock_enable_source (tx_ce_source), + .rx_clk_125 (rx_clk_125), + .rx_clock_enable_sink (rx_ce_sink), + .rx_clock_enable_source (rx_ce_source), + + // Control + .gbe_mode (gbe_mode), + .sgmii_mode (sgmii_mode), + .debug_link_timer_short (debug_link_timer_short), + .force_isolate (1'b0), + .force_loopback (force_loopback), + .force_unidir (1'b0), + .operational_rate (operational_rate), + .rx_compensation_err (), + .ctc_drop_flag (), + .ctc_add_flag (), + .an_link_ok (), + + + // (G)MII TX Port + .tx_d (data_in_mii), + .tx_en (en_in_mii), + .tx_er (err_in_mii), + + // (G)MII RX Port + .rx_d (data_out_mii), + .rx_dv (dv_out_mii), + .rx_er (err_out_mii), + .col (), + .crs (), + + // 8BI TX Port + .tx_data (data_chan2quad), + .tx_kcntl (kcntl_chan2quad), + .tx_disparity_cntl (disparity_cntl_chan2quad), + + // 8BI RX Port + .signal_detect (link_status), + .serdes_recovered_clk (serdes_recovered_clk), + .rx_data (data_quad2chan), + .rx_kcntl (kcntl_quad2chan), + .rx_even (1'b0), // Signal Not Used in Normal Mode + .rx_disp_err (disp_err_quad2chan), + .rx_cv_err (cv_err_quad2chan), + .rx_err_decode_mode (1'b0), // 0= Normal Mode, always tie low for SC Familiy + .xmit_autoneg (xmit_autoneg), + + // Management Interface I/O + .mr_adv_ability ({adv_link_status, 2'd0, adv_duplex_mode, adv_link_speed, 2'd0, gbe_bits}), + .mr_an_enable (1'b1), + .mr_main_reset (1'b0), + .mr_restart_an (1'b0), + + .mr_an_complete (mr_an_complete), + .mr_lp_adv_ability (mr_lp_adv_ability), + .mr_page_rx () + ); + + +// (G)MII Rate Resolution for SGMII IP Core +rate_resolution rate_resolution ( + .gbe_mode (gbe_mode), + .sgmii_mode (sgmii_mode), + .an_enable (1'b1), + .advertised_rate (phy_speed), + .link_partner_rate (mr_lp_adv_ability[11:10]), + .non_an_rate (2'b10), // 1Gbps is rate when auto-negotiation disabled + + .operational_rate (operational_rate) +); + +wire refclk; +ILVDS ILVDS_X ( + .A (refclkp), + .AN(refclkn), + .Z (refclk)); + +assign refclk2fpga = refclk; + +// QUAD ASB 8B10B + SERDES + +sgmii_channel_smi_pcs u_sgmii_pcs ( + +// Global Clocks and Resets + // inputs + .rst_dual_c(~rst_n), + .serdes_rst_dual_c(~rst_n), + .pll_refclki(refclk), + .rxrefclk(refclk), + .sli_rst(sli_rst), + +// fpga tx datapath signals + // inputs + .tx_pcs_rst_c(1'b0), + .txdata(data_chan2quad), + .tx_k(kcntl_chan2quad), + .tx_disp_correct(disparity_cntl_chan2quad), + + .txi_clk(tx_clk_125), + + // outputs + .tx_pclk(), + +// fpga rx datapath signals + // inputs + .rx_pcs_rst_c(1'b0), + .xmit(xmit_autoneg), + .signal_detect_c(1'b1), + + // outputs + .rx_pclk(serdes_recovered_clk), + .rxdata(data_quad2chan), + .rx_k(kcntl_quad2chan), + .rx_disp_err(disp_err_quad2chan), + .rx_cv_err(cv_err_quad2chan), + .lsm_status_s(link_status), + .rx_cdr_lol_s(rx_cdr_lol), + +// serdes signals + // inputs + .rx_serdes_rst_c(1'b0), + .tx_serdes_rst_c(~rst_n), + + .hdinp(hdinp0), + .hdinn(hdinn0), + + // outputs + .hdoutp(hdoutp0), + .hdoutn(hdoutn0), + + //SCI interface + .cyawstn (1'b0), + .sci_en (1'b0), + .sci_en_dual (1'b0), + .sci_sel_dual (1'b0), + .sci_sel (1'b0), + .sci_wrdata (8'd0), + .sci_addr (6'd0), + .sci_rddata (), + .sci_rd (1'b0), + .sci_wrn (1'b1), + .sci_int (), + +// misc control signals + // inputs + .rsl_disable (1'b0), + .rsl_rst (~rst_n), + .tx_pwrup_c (1'b1), // powerup tx channel + .rx_pwrup_c (1'b1), // power up rx channel + .serdes_pdb (1'b1), + + // outputs + .pll_lol() +); + + +endmodule + diff --git a/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/testbench/tb_hb.v b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/testbench/tb_hb.v new file mode 100644 index 0000000..fc6aae5 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_channel_smi/sgmii_pcs_eval/testbench/tb_hb.v @@ -0,0 +1,924 @@ +//************************************************************************** +// ************************************************************************* +// * LATTICE SEMICONDUCTOR CONFIDENTIAL * +// * PROPRIETARY NOTE * +// * * +// * This software contains information confidential and proprietary * +// * to Lattice Semiconductor Corporation. It shall not be reproduced * +// * in whole or in part, or transferred to other documents, or disclosed * +// * to third parties, or used for any purpose other than that for which * +// * it was obtained, without the prior written consent of Lattice * +// * Semiconductor Corporation. All rights reserved. * +// * * +// ************************************************************************* +//************************************************************************** + +`timescale 1ps/1ps + +module tb ; + +reg clk_125 ; +reg hclk ; +wire hready_n; +wire [7:0] hdataout; +reg [9:0] haddr; +reg [7:0] hdatain; +reg hcs_n; +reg hread_n; +reg hwrite_n; +reg hdataout_en_n; + +reg rst_n ; +reg rst_tb_n; + +reg clk_25; +reg clk_12_5; +reg clk_2_5; +reg clk_1_25; +reg [3:0] clk_count; +reg [5:0] sclk_count; + +/////////////////////// + +reg [7:0] drv_data; +reg drv_en; +reg drv_er; + +wire [7:0] local_tx_d; +wire local_tx_en; +wire local_tx_er; + +wire [7:0] mn_data; +wire mn_dv; +wire mn_er; + +wire [7:0] mon_data; +wire mon_dv; +wire mon_er; + +/////////////////////// + +wire [7:0] local_rx_d; +wire local_rx_dv; +wire local_rx_er; + +reg clk_mii; +reg clk_drvmon; +reg [1:0] adv_speed; +reg [1:0] mii_speed; +reg dut_sgmii_mode; +reg dut_gbe_mode; +reg GBspeed_drvmon; +reg force_loopback; + + +////////////////////////////////////////////////////////////////////////////// + +initial +begin + clk_125 = 1'b0 ; + hclk = 1'b0 ; + $timeformat (-9 ,1 , "ns", 10); +end + +// 125 Mhz clock Generation +always #4000 clk_125 = ~clk_125 ; + +// HCLK Clock Generation +always #10000 hclk = ~hclk ; + +// 25Mhz Clock Generation +always @(posedge clk_125 or negedge rst_tb_n) +begin + if (rst_tb_n == 1'b0) begin + clk_count <= 4'd0; + clk_25 <= 1'd0; + clk_12_5 <= 1'd0; + end + else begin + + // These statements implement a "divide by 5" + if (clk_count == 4'd4) + clk_count <= 4'd0; + else + clk_count <= clk_count + 1; + + + if ((clk_count==4'd1) || (clk_count==4'd4)) + clk_25 <= ~clk_25; + + if ((clk_25 == 1'd0) && (clk_count == 4'd1)) + clk_12_5 <= ~clk_12_5; + + + end +end + + + +// 2.5Mhz Clock Generation +always @(posedge clk_125 or negedge rst_tb_n) +begin + if (rst_tb_n == 1'b0) begin + sclk_count <= 0; + clk_2_5 <= 0; + clk_1_25 <= 0; + end + else begin + + // These statements implement a "divide by 50" + if (sclk_count == 49) + sclk_count <= 0; + else + sclk_count <= sclk_count + 1; + + + if ((sclk_count==24) || (sclk_count==49)) + clk_2_5 <= ~clk_2_5; + + if ((clk_2_5 == 0) && (sclk_count == 1)) + clk_1_25 <= ~clk_1_25; + + end +end + + +// choose mii clock based on DUT_MII_SPEED +always @(*) +begin + if (mii_speed == 2'b01) + clk_mii = 1'b1; + else if (mii_speed == 2'b00) + clk_mii = 1'b1; + else + clk_mii = 1'b1; +end + +// choose driver and monitor clock +always @(*) +begin + if (mii_speed == 2'b01) + clk_drvmon = clk_12_5; + else if (mii_speed == 2'b00) + clk_drvmon = clk_1_25; + else + clk_drvmon = clk_125; +end + + +GSR GSR_INST (.GSR(rst_n)); +PUR PUR_INST (.PUR(1'b1)); +OLVDS O_CLK_BUF (.A(clk_125), .Z(clk_125_p), .ZN(clk_125_n)); + +////////////////////////////////////////////////////////////////////////////// + +// Device Under Test (DUT) +top_hb top ( + .rst_n ( rst_n ) , + .gbe_mode ( dut_gbe_mode ) , + .sgmii_mode ( dut_sgmii_mode ) , + + .hclk (hclk), + .hcs_n (hcs_n), + .hwrite_n (hwrite_n), + .haddr (haddr[5:0]), + .hdatain (hdatain), + + .hdataout (hdataout), + .hready_n (hready_n), + + // G/MII Interface + .data_in_mii ( {local_tx_d} ) , + .en_in_mii ( local_tx_en ) , + .err_in_mii ( local_tx_er ) , + + .data_out_mii ( local_rx_d ) , + .dv_out_mii ( local_rx_dv ) , + .err_out_mii ( local_rx_er ) , + .col_out_mii ( ) , + .crs_out_mii ( ) , + + .debug_link_timer_short(1'b1), + .mr_an_complete(mr_an_complete), + + // GMII Clocks + .in_clk_125 ( clk_125 ) , + .in_ce_sink ( clock_enable ) , + .in_ce_source ( clock_enable ) , + .out_clk_125 ( clk_125 ) , + .out_ce_sink ( clock_enable ) , + .out_ce_source ( ) , + + // SERDES Interface + .refclkp ( clk_125_p ) , + .refclkn ( clk_125_n ) , + .hdoutp0 ( local_serdes_p ) , + .hdoutn0 ( local_serdes_n ) , + .hdinp0 ( remote_serdes_p ), + .hdinn0 ( remote_serdes_n ) + ); + + +// Loopback DUT (G)MII Interface +assign local_tx_d = local_rx_d; +assign local_tx_en = local_rx_dv; +assign local_tx_er = local_rx_er; + + +// Testbench SGMII Channel +sgmii_node sgmii_node ( + // Control Interface + .rst_n (rst_n) , + .gbe_mode (dut_gbe_mode) , + .sgmii_mode (~dut_sgmii_mode) , + .force_loopback (force_loopback) , + .phy_speed (adv_speed) , + + // G/MII Interface + .data_in_mii (drv_data), + .en_in_mii (drv_en), + .err_in_mii (drv_er), + + .data_out_mii (mon_data), + .dv_out_mii (mon_dv), + .err_out_mii (mon_er), + + // GB Timing References + .tx_clk_125 (clk_125) , + .tx_ce_source () , + .tx_ce_sink (clock_enable) , + + .rx_clk_125 (clk_125) , + .rx_ce_source () , + .rx_ce_sink (clock_enable) , + + // SERDES Interface + .refclkp (clk_125_p) , + .refclkn (clk_125_n) , + .hdoutp0 (remote_serdes_p) , + .hdoutn0 (remote_serdes_n) , + .hdinp0 (local_serdes_p ), + .hdinn0 (local_serdes_n ) +); + + + + + + +// Compare MII In/Out Ports of DUT +mii_monitor mii_monitor ( + .rst_n (rst_n), + .clk (clk_drvmon), + .GBspeed (GBspeed_drvmon) , + + .data_in_ref (drv_data), + .dv_in_ref (drv_en), + .err_in_ref (drv_er), + + .data_in_dut (mon_data), + .dv_in_dut (mon_dv), + .err_in_dut (mon_er) +); + + + +////////////////////////////////////////////////////////////////////////////// + +// THIS BLOCK CONTROLS TEST SCRIPT FLOW +initial +begin + rst_tb_n = 1'b0 ; + rst_n = 0; + + haddr = 10'd0; + hdatain = 8'd0; + hcs_n = 1'b1; + hread_n = 1'b1; + hwrite_n = 1'b1; + hdataout_en_n = 1'b1; + + drv_data = 8'd0; + drv_en = 1'd0; + drv_er = 1'd0; + + force_loopback = 1'b0; + + // the following lines allow short autonegotiation timer to operate + force sgmii_node.debug_link_timer_short = 1'b1 ; + + // For the Soft LOL and RSL logic in simulation + @(posedge clk_125); + force tb.top.u_sgmii.u_sgmii_pcs.sll_inst.LRCLK_TC_w = 16'd100; + force tb.top.u_sgmii.u_sgmii_pcs.sll_inst.rcount_tc = 22'd100; + force tb.sgmii_node.u_sgmii_pcs.sll_inst.LRCLK_TC_w = 16'd100; + force tb.sgmii_node.u_sgmii_pcs.sll_inst.rcount_tc = 22'd100; + +/////// SET SGMII MODE == 1GB Rate ///////////////////////////////////////////////////////////////////// + + GBspeed_drvmon = 1; + mii_speed = 2'b10; // 1GB + adv_speed = 2'b10; // 1GB + dut_sgmii_mode = 1'b0; // MAC + dut_gbe_mode = 1'b0; // SGMII + + #1000000 // Wait for 100 nanoseconds + $display(" ") ; + $display(" !!!!!!!!!! Starting SGMII Tests !!!!!!!!!!"); + $display(" ") ; + $display(" ") ; + $display(" ") ; + $display(" ") ; + $display(" MII operating @ 1Gbps in SGMII Mode") ; + $display(" ") ; + $display(" Device Under Test operating in SGMII MAC mode") ; + $display(" ") ; + + + // release testbench reset + #1000000 // Wait for 100 nanoseconds + rst_tb_n <= 1'b1 ; + + // Perform Device Resets + #1000000 // Wait for 1 microsecond + rst_n = 0; // Apply reset + #1000000 // Wait for 1 microsecond + rst_n = 1; // Release reset + #1000000 // Wait for 1 microsecond + + +//////////////////// + + #1000000 // Wait for 1 microsecond + + @(posedge hclk); +// Quick Check of SGMII Management Registers + $display(" TEST#1 of 3 : Check SGMII Management Registers before Autonegotiaion Completes "); + + hb_read (10'h000, 8'h00, 8'h00); // Reg 0 + hb_read (10'h001, 8'h00, 8'h00); + $display(" ") ; + + hb_read (10'h002, 8'h00, 8'h00); // Reg 1 + hb_read (10'h003, 8'h00, 8'h00); + $display(" ") ; + + hb_read (10'h008, 8'h00, 8'h00); // Reg 4 + hb_read (10'h009, 8'h00, 8'h00); + $display(" ") ; + + hb_read (10'h00A, 8'h00, 8'h00); // Reg 5 + hb_read (10'h00B, 8'h00, 8'h00); + $display(" ") ; + + hb_read (10'h00C, 8'h00, 8'h00); // Reg 6 + hb_read (10'h00D, 8'h00, 8'h00); + $display(" ") ; + + +// Wait for Auto Negotiation to Complete + wait (mr_an_complete) + + @(posedge hclk); +// Quick Check of SGMII Management Registers + #2000000 // Wait for 2.00 microseconds + $display(" TEST#2 of 3 : Check SGMII Management Registers after Autonegotiaion Completes "); + + hb_read (10'h000, 8'h40, 8'hFF); // Reg 0 + hb_read (10'h001, 8'h11, 8'hFF); + $display(" ") ; + + hb_read (10'h002, 8'h2C, 8'h00); // Reg 1 + hb_read (10'h003, 8'h00, 8'h00); + + hb_read (10'h002, 8'h2C, 8'hFF); // Reg 1 Re-Read + hb_read (10'h003, 8'h01, 8'hFF); + $display(" ") ; + + hb_read (10'h008, 8'h01, 8'hFF); // Reg 4 + hb_read (10'h009, 8'h40, 8'hFF); + $display(" ") ; + + hb_read (10'h00A, 8'h01, 8'hFF); // Reg 5 + hb_read (10'h00B, 8'hD8, 8'hFF); + $display(" ") ; + + hb_read (10'h00C, 8'h02, 8'hFF); // Reg 6 + hb_read (10'h00D, 8'h00, 8'hFF); + + hb_read (10'h01E, 8'h00, 8'hFF); // Reg F + hb_read (10'h01F, 8'h80, 8'hFF); + $display(" ") ; + + + #10000000 // Wait for 10.00 microseconds + + + @(posedge clk_drvmon ); +// Send 4 Ethernet Frames + $display(" TEST#3 of 3 : Send 4 ethernet frames"); + //send_local_gmii_frame (preamble size, dest addr, src addr, payload len, sequence number); + send_mii_frame (7, 'h112233445566, 'h778899aabbcc, 512, 0); + send_mii_frame (7, 'h112233445566, 'h778899aabbcc, 512, 1); + send_mii_frame (7, 'h112233445566, 'h778899aabbcc, 512, 2); + send_mii_frame (7, 'h112233445566, 'h778899aabbcc, 512, 3); + + repeat (2000) @(posedge clk_drvmon ); + + + + $display("\n\n\n\n") ; + $display(" TEST#4 : Test Loopback Function"); + force_loopback = 1'b1; + repeat (500) @(posedge clk_drvmon ); + + send_mii_frame (7, 'h112233445566, 'h778899aabbcc, 512, 4); + repeat (500) @(posedge clk_drvmon ); + + force_loopback = 1'b0; + repeat (500) @(posedge clk_drvmon ); + + send_mii_frame (7, 'h112233445566, 'h778899aabbcc, 512, 5); + repeat (1000) @(posedge clk_drvmon ); + + + + + + + $display("\n\n\n\n") ; + $display(" TEST#5 : Test Isolate Function"); + hb_write (10'h001, 8'h15); + hb_read (10'h000, 8'h40, 8'hFF); + hb_read (10'h001, 8'h15, 8'hFF); + + send_mii_frame (7, 'h112233445566, 'h778899aabbcc, 512, 6); + repeat (500) @(posedge clk_drvmon ); + + hb_write (10'h001, 8'h11); + hb_read (10'h000, 8'h40, 8'hFF); + hb_read (10'h001, 8'h11, 8'hFF); + + repeat (500) @(posedge clk_drvmon ); + + send_mii_frame (7, 'h112233445566, 'h778899aabbcc, 512, 7); + repeat (1000) @(posedge clk_drvmon ); + $display("**** Expected Frame Mismatch Failure, Due to Isolate Function****"); + + + + + + $display("\n\n\n\n") ; + $display(" !!!!!!!!!! Testbench Done. All Tests Completed !!!!!!!!!!"); + $stop ; +end + +// END OF TEST SCRIPT FLOW //////////////////////////////////////////////////////////// + + + + + + + + + + + +////////////////////////////////////////////////////////////////////////////// +task send_mii_frame ; +input [7:0] preamble_len; // Total number of bytes +input [47:0] dest_add; +input [47:0] src_add; +input [15:0] payld_len; +input [15:0] sequence_num; + +integer i; +reg[31:0] j; +reg [31:0] FCS; + +begin + +// Put Preamble /////////////////// +for(i = 0; i < preamble_len; i = i+1) begin + if (GBspeed_drvmon) begin + drv_en = #1 1'b1; + drv_er = #1 1'b0; + drv_data = #1 8'h55; + FCS = #1 32'd0; + @(posedge clk_drvmon); + end + else begin + drv_en = #1 1'b1; + drv_er = #1 1'b0; + drv_data = #1 8'h05; + FCS = #1 32'd0; + @(posedge clk_drvmon); + drv_en = #1 1'b1; + drv_er = #1 1'b0; + drv_data = #1 8'h05; + FCS = #1 32'd0; + @(posedge clk_drvmon); + end +end + +// Put SFD //////////////////////// + if (GBspeed_drvmon) begin + drv_en = #1 1'b1; + drv_er = #1 1'b0; + drv_data = #1 8'hd5; + @(posedge clk_drvmon); + end + else begin + drv_en = #1 1'b1; + drv_er = #1 1'b0; + drv_data = #1 8'h05; // low nibble + @(posedge clk_drvmon); + drv_en = #1 1'b1; + drv_er = #1 1'b0; + drv_data = #1 8'h0d; // high nibble + @(posedge clk_drvmon); + end + +// Put Destination Address /////////////////////// +for(i = 0; i < 6; i = i+1) begin + + drv_en = #1 1'b1; + drv_er = #1 1'b0; + + if (GBspeed_drvmon) begin + case (i) + 0: begin drv_data = #1 dest_add[47:40]; FCS = #1 (FCS + dest_add[47:40]); @(posedge clk_drvmon); end + 1: begin drv_data = #1 dest_add[39:32]; FCS = #1 (FCS + dest_add[39:32]); @(posedge clk_drvmon); end + 2: begin drv_data = #1 dest_add[31:24]; FCS = #1 (FCS + dest_add[31:24]); @(posedge clk_drvmon); end + 3: begin drv_data = #1 dest_add[23:16]; FCS = #1 (FCS + dest_add[23:16]); @(posedge clk_drvmon); end + 4: begin drv_data = #1 dest_add[15:8]; FCS = #1 (FCS + dest_add[15:8]); @(posedge clk_drvmon); end + 5: begin drv_data = #1 dest_add[7:0]; FCS = #1 (FCS + dest_add[7:0]); @(posedge clk_drvmon); end + endcase + + end + else begin + case (i) + 0: begin + drv_data = #1 {4'd0, dest_add[43:40]}; + @(posedge clk_drvmon); + drv_data = #1 {4'd0, dest_add[47:44]}; FCS = #1 (FCS + dest_add[47:40]); + @(posedge clk_drvmon); + end + + 1: begin + drv_data = #1 {4'd0, dest_add[35:32]}; + @(posedge clk_drvmon); + drv_data = #1 {4'd0, dest_add[39:36]}; FCS = #1 (FCS + dest_add[39:32]); + @(posedge clk_drvmon); + end + + 2: begin + drv_data = #1 {4'd0, dest_add[27:24]}; + @(posedge clk_drvmon); + drv_data = #1 {4'd0, dest_add[31:28]}; FCS = #1 (FCS + dest_add[31:24]); + @(posedge clk_drvmon); + end + + 3: begin + drv_data = #1 {4'd0, dest_add[19:16]}; + @(posedge clk_drvmon); + drv_data = #1 {4'd0, dest_add[23:20]}; FCS = #1 (FCS + dest_add[23:16]); + @(posedge clk_drvmon); + end + + 4: begin + drv_data = #1 {4'd0, dest_add[11:8]}; + @(posedge clk_drvmon); + drv_data = #1 {4'd0, dest_add[15:12]}; FCS = #1 (FCS + dest_add[15:8]); + @(posedge clk_drvmon); + end + + 5: begin + drv_data = #1 {4'd0, dest_add[3:0]}; + @(posedge clk_drvmon); + drv_data = #1 {4'd0, dest_add[7:4]}; FCS = #1 (FCS + dest_add[7:0]); + @(posedge clk_drvmon); + end + endcase + end +end + +// Put Source Address /////////////////////// +for(i = 0; i < 6; i = i+1) begin + + drv_en = #1 1'b1; + drv_er = #1 1'b0; + + if (GBspeed_drvmon) begin + case (i) + 0: begin drv_data = #1 src_add[47:40]; FCS = #1 (FCS + src_add[47:40]); @(posedge clk_drvmon); end + 1: begin drv_data = #1 src_add[39:32]; FCS = #1 (FCS + src_add[39:32]); @(posedge clk_drvmon); end + 2: begin drv_data = #1 src_add[31:24]; FCS = #1 (FCS + src_add[31:24]); @(posedge clk_drvmon); end + 3: begin drv_data = #1 src_add[23:16]; FCS = #1 (FCS + src_add[23:16]); @(posedge clk_drvmon); end + 4: begin drv_data = #1 src_add[15:8]; FCS = #1 (FCS + src_add[15:8]); @(posedge clk_drvmon); end + 5: begin drv_data = #1 src_add[7:0]; FCS = #1 (FCS + src_add[7:0]); @(posedge clk_drvmon); end + endcase + + end + else begin + case (i) + 0: begin + drv_data = #1 {4'd0, src_add[43:40]}; + @(posedge clk_drvmon); + drv_data = #1 {4'd0, src_add[47:44]}; FCS = #1 (FCS + src_add[47:40]); + @(posedge clk_drvmon); + end + + 1: begin + drv_data = #1 {4'd0, src_add[35:32]}; + @(posedge clk_drvmon); + drv_data = #1 {4'd0, src_add[39:36]}; FCS = #1 (FCS + src_add[39:32]); + @(posedge clk_drvmon); + end + + 2: begin + drv_data = #1 {4'd0, src_add[27:24]}; + @(posedge clk_drvmon); + drv_data = #1 {4'd0, src_add[31:28]}; FCS = #1 (FCS + src_add[31:24]); + @(posedge clk_drvmon); + end + + 3: begin + drv_data = #1 {4'd0, src_add[19:16]}; + @(posedge clk_drvmon); + drv_data = #1 {4'd0, src_add[23:20]}; FCS = #1 (FCS + src_add[23:16]); + @(posedge clk_drvmon); + end + + 4: begin + drv_data = #1 {4'd0, src_add[11:8]}; + @(posedge clk_drvmon); + drv_data = #1 {4'd0, src_add[15:12]}; FCS = #1 (FCS + src_add[15:8]); + @(posedge clk_drvmon); + end + + 5: begin + drv_data = #1 {4'd0, src_add[3:0]}; + @(posedge clk_drvmon); + drv_data = #1 {4'd0, src_add[7:4]}; FCS = #1 (FCS + src_add[7:0]); + @(posedge clk_drvmon); + end + endcase + end +end + +// Put Length //////////////////////// + if (GBspeed_drvmon) begin + drv_en = #1 1'b1; + drv_er = #1 1'b0; + drv_data = #1 payld_len[15:8]; + FCS = #1 FCS + payld_len[15:8]; + @(posedge clk_drvmon); + drv_en = #1 1'b1; + drv_er = #1 1'b0; + drv_data = #1 payld_len[7:0]; + FCS = #1 FCS + payld_len[7:0]; + @(posedge clk_drvmon); + end + else begin + drv_en = #1 1'b1; + drv_er = #1 1'b0; + drv_data = #1 {4'd0, payld_len[11:8]}; + @(posedge clk_drvmon); + drv_en = #1 1'b1; + drv_er = #1 1'b0; + drv_data = #1 {4'd0, payld_len[15:12]}; + FCS = #1 FCS + payld_len[15:8]; + @(posedge clk_drvmon); + + drv_en = #1 1'b1; + drv_er = #1 1'b0; + drv_data = #1 {4'd0, payld_len[3:0]}; + @(posedge clk_drvmon); + drv_en = #1 1'b1; + drv_er = #1 1'b0; + drv_data = #1 {4'd0, payld_len[7:4]}; + FCS = #1 FCS + payld_len[7:0]; + @(posedge clk_drvmon); + end + +// Put Sequence Num (part of the payload) //// + if (GBspeed_drvmon) begin + drv_en = #1 1'b1; + drv_er = #1 1'b0; + drv_data = #1 sequence_num[7:0]; + FCS = #1 FCS + sequence_num[7:0]; + @(posedge clk_drvmon); + end + else begin + drv_en = #1 1'b1; + drv_er = #1 1'b0; + drv_data = #1 {4'd0, sequence_num[3:0]}; + @(posedge clk_drvmon); + drv_en = #1 1'b1; + drv_er = #1 1'b0; + drv_data = #1 {4'd0, sequence_num[7:4]}; + FCS = #1 FCS + sequence_num[7:0]; + @(posedge clk_drvmon); + end + +// Put Payload /////////////////////// +for(j = 1; j < payld_len; j = j+1) begin + if (GBspeed_drvmon) begin + drv_en = #1 1'b1; + drv_er = #1 1'b0; + drv_data = #1 j; + FCS = #1 FCS + j[7:0]; + @(posedge clk_drvmon); + end + else begin + drv_en = #1 1'b1; + drv_er = #1 1'b0; + drv_data = #1 {4'd0, j[3:0]}; // low nibble + @(posedge clk_drvmon); + + drv_en = #1 1'b1; + drv_er = #1 1'b0; + drv_data = #1 {4'd0, j[7:4]}; // high nibble + FCS = #1 FCS + j[7:0]; + @(posedge clk_drvmon); + end +end + +// Put FCS /////////////////////// + if (GBspeed_drvmon) begin + drv_en = #1 1'b1; + drv_er = #1 1'b0; + drv_data = #1 FCS[31:24]; + @(posedge clk_drvmon); + drv_en = #1 1'b1; + drv_er = #1 1'b0; + drv_data = #1 FCS[23:16]; + @(posedge clk_drvmon); + drv_en = #1 1'b1; + drv_er = #1 1'b0; + drv_data = #1 FCS[15:8]; + @(posedge clk_drvmon); + drv_en = #1 1'b1; + drv_er = #1 1'b0; + drv_data = #1 FCS[7:0]; + @(posedge clk_drvmon); + end + else begin + drv_en = #1 1'b1; + drv_er = #1 1'b0; + drv_data = #1 {4'd0, FCS[27:24]}; + @(posedge clk_drvmon); + drv_en = #1 1'b1; + drv_er = #1 1'b0; + drv_data = #1 {4'd0, FCS[31:28]}; + @(posedge clk_drvmon); + + drv_en = #1 1'b1; + drv_er = #1 1'b0; + drv_data = #1 {4'd0, FCS[19:16]}; + @(posedge clk_drvmon); + drv_en = #1 1'b1; + drv_er = #1 1'b0; + drv_data = #1 {4'd0, FCS[23:20]}; + @(posedge clk_drvmon); + + drv_en = #1 1'b1; + drv_er = #1 1'b0; + drv_data = #1 {4'd0, FCS[11:8]}; + @(posedge clk_drvmon); + drv_en = #1 1'b1; + drv_er = #1 1'b0; + drv_data = #1 {4'd0, FCS[15:12]}; + @(posedge clk_drvmon); + + drv_en = #1 1'b1; + drv_er = #1 1'b0; + drv_data = #1 {4'd0, FCS[3:0]}; + @(posedge clk_drvmon); + drv_en = #1 1'b1; + drv_er = #1 1'b0; + drv_data = #1 {4'd0, FCS[7:4]}; + @(posedge clk_drvmon); + end + +// Put Carrier Extension /////////////////////// +// +// +//////////////////////////////////////////////// + +// Put Inter packet gap /////////// +for(i = 1; i <= 12; i = i+1) begin + drv_en = #1 1'b0; + drv_er = #1 1'b0; + @(posedge clk_drvmon); +end + + + +end +endtask + + + + + +task hb_write; + +input [9:0] address; +input [7:0] data; + +begin + @(posedge hclk); + + #1 + haddr[9:0] = address[9:0]; + hdatain[7:0] = data[7:0]; + + hcs_n = 1'b0; // assert + hread_n = 1'b1; + hwrite_n = 1'b0; // assert + hdataout_en_n = 1'b1; + + // wait for an acknowledge + @ (negedge hready_n); + + @(posedge hclk); + #1 + hcs_n = 1'b1; + hread_n = 1'b1; + hwrite_n = 1'b1; + hdataout_en_n = 1'b1; + + @(posedge hclk); + #1 + hcs_n = 1'b1; + hread_n = 1'b1; + hwrite_n = 1'b1; + hdataout_en_n = 1'b1; +end + +endtask + + + + + +task hb_read; + +input [9:0] address; +input [7:0] expected_data; +input [7:0] mask; + +reg [7:0] read_data; + +begin + @(posedge hclk); + + #1 + haddr[9:0] = address[9:0]; + + hcs_n = 1'b0; // assert + hread_n = 1'b0; + hwrite_n = 1'b1; + hdataout_en_n = 1'b0; // assert + + // wait for an acknowledge + @ (negedge hready_n); + + @(posedge hclk); + #1 + read_data[7:0] = hdataout[7:0]; + hcs_n = 1'b1; + hread_n = 1'b1; + hwrite_n = 1'b1; + hdataout_en_n = 1'b1; + + if ((read_data & mask) != (expected_data & mask)) begin + $display ("ERROR : Read-data mismatch at address %h", address) ; + $display (" : Expected Data : %h. Read Data : %h.", (expected_data & mask), read_data ) ; + end + else begin + $display (" INFO : Read Check Passed at address %h", address) ; + end + + + @(posedge hclk); + #1 + hcs_n = 1'b1; + hread_n = 1'b1; + hwrite_n = 1'b1; + hdataout_en_n = 1'b1; +end + +endtask + + + + + +endmodule +// ============================================================================= + diff --git a/gbe/cores/sgmii/sgmii_channel_smi/stdout.log.bak.1 b/gbe/cores/sgmii/sgmii_channel_smi/stdout.log.bak.1 new file mode 100644 index 0000000..2960279 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_channel_smi/stdout.log.bak.1 @@ -0,0 +1,75 @@ +Running in Lattice mode + +Starting: /home/soft/lattice/diamond/3.10_x64/synpbase/linux_a_64/mbin/synbatch +Install: /home/soft/lattice/diamond/3.10_x64/synpbase +Hostname: lxhadeb07 +Date: Mon Apr 29 14:09:33 2019 +Version: M-2017.03L-SP1-1 + +Arguments: -product synplify_pro -batch syn_results/sgmii_channel_smi.prj +ProductType: synplify_pro + + + + +log file: "/home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/sgmii_channel_smi.srr" +Running: syn_results in foreground + +Running sgmii_channel_smi|syn_results + +Running: compile (Compile) on sgmii_channel_smi|syn_results +# Mon Apr 29 14:09:33 2019 + +Running: compile_flow (Compile Process) on sgmii_channel_smi|syn_results +# Mon Apr 29 14:09:33 2019 + +Running: compiler (Compile Input) on sgmii_channel_smi|syn_results +# Mon Apr 29 14:09:33 2019 +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/synwork/sgmii_channel_smi_comp.srs to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/sgmii_channel_smi.srs + +compiler completed +# Mon Apr 29 14:09:36 2019 + +Return Code: 0 +Run Time:00h:00m:03s + +Running: multi_srs_gen (Multi-srs Generator) on sgmii_channel_smi|syn_results +# Mon Apr 29 14:09:36 2019 + +multi_srs_gen completed +# Mon Apr 29 14:09:36 2019 + +Return Code: 0 +Run Time:00h:00m:00s +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/synwork/sgmii_channel_smi_mult.srs to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/sgmii_channel_smi.srs +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/sgmii_channel_smi.srr to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/sgmii_channel_smi.srf +Complete: Compile Process on sgmii_channel_smi|syn_results + +Running: premap (Pre-mapping) on sgmii_channel_smi|syn_results +# Mon Apr 29 14:09:36 2019 + +premap completed with warnings +# Mon Apr 29 14:09:37 2019 + +Return Code: 1 +Run Time:00h:00m:01s +Complete: Compile on sgmii_channel_smi|syn_results + +Running: map (Map) on sgmii_channel_smi|syn_results +# Mon Apr 29 14:09:37 2019 +License granted for 4 parallel jobs + +Running: fpga_mapper (Map & Optimize) on sgmii_channel_smi|syn_results +# Mon Apr 29 14:09:37 2019 +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/synwork/sgmii_channel_smi_m.srm to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/sgmii_channel_smi.srm + +fpga_mapper completed with warnings +# Mon Apr 29 14:09:40 2019 + +Return Code: 1 +Run Time:00h:00m:03s +Complete: Map on sgmii_channel_smi|syn_results +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/sgmii_channel_smi.srr to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/sgmii_channel_smi.srf +Complete: Logic Synthesis on sgmii_channel_smi|syn_results +exit status=0 +exit status=0 diff --git a/gbe/cores/sgmii/sgmii_channel_smi/stdout.log.bak.2 b/gbe/cores/sgmii/sgmii_channel_smi/stdout.log.bak.2 new file mode 100644 index 0000000..1ac7cca --- /dev/null +++ b/gbe/cores/sgmii/sgmii_channel_smi/stdout.log.bak.2 @@ -0,0 +1,75 @@ +Running in Lattice mode + +Starting: /home/soft/lattice/diamond/3.10_x64/synpbase/linux_a_64/mbin/synbatch +Install: /home/soft/lattice/diamond/3.10_x64/synpbase +Hostname: lxhadeb07 +Date: Mon Apr 29 14:08:39 2019 +Version: M-2017.03L-SP1-1 + +Arguments: -product synplify_pro -batch syn_results/sgmii_channel_smi.prj +ProductType: synplify_pro + + + + +log file: "/home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/sgmii_channel_smi.srr" +Running: syn_results in foreground + +Running sgmii_channel_smi|syn_results + +Running: compile (Compile) on sgmii_channel_smi|syn_results +# Mon Apr 29 14:08:39 2019 + +Running: compile_flow (Compile Process) on sgmii_channel_smi|syn_results +# Mon Apr 29 14:08:39 2019 + +Running: compiler (Compile Input) on sgmii_channel_smi|syn_results +# Mon Apr 29 14:08:39 2019 +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/synwork/sgmii_channel_smi_comp.srs to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/sgmii_channel_smi.srs + +compiler completed +# Mon Apr 29 14:08:41 2019 + +Return Code: 0 +Run Time:00h:00m:02s + +Running: multi_srs_gen (Multi-srs Generator) on sgmii_channel_smi|syn_results +# Mon Apr 29 14:08:41 2019 + +multi_srs_gen completed +# Mon Apr 29 14:08:42 2019 + +Return Code: 0 +Run Time:00h:00m:01s +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/synwork/sgmii_channel_smi_mult.srs to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/sgmii_channel_smi.srs +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/sgmii_channel_smi.srr to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/sgmii_channel_smi.srf +Complete: Compile Process on sgmii_channel_smi|syn_results + +Running: premap (Pre-mapping) on sgmii_channel_smi|syn_results +# Mon Apr 29 14:08:42 2019 + +premap completed with warnings +# Mon Apr 29 14:08:43 2019 + +Return Code: 1 +Run Time:00h:00m:01s +Complete: Compile on sgmii_channel_smi|syn_results + +Running: map (Map) on sgmii_channel_smi|syn_results +# Mon Apr 29 14:08:43 2019 +License granted for 4 parallel jobs + +Running: fpga_mapper (Map & Optimize) on sgmii_channel_smi|syn_results +# Mon Apr 29 14:08:43 2019 +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/synwork/sgmii_channel_smi_m.srm to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/sgmii_channel_smi.srm + +fpga_mapper completed with warnings +# Mon Apr 29 14:08:46 2019 + +Return Code: 1 +Run Time:00h:00m:03s +Complete: Map on sgmii_channel_smi|syn_results +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/sgmii_channel_smi.srr to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/sgmii_channel_smi.srf +Complete: Logic Synthesis on sgmii_channel_smi|syn_results +exit status=0 +exit status=0 diff --git a/gbe/cores/sgmii/sgmii_channel_smi/stdout.log.bak.3 b/gbe/cores/sgmii/sgmii_channel_smi/stdout.log.bak.3 new file mode 100644 index 0000000..1ac7cca --- /dev/null +++ b/gbe/cores/sgmii/sgmii_channel_smi/stdout.log.bak.3 @@ -0,0 +1,75 @@ +Running in Lattice mode + +Starting: /home/soft/lattice/diamond/3.10_x64/synpbase/linux_a_64/mbin/synbatch +Install: /home/soft/lattice/diamond/3.10_x64/synpbase +Hostname: lxhadeb07 +Date: Mon Apr 29 14:08:39 2019 +Version: M-2017.03L-SP1-1 + +Arguments: -product synplify_pro -batch syn_results/sgmii_channel_smi.prj +ProductType: synplify_pro + + + + +log file: "/home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/sgmii_channel_smi.srr" +Running: syn_results in foreground + +Running sgmii_channel_smi|syn_results + +Running: compile (Compile) on sgmii_channel_smi|syn_results +# Mon Apr 29 14:08:39 2019 + +Running: compile_flow (Compile Process) on sgmii_channel_smi|syn_results +# Mon Apr 29 14:08:39 2019 + +Running: compiler (Compile Input) on sgmii_channel_smi|syn_results +# Mon Apr 29 14:08:39 2019 +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/synwork/sgmii_channel_smi_comp.srs to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/sgmii_channel_smi.srs + +compiler completed +# Mon Apr 29 14:08:41 2019 + +Return Code: 0 +Run Time:00h:00m:02s + +Running: multi_srs_gen (Multi-srs Generator) on sgmii_channel_smi|syn_results +# Mon Apr 29 14:08:41 2019 + +multi_srs_gen completed +# Mon Apr 29 14:08:42 2019 + +Return Code: 0 +Run Time:00h:00m:01s +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/synwork/sgmii_channel_smi_mult.srs to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/sgmii_channel_smi.srs +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/sgmii_channel_smi.srr to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/sgmii_channel_smi.srf +Complete: Compile Process on sgmii_channel_smi|syn_results + +Running: premap (Pre-mapping) on sgmii_channel_smi|syn_results +# Mon Apr 29 14:08:42 2019 + +premap completed with warnings +# Mon Apr 29 14:08:43 2019 + +Return Code: 1 +Run Time:00h:00m:01s +Complete: Compile on sgmii_channel_smi|syn_results + +Running: map (Map) on sgmii_channel_smi|syn_results +# Mon Apr 29 14:08:43 2019 +License granted for 4 parallel jobs + +Running: fpga_mapper (Map & Optimize) on sgmii_channel_smi|syn_results +# Mon Apr 29 14:08:43 2019 +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/synwork/sgmii_channel_smi_m.srm to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/sgmii_channel_smi.srm + +fpga_mapper completed with warnings +# Mon Apr 29 14:08:46 2019 + +Return Code: 1 +Run Time:00h:00m:03s +Complete: Map on sgmii_channel_smi|syn_results +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/sgmii_channel_smi.srr to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/sgmii_channel_smi.srf +Complete: Logic Synthesis on sgmii_channel_smi|syn_results +exit status=0 +exit status=0 diff --git a/gbe/cores/sgmii/sgmii_channel_smi/stdout.log.bak.4 b/gbe/cores/sgmii/sgmii_channel_smi/stdout.log.bak.4 new file mode 100644 index 0000000..a285c50 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_channel_smi/stdout.log.bak.4 @@ -0,0 +1,75 @@ +Running in Lattice mode + +Starting: /home/soft/lattice/diamond/3.10_x64/synpbase/linux_a_64/mbin/synbatch +Install: /home/soft/lattice/diamond/3.10_x64/synpbase +Hostname: lxhadeb07 +Date: Mon Apr 29 13:36:21 2019 +Version: M-2017.03L-SP1-1 + +Arguments: -product synplify_pro -batch syn_results/sgmii_channel_smi.prj +ProductType: synplify_pro + + + + +log file: "/home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/sgmii_channel_smi.srr" +Running: syn_results in foreground + +Running sgmii_channel_smi|syn_results + +Running: compile (Compile) on sgmii_channel_smi|syn_results +# Mon Apr 29 13:36:21 2019 + +Running: compile_flow (Compile Process) on sgmii_channel_smi|syn_results +# Mon Apr 29 13:36:21 2019 + +Running: compiler (Compile Input) on sgmii_channel_smi|syn_results +# Mon Apr 29 13:36:21 2019 +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/synwork/sgmii_channel_smi_comp.srs to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/sgmii_channel_smi.srs + +compiler completed +# Mon Apr 29 13:36:24 2019 + +Return Code: 0 +Run Time:00h:00m:03s + +Running: multi_srs_gen (Multi-srs Generator) on sgmii_channel_smi|syn_results +# Mon Apr 29 13:36:24 2019 + +multi_srs_gen completed +# Mon Apr 29 13:36:24 2019 + +Return Code: 0 +Run Time:00h:00m:00s +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/synwork/sgmii_channel_smi_mult.srs to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/sgmii_channel_smi.srs +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/sgmii_channel_smi.srr to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/sgmii_channel_smi.srf +Complete: Compile Process on sgmii_channel_smi|syn_results + +Running: premap (Pre-mapping) on sgmii_channel_smi|syn_results +# Mon Apr 29 13:36:24 2019 + +premap completed with warnings +# Mon Apr 29 13:36:25 2019 + +Return Code: 1 +Run Time:00h:00m:01s +Complete: Compile on sgmii_channel_smi|syn_results + +Running: map (Map) on sgmii_channel_smi|syn_results +# Mon Apr 29 13:36:25 2019 +License granted for 4 parallel jobs + +Running: fpga_mapper (Map & Optimize) on sgmii_channel_smi|syn_results +# Mon Apr 29 13:36:25 2019 +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/synwork/sgmii_channel_smi_m.srm to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/sgmii_channel_smi.srm + +fpga_mapper completed with warnings +# Mon Apr 29 13:36:28 2019 + +Return Code: 1 +Run Time:00h:00m:03s +Complete: Map on sgmii_channel_smi|syn_results +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/sgmii_channel_smi.srr to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/sgmii_channel_smi.srf +Complete: Logic Synthesis on sgmii_channel_smi|syn_results +exit status=0 +exit status=0 diff --git a/gbe/cores/sgmii/sgmii_channel_smi/stdout.log.bak.5 b/gbe/cores/sgmii/sgmii_channel_smi/stdout.log.bak.5 new file mode 100644 index 0000000..a285c50 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_channel_smi/stdout.log.bak.5 @@ -0,0 +1,75 @@ +Running in Lattice mode + +Starting: /home/soft/lattice/diamond/3.10_x64/synpbase/linux_a_64/mbin/synbatch +Install: /home/soft/lattice/diamond/3.10_x64/synpbase +Hostname: lxhadeb07 +Date: Mon Apr 29 13:36:21 2019 +Version: M-2017.03L-SP1-1 + +Arguments: -product synplify_pro -batch syn_results/sgmii_channel_smi.prj +ProductType: synplify_pro + + + + +log file: "/home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/sgmii_channel_smi.srr" +Running: syn_results in foreground + +Running sgmii_channel_smi|syn_results + +Running: compile (Compile) on sgmii_channel_smi|syn_results +# Mon Apr 29 13:36:21 2019 + +Running: compile_flow (Compile Process) on sgmii_channel_smi|syn_results +# Mon Apr 29 13:36:21 2019 + +Running: compiler (Compile Input) on sgmii_channel_smi|syn_results +# Mon Apr 29 13:36:21 2019 +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/synwork/sgmii_channel_smi_comp.srs to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/sgmii_channel_smi.srs + +compiler completed +# Mon Apr 29 13:36:24 2019 + +Return Code: 0 +Run Time:00h:00m:03s + +Running: multi_srs_gen (Multi-srs Generator) on sgmii_channel_smi|syn_results +# Mon Apr 29 13:36:24 2019 + +multi_srs_gen completed +# Mon Apr 29 13:36:24 2019 + +Return Code: 0 +Run Time:00h:00m:00s +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/synwork/sgmii_channel_smi_mult.srs to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/sgmii_channel_smi.srs +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/sgmii_channel_smi.srr to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/sgmii_channel_smi.srf +Complete: Compile Process on sgmii_channel_smi|syn_results + +Running: premap (Pre-mapping) on sgmii_channel_smi|syn_results +# Mon Apr 29 13:36:24 2019 + +premap completed with warnings +# Mon Apr 29 13:36:25 2019 + +Return Code: 1 +Run Time:00h:00m:01s +Complete: Compile on sgmii_channel_smi|syn_results + +Running: map (Map) on sgmii_channel_smi|syn_results +# Mon Apr 29 13:36:25 2019 +License granted for 4 parallel jobs + +Running: fpga_mapper (Map & Optimize) on sgmii_channel_smi|syn_results +# Mon Apr 29 13:36:25 2019 +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/synwork/sgmii_channel_smi_m.srm to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/sgmii_channel_smi.srm + +fpga_mapper completed with warnings +# Mon Apr 29 13:36:28 2019 + +Return Code: 1 +Run Time:00h:00m:03s +Complete: Map on sgmii_channel_smi|syn_results +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/sgmii_channel_smi.srr to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_channel_smi/syn_results/sgmii_channel_smi.srf +Complete: Logic Synthesis on sgmii_channel_smi|syn_results +exit status=0 +exit status=0 diff --git a/gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5.cmd b/gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5.cmd new file mode 100644 index 0000000..438b319 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5.cmd @@ -0,0 +1,18 @@ +PROJECT: sgmii_ecp5 + working_path: "/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results" + module: sgmii_ecp5 + verilog_file_list: "/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd" "/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v" + vlog_std_v2001: true + constraint_file_name: "/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.fdc" + suffix_name: edn + output_file_name: sgmii_ecp5 + write_prf: true + disable_io_insertion: true + force_gsr: false + frequency: 100 + fanout_limit: 50 + retiming: false + pipe: false + part: LFE5UM-85F + speed_grade: 8 + diff --git a/gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5.cst b/gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5.cst new file mode 100644 index 0000000..571fc3a --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5.cst @@ -0,0 +1,3 @@ +Date=05/10/2019 +Time=09:02:05 + diff --git a/gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5.fdc b/gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5.fdc new file mode 100644 index 0000000..5424a21 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5.fdc @@ -0,0 +1,3 @@ +###==== Start Generation + +define_attribute {i:Lane0} {loc} {DCU1_CH1} diff --git a/gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5.lpc b/gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5.lpc new file mode 100644 index 0000000..24a8719 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5.lpc @@ -0,0 +1,97 @@ +[Device] +Family=ecp5um +OperatingCondition=COM +Package=CABGA756 +PartName=LFE5UM-85F-8BG756C +PartType=LFE5UM-85F +SpeedGrade=8 +Status=P +[IP] +CoreName=PCS +CoreRevision=8.2 +CoreStatus=Demo +CoreType=LPM +Date=05/10/2019 +ModuleName=sgmii_ecp5 +ParameterFileVersion=1.0 +SourceFormat=vhdl +Time=09:02:05 +VendorName=Lattice Semiconductor Corporation +[Parameters] +;ACHARA=0 00H +;ACHARB=0 00H +;ACHARM=0 00H +;RXMCAENABLE=Disabled +CDRLOLACTION=Full Recalibration +CDRLOLRANGE=0 +CDR_MAX_RATE=1.25 +CDR_MULT=10X +CDR_REF_RATE=125.0000 +CH_MODE=Rx and Tx +Destination=Synplicity +EDIF=1 +Expression=BusA(0 to 7) +IO=0 +IO_TYPE=GbE +LEQ=0 +LOOPBACK=Disabled +LOSPORT=Enabled +NUM_CHS=1 +Order=Big Endian [MSB:LSB] +PPORT_RX_RDY=Enabled +PPORT_TX_RDY=Enabled +PROTOCOL=GbE +PWAIT_RX_RDY=3000 +PWAIT_TX_RDY=3000 +RCSRC=Disabled +REFCLK_RATE=125.0000 +RSTSEQSEL=Enabled +RX8B10B=Enabled +RXCOMMAA=1010000011 +RXCOMMAB=0101111100 +RXCOMMAM=1111111111 +RXCOUPLING=AC +RXCTC=Enabled +RXCTCBYTEN=0 00H +RXCTCBYTEN1=0 00H +RXCTCBYTEN2=1 BCH +RXCTCBYTEN3=0 50H +RXCTCMATCHPATTERN=M2-S2 +RXDIFFTERM=50 ohms +RXFIFO_ENABLE=Enabled +RXINVPOL=Non-invert +RXLDR=Off +RXLOSTHRESHOLD=2 +RXLSM=Enabled +RXSC=K28P5 +RXWA=Barrel Shift +RX_DATA_WIDTH=8/10-Bit +RX_FICLK_RATE=125.0000 +RX_LINE_RATE=1.2500 +RX_RATE_DIV=Full Rate +SCIPORT=Enabled +SOFTLOL=Enabled +TX8B10B=Enabled +TXAMPLITUDE=1100 +TXDEPOST=Disabled +TXDEPRE=Disabled +TXDIFFTERM=50 ohms +TXFIFO_ENABLE=Enabled +TXINVPOL=Non-invert +TXLDR=Off +TXPLLLOLTHRESHOLD=0 +TXPLLMULT=10X +TX_DATA_WIDTH=8/10-Bit +TX_FICLK_RATE=125.0000 +TX_LINE_RATE=1.2500 +TX_MAX_RATE=1.25 +TX_RATE_DIV=Full Rate +VHDL=1 +Verilog=0 +[FilesGenerated] +sgmii_ecp5.pp=pp +sgmii_ecp5.sym=sym +sgmii_ecp5.tft=tft +sgmii_ecp5.txt=pcs_module +[SYSTEMPNR] +LN0=DCU1_CH1 diff --git a/gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5.ngd b/gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5.ngd new file mode 100644 index 0000000000000000000000000000000000000000..fd4d8d5da678c0ab3119ebd0ef13c875454df15b GIT binary patch literal 393974 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�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%0A3GD(Xci%=LRuNhr0Q0dX5lGR)+Mh_ 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5.ngo b/gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5.ngo new file mode 100644 index 0000000000000000000000000000000000000000..f9dbbf33b0024a068de56c6a7e63807966903280 GIT binary patch literal 203442 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�Z(7oJt z0Q7ub?kms>L*$Ks?&r3zK@akB2SL|0@_qyQ9F7iw{3he2NuCG;)mi@5Cw=x@8p zb`nKY{)MFLw;|bx!jB4EhFci-Nw9m-_|u z%~A6H3i`GPq2EB??k4m*=sQe8$3fp^5c&i3&s0JuK;IJ~bQ1K>O+tTy{)Iv4FE+S_ z&?z>shS1+^Pz|B~vH>-O{$Yb@2%TnQXBeu6Q~u5W-<2*#@EW*k}|&I7FsUAyk`WJeGYM3 zBR1xOY}c_N7KE+`98p2&1~!0#(2Z=o1fj-kcmyFF;&a+b=q5J!fzZuttOKE@Y-j_a zTi8ejLbtMk3xt}naSDVmBlmKRP;)j4flv#;K?j6xV`B^mwPZsI2;I&`5D;nwIADO# z9c+96q1J$70|?!T*##=0Hf&4)p}W|4077?T{(zGZj?s8PC3G(v13>6Lmj6#kX1V`_ z?q_-bgxa#4e?sk8zCWP{Sgt=Id|tOgCe)tg_!GkCb*p$}d|tPP*XY3V`pMgo<@6K6 z=XIt*s1wWOCxp-Iyu4gzmcvgrd|ubZB!tiF+VQ&hysoxPwk|AZpU~qhU!TwufVujF zo@9CYgu1dEeL~$>em|)X6Vd>4*9qw?Z=KK-ma|T%l;x`vDr33o zgvwc-I-#j7N1f1%EI*ylG?trA=p~kyPUvNplTPRrmXA(oI?F{TG=t@#6Pn3#&&>JkDoX{ecOHSxbmPbzLEtW%0=xvriP6%_udxr?U!}7)nEoM36gx+QO;)Is4 WTya86S)MqdWq>*2gqE|E@c#qUrh(1? literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5.vhd b/gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5.vhd new file mode 100644 index 0000000..5cb3267 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5.vhd @@ -0,0 +1,433 @@ + +-- +-- Verific VHDL Description of module DCUA +-- + +-- DCUA is a black-box. Cannot print a valid VHDL entity description for it + +-- +-- Verific VHDL Description of module sgmii_ecp5rsl_core +-- + +-- sgmii_ecp5rsl_core is a black-box. Cannot print a valid VHDL entity description for it + +-- +-- Verific VHDL Description of module sgmii_ecp5sll_core +-- + +-- sgmii_ecp5sll_core is a black-box. Cannot print a valid VHDL entity description for it + +-- +-- Verific VHDL Description of module sgmii_ecp5 +-- + +library ieee ; +use ieee.std_logic_1164.all ; + +library ecp5um ; +use ecp5um.components.all ; + +entity sgmii_ecp5 is + port (hdoutp: out std_logic; + hdoutn: out std_logic; + hdinp: in std_logic; + hdinn: in std_logic; + rxrefclk: in std_logic; + tx_pclk: out std_logic; + txi_clk: in std_logic; + txdata: in std_logic_vector(7 downto 0); + tx_k: in std_logic_vector(0 downto 0); + xmit: in std_logic_vector(0 downto 0); + tx_disp_correct: in std_logic_vector(0 downto 0); + rxdata: out std_logic_vector(7 downto 0); + rx_k: out std_logic_vector(0 downto 0); + rx_disp_err: out std_logic_vector(0 downto 0); + rx_cv_err: out std_logic_vector(0 downto 0); + signal_detect_c: in std_logic; + rx_los_low_s: out std_logic; + lsm_status_s: out std_logic; + ctc_urun_s: out std_logic; + ctc_orun_s: out std_logic; + rx_cdr_lol_s: out std_logic; + ctc_ins_s: out std_logic; + ctc_del_s: out std_logic; + sli_rst: in std_logic; + tx_pwrup_c: in std_logic; + rx_pwrup_c: in std_logic; + sci_wrdata: in std_logic_vector(7 downto 0); + sci_addr: in std_logic_vector(5 downto 0); + sci_rddata: out std_logic_vector(7 downto 0); + sci_en_dual: in std_logic; + sci_sel_dual: in std_logic; + sci_en: in std_logic; + sci_sel: in std_logic; + sci_rd: in std_logic; + sci_wrn: in std_logic; + sci_int: out std_logic; + cyawstn: in std_logic; + serdes_pdb: in std_logic; + pll_refclki: in std_logic; + rsl_disable: in std_logic; + rsl_rst: in std_logic; + serdes_rst_dual_c: in std_logic; + rst_dual_c: in std_logic; + tx_serdes_rst_c: in std_logic; + tx_pcs_rst_c: in std_logic; + pll_lol: out std_logic; + rsl_tx_rdy: out std_logic; + rx_serdes_rst_c: in std_logic; + rx_pcs_rst_c: in std_logic; + rsl_rx_rdy: out std_logic + ); + +end entity sgmii_ecp5; + +architecture v1 of sgmii_ecp5 is + component sgmii_ecp5rsl_core is + generic (pnum_channels: integer := 1; + pprotocol: string := "GBE"; + pserdes_mode: string := "RX AND TX"; + pport_tx_rdy: string := "ENABLED"; + pwait_tx_rdy: integer := 3000; + pport_rx_rdy: string := "ENABLED"; + pwait_rx_rdy: integer := 3000); + port (rui_rst: in std_logic; -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(132) + rui_serdes_rst_dual_c: in std_logic; -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(133) + rui_rst_dual_c: in std_logic; -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(134) + rui_rsl_disable: in std_logic; -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(135) + rui_tx_ref_clk: in std_logic; -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(137) + rui_tx_serdes_rst_c: in std_logic; -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(138) + rui_tx_pcs_rst_c: in std_logic_vector(3 downto 0); -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(139) + rdi_pll_lol: in std_logic; -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(140) + rui_rx_ref_clk: in std_logic; -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(142) + rui_rx_serdes_rst_c: in std_logic_vector(3 downto 0); -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(143) + rui_rx_pcs_rst_c: in std_logic_vector(3 downto 0); -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(144) + rdi_rx_los_low_s: in std_logic_vector(3 downto 0); -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(145) + rdi_rx_cdr_lol_s: in std_logic_vector(3 downto 0); -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(146) + rdo_serdes_rst_dual_c: out std_logic; -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(149) + rdo_rst_dual_c: out std_logic; -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(150) + ruo_tx_rdy: out std_logic; -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(152) + rdo_tx_serdes_rst_c: out std_logic; -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(153) + rdo_tx_pcs_rst_c: out std_logic_vector(3 downto 0); -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(154) + ruo_rx_rdy: out std_logic; -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(156) + rdo_rx_serdes_rst_c: out std_logic_vector(3 downto 0); -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(157) + rdo_rx_pcs_rst_c: out std_logic_vector(3 downto 0) -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(158) + ); + + end component sgmii_ecp5rsl_core; -- syn_black_box=1 -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(88) + component sgmii_ecp5sll_core is + generic (PPROTOCOL: string := "GBE"; + PLOL_SETTING: integer := 0; + PDYN_RATE_CTRL: string := "DISABLED"; + PPCIE_MAX_RATE: string := "2.5"; + PDIFF_VAL_LOCK: integer := 39; + PDIFF_VAL_UNLOCK: integer := 78; + PPCLK_TC: integer := 131072; + PDIFF_DIV11_VAL_LOCK: integer := 0; + PDIFF_DIV11_VAL_UNLOCK: integer := 0; + PPCLK_DIV11_TC: integer := 0); + port (sli_rst: in std_logic; -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/sll_core_template.v(125) + sli_refclk: in std_logic; -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/sll_core_template.v(126) + sli_pclk: in std_logic; -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/sll_core_template.v(127) + sli_div2_rate: in std_logic; -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/sll_core_template.v(128) + sli_div11_rate: in std_logic; -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/sll_core_template.v(129) + sli_gear_mode: in std_logic; -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/sll_core_template.v(130) + sli_cpri_mode: in std_logic_vector(2 downto 0); -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/sll_core_template.v(131) + sli_pcie_mode: in std_logic; -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/sll_core_template.v(132) + slo_plol: out std_logic -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/sll_core_template.v(135) + ); + + end component sgmii_ecp5sll_core; -- syn_black_box=1 -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/sll_core_template.v(107) + signal n45,n44,n1,n2,n3,n4,tx_pclk_c,n5,n6,n7,n8,n9,n10,n11, + n12,n13,rx_los_low_s_c,n14,n15,rx_cdr_lol_s_c,rsl_tx_pcs_rst_c, + rsl_rx_pcs_rst_c,rsl_rx_serdes_rst_c,rsl_rst_dual_c,rsl_serdes_rst_dual_c, + rsl_tx_serdes_rst_c,n16,n17,n18,n19,n20,n21,n22,n23,n24,n25, + n26,n27,n28,n29,n30,n31,n32,n33,n34,n35,n36,n37,n38,n39, + n40,n41,n42,n43,n46,n103,n102,n47,n48,n49,n50,n51,n52,n53, + n54,n55,n56,n57,n58,n59,n60,n61,n62,n63,n64,n65,n66,n67, + n68,n69,n70,n71,n72,n73,n74,n75,n76,n77,n78,n79,n80,n81, + n82,n83,n84,n85,n86,n87,n88,n89,n90,n91,n92,n93,n94,n95, + n96,n97,n98,n99,n100,n101,n112,n111,n110,pll_lol_c,n122,n121, + n113,n114,n115,n116,n117,n118,n119,n120,\_Z\,n124,n123,gnd, + pwr : std_logic; + attribute LOC : string; + attribute LOC of DCU1_inst : label is "DCU1"; + attribute CHAN : string; + attribute CHAN of DCU1_inst : label is "CH1"; +begin + tx_pclk <= tx_pclk_c; + rx_los_low_s <= rx_los_low_s_c; + rx_cdr_lol_s <= rx_cdr_lol_s_c; + pll_lol <= pll_lol_c; + DCU1_inst: component DCUA generic map (D_MACROPDB=>"0b1",D_IB_PWDNB=>"0b1", + D_XGE_MODE=>"0b0",D_LOW_MARK=>"0d4",D_HIGH_MARK=>"0d12",D_BUS8BIT_SEL=>"0b0", + D_CDR_LOL_SET=>"0b00",D_TXPLL_PWDNB=>"0b1",D_BITCLK_LOCAL_EN=>"0b1", + D_BITCLK_ND_EN=>"0b0",D_BITCLK_FROM_ND_EN=>"0b0",D_SYNC_LOCAL_EN=>"0b1", + D_SYNC_ND_EN=>"0b0",CH1_UC_MODE=>"0b0",CH1_PCIE_MODE=>"0b0",CH1_RIO_MODE=>"0b0", + CH1_WA_MODE=>"0b0",CH1_INVERT_RX=>"0b0",CH1_INVERT_TX=>"0b0",CH1_PRBS_SELECTION=>"0b0", + CH1_GE_AN_ENABLE=>"0b0",CH1_PRBS_LOCK=>"0b0",CH1_PRBS_ENABLE=>"0b0", + CH1_ENABLE_CG_ALIGN=>"0b1",CH1_TX_GEAR_MODE=>"0b0",CH1_RX_GEAR_MODE=>"0b0", + CH1_PCS_DET_TIME_SEL=>"0b00",CH1_PCIE_EI_EN=>"0b0",CH1_TX_GEAR_BYPASS=>"0b0", + CH1_ENC_BYPASS=>"0b0",CH1_SB_BYPASS=>"0b0",CH1_RX_SB_BYPASS=>"0b0", + CH1_WA_BYPASS=>"0b0",CH1_DEC_BYPASS=>"0b0",CH1_CTC_BYPASS=>"0b0", + CH1_RX_GEAR_BYPASS=>"0b0",CH1_LSM_DISABLE=>"0b0",CH1_MATCH_2_ENABLE=>"0b1", + CH1_MATCH_4_ENABLE=>"0b0",CH1_MIN_IPG_CNT=>"0b11",CH1_CC_MATCH_1=>"0x000", + CH1_CC_MATCH_2=>"0x000",CH1_CC_MATCH_3=>"0x1BC",CH1_CC_MATCH_4=>"0x050", + CH1_UDF_COMMA_MASK=>"0x3ff",CH1_UDF_COMMA_A=>"0x283",CH1_UDF_COMMA_B=>"0x17C", + CH1_RX_DCO_CK_DIV=>"0b010",CH1_RCV_DCC_EN=>"0b0",CH1_TPWDNB=>"0b1", + CH1_RATE_MODE_TX=>"0b0",CH1_RTERM_TX=>"0d19",CH1_TX_CM_SEL=>"0b00", + CH1_TDRV_PRE_EN=>"0b0",CH1_TDRV_SLICE0_SEL=>"0b01",CH1_TDRV_SLICE1_SEL=>"0b00", + CH1_TDRV_SLICE2_SEL=>"0b01",CH1_TDRV_SLICE3_SEL=>"0b01",CH1_TDRV_SLICE4_SEL=>"0b01", + CH1_TDRV_SLICE5_SEL=>"0b01",CH1_TDRV_SLICE0_CUR=>"0b101",CH1_TDRV_SLICE1_CUR=>"0b000", + CH1_TDRV_SLICE2_CUR=>"0b11",CH1_TDRV_SLICE3_CUR=>"0b11",CH1_TDRV_SLICE4_CUR=>"0b11", + CH1_TDRV_SLICE5_CUR=>"0b00",CH1_TDRV_DAT_SEL=>"0b00",CH1_TX_DIV11_SEL=>"0b0", + CH1_RPWDNB=>"0b1",CH1_RATE_MODE_RX=>"0b0",CH1_RX_DIV11_SEL=>"0b0", + CH1_SEL_SD_RX_CLK=>"0b0",CH1_FF_RX_H_CLK_EN=>"0b0",CH1_FF_RX_F_CLK_DIS=>"0b0", + CH1_FF_TX_H_CLK_EN=>"0b0",CH1_FF_TX_F_CLK_DIS=>"0b0",CH1_TDRV_POST_EN=>"0b0", + CH1_TX_POST_SIGN=>"0b0",CH1_TX_PRE_SIGN=>"0b0",CH1_REQ_LVL_SET=>"0b00", + CH1_REQ_EN=>"0b1",CH1_RTERM_RX=>"0d22",CH1_RXTERM_CM=>"0b11",CH1_PDEN_SEL=>"0b1", + CH1_RXIN_CM=>"0b11",CH1_LEQ_OFFSET_SEL=>"0b0",CH1_LEQ_OFFSET_TRIM=>"0b000", + CH1_RLOS_SEL=>"0b1",CH1_RX_LOS_LVL=>"0b010",CH1_RX_LOS_CEQ=>"0b11", + CH1_RX_LOS_HYST_EN=>"0b0",CH1_RX_LOS_EN=>"0b1",CH1_LDR_RX2CORE_SEL=>"0b0", + CH1_LDR_CORE2TX_SEL=>"0b0",D_TX_MAX_RATE=>"1.25",CH1_CDR_MAX_RATE=>"1.25", + CH1_TXAMPLITUDE=>"0d1100",CH1_TXDEPRE=>"DISABLED",CH1_TXDEPOST=>"DISABLED", + CH1_PROTOCOL=>"GBE",D_ISETLOS=>"0d0",D_SETIRPOLY_AUX=>"0b00",D_SETICONST_AUX=>"0b00", + D_SETIRPOLY_CH=>"0b00",D_SETICONST_CH=>"0b00",D_REQ_ISET=>"0b000", + D_PD_ISET=>"0b00",D_DCO_CALIB_TIME_SEL=>"0b00",CH1_CDR_CNT4SEL=>"0b00", + CH1_CDR_CNT8SEL=>"0b00",CH1_DCOATDCFG=>"0b00",CH1_DCOATDDLY=>"0b00", + CH1_DCOBYPSATD=>"0b1",CH1_DCOCALDIV=>"0b001",CH1_DCOCTLGI=>"0b010", + CH1_DCODISBDAVOID=>"0b0",CH1_DCOFLTDAC=>"0b01",CH1_DCOFTNRG=>"0b110", + CH1_DCOIOSTUNE=>"0b000",CH1_DCOITUNE=>"0b00",CH1_DCOITUNE4LSB=>"0b111", + CH1_DCOIUPDNX2=>"0b1",CH1_DCONUOFLSB=>"0b101",CH1_DCOSCALEI=>"0b00", + CH1_DCOSTARTVAL=>"0b000",CH1_DCOSTEP=>"0b00",CH1_BAND_THRESHOLD=>"0d0", + CH1_AUTO_FACQ_EN=>"0b1",CH1_AUTO_CALIB_EN=>"0b1",CH1_CALIB_CK_MODE=>"0b0", + CH1_REG_BAND_OFFSET=>"0d0",CH1_REG_BAND_SEL=>"0d0",CH1_REG_IDAC_SEL=>"0d0", + CH1_REG_IDAC_EN=>"0b0",D_CMUSETISCL4VCO=>"0b000",D_CMUSETI4VCO=>"0b00", + D_CMUSETINITVCT=>"0b00",D_CMUSETZGM=>"0b000",D_CMUSETP2AGM=>"0b000", + D_CMUSETP1GM=>"0b000",D_CMUSETI4CPZ=>"0d3",D_CMUSETI4CPP=>"0d3",D_CMUSETICP4Z=>"0b101", + D_CMUSETICP4P=>"0b01",D_CMUSETBIASI=>"0b00",D_SETPLLRC=>"0d1",CH1_RX_RATE_SEL=>"0d8", + D_REFCK_MODE=>"0b001",D_TX_VCO_CK_DIV=>"0b010",D_PLL_LOL_SET=>"0b00", + D_RG_EN=>"0b0",D_RG_SET=>"0b00") + port map (CH0_HDINP=>n103,CH1_HDINP=>hdinp,CH0_HDINN=>n103,CH1_HDINN=>hdinn, + D_TXBIT_CLKP_FROM_ND=>n44,D_TXBIT_CLKN_FROM_ND=>n44,D_SYNC_ND=>n44,D_TXPLL_LOL_FROM_ND=>n44, + CH0_RX_REFCLK=>n103,CH1_RX_REFCLK=>rxrefclk,CH0_FF_RXI_CLK=>n102,CH1_FF_RXI_CLK=>tx_pclk_c, + CH0_FF_TXI_CLK=>n102,CH1_FF_TXI_CLK=>txi_clk,CH0_FF_EBRD_CLK=>n102,CH1_FF_EBRD_CLK=>tx_pclk_c, + CH0_FF_TX_D_0=>n103,CH1_FF_TX_D_0=>txdata(0),CH0_FF_TX_D_1=>n103,CH1_FF_TX_D_1=>txdata(1), + CH0_FF_TX_D_2=>n103,CH1_FF_TX_D_2=>txdata(2),CH0_FF_TX_D_3=>n103,CH1_FF_TX_D_3=>txdata(3), + CH0_FF_TX_D_4=>n103,CH1_FF_TX_D_4=>txdata(4),CH0_FF_TX_D_5=>n103,CH1_FF_TX_D_5=>txdata(5), + CH0_FF_TX_D_6=>n103,CH1_FF_TX_D_6=>txdata(6),CH0_FF_TX_D_7=>n103,CH1_FF_TX_D_7=>txdata(7), + CH0_FF_TX_D_8=>n103,CH1_FF_TX_D_8=>tx_k(0),CH0_FF_TX_D_9=>n103,CH1_FF_TX_D_9=>n44, + CH0_FF_TX_D_10=>n103,CH1_FF_TX_D_10=>xmit(0),CH0_FF_TX_D_11=>n103,CH1_FF_TX_D_11=>tx_disp_correct(0), + CH0_FF_TX_D_12=>n103,CH1_FF_TX_D_12=>n103,CH0_FF_TX_D_13=>n103,CH1_FF_TX_D_13=>n103, + CH0_FF_TX_D_14=>n103,CH1_FF_TX_D_14=>n103,CH0_FF_TX_D_15=>n103,CH1_FF_TX_D_15=>n103, + CH0_FF_TX_D_16=>n103,CH1_FF_TX_D_16=>n103,CH0_FF_TX_D_17=>n103,CH1_FF_TX_D_17=>n103, + CH0_FF_TX_D_18=>n103,CH1_FF_TX_D_18=>n103,CH0_FF_TX_D_19=>n103,CH1_FF_TX_D_19=>n103, + CH0_FF_TX_D_20=>n103,CH1_FF_TX_D_20=>n103,CH0_FF_TX_D_21=>n103,CH1_FF_TX_D_21=>n44, + CH0_FF_TX_D_22=>n103,CH1_FF_TX_D_22=>n103,CH0_FF_TX_D_23=>n103,CH1_FF_TX_D_23=>n103, + CH0_FFC_EI_EN=>n103,CH1_FFC_EI_EN=>n44,CH0_FFC_PCIE_DET_EN=>n103,CH1_FFC_PCIE_DET_EN=>n44, + CH0_FFC_PCIE_CT=>n103,CH1_FFC_PCIE_CT=>n44,CH0_FFC_SB_INV_RX=>n103,CH1_FFC_SB_INV_RX=>n103, + CH0_FFC_ENABLE_CGALIGN=>n103,CH1_FFC_ENABLE_CGALIGN=>n103,CH0_FFC_SIGNAL_DETECT=>n103, + CH1_FFC_SIGNAL_DETECT=>signal_detect_c,CH0_FFC_FB_LOOPBACK=>n103,CH1_FFC_FB_LOOPBACK=>n44, + CH0_FFC_SB_PFIFO_LP=>n103,CH1_FFC_SB_PFIFO_LP=>n44,CH0_FFC_PFIFO_CLR=>n103, + CH1_FFC_PFIFO_CLR=>n44,CH0_FFC_RATE_MODE_RX=>n103,CH1_FFC_RATE_MODE_RX=>n44, + CH0_FFC_RATE_MODE_TX=>n103,CH1_FFC_RATE_MODE_TX=>n44,CH0_FFC_DIV11_MODE_RX=>n103, + CH1_FFC_DIV11_MODE_RX=>n44,CH0_FFC_DIV11_MODE_TX=>n103,CH1_FFC_DIV11_MODE_TX=>n44, + CH0_FFC_RX_GEAR_MODE=>n103,CH1_FFC_RX_GEAR_MODE=>n44,CH0_FFC_TX_GEAR_MODE=>n103, + CH1_FFC_TX_GEAR_MODE=>n44,CH0_FFC_LDR_CORE2TX_EN=>n103,CH1_FFC_LDR_CORE2TX_EN=>n103, + CH0_FFC_LANE_TX_RST=>n103,CH1_FFC_LANE_TX_RST=>rsl_tx_pcs_rst_c,CH0_FFC_LANE_RX_RST=>n103, + CH1_FFC_LANE_RX_RST=>rsl_rx_pcs_rst_c,CH0_FFC_RRST=>n103,CH1_FFC_RRST=>rsl_rx_serdes_rst_c, + CH0_FFC_TXPWDNB=>n103,CH1_FFC_TXPWDNB=>tx_pwrup_c,CH0_FFC_RXPWDNB=>n103, + CH1_FFC_RXPWDNB=>rx_pwrup_c,CH0_LDR_CORE2TX=>n103,CH1_LDR_CORE2TX=>n103, + D_SCIWDATA0=>sci_wrdata(0),D_SCIWDATA1=>sci_wrdata(1),D_SCIWDATA2=>sci_wrdata(2), + D_SCIWDATA3=>sci_wrdata(3),D_SCIWDATA4=>sci_wrdata(4),D_SCIWDATA5=>sci_wrdata(5), + D_SCIWDATA6=>sci_wrdata(6),D_SCIWDATA7=>sci_wrdata(7),D_SCIADDR0=>sci_addr(0), + D_SCIADDR1=>sci_addr(1),D_SCIADDR2=>sci_addr(2),D_SCIADDR3=>sci_addr(3), + D_SCIADDR4=>sci_addr(4),D_SCIADDR5=>sci_addr(5),D_SCIENAUX=>sci_en_dual, + D_SCISELAUX=>sci_sel_dual,CH0_SCIEN=>n103,CH1_SCIEN=>sci_en,CH0_SCISEL=>n103, + CH1_SCISEL=>sci_sel,D_SCIRD=>sci_rd,D_SCIWSTN=>sci_wrn,D_CYAWSTN=>cyawstn, + D_FFC_SYNC_TOGGLE=>n103,D_FFC_DUAL_RST=>rsl_rst_dual_c,D_FFC_MACRO_RST=>rsl_serdes_rst_dual_c, + D_FFC_MACROPDB=>serdes_pdb,D_FFC_TRST=>rsl_tx_serdes_rst_c,CH0_FFC_CDR_EN_BITSLIP=>n103, + CH1_FFC_CDR_EN_BITSLIP=>n44,D_SCAN_ENABLE=>n44,D_SCAN_IN_0=>n44,D_SCAN_IN_1=>n44, + D_SCAN_IN_2=>n44,D_SCAN_IN_3=>n44,D_SCAN_IN_4=>n44,D_SCAN_IN_5=>n44, + D_SCAN_IN_6=>n44,D_SCAN_IN_7=>n44,D_SCAN_MODE=>n44,D_SCAN_RESET=>n44, + D_CIN0=>n44,D_CIN1=>n44,D_CIN2=>n44,D_CIN3=>n44,D_CIN4=>n44,D_CIN5=>n44, + D_CIN6=>n44,D_CIN7=>n44,D_CIN8=>n44,D_CIN9=>n44,D_CIN10=>n44,D_CIN11=>n44, + CH0_HDOUTP=>n47,CH1_HDOUTP=>hdoutp,CH0_HDOUTN=>n48,CH1_HDOUTN=>hdoutn, + D_TXBIT_CLKP_TO_ND=>n1,D_TXBIT_CLKN_TO_ND=>n2,D_SYNC_PULSE2ND=>n3,D_TXPLL_LOL_TO_ND=>n4, + CH0_FF_RX_F_CLK=>n49,CH1_FF_RX_F_CLK=>n5,CH0_FF_RX_H_CLK=>n50,CH1_FF_RX_H_CLK=>n6, + CH0_FF_TX_F_CLK=>n51,CH1_FF_TX_F_CLK=>n7,CH0_FF_TX_H_CLK=>n52,CH1_FF_TX_H_CLK=>n8, + CH0_FF_RX_PCLK=>n53,CH1_FF_RX_PCLK=>n9,CH0_FF_TX_PCLK=>n54,CH1_FF_TX_PCLK=>tx_pclk_c, + CH0_FF_RX_D_0=>n55,CH1_FF_RX_D_0=>rxdata(0),CH0_FF_RX_D_1=>n56,CH1_FF_RX_D_1=>rxdata(1), + CH0_FF_RX_D_2=>n57,CH1_FF_RX_D_2=>rxdata(2),CH0_FF_RX_D_3=>n58,CH1_FF_RX_D_3=>rxdata(3), + CH0_FF_RX_D_4=>n59,CH1_FF_RX_D_4=>rxdata(4),CH0_FF_RX_D_5=>n60,CH1_FF_RX_D_5=>rxdata(5), + CH0_FF_RX_D_6=>n61,CH1_FF_RX_D_6=>rxdata(6),CH0_FF_RX_D_7=>n62,CH1_FF_RX_D_7=>rxdata(7), + CH0_FF_RX_D_8=>n63,CH1_FF_RX_D_8=>rx_k(0),CH0_FF_RX_D_9=>n64,CH1_FF_RX_D_9=>rx_disp_err(0), + CH0_FF_RX_D_10=>n65,CH1_FF_RX_D_10=>rx_cv_err(0),CH0_FF_RX_D_11=>n66, + CH1_FF_RX_D_11=>n10,CH0_FF_RX_D_12=>n67,CH1_FF_RX_D_12=>n68,CH0_FF_RX_D_13=>n69, + CH1_FF_RX_D_13=>n70,CH0_FF_RX_D_14=>n71,CH1_FF_RX_D_14=>n72,CH0_FF_RX_D_15=>n73, + CH1_FF_RX_D_15=>n74,CH0_FF_RX_D_16=>n75,CH1_FF_RX_D_16=>n76,CH0_FF_RX_D_17=>n77, + CH1_FF_RX_D_17=>n78,CH0_FF_RX_D_18=>n79,CH1_FF_RX_D_18=>n80,CH0_FF_RX_D_19=>n81, + CH1_FF_RX_D_19=>n82,CH0_FF_RX_D_20=>n83,CH1_FF_RX_D_20=>n84,CH0_FF_RX_D_21=>n85, + CH1_FF_RX_D_21=>n86,CH0_FF_RX_D_22=>n87,CH1_FF_RX_D_22=>n88,CH0_FF_RX_D_23=>n89, + CH1_FF_RX_D_23=>n11,CH0_FFS_PCIE_DONE=>n90,CH1_FFS_PCIE_DONE=>n12,CH0_FFS_PCIE_CON=>n91, + CH1_FFS_PCIE_CON=>n13,CH0_FFS_RLOS=>n92,CH1_FFS_RLOS=>rx_los_low_s_c, + CH0_FFS_LS_SYNC_STATUS=>n93,CH1_FFS_LS_SYNC_STATUS=>lsm_status_s,CH0_FFS_CC_UNDERRUN=>n94, + CH1_FFS_CC_UNDERRUN=>ctc_urun_s,CH0_FFS_CC_OVERRUN=>n95,CH1_FFS_CC_OVERRUN=>ctc_orun_s, + CH0_FFS_RXFBFIFO_ERROR=>n96,CH1_FFS_RXFBFIFO_ERROR=>n14,CH0_FFS_TXFBFIFO_ERROR=>n97, + CH1_FFS_TXFBFIFO_ERROR=>n15,CH0_FFS_RLOL=>n98,CH1_FFS_RLOL=>rx_cdr_lol_s_c, + CH0_FFS_SKP_ADDED=>n99,CH1_FFS_SKP_ADDED=>ctc_ins_s,CH0_FFS_SKP_DELETED=>n100, + CH1_FFS_SKP_DELETED=>ctc_del_s,CH0_LDR_RX2CORE=>n101,CH1_LDR_RX2CORE=>n112, + D_SCIRDATA0=>sci_rddata(0),D_SCIRDATA1=>sci_rddata(1),D_SCIRDATA2=>sci_rddata(2), + D_SCIRDATA3=>sci_rddata(3),D_SCIRDATA4=>sci_rddata(4),D_SCIRDATA5=>sci_rddata(5), + D_SCIRDATA6=>sci_rddata(6),D_SCIRDATA7=>sci_rddata(7),D_SCIINT=>sci_int, + D_SCAN_OUT_0=>n16,D_SCAN_OUT_1=>n17,D_SCAN_OUT_2=>n18,D_SCAN_OUT_3=>n19, + D_SCAN_OUT_4=>n20,D_SCAN_OUT_5=>n21,D_SCAN_OUT_6=>n22,D_SCAN_OUT_7=>n23, + D_COUT0=>n24,D_COUT1=>n25,D_COUT2=>n26,D_COUT3=>n27,D_COUT4=>n28,D_COUT5=>n29, + D_COUT6=>n30,D_COUT7=>n31,D_COUT8=>n32,D_COUT9=>n33,D_COUT10=>n34,D_COUT11=>n35, + D_COUT12=>n36,D_COUT13=>n37,D_COUT14=>n38,D_COUT15=>n39,D_COUT16=>n40, + D_COUT17=>n41,D_COUT18=>n42,D_COUT19=>n43,D_REFCLKI=>pll_refclki,D_FFS_PLOL=>n46); + n45 <= '1' ; + n44 <= '0' ; + n1 <= 'Z' ; + n2 <= 'Z' ; + n3 <= 'Z' ; + n4 <= 'Z' ; + n5 <= 'Z' ; + n6 <= 'Z' ; + n7 <= 'Z' ; + n8 <= 'Z' ; + n9 <= 'Z' ; + n10 <= 'Z' ; + n11 <= 'Z' ; + n12 <= 'Z' ; + n13 <= 'Z' ; + n14 <= 'Z' ; + n15 <= 'Z' ; + n16 <= 'Z' ; + n17 <= 'Z' ; + n18 <= 'Z' ; + n19 <= 'Z' ; + n20 <= 'Z' ; + n21 <= 'Z' ; + n22 <= 'Z' ; + n23 <= 'Z' ; + n24 <= 'Z' ; + n25 <= 'Z' ; + n26 <= 'Z' ; + n27 <= 'Z' ; + n28 <= 'Z' ; + n29 <= 'Z' ; + n30 <= 'Z' ; + n31 <= 'Z' ; + n32 <= 'Z' ; + n33 <= 'Z' ; + n34 <= 'Z' ; + n35 <= 'Z' ; + n36 <= 'Z' ; + n37 <= 'Z' ; + n38 <= 'Z' ; + n39 <= 'Z' ; + n40 <= 'Z' ; + n41 <= 'Z' ; + n42 <= 'Z' ; + n43 <= 'Z' ; + n46 <= 'Z' ; + n103 <= '0' ; + n102 <= '1' ; + n47 <= 'Z' ; + n48 <= 'Z' ; + n49 <= 'Z' ; + n50 <= 'Z' ; + n51 <= 'Z' ; + n52 <= 'Z' ; + n53 <= 'Z' ; + n54 <= 'Z' ; + n55 <= 'Z' ; + n56 <= 'Z' ; + n57 <= 'Z' ; + n58 <= 'Z' ; + n59 <= 'Z' ; + n60 <= 'Z' ; + n61 <= 'Z' ; + n62 <= 'Z' ; + n63 <= 'Z' ; + n64 <= 'Z' ; + n65 <= 'Z' ; + n66 <= 'Z' ; + n67 <= 'Z' ; + n68 <= 'Z' ; + n69 <= 'Z' ; + n70 <= 'Z' ; + n71 <= 'Z' ; + n72 <= 'Z' ; + n73 <= 'Z' ; + n74 <= 'Z' ; + n75 <= 'Z' ; + n76 <= 'Z' ; + n77 <= 'Z' ; + n78 <= 'Z' ; + n79 <= 'Z' ; + n80 <= 'Z' ; + n81 <= 'Z' ; + n82 <= 'Z' ; + n83 <= 'Z' ; + n84 <= 'Z' ; + n85 <= 'Z' ; + n86 <= 'Z' ; + n87 <= 'Z' ; + n88 <= 'Z' ; + n89 <= 'Z' ; + n90 <= 'Z' ; + n91 <= 'Z' ; + n92 <= 'Z' ; + n93 <= 'Z' ; + n94 <= 'Z' ; + n95 <= 'Z' ; + n96 <= 'Z' ; + n97 <= 'Z' ; + n98 <= 'Z' ; + n99 <= 'Z' ; + n100 <= 'Z' ; + n101 <= 'Z' ; + n112 <= 'Z' ; + rsl_inst: component sgmii_ecp5rsl_core port map (rui_rst=>rsl_rst,rui_serdes_rst_dual_c=>serdes_rst_dual_c, + rui_rst_dual_c=>rst_dual_c,rui_rsl_disable=>rsl_disable,rui_tx_ref_clk=>pll_refclki, + rui_tx_serdes_rst_c=>tx_serdes_rst_c,rui_tx_pcs_rst_c(3)=>n122, + rui_tx_pcs_rst_c(2)=>n122,rui_tx_pcs_rst_c(1)=>n122,rui_tx_pcs_rst_c(0)=>tx_pcs_rst_c, + rdi_pll_lol=>pll_lol_c,rui_rx_ref_clk=>rxrefclk,rui_rx_serdes_rst_c(3)=>n122, + rui_rx_serdes_rst_c(2)=>n122,rui_rx_serdes_rst_c(1)=>n122,rui_rx_serdes_rst_c(0)=>rx_serdes_rst_c, + rui_rx_pcs_rst_c(3)=>n122,rui_rx_pcs_rst_c(2)=>n122,rui_rx_pcs_rst_c(1)=>n122, + rui_rx_pcs_rst_c(0)=>rx_pcs_rst_c,rdi_rx_los_low_s(3)=>n122,rdi_rx_los_low_s(2)=>n122, + rdi_rx_los_low_s(1)=>n122,rdi_rx_los_low_s(0)=>rx_los_low_s_c, + rdi_rx_cdr_lol_s(3)=>n122,rdi_rx_cdr_lol_s(2)=>n122,rdi_rx_cdr_lol_s(1)=>n122, + rdi_rx_cdr_lol_s(0)=>rx_cdr_lol_s_c,rdo_serdes_rst_dual_c=>rsl_serdes_rst_dual_c, + rdo_rst_dual_c=>rsl_rst_dual_c,ruo_tx_rdy=>rsl_tx_rdy,rdo_tx_serdes_rst_c=>rsl_tx_serdes_rst_c, + rdo_tx_pcs_rst_c(3)=>n113,rdo_tx_pcs_rst_c(2)=>n114,rdo_tx_pcs_rst_c(1)=>n115, + rdo_tx_pcs_rst_c(0)=>rsl_tx_pcs_rst_c,ruo_rx_rdy=>rsl_rx_rdy,rdo_rx_serdes_rst_c(3)=>n116, + rdo_rx_serdes_rst_c(2)=>n117,rdo_rx_serdes_rst_c(1)=>n118,rdo_rx_serdes_rst_c(0)=>rsl_rx_serdes_rst_c, + rdo_rx_pcs_rst_c(3)=>n119,rdo_rx_pcs_rst_c(2)=>n120,rdo_rx_pcs_rst_c(1)=>\_Z\, + rdo_rx_pcs_rst_c(0)=>rsl_rx_pcs_rst_c); + n111 <= '1' ; + n110 <= '0' ; + n122 <= '0' ; + n121 <= '1' ; + n113 <= 'Z' ; + n114 <= 'Z' ; + n115 <= 'Z' ; + n116 <= 'Z' ; + n117 <= 'Z' ; + n118 <= 'Z' ; + n119 <= 'Z' ; + n120 <= 'Z' ; + \_Z\ <= 'Z' ; + sll_inst: component sgmii_ecp5sll_core port map (sli_rst=>sli_rst,sli_refclk=>pll_refclki, + sli_pclk=>tx_pclk_c,sli_div2_rate=>gnd,sli_div11_rate=>gnd,sli_gear_mode=>gnd, + sli_cpri_mode(2)=>gnd,sli_cpri_mode(1)=>gnd,sli_cpri_mode(0)=>gnd, + sli_pcie_mode=>gnd,slo_plol=>pll_lol_c); + n124 <= '1' ; + n123 <= '0' ; + gnd <= '0' ; + pwr <= '1' ; + +end architecture v1; + diff --git a/gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5_ngd.asd b/gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5_ngd.asd new file mode 100644 index 0000000..c265c78 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5_ngd.asd @@ -0,0 +1 @@ +[ActiveSupport NGD] diff --git a/gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v b/gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v new file mode 100644 index 0000000..69a023d --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v @@ -0,0 +1,2003 @@ + + +// =========================================================================== +// >>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< +// --------------------------------------------------------------------------- +// Copyright (c) 2016 by Lattice Semiconductor Corporation +// ALL RIGHTS RESERVED +// ------------------------------------------------------------------ +// +// Permission: +// +// Lattice SG Pte. Ltd. grants permission to use this code +// pursuant to the terms of the Lattice Reference Design License Agreement. +// +// +// Disclaimer: +// +// This VHDL or Verilog source code is intended as a design reference +// which illustrates how these types of functions can be implemented. +// It is the user's responsibility to verify their design for +// consistency and functionality through the use of formal +// verification methods. Lattice provides no warranty +// regarding the use or functionality of this code. +// +// --------------------------------------------------------------------------- +// +// Lattice SG Pte. Ltd. +// 101 Thomson Road, United Square #07-02 +// Singapore 307591 +// +// +// TEL: 1-800-Lattice (USA and Canada) +// +65-6631-2000 (Singapore) +// +1-503-268-8001 (other locations) +// +// web: http://www.latticesemi.com/ +// email: techsupport@latticesemi.com +// +// --------------------------------------------------------------------------- +// +// ============================================================================= +// FILE DETAILS +// Project : RSL- Reset Sequence Logic +// File : rsl_core.v +// Title : Top-level file for RSL +// Dependencies : 1. +// : 2. +// Description : +// ============================================================================= +// REVISION HISTORY +// Version : 1.0 +// Author(s) : BM +// Mod. Date : October 28, 2013 +// Changes Made : Initial Creation +// ----------------------------------------------------------------------------- +// Version : 1.1 +// Author(s) : BM +// Mod. Date : November 06, 2013 +// Changes Made : Tx/Rx separation, ready port code exclusion +// ----------------------------------------------------------------------------- +// Version : 1.2 +// Author(s) : BM +// Mod. Date : June 13, 2014 +// Changes Made : Updated Rx PCS reset method +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// Version : 1.3 +// Author(s) : UA +// Mod. Date : Dec 19, 2014 +// Changes Made : Added new parameter fro PCIE +// ----------------------------------------------------------------------------- +// Version : 1.31 +// Author(s) : BM/UM +// Mod. Date : Feb 23, 2016 +// Changes Made : Behavior of rx_rdy output modified. The output rx_rdy +// and the rx_rdy wait counter are reset to zero on +// LOL or LOS. Reverted back the counter value change for PCIE. +// ----------------------------------------------------------------------------- +// Version : 1.4 +// Author(s) : EB +// Mod. Date: : March 21, 2017 +// Changes Made : +// ----------------------------------------------------------------------------- +// Version : 1.5 +// Author(s) : ES +// Mod. Date: : May 8, 2017 +// Changes Made : Implemented common RSL behaviour as proposed by BM. +// ============================================================================= + +`timescale 1ns/10ps + +module sgmii_ecp5rsl_core ( + // ------------ Inputs + // Common + rui_rst, // Active high reset for the RSL module + rui_serdes_rst_dual_c, // SERDES macro reset user command + rui_rst_dual_c, // PCS dual reset user command + rui_rsl_disable, // Active high signal that disables all reset outputs of RSL + // Tx + rui_tx_ref_clk, // Tx reference clock + rui_tx_serdes_rst_c, // Tx SERDES reset user command + rui_tx_pcs_rst_c, // Tx lane reset user command + rdi_pll_lol, // Tx PLL Loss of Lock status input from the SERDES + // Rx + rui_rx_ref_clk, // Rx reference clock + rui_rx_serdes_rst_c, // SERDES Receive channel reset user command + rui_rx_pcs_rst_c, // Rx lane reset user command + rdi_rx_los_low_s, // Receive loss of signal status input from SERDES + rdi_rx_cdr_lol_s, // Receive CDR loss of lock status input from SERDES + + // ------------ Outputs + // Common + rdo_serdes_rst_dual_c, // SERDES macro reset command output + rdo_rst_dual_c, // PCS dual reset command output + // Tx + ruo_tx_rdy, // Tx lane ready status output + rdo_tx_serdes_rst_c, // SERDES Tx reset command output + rdo_tx_pcs_rst_c, // PCS Tx lane reset command output + // Rx + ruo_rx_rdy, // Rx lane ready status output + rdo_rx_serdes_rst_c, // SERDES Rx channel reset command output + rdo_rx_pcs_rst_c // PCS Rx lane reset command output + ); + +// ------------ Module parameters +`ifdef NUM_CHANNELS + parameter pnum_channels = `NUM_CHANNELS; // 1,2,4 +`else + parameter pnum_channels = 1; +`endif + +`ifdef PCIE + parameter pprotocol = "PCIE"; +`else + parameter pprotocol = ""; +`endif + +`ifdef RX_ONLY + parameter pserdes_mode = "RX ONLY"; +`else + `ifdef TX_ONLY + parameter pserdes_mode = "TX ONLY"; + `else + parameter pserdes_mode = "RX AND TX"; + `endif +`endif + +`ifdef PORT_TX_RDY + parameter pport_tx_rdy = "ENABLED"; +`else + parameter pport_tx_rdy = "DISABLED"; +`endif + +`ifdef WAIT_TX_RDY + parameter pwait_tx_rdy = `WAIT_TX_RDY; +`else + parameter pwait_tx_rdy = 3000; +`endif + +`ifdef PORT_RX_RDY + parameter pport_rx_rdy = "ENABLED"; +`else + parameter pport_rx_rdy = "DISABLED"; +`endif + +`ifdef WAIT_RX_RDY + parameter pwait_rx_rdy = `WAIT_RX_RDY; +`else + parameter pwait_rx_rdy = 3000; +`endif + +// ------------ Local parameters + localparam wa_num_cycles = 1024; + localparam dac_num_cycles = 3; + localparam lreset_pwidth = 3; // reset pulse width-1, default=4-1=3 + localparam lwait_b4_trst = 781250; // 5ms wait with worst-case Fmax=156 MHz + localparam lwait_b4_trst_s = 781; // for simulation + localparam lplol_cnt_width = 20; // width for lwait_b4_trst + localparam lwait_after_plol0 = 4; + localparam lwait_b4_rrst = 180224; // total calibration time + localparam lrrst_wait_width = 20; + localparam lwait_after_rrst = 800000; // For CPRI- unused + localparam lwait_b4_rrst_s = 460; // wait cycles provided by design team + localparam lrlol_cnt_width = 19; // width for lwait_b4_rrst + localparam lwait_after_lols = (16384 * dac_num_cycles) + wa_num_cycles; // 16384 cycles * dac_num_cycles + 1024 cycles + localparam lwait_after_lols_s = 150; // wait cycles provided by design team + localparam llols_cnt_width = 18; // lols count width + localparam lrdb_max = 15; // maximum debounce count + localparam ltxr_wait_width = 12; // width of tx ready wait counter + localparam lrxr_wait_width = 12; // width of tx ready wait counter + +// ------------ input ports + input rui_rst; + input rui_serdes_rst_dual_c; + input rui_rst_dual_c; + input rui_rsl_disable; + + input rui_tx_ref_clk; + input rui_tx_serdes_rst_c; + input [3:0] rui_tx_pcs_rst_c; + input rdi_pll_lol; + + input rui_rx_ref_clk; + input [3:0] rui_rx_serdes_rst_c; + input [3:0] rui_rx_pcs_rst_c; + input [3:0] rdi_rx_los_low_s; + input [3:0] rdi_rx_cdr_lol_s; + +// ------------ output ports + output rdo_serdes_rst_dual_c; + output rdo_rst_dual_c; + + output ruo_tx_rdy; + output rdo_tx_serdes_rst_c; + output [3:0] rdo_tx_pcs_rst_c; + + output ruo_rx_rdy; + output [3:0] rdo_rx_serdes_rst_c; + output [3:0] rdo_rx_pcs_rst_c; + +// ------------ Internal registers and wires + // inputs + wire rui_rst; + wire rui_serdes_rst_dual_c; + wire rui_rst_dual_c; + wire rui_rsl_disable; + wire rui_tx_ref_clk; + wire rui_tx_serdes_rst_c; + wire [3:0] rui_tx_pcs_rst_c; + wire rdi_pll_lol; + wire rui_rx_ref_clk; + wire [3:0] rui_rx_serdes_rst_c; + wire [3:0] rui_rx_pcs_rst_c; + wire [3:0] rdi_rx_los_low_s; + wire [3:0] rdi_rx_cdr_lol_s; + + // outputs + wire rdo_serdes_rst_dual_c; + wire rdo_rst_dual_c; + wire ruo_tx_rdy; + wire rdo_tx_serdes_rst_c; + wire [3:0] rdo_tx_pcs_rst_c; + wire ruo_rx_rdy; + wire [3:0] rdo_rx_serdes_rst_c; + wire [3:0] rdo_rx_pcs_rst_c; + + // internal signals + // common + wire rsl_enable; + wire [lplol_cnt_width-1:0] wait_b4_trst; + wire [lrlol_cnt_width-1:0] wait_b4_rrst; + wire [llols_cnt_width-1:0] wait_after_lols; + reg pll_lol_p1; + reg pll_lol_p2; + reg pll_lol_p3; + // ------------ Tx + // rdo_tx_serdes_rst_c + reg [lplol_cnt_width-1:0] plol_cnt; + wire plol_cnt_tc; + + reg [2:0] txs_cnt; + reg txs_rst; + wire txs_cnt_tc; + // rdo_tx_pcs_rst_c + wire plol_fedge; + wire plol_redge; + reg waita_plol0; + reg [2:0] plol0_cnt; + wire plol0_cnt_tc; + reg [2:0] txp_cnt; + reg txp_rst; + wire txp_cnt_tc; + // ruo_tx_rdy + wire dual_or_serd_rst; + wire tx_any_pcs_rst; + wire tx_any_rst; + reg txsr_appd /* synthesis syn_keep=1 */; + reg txdpr_appd; + reg [pnum_channels-1:0] txpr_appd; + reg txr_wt_en; + reg [ltxr_wait_width-1:0] txr_wt_cnt; + wire txr_wt_tc; + reg ruo_tx_rdyr; + + // ------------ Rx + wire comb_rlos; + wire comb_rlol; + //wire rlols; + wire rx_all_well; + + //reg rlols_p1; + //reg rlols_p2; + //reg rlols_p3; + + reg rlol_p1; + reg rlol_p2; + reg rlol_p3; + reg rlos_p1; + reg rlos_p2; + reg rlos_p3; + + //reg [3:0] rdb_cnt; + //wire rdb_cnt_max; + //wire rdb_cnt_zero; + //reg rlols_db; + //reg rlols_db_p1; + + reg [3:0] rlol_db_cnt; + wire rlol_db_cnt_max; + wire rlol_db_cnt_zero; + reg rlol_db; + reg rlol_db_p1; + + reg [3:0] rlos_db_cnt; + wire rlos_db_cnt_max; + wire rlos_db_cnt_zero; + reg rlos_db; + reg rlos_db_p1; + + // rdo_rx_serdes_rst_c + reg [lrlol_cnt_width-1:0] rlol1_cnt; + wire rlol1_cnt_tc; + reg [2:0] rxs_cnt; + reg rxs_rst; + wire rxs_cnt_tc; + reg [lrrst_wait_width-1:0] rrst_cnt; + wire rrst_cnt_tc; + reg rrst_wait; + // rdo_rx_pcs_rst_c + //wire rlols_fedge; + //wire rlols_redge; + wire rlol_fedge; + wire rlol_redge; + wire rlos_fedge; + wire rlos_redge; + + reg wait_calib; + reg waita_rlols0; + reg [llols_cnt_width-1:0] rlols0_cnt; + wire rlols0_cnt_tc; + reg [2:0] rxp_cnt; + reg rxp_rst; + wire rxp_cnt_tc; + + wire rx_any_serd_rst; + reg [llols_cnt_width-1:0] rlolsz_cnt; + wire rlolsz_cnt_tc; + reg [2:0] rxp_cnt2; + reg rxp_rst2; + wire rxp_cnt2_tc; + reg [15:0] data_loop_b_cnt; + reg data_loop_b; + wire data_loop_b_tc; + + // ruo_rx_rdy + reg [pnum_channels-1:0] rxsr_appd; + reg [pnum_channels-1:0] rxpr_appd; + reg rxsdr_appd /* synthesis syn_keep=1 */; + reg rxdpr_appd; + wire rxsdr_or_sr_appd; + wire dual_or_rserd_rst; + wire rx_any_pcs_rst; + wire rx_any_rst; + reg rxr_wt_en; + reg [lrxr_wait_width-1:0] rxr_wt_cnt; + wire rxr_wt_tc; + reg ruo_rx_rdyr; + +// ================================================================== +// Start of code +// ================================================================== + assign rsl_enable = ~rui_rsl_disable; + +// ------------ rdo_serdes_rst_dual_c + assign rdo_serdes_rst_dual_c = (rui_rst&rsl_enable) | rui_serdes_rst_dual_c; + +// ------------ rdo_rst_dual_c + assign rdo_rst_dual_c = rui_rst_dual_c; + +// ------------ Setting counter values for RSL_SIM_MODE + `ifdef RSL_SIM_MODE + assign wait_b4_trst = lwait_b4_trst_s; + assign wait_b4_rrst = lwait_b4_rrst_s; + assign wait_after_lols = lwait_after_lols_s; + `else + assign wait_b4_trst = lwait_b4_trst; + assign wait_b4_rrst = lwait_b4_rrst; + assign wait_after_lols = lwait_after_lols; + `endif + +// ================================================================== +// Tx +// ================================================================== + generate + if((pserdes_mode=="RX AND TX")||(pserdes_mode=="TX ONLY")) begin + +// ------------ Synchronizing pll_lol to the tx clock + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) begin + pll_lol_p1 <= 1'd0; + pll_lol_p2 <= 1'd0; + pll_lol_p3 <= 1'd0; + end + else begin + pll_lol_p1 <= rdi_pll_lol; + pll_lol_p2 <= pll_lol_p1; + pll_lol_p3 <= pll_lol_p2; + end + end + +// ------------ rdo_tx_serdes_rst_c + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) + plol_cnt <= 'd0; + else if((pll_lol_p2==0)||(plol_cnt_tc==1)||(rdo_tx_serdes_rst_c==1)) + plol_cnt <= 'd0; + else + plol_cnt <= plol_cnt+1; + end + assign plol_cnt_tc = (plol_cnt==wait_b4_trst)?1'b1:1'b0; + + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) begin + txs_cnt <= 'd0; // tx serdes reset pulse count + txs_rst <= 1'b0; // tx serdes reset + end + else if(plol_cnt_tc==1) + txs_rst <= 1'b1; + else if(txs_cnt_tc==1) begin + txs_cnt <= 'd0; + txs_rst <= 1'b0; + end + else if(txs_rst==1) + txs_cnt <= txs_cnt+1; + end + assign txs_cnt_tc = (txs_cnt==lreset_pwidth)?1'b1:1'b0; + + assign rdo_tx_serdes_rst_c = (rsl_enable&txs_rst)| rui_tx_serdes_rst_c; + +// ------------ rdo_tx_pcs_rst_c + assign plol_fedge = ~pll_lol_p2 & pll_lol_p3; + assign plol_redge = pll_lol_p2 & ~pll_lol_p3; + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) + waita_plol0 <= 1'd0; + else if(plol_fedge==1'b1) + waita_plol0 <= 1'b1; + else if((plol0_cnt_tc==1)||(plol_redge==1)) + waita_plol0 <= 1'd0; + end + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) + plol0_cnt <= 'd0; + else if((pll_lol_p2==1)||(plol0_cnt_tc==1)) + plol0_cnt <= 'd0; + else if(waita_plol0==1'b1) + plol0_cnt <= plol0_cnt+1; + end + assign plol0_cnt_tc = (plol0_cnt==lwait_after_plol0)?1'b1:1'b0; + + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) begin + txp_cnt <= 'd0; // tx serdes reset pulse count + txp_rst <= 1'b0; // tx serdes reset + end + else if(plol0_cnt_tc==1) + txp_rst <= 1'b1; + else if(txp_cnt_tc==1) begin + txp_cnt <= 'd0; + txp_rst <= 1'b0; + end + else if(txp_rst==1) + txp_cnt <= txp_cnt+1; + end + assign txp_cnt_tc = (txp_cnt==lreset_pwidth)?1'b1:1'b0; + + genvar i; + for(i=0;i>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< +// --------------------------------------------------------------------------- +// Copyright (c) 2015 by Lattice Semiconductor Corporation +// ALL RIGHTS RESERVED +// ------------------------------------------------------------------ +// +// Permission: +// +// Lattice SG Pte. Ltd. grants permission to use this code +// pursuant to the terms of the Lattice Reference Design License Agreement. +// +// +// Disclaimer: +// +// This VHDL or Verilog source code is intended as a design reference +// which illustrates how these types of functions can be implemented. +// It is the user's responsibility to verify their design for +// consistency and functionality through the use of formal +// verification methods. Lattice provides no warranty +// regarding the use or functionality of this code. +// +// --------------------------------------------------------------------------- +// +// Lattice SG Pte. Ltd. +// 101 Thomson Road, United Square #07-02 +// Singapore 307591 +// +// +// TEL: 1-800-Lattice (USA and Canada) +// +65-6631-2000 (Singapore) +// +1-503-268-8001 (other locations) +// +// web: http://www.latticesemi.com/ +// email: techsupport@latticesemi.com +// +// --------------------------------------------------------------------------- +// +// ============================================================================= +// FILE DETAILS +// Project : SLL - Soft Loss Of Lock(LOL) Logic +// File : sll_core.v +// Title : Top-level file for SLL +// Dependencies : 1. +// : 2. +// Description : +// ============================================================================= +// REVISION HISTORY +// Version : 1.0 +// Author(s) : AV +// Mod. Date : March 2, 2015 +// Changes Made : Initial Creation +// ============================================================================= +// REVISION HISTORY +// Version : 1.1 +// Author(s) : AV +// Mod. Date : June 8, 2015 +// Changes Made : Following updates were made +// : 1. Changed all the PLOL status logic and FSM to run +// : on sli_refclk. +// : 2. Added the HB logic for presence of tx_pclk +// : 3. Changed the lparam assignment scheme for +// : simulation purposes. +// ============================================================================= +// REVISION HISTORY +// Version : 1.2 +// Author(s) : AV +// Mod. Date : June 24, 2015 +// Changes Made : Updated the gearing logic for SDI dynamic rate change +// ============================================================================= +// REVISION HISTORY +// Version : 1.3 +// Author(s) : AV +// Mod. Date : July 14, 2015 +// Changes Made : Added the logic for dynamic rate change in CPRI +// ============================================================================= +// REVISION HISTORY +// Version : 1.4 +// Author(s) : AV +// Mod. Date : August 21, 2015 +// Changes Made : Added the logic for dynamic rate change of 5G CPRI & +// PCIe. +// ============================================================================= +// REVISION HISTORY +// Version : 1.5 +// Author(s) : ES/EB +// Mod. Date : March 21, 2017 +// Changes Made : 1. Added pdiff_sync signal to syncrhonize pcount_diff +// : to sli_refclk. +// : 2. Updated terminal count logic for PCIe 5G +// : 3. Modified checking of pcount_diff in SLL state +// : machine to cover actual count +// : (from 16-bits to 22-bits) +// ============================================================================= +// REVISION HISTORY +// Version : 1.6 +// Author(s) : ES +// Mod. Date : April 19, 2017 +// Changes Made : 1. Added registered lock and unlock signal from +// pdiff_sync to totally decouple pcount_diff from +// SLL state machine. +// : 2. Modified LPCLK_TC_4 to 1:1 clock ratio when CPRI +// is operating @ 4.9125Gbps data rate. +// ============================================================================= +`timescale 1ns/10ps + +module sgmii_ecp5sll_core ( + //Reset and Clock inputs + sli_rst, //Active high asynchronous reset input + sli_refclk, //Refclk input to the Tx PLL + sli_pclk, //Tx pclk output from the PCS + + //Control inputs + sli_div2_rate, //Divide by 2 control; 0 - Full rate; 1 - Half rate + sli_div11_rate, //Divide by 11 control; 0 - Full rate; 1 - Div by 11 + sli_gear_mode, //Gear mode control for PCS; 0 - 8/10; 1- 16/20 + sli_cpri_mode, //Mode of operation specific to CPRI protocol + sli_pcie_mode, //Mode of operation specific to PCIe mode (2.5G or 5G) + + //LOL Output + slo_plol //Tx PLL Loss of Lock output to the user logic + ); + +// Inputs +input sli_rst; +input sli_refclk; +input sli_pclk; +input sli_div2_rate; +input sli_div11_rate; +input sli_gear_mode; +input [2:0] sli_cpri_mode; +input sli_pcie_mode; + +// Outputs +output slo_plol; + + +// Parameters +parameter PPROTOCOL = "PCIE"; //Protocol selected by the User +parameter PLOL_SETTING = 0; //PLL LOL setting. Possible values are 0,1,2,3 +parameter PDYN_RATE_CTRL = "DISABLED"; //PCS Dynamic Rate control +parameter PPCIE_MAX_RATE = "2.5"; //PCIe max data rate +parameter PDIFF_VAL_LOCK = 20; //Differential count value for Lock +parameter PDIFF_VAL_UNLOCK = 39; //Differential count value for Unlock +parameter PPCLK_TC = 65535; //Terminal count value for counter running on sli_pclk +parameter PDIFF_DIV11_VAL_LOCK = 3; //Differential count value for Lock for SDI Div11 +parameter PDIFF_DIV11_VAL_UNLOCK = 3; //Differential count value for Unlock for SDI Div11 +parameter PPCLK_DIV11_TC = 2383; //Terminal count value (SDI Div11) for counter running on sli_pclk + + +// Local Parameters +localparam [1:0] LPLL_LOSS_ST = 2'b00; //PLL Loss state +localparam [1:0] LPLL_PRELOSS_ST = 2'b01; //PLL Pre-Loss state +localparam [1:0] LPLL_PRELOCK_ST = 2'b10; //PLL Pre-Lock state +localparam [1:0] LPLL_LOCK_ST = 2'b11; //PLL Lock state +`ifdef RSL_SIM_MODE +localparam [15:0] LRCLK_TC = 16'd63; //Terminal count value for counter running on sli_refclk +`else +localparam [15:0] LRCLK_TC = 16'd65535; //Terminal count value for counter running on sli_refclk +`endif +localparam [15:0] LRCLK_TC_PUL_WIDTH = 16'd50; //Pulse width for the Refclk terminal count pulse +localparam [7:0] LHB_WAIT_CNT = 8'd255; //Wait count for the Heartbeat signal + +// Local Parameters related to the CPRI dynamic modes +// Terminal count values for the four CPRI modes +localparam LPCLK_TC_0 = 32768; +localparam LPCLK_TC_1 = 65536; +localparam LPCLK_TC_2 = 131072; +localparam LPCLK_TC_3 = 163840; +localparam LPCLK_TC_4 = 65536; + +// Lock values count values for the four CPRI modes and four PLOL settings (4x5) +// CPRI rate mode 0 CPRI rate mode 1 CPRI rate mode 2 CPRI rate mode 3 CPRI rate mode 4 +localparam LPDIFF_LOCK_00 = 9; localparam LPDIFF_LOCK_10 = 19; localparam LPDIFF_LOCK_20 = 39; localparam LPDIFF_LOCK_30 = 49; localparam LPDIFF_LOCK_40 = 19; +localparam LPDIFF_LOCK_01 = 9; localparam LPDIFF_LOCK_11 = 19; localparam LPDIFF_LOCK_21 = 39; localparam LPDIFF_LOCK_31 = 49; localparam LPDIFF_LOCK_41 = 19; +localparam LPDIFF_LOCK_02 = 49; localparam LPDIFF_LOCK_12 = 98; localparam LPDIFF_LOCK_22 = 196; localparam LPDIFF_LOCK_32 = 245; localparam LPDIFF_LOCK_42 = 98; +localparam LPDIFF_LOCK_03 = 131; localparam LPDIFF_LOCK_13 = 262; localparam LPDIFF_LOCK_23 = 524; localparam LPDIFF_LOCK_33 = 655; localparam LPDIFF_LOCK_43 = 262; + +// Unlock values count values for the four CPRI modes and four PLOL settings (4x5) +// CPRI rate mode 0 CPRI rate mode 1 CPRI rate mode 2 CPRI rate mode 3 CPRI rate mode 4 +localparam LPDIFF_UNLOCK_00 = 19; localparam LPDIFF_UNLOCK_10 = 39; localparam LPDIFF_UNLOCK_20 = 78; localparam LPDIFF_UNLOCK_30 = 98; localparam LPDIFF_UNLOCK_40 = 39; +localparam LPDIFF_UNLOCK_01 = 65; localparam LPDIFF_UNLOCK_11 = 131; localparam LPDIFF_UNLOCK_21 = 262; localparam LPDIFF_UNLOCK_31 = 327; localparam LPDIFF_UNLOCK_41 = 131; +localparam LPDIFF_UNLOCK_02 = 72; localparam LPDIFF_UNLOCK_12 = 144; localparam LPDIFF_UNLOCK_22 = 288; localparam LPDIFF_UNLOCK_32 = 360; localparam LPDIFF_UNLOCK_42 = 144; +localparam LPDIFF_UNLOCK_03 = 196; localparam LPDIFF_UNLOCK_13 = 393; localparam LPDIFF_UNLOCK_23 = 786; localparam LPDIFF_UNLOCK_33 = 983; localparam LPDIFF_UNLOCK_43 = 393; + +// Input and Output reg and wire declarations +wire sli_rst; +wire sli_refclk; +wire sli_pclk; +wire sli_div2_rate; +wire sli_div11_rate; +wire sli_gear_mode; +wire [2:0] sli_cpri_mode; +wire sli_pcie_mode; +wire slo_plol; + +//-------------- Internal signals reg and wire declarations -------------------- + +//Signals running on sli_refclk +reg [15:0] rcount; //16-bit Counter +reg rtc_pul; //Terminal count pulse +reg rtc_pul_p1; //Terminal count pulse pipeline +reg rtc_ctrl; //Terminal count pulse control + +reg [7:0] rhb_wait_cnt; //Heartbeat wait counter + +//Heatbeat synchronization and pipeline registers +wire rhb_sync; +reg rhb_sync_p2; +reg rhb_sync_p1; + +//Pipeling registers for dynamic control mode +wire rgear; +wire rdiv2; +wire rdiv11; +reg rgear_p1; +reg rdiv2_p1; +reg rdiv11_p1; + +reg rstat_pclk; //Pclk presence/absence status + +reg [21:0] rcount_tc; //Tx_pclk terminal count register +reg [15:0] rdiff_comp_lock; //Differential comparison value for Lock +reg [15:0] rdiff_comp_unlock; //Differential compariosn value for Unlock + +wire rpcie_mode; //PCIe mode signal synchronized to refclk +reg rpcie_mode_p1; //PCIe mode pipeline register + +wire rcpri_mod_ch_sync; //CPRI mode change synchronized to refclk +reg rcpri_mod_ch_p1; //CPRI mode change pipeline register +reg rcpri_mod_ch_p2; //CPRI mode change pipeline register +reg rcpri_mod_ch_st; //CPRI mode change status + +reg [1:0] sll_state; //Current-state register for LOL FSM + +reg pll_lock; //PLL Lock signal + +//Signals running on sli_pclk +//Synchronization and pipeline registers +wire ppul_sync; +reg ppul_sync_p1; +reg ppul_sync_p2; +reg ppul_sync_p3; + +wire pdiff_sync; +reg pdiff_sync_p1; + +reg [21:0] pcount; //22-bit counter +reg [21:0] pcount_diff; //Differential value between Tx_pclk counter and theoritical value + +//Heartbeat counter and heartbeat signal running on pclk +reg [2:0] phb_cnt; +reg phb; + +//CPRI dynamic mode releated signals +reg [2:0] pcpri_mode; +reg pcpri_mod_ch; + +//Assignment scheme changed mainly for simulation purpose +wire [15:0] LRCLK_TC_w; +assign LRCLK_TC_w = LRCLK_TC; + +reg unlock; +reg lock; + +//Heartbeat synchronization +sync # (.PDATA_RST_VAL(0)) phb_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (phb), + .data_out(rhb_sync) + ); + + +//Terminal count pulse synchronization +sync # (.PDATA_RST_VAL(0)) rtc_sync_inst ( + .clk (sli_pclk), + .rst (sli_rst), + .data_in (rtc_pul), + .data_out(ppul_sync) + ); + +//Differential value logic update synchronization +sync # (.PDATA_RST_VAL(0)) pdiff_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (ppul_sync), + .data_out(pdiff_sync) + ); + +//Gear mode synchronization +sync # (.PDATA_RST_VAL(0)) gear_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (sli_gear_mode), + .data_out(rgear) + ); + +//Div2 synchronization +sync # (.PDATA_RST_VAL(0)) div2_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (sli_div2_rate), + .data_out(rdiv2) + ); + +//Div11 synchronization +sync # (.PDATA_RST_VAL(0)) div11_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (sli_div11_rate), + .data_out(rdiv11) + ); + +//CPRI mode change synchronization +sync # (.PDATA_RST_VAL(0)) cpri_mod_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (pcpri_mod_ch), + .data_out(rcpri_mod_ch_sync) + ); + +//PCIe mode change synchronization +sync # (.PDATA_RST_VAL(0)) pcie_mod_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (sli_pcie_mode), + .data_out(rpcie_mode) + ); + +// ============================================================================= +// Synchronized Lock/Unlock signals +// ============================================================================= +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + unlock <= 1'b0; + lock <= 1'b0; + pdiff_sync_p1 <= 1'b0; + end + else begin + pdiff_sync_p1 <= pdiff_sync; + if (unlock) begin + unlock <= ~pdiff_sync && pdiff_sync_p1 ? 1'b0 : unlock; + end + else begin + unlock <= pdiff_sync ? (pcount_diff[21:0] > {6'd0, rdiff_comp_unlock}) : 1'b0; + end + if (lock) begin + lock <= ~pdiff_sync && pdiff_sync_p1 ? 1'b0 : lock; + end + else begin + lock <= pdiff_sync ? (pcount_diff[21:0] <= {6'd0, rdiff_comp_lock}) : 1'b0; + end + end +end + +// ============================================================================= +// Refclk Counter, pulse generation logic and Heartbeat monitor logic +// ============================================================================= +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rcount <= 16'd0; + rtc_pul <= 1'b0; + rtc_ctrl <= 1'b0; + rtc_pul_p1 <= 1'b0; + end + else begin + //Counter logic + if ((rgear_p1^rgear == 1'b1) || (rdiv2_p1^rdiv2 == 1'b1) || (rdiv11_p1^rdiv11 == 1'b1) || (rcpri_mod_ch_p1^rcpri_mod_ch_p2 == 1'b1) || (rpcie_mode_p1^rpcie_mode == 1'b1)) begin + if (rtc_ctrl == 1'b1) begin + rcount <= LRCLK_TC_PUL_WIDTH; + end + end + else begin + if (rcount != LRCLK_TC_w) begin + rcount <= rcount + 1; + end + else begin + rcount <= 16'd0; + end + end + + //Pulse control logic + if (rcount == LRCLK_TC_w - 1) begin + rtc_ctrl <= 1'b1; + end + + //Pulse Generation logic + if (rtc_ctrl == 1'b1) begin + if ((rcount == LRCLK_TC_w) || (rcount < LRCLK_TC_PUL_WIDTH)) begin + rtc_pul <= 1'b1; + end + else begin + rtc_pul <= 1'b0; + end + end + + rtc_pul_p1 <= rtc_pul; + end +end + + +// ============================================================================= +// Heartbeat synchronization & monitor logic and Dynamic mode pipeline logic +// ============================================================================= +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rhb_sync_p1 <= 1'b0; + rhb_sync_p2 <= 1'b0; + rhb_wait_cnt <= 8'd0; + rstat_pclk <= 1'b0; + rgear_p1 <= 1'b0; + rdiv2_p1 <= 1'b0; + rdiv11_p1 <= 1'b0; + rcpri_mod_ch_p1 <= 1'b0; + rcpri_mod_ch_p2 <= 1'b0; + rcpri_mod_ch_st <= 1'b0; + rpcie_mode_p1 <= 1'b0; + + end + else begin + //Pipeline stages for the Heartbeat + rhb_sync_p1 <= rhb_sync; + rhb_sync_p2 <= rhb_sync_p1; + + //Pipeline stages of the Dynamic rate control signals + rgear_p1 <= rgear; + rdiv2_p1 <= rdiv2; + rdiv11_p1 <= rdiv11; + + //Pipeline stage for PCIe mode + rpcie_mode_p1 <= rpcie_mode; + + //Pipeline stage for CPRI mode change + rcpri_mod_ch_p1 <= rcpri_mod_ch_sync; + rcpri_mod_ch_p2 <= rcpri_mod_ch_p1; + + //CPRI mode change status logic + if (rcpri_mod_ch_p1^rcpri_mod_ch_sync == 1'b1) begin + rcpri_mod_ch_st <= 1'b1; + end + + //Heartbeat wait counter and monitor logic + if (rtc_ctrl == 1'b1) begin + if (rhb_sync_p1 == 1'b1 && rhb_sync_p2 == 1'b0) begin + rhb_wait_cnt <= 8'd0; + rstat_pclk <= 1'b1; + end + else if (rhb_wait_cnt == LHB_WAIT_CNT) begin + rhb_wait_cnt <= 8'd0; + rstat_pclk <= 1'b0; + end + else begin + rhb_wait_cnt <= rhb_wait_cnt + 1; + end + end + end +end + + +// ============================================================================= +// Pipleline registers for the TC pulse and CPRI mode change logic +// ============================================================================= +always @(posedge sli_pclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + ppul_sync_p1 <= 1'b0; + ppul_sync_p2 <= 1'b0; + ppul_sync_p3 <= 1'b0; + pcpri_mode <= 3'b0; + pcpri_mod_ch <= 1'b0; + end + else begin + ppul_sync_p1 <= ppul_sync; + ppul_sync_p2 <= ppul_sync_p1; + ppul_sync_p3 <= ppul_sync_p2; + + //CPRI mode change logic + pcpri_mode <= sli_cpri_mode; + + if (pcpri_mode != sli_cpri_mode) begin + pcpri_mod_ch <= ~pcpri_mod_ch; + end + end +end + + +// ============================================================================= +// Terminal count logic +// ============================================================================= + +//For SDI protocol with Dynamic rate control enabled +generate +if ((PDYN_RATE_CTRL == "ENABLED") && (PPROTOCOL == "SDI")) begin +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rcount_tc <= 22'd0; + rdiff_comp_lock <= 16'd0; + rdiff_comp_unlock <= 16'd0; + end + else begin + //Terminal count logic + //Div by 11 is enabled + if (rdiv11 == 1'b1) begin + //Gear mode is 16/20 + if (rgear == 1'b1) begin + rcount_tc <= PPCLK_DIV11_TC; + rdiff_comp_lock <= PDIFF_DIV11_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_DIV11_VAL_UNLOCK; + end + else begin + rcount_tc <= {PPCLK_DIV11_TC[20:0], 1'b0}; + rdiff_comp_lock <= {PDIFF_DIV11_VAL_LOCK[14:0], 1'b0}; + rdiff_comp_unlock <= {PDIFF_DIV11_VAL_UNLOCK[14:0], 1'b0}; + end + end + //Div by 2 is enabled + else if (rdiv2 == 1'b1) begin + //Gear mode is 16/20 + if (rgear == 1'b1) begin + rcount_tc <= {1'b0,PPCLK_TC[21:1]}; + rdiff_comp_lock <= {1'b0,PDIFF_VAL_LOCK[15:1]}; + rdiff_comp_unlock <= {1'b0,PDIFF_VAL_UNLOCK[15:1]}; + end + else begin + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end + end + //Both div by 11 and div by 2 are disabled + else begin + //Gear mode is 16/20 + if (rgear == 1'b1) begin + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end + else begin + rcount_tc <= {PPCLK_TC[20:0],1'b0}; + rdiff_comp_lock <= {PDIFF_VAL_LOCK[14:0],1'b0}; + rdiff_comp_unlock <= {PDIFF_VAL_UNLOCK[14:0],1'b0}; + end + end + end +end +end +endgenerate + +//For G8B10B protocol with Dynamic rate control enabled +generate +if ((PDYN_RATE_CTRL == "ENABLED") && (PPROTOCOL == "G8B10B")) begin +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rcount_tc <= 22'd0; + rdiff_comp_lock <= 16'd0; + rdiff_comp_unlock <= 16'd0; + end + else begin + //Terminal count logic + //Div by 2 is enabled + if (rdiv2 == 1'b1) begin + rcount_tc <= {1'b0,PPCLK_TC[21:1]}; + rdiff_comp_lock <= {1'b0,PDIFF_VAL_LOCK[15:1]}; + rdiff_comp_unlock <= {1'b0,PDIFF_VAL_UNLOCK[15:1]}; + end + else begin + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end + end +end +end +endgenerate + + +//For CPRI protocol with Dynamic rate control is disabled +generate +if ((PDYN_RATE_CTRL == "DISABLED") && (PPROTOCOL == "CPRI")) begin +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rcount_tc <= 22'd0; + rdiff_comp_lock <= 16'd0; + rdiff_comp_unlock <= 16'd0; + end + else begin + //Terminal count logic for CPRI protocol + //Only if there is a change in the rate mode from the default + if (rcpri_mod_ch_st == 1'b1) begin + if (rcpri_mod_ch_p1^rcpri_mod_ch_p2 == 1'b1) begin + case(sli_cpri_mode) + 3'd0 : begin //For 0.6Gbps + rcount_tc <= LPCLK_TC_0; + case(PLOL_SETTING) + 'd0 : begin + rdiff_comp_lock <= LPDIFF_LOCK_00; + rdiff_comp_unlock <= LPDIFF_UNLOCK_00; + end + + 'd1 : begin + rdiff_comp_lock <= LPDIFF_LOCK_01; + rdiff_comp_unlock <= LPDIFF_UNLOCK_01; + end + + 'd2 : begin + rdiff_comp_lock <= LPDIFF_LOCK_02; + rdiff_comp_unlock <= LPDIFF_UNLOCK_02; + end + + 'd3 : begin + rdiff_comp_lock <= LPDIFF_LOCK_03; + rdiff_comp_unlock <= LPDIFF_UNLOCK_03; + end + + default : begin + rdiff_comp_lock <= LPDIFF_LOCK_00; + rdiff_comp_unlock <= LPDIFF_UNLOCK_00; + end + endcase + end + + 3'd1 : begin //For 1.2Gbps + rcount_tc <= LPCLK_TC_1; + case(PLOL_SETTING) + 'd0 : begin + rdiff_comp_lock <= LPDIFF_LOCK_10; + rdiff_comp_unlock <= LPDIFF_UNLOCK_10; + end + + 'd1 : begin + rdiff_comp_lock <= LPDIFF_LOCK_11; + rdiff_comp_unlock <= LPDIFF_UNLOCK_11; + end + + 'd2 : begin + rdiff_comp_lock <= LPDIFF_LOCK_12; + rdiff_comp_unlock <= LPDIFF_UNLOCK_12; + end + + 'd3 : begin + rdiff_comp_lock <= LPDIFF_LOCK_13; + rdiff_comp_unlock <= LPDIFF_UNLOCK_13; + end + + default : begin + rdiff_comp_lock <= LPDIFF_LOCK_10; + rdiff_comp_unlock <= LPDIFF_UNLOCK_10; + end + endcase + end + + 3'd2 : begin //For 2.4Gbps + rcount_tc <= LPCLK_TC_2; + case(PLOL_SETTING) + 'd0 : begin + rdiff_comp_lock <= LPDIFF_LOCK_20; + rdiff_comp_unlock <= LPDIFF_UNLOCK_20; + end + + 'd1 : begin + rdiff_comp_lock <= LPDIFF_LOCK_21; + rdiff_comp_unlock <= LPDIFF_UNLOCK_21; + end + + 'd2 : begin + rdiff_comp_lock <= LPDIFF_LOCK_22; + rdiff_comp_unlock <= LPDIFF_UNLOCK_22; + end + + 'd3 : begin + rdiff_comp_lock <= LPDIFF_LOCK_23; + rdiff_comp_unlock <= LPDIFF_UNLOCK_23; + end + + default : begin + rdiff_comp_lock <= LPDIFF_LOCK_20; + rdiff_comp_unlock <= LPDIFF_UNLOCK_20; + end + endcase + end + + 3'd3 : begin //For 3.07Gbps + rcount_tc <= LPCLK_TC_3; + case(PLOL_SETTING) + 'd0 : begin + rdiff_comp_lock <= LPDIFF_LOCK_30; + rdiff_comp_unlock <= LPDIFF_UNLOCK_30; + end + + 'd1 : begin + rdiff_comp_lock <= LPDIFF_LOCK_31; + rdiff_comp_unlock <= LPDIFF_UNLOCK_31; + end + + 'd2 : begin + rdiff_comp_lock <= LPDIFF_LOCK_32; + rdiff_comp_unlock <= LPDIFF_UNLOCK_32; + end + + 'd3 : begin + rdiff_comp_lock <= LPDIFF_LOCK_33; + rdiff_comp_unlock <= LPDIFF_UNLOCK_33; + end + endcase + end + + 3'd4 : begin //For 4.9125bps + rcount_tc <= LPCLK_TC_4; + case(PLOL_SETTING) + 'd0 : begin + rdiff_comp_lock <= LPDIFF_LOCK_40; + rdiff_comp_unlock <= LPDIFF_UNLOCK_40; + end + + 'd1 : begin + rdiff_comp_lock <= LPDIFF_LOCK_41; + rdiff_comp_unlock <= LPDIFF_UNLOCK_41; + end + + 'd2 : begin + rdiff_comp_lock <= LPDIFF_LOCK_42; + rdiff_comp_unlock <= LPDIFF_UNLOCK_42; + end + + 'd3 : begin + rdiff_comp_lock <= LPDIFF_LOCK_43; + rdiff_comp_unlock <= LPDIFF_UNLOCK_43; + end + + default : begin + rdiff_comp_lock <= LPDIFF_LOCK_40; + rdiff_comp_unlock <= LPDIFF_UNLOCK_40; + end + endcase + end + + default : begin + rcount_tc <= LPCLK_TC_0; + rdiff_comp_lock <= LPDIFF_LOCK_00; + rdiff_comp_unlock <= LPDIFF_UNLOCK_00; + end + endcase + end + end + else begin + //If there is no change in the CPRI rate mode from default + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end + end +end +end +endgenerate + +//For PCIe protocol with Dynamic rate control disabled +generate +if ((PDYN_RATE_CTRL == "DISABLED") && (PPROTOCOL == "PCIE")) begin +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rcount_tc <= 22'd0; + rdiff_comp_lock <= 16'd0; + rdiff_comp_unlock <= 16'd0; + end + else begin + //Terminal count logic + if (PPCIE_MAX_RATE == "2.5") begin + //2.5G mode is enabled + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end + else begin + //5G mode is enabled + if (rpcie_mode == 1'b1) begin + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end + else begin + //2.5G mode is enabled + rcount_tc <= {1'b0,PPCLK_TC[21:1]}; + rdiff_comp_lock <= {1'b0,PDIFF_VAL_LOCK[15:1]}; + rdiff_comp_unlock <= {1'b0,PDIFF_VAL_UNLOCK[15:1]}; + end + end + end +end +end +endgenerate + +//For all protocols other than CPRI & PCIe +generate +if ((PDYN_RATE_CTRL == "DISABLED") && ((PPROTOCOL != "CPRI") && (PPROTOCOL != "PCIE"))) begin +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rcount_tc <= 22'd0; + rdiff_comp_lock <= 16'd0; + rdiff_comp_unlock <= 16'd0; + end + else begin + //Terminal count logic for all protocols other than CPRI & PCIe + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end +end +end +endgenerate + + +// ============================================================================= +// Tx_pclk counter, Heartbeat and Differential value logic +// ============================================================================= +always @(posedge sli_pclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + pcount <= 22'd0; + pcount_diff <= 22'd65535; + phb_cnt <= 3'd0; + phb <= 1'b0; + end + else begin + //Counter logic + if (ppul_sync_p1 == 1'b1 && ppul_sync_p2 == 1'b0) begin + pcount <= 22'd0; + end + else begin + pcount <= pcount + 1; + end + + //Heartbeat logic + phb_cnt <= phb_cnt + 1; + + if ((phb_cnt < 3'd4) && (phb_cnt >= 3'd0)) begin + phb <= 1'b1; + end + else begin + phb <= 1'b0; + end + + //Differential value logic + if (ppul_sync_p1 == 1'b1 && ppul_sync_p2 == 1'b0) begin + pcount_diff <= rcount_tc + ~(pcount) + 1; + end + else if (ppul_sync_p2 == 1'b1 && ppul_sync_p3 == 1'b0) begin + if (pcount_diff[21] == 1'b1) begin + pcount_diff <= ~(pcount_diff) + 1; + end + end + end +end + + +// ============================================================================= +// State transition logic for SLL FSM +// ============================================================================= +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + sll_state <= LPLL_LOSS_ST; + end + else begin + //Reasons to declare an immediate loss - Absence of Tx_pclk, Dynamic rate change for SDI or CPRI + if ((rstat_pclk == 1'b0) || (rgear_p1^rgear == 1'b1) || (rdiv2_p1^rdiv2 == 1'b1) || + (rdiv11_p1^rdiv11 == 1'b1) || (rcpri_mod_ch_p1^rcpri_mod_ch_p2 == 1'b1) || (rpcie_mode_p1^rpcie_mode == 1'b1)) begin + sll_state <= LPLL_LOSS_ST; + end + else begin + case(sll_state) + LPLL_LOSS_ST : begin + if (rtc_pul_p1 == 1'b1 && rtc_pul == 1'b0) begin + if (unlock) begin + sll_state <= LPLL_LOSS_ST; + end + else if (lock) begin + if (PLOL_SETTING == 2'd0) begin + sll_state <= LPLL_PRELOCK_ST; + end + else begin + sll_state <= LPLL_LOCK_ST; + end + end + end + end + + LPLL_LOCK_ST : begin + if (rtc_pul_p1 == 1'b1 && rtc_pul == 1'b0) begin + if (lock) begin + sll_state <= LPLL_LOCK_ST; + end + else begin + if (PLOL_SETTING == 2'd0) begin + sll_state <= LPLL_LOSS_ST; + end + else begin + sll_state <= LPLL_PRELOSS_ST; + end + end + end + end + + LPLL_PRELOCK_ST : begin + if (rtc_pul_p1 == 1'b1 && rtc_pul == 1'b0) begin + if (lock) begin + sll_state <= LPLL_LOCK_ST; + end + else begin + sll_state <= LPLL_PRELOSS_ST; + end + end + end + + LPLL_PRELOSS_ST : begin + if (rtc_pul_p1 == 1'b1 && rtc_pul == 1'b0) begin + if (unlock) begin + sll_state <= LPLL_PRELOSS_ST; + end + else if (lock) begin + sll_state <= LPLL_LOCK_ST; + end + end + end + + default: begin + sll_state <= LPLL_LOSS_ST; + end + endcase + end + end +end + + +// ============================================================================= +// Logic for Tx PLL Lock +// ============================================================================= +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + pll_lock <= 1'b0; + end + else begin + case(sll_state) + LPLL_LOSS_ST : begin + pll_lock <= 1'b0; + end + + LPLL_LOCK_ST : begin + pll_lock <= 1'b1; + end + + LPLL_PRELOSS_ST : begin + pll_lock <= 1'b0; + end + + default: begin + pll_lock <= 1'b0; + end + endcase + end +end + +assign slo_plol = ~(pll_lock); + +endmodule + + +// =========================================================================== +// >>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< +// --------------------------------------------------------------------------- +// Copyright (c) 2015 by Lattice Semiconductor Corporation +// ALL RIGHTS RESERVED +// ------------------------------------------------------------------ +// +// Permission: +// +// Lattice SG Pte. Ltd. grants permission to use this code +// pursuant to the terms of the Lattice Reference Design License Agreement. +// +// +// Disclaimer: +// +// This VHDL or Verilog source code is intended as a design reference +// which illustrates how these types of functions can be implemented. +// It is the user's responsibility to verify their design for +// consistency and functionality through the use of formal +// verification methods. Lattice provides no warranty +// regarding the use or functionality of this code. +// +// --------------------------------------------------------------------------- +// +// Lattice SG Pte. Ltd. +// 101 Thomson Road, United Square #07-02 +// Singapore 307591 +// +// +// TEL: 1-800-Lattice (USA and Canada) +// +65-6631-2000 (Singapore) +// +1-503-268-8001 (other locations) +// +// web: http://www.latticesemi.com/ +// email: techsupport@latticesemi.com +// +// --------------------------------------------------------------------------- +// +// ============================================================================= +// FILE DETAILS +// Project : Synchronizer Logic +// File : sync.v +// Title : Synchronizer module +// Description : +// ============================================================================= +// REVISION HISTORY +// Version : 1.0 +// Author(s) : AV +// Mod. Date : July 7, 2015 +// Changes Made : Initial Creation +// ----------------------------------------------------------------------------- +// Version : 1.1 +// Author(s) : EB +// Mod. Date : March 21, 2017 +// Changes Made : +// ============================================================================= + +`ifndef PCS_SYNC_MODULE +`define PCS_SYNC_MODULE +module sync ( + clk, + rst, + data_in, + data_out + ); + +input clk; //Clock in which the async data needs to be synchronized to +input rst; //Active high reset +input data_in; //Asynchronous data +output data_out; //Synchronized data + +parameter PDATA_RST_VAL = 0; //Reset value for the registers + +reg data_p1; +reg data_p2; + +// ============================================================================= +// Synchronization logic +// ============================================================================= +always @(posedge clk or posedge rst) begin + if (rst == 1'b1) begin + data_p1 <= PDATA_RST_VAL; + data_p2 <= PDATA_RST_VAL; + end + else begin + data_p1 <= data_in; + data_p2 <= data_p1; + end +end + +assign data_out = data_p2; + +endmodule +`endif + diff --git a/gbe/cores/sgmii/sgmii_ecp5/stdout.log.bak.1 b/gbe/cores/sgmii/sgmii_ecp5/stdout.log.bak.1 new file mode 100644 index 0000000..085fe8a --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/stdout.log.bak.1 @@ -0,0 +1,75 @@ +Running in Lattice mode + +Starting: /home/soft/lattice/diamond/3.10_x64/synpbase/linux_a_64/mbin/synbatch +Install: /home/soft/lattice/diamond/3.10_x64/synpbase +Hostname: lxhadeb07 +Date: Tue May 7 17:10:00 2019 +Version: M-2017.03L-SP1-1 + +Arguments: -product synplify_pro -batch /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.prj +ProductType: synplify_pro + + + + +log file: "/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srr" +Running: syn_results in foreground + +Running sgmii_ecp5|syn_results + +Running: compile (Compile) on sgmii_ecp5|syn_results +# Tue May 7 17:10:01 2019 + +Running: compile_flow (Compile Process) on sgmii_ecp5|syn_results +# Tue May 7 17:10:01 2019 + +Running: compiler (Compile Input) on sgmii_ecp5|syn_results +# Tue May 7 17:10:01 2019 +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.srs to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srs + +compiler completed +# Tue May 7 17:10:03 2019 + +Return Code: 0 +Run Time:00h:00m:02s + +Running: multi_srs_gen (Multi-srs Generator) on sgmii_ecp5|syn_results +# Tue May 7 17:10:03 2019 + +multi_srs_gen completed +# Tue May 7 17:10:04 2019 + +Return Code: 0 +Run Time:00h:00m:01s +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_mult.srs to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srs +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srr to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srf +Complete: Compile Process on sgmii_ecp5|syn_results + +Running: premap (Pre-mapping) on sgmii_ecp5|syn_results +# Tue May 7 17:10:04 2019 + +premap completed with warnings +# Tue May 7 17:10:04 2019 + +Return Code: 1 +Run Time:00h:00m:00s +Complete: Compile on sgmii_ecp5|syn_results + +Running: map (Map) on sgmii_ecp5|syn_results +# Tue May 7 17:10:04 2019 +License granted for 4 parallel jobs + +Running: fpga_mapper (Map & Optimize) on sgmii_ecp5|syn_results +# Tue May 7 17:10:04 2019 +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_m.srm to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srm + +fpga_mapper completed with warnings +# Tue May 7 17:10:08 2019 + +Return Code: 1 +Run Time:00h:00m:04s +Complete: Map on sgmii_ecp5|syn_results +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srr to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srf +Complete: Logic Synthesis on sgmii_ecp5|syn_results +exit status=0 +exit status=0 diff --git a/gbe/cores/sgmii/sgmii_ecp5/stdout.log.bak.2 b/gbe/cores/sgmii/sgmii_ecp5/stdout.log.bak.2 new file mode 100644 index 0000000..b9b8215 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/stdout.log.bak.2 @@ -0,0 +1,75 @@ +Running in Lattice mode + +Starting: /home/soft/lattice/diamond/3.10_x64/synpbase/linux_a_64/mbin/synbatch +Install: /home/soft/lattice/diamond/3.10_x64/synpbase +Hostname: lxhadeb07 +Date: Tue May 7 16:13:41 2019 +Version: M-2017.03L-SP1-1 + +Arguments: -product synplify_pro -batch /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.prj +ProductType: synplify_pro + + + + +log file: "/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srr" +Running: syn_results in foreground + +Running sgmii_ecp5|syn_results + +Running: compile (Compile) on sgmii_ecp5|syn_results +# Tue May 7 16:13:41 2019 + +Running: compile_flow (Compile Process) on sgmii_ecp5|syn_results +# Tue May 7 16:13:41 2019 + +Running: compiler (Compile Input) on sgmii_ecp5|syn_results +# Tue May 7 16:13:41 2019 +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.srs to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srs + +compiler completed +# Tue May 7 16:13:44 2019 + +Return Code: 0 +Run Time:00h:00m:03s + +Running: multi_srs_gen (Multi-srs Generator) on sgmii_ecp5|syn_results +# Tue May 7 16:13:44 2019 + +multi_srs_gen completed +# Tue May 7 16:13:44 2019 + +Return Code: 0 +Run Time:00h:00m:00s +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_mult.srs to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srs +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srr to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srf +Complete: Compile Process on sgmii_ecp5|syn_results + +Running: premap (Pre-mapping) on sgmii_ecp5|syn_results +# Tue May 7 16:13:44 2019 + +premap completed with warnings +# Tue May 7 16:13:45 2019 + +Return Code: 1 +Run Time:00h:00m:01s +Complete: Compile on sgmii_ecp5|syn_results + +Running: map (Map) on sgmii_ecp5|syn_results +# Tue May 7 16:13:45 2019 +License granted for 4 parallel jobs + +Running: fpga_mapper (Map & Optimize) on sgmii_ecp5|syn_results +# Tue May 7 16:13:45 2019 +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_m.srm to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srm + +fpga_mapper completed with warnings +# Tue May 7 16:13:48 2019 + +Return Code: 1 +Run Time:00h:00m:03s +Complete: Map on sgmii_ecp5|syn_results +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srr to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srf +Complete: Logic Synthesis on sgmii_ecp5|syn_results +exit status=0 +exit status=0 diff --git a/gbe/cores/sgmii/sgmii_ecp5/stdout.log.bak.3 b/gbe/cores/sgmii/sgmii_ecp5/stdout.log.bak.3 new file mode 100644 index 0000000..c1fc835 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/stdout.log.bak.3 @@ -0,0 +1,76 @@ +Running in Lattice mode + +Starting: /home/soft/lattice/diamond/3.10_x64/synpbase/linux_a_64/mbin/synbatch +Install: /home/soft/lattice/diamond/3.10_x64/synpbase +Hostname: lxhadeb07 +Date: Mon Apr 29 16:13:15 2019 +Version: M-2017.03L-SP1-1 + +Arguments: -product synplify_pro -batch /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.prj +ProductType: synplify_pro + + + + +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srr to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/backup/sgmii_ecp5.srr +log file: "/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srr" +Running: syn_results in foreground + +Running sgmii_ecp5|syn_results + +Running: compile (Compile) on sgmii_ecp5|syn_results +# Mon Apr 29 16:13:16 2019 + +Running: compile_flow (Compile Process) on sgmii_ecp5|syn_results +# Mon Apr 29 16:13:16 2019 + +Running: compiler (Compile Input) on sgmii_ecp5|syn_results +# Mon Apr 29 16:13:16 2019 +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.srs to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srs + +compiler completed +# Mon Apr 29 16:13:18 2019 + +Return Code: 0 +Run Time:00h:00m:02s + +Running: multi_srs_gen (Multi-srs Generator) on sgmii_ecp5|syn_results +# Mon Apr 29 16:13:18 2019 + +multi_srs_gen completed +# Mon Apr 29 16:13:18 2019 + +Return Code: 0 +Run Time:00h:00m:00s +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_mult.srs to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srs +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srr to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srf +Complete: Compile Process on sgmii_ecp5|syn_results + +Running: premap (Pre-mapping) on sgmii_ecp5|syn_results +# Mon Apr 29 16:13:18 2019 + +premap completed with warnings +# Mon Apr 29 16:13:19 2019 + +Return Code: 1 +Run Time:00h:00m:01s +Complete: Compile on sgmii_ecp5|syn_results + +Running: map (Map) on sgmii_ecp5|syn_results +# Mon Apr 29 16:13:19 2019 +License granted for 4 parallel jobs + +Running: fpga_mapper (Map & Optimize) on sgmii_ecp5|syn_results +# Mon Apr 29 16:13:19 2019 +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_m.srm to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srm + +fpga_mapper completed with warnings +# Mon Apr 29 16:13:22 2019 + +Return Code: 1 +Run Time:00h:00m:03s +Complete: Map on sgmii_ecp5|syn_results +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srr to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srf +Complete: Logic Synthesis on sgmii_ecp5|syn_results +exit status=0 +exit status=0 diff --git a/gbe/cores/sgmii/sgmii_ecp5/stdout.log.bak.4 b/gbe/cores/sgmii/sgmii_ecp5/stdout.log.bak.4 new file mode 100644 index 0000000..ebf331c --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/stdout.log.bak.4 @@ -0,0 +1,75 @@ +Running in Lattice mode + +Starting: /home/soft/lattice/diamond/3.10_x64/synpbase/linux_a_64/mbin/synbatch +Install: /home/soft/lattice/diamond/3.10_x64/synpbase +Hostname: lxhadeb07 +Date: Wed Apr 24 09:44:47 2019 +Version: M-2017.03L-SP1-1 + +Arguments: -product synplify_pro -batch /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.prj +ProductType: synplify_pro + + + + +log file: "/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srr" +Running: syn_results in foreground + +Running sgmii_ecp5|syn_results + +Running: compile (Compile) on sgmii_ecp5|syn_results +# Wed Apr 24 09:44:47 2019 + +Running: compile_flow (Compile Process) on sgmii_ecp5|syn_results +# Wed Apr 24 09:44:47 2019 + +Running: compiler (Compile Input) on sgmii_ecp5|syn_results +# Wed Apr 24 09:44:47 2019 +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.srs to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srs + +compiler completed +# Wed Apr 24 09:44:50 2019 + +Return Code: 0 +Run Time:00h:00m:03s + +Running: multi_srs_gen (Multi-srs Generator) on sgmii_ecp5|syn_results +# Wed Apr 24 09:44:50 2019 + +multi_srs_gen completed +# Wed Apr 24 09:44:50 2019 + +Return Code: 0 +Run Time:00h:00m:00s +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_mult.srs to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srs +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srr to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srf +Complete: Compile Process on sgmii_ecp5|syn_results + +Running: premap (Pre-mapping) on sgmii_ecp5|syn_results +# Wed Apr 24 09:44:50 2019 + +premap completed with warnings +# Wed Apr 24 09:44:51 2019 + +Return Code: 1 +Run Time:00h:00m:01s +Complete: Compile on sgmii_ecp5|syn_results + +Running: map (Map) on sgmii_ecp5|syn_results +# Wed Apr 24 09:44:51 2019 +License granted for 4 parallel jobs + +Running: fpga_mapper (Map & Optimize) on sgmii_ecp5|syn_results +# Wed Apr 24 09:44:51 2019 +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_m.srm to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srm + +fpga_mapper completed with warnings +# Wed Apr 24 09:44:54 2019 + +Return Code: 1 +Run Time:00h:00m:03s +Complete: Map on sgmii_ecp5|syn_results +Copied /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srr to /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srf +Complete: Logic Synthesis on sgmii_ecp5|syn_results +exit status=0 +exit status=0 diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/.recordref b/gbe/cores/sgmii/sgmii_ecp5/syn_results/.recordref new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/_CMD_.CML b/gbe/cores/sgmii/sgmii_ecp5/syn_results/_CMD_.CML new file mode 100644 index 0000000..87a778c --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/_CMD_.CML @@ -0,0 +1 @@ + -osyn /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.srs -top sgmii_ecp5 -hdllog /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_compiler.srr -encrypt -mp 4 -verification_mode 0 -vhdl -prodtype synplify_pro -dspmac -fixsmult -infer_seqShift -nram -sdff_counter -divnmod -nostructver -encrypt -pro -dmgen /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/dm -lite -ui -fid2 -ram -sharing on -ll 2000 -autosm -ignore_undefined_lib -lib work /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd -verilog -prodtype synplify_pro -dspmac -fixsmult -infer_seqShift -nram -sdff_counter -divnmod -nostructver -I /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/ -I /home/soft/lattice/diamond/3.10_x64/synpbase/lib -v2001 -devicelib /home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v -devicelib /home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v -encrypt -pro -dmgen /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/dm -ui -fid2 -ram -sharing on -ll 2000 -autosm -lib work /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v -jobname "compiler" \ No newline at end of file diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/_cmd._cml b/gbe/cores/sgmii/sgmii_ecp5/syn_results/_cmd._cml new file mode 100644 index 0000000..225b64d --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/_cmd._cml @@ -0,0 +1 @@ +-link -encrypt -top sgmii_ecp5 -osyn /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.srs /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/layer0.srs /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/layer1.srs \ No newline at end of file diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/backup/sgmii_ecp5.srr b/gbe/cores/sgmii/sgmii_ecp5/syn_results/backup/sgmii_ecp5.srr new file mode 100644 index 0000000..f6086bf --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/backup/sgmii_ecp5.srr @@ -0,0 +1,1157 @@ +#Build: Synplify Pro (R) M-2017.03L-SP1-1, Build 086R, Aug 4 2017 +#install: /home/soft/lattice/diamond/3.10_x64/synpbase +#OS: Linux +#Hostname: lxhadeb07 + +# Wed Apr 24 09:44:47 2019 + +#Implementation: syn_results + +Synopsys HDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Synopsys VHDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd":30:7:30:16|Top entity is set to sgmii_ecp5. +VHDL syntax check successful! + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB) + + +Process completed successfully. +# Wed Apr 24 09:44:48 2019 + +###########################################################] +Synopsys Verilog Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps) +@I::"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v" (library work) +Verilog syntax check successful! + +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB) + + +Process completed successfully. +# Wed Apr 24 09:44:48 2019 + +###########################################################] +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd":30:7:30:16|Top entity is set to sgmii_ecp5. +VHDL syntax check successful! +@N: CD630 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd":30:7:30:16|Synthesizing work.sgmii_ecp5.v1. +Post processing for work.sgmii_ecp5.v1 + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 74MB peak: 76MB) + + +Process completed successfully. +# Wed Apr 24 09:44:48 2019 + +###########################################################] +Running on host :lxhadeb07 +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps) +@I::"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v" (library work) +Verilog syntax check successful! +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +@N: CG364 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1968:7:1968:10|Synthesizing module sync in library work. + + PDATA_RST_VAL=32'b00000000000000000000000000000000 + Generated name = sync_0s +@N: CG364 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1051:7:1051:24|Synthesizing module sgmii_ecp5sll_core in library work. + + PPROTOCOL=24'b010001110100001001000101 + PLOL_SETTING=32'b00000000000000000000000000000000 + PDYN_RATE_CTRL=64'b0100010001001001010100110100000101000010010011000100010101000100 + PPCIE_MAX_RATE=24'b001100100010111000110101 + PDIFF_VAL_LOCK=32'b00000000000000000000000000100111 + PDIFF_VAL_UNLOCK=32'b00000000000000000000000001001110 + PPCLK_TC=32'b00000000000000100000000000000000 + PDIFF_DIV11_VAL_LOCK=32'b00000000000000000000000000000000 + PDIFF_DIV11_VAL_UNLOCK=32'b00000000000000000000000000000000 + PPCLK_DIV11_TC=32'b00000000000000000000000000000000 + LPLL_LOSS_ST=2'b00 + LPLL_PRELOSS_ST=2'b01 + LPLL_PRELOCK_ST=2'b10 + LPLL_LOCK_ST=2'b11 + LRCLK_TC=16'b1111111111111111 + LRCLK_TC_PUL_WIDTH=16'b0000000000110010 + LHB_WAIT_CNT=8'b11111111 + LPCLK_TC_0=32'b00000000000000001000000000000000 + LPCLK_TC_1=32'b00000000000000010000000000000000 + LPCLK_TC_2=32'b00000000000000100000000000000000 + LPCLK_TC_3=32'b00000000000000101000000000000000 + LPCLK_TC_4=32'b00000000000000010000000000000000 + LPDIFF_LOCK_00=32'b00000000000000000000000000001001 + LPDIFF_LOCK_10=32'b00000000000000000000000000010011 + LPDIFF_LOCK_20=32'b00000000000000000000000000100111 + LPDIFF_LOCK_30=32'b00000000000000000000000000110001 + LPDIFF_LOCK_40=32'b00000000000000000000000000010011 + LPDIFF_LOCK_01=32'b00000000000000000000000000001001 + LPDIFF_LOCK_11=32'b00000000000000000000000000010011 + LPDIFF_LOCK_21=32'b00000000000000000000000000100111 + LPDIFF_LOCK_31=32'b00000000000000000000000000110001 + LPDIFF_LOCK_41=32'b00000000000000000000000000010011 + LPDIFF_LOCK_02=32'b00000000000000000000000000110001 + LPDIFF_LOCK_12=32'b00000000000000000000000001100010 + LPDIFF_LOCK_22=32'b00000000000000000000000011000100 + LPDIFF_LOCK_32=32'b00000000000000000000000011110101 + LPDIFF_LOCK_42=32'b00000000000000000000000001100010 + LPDIFF_LOCK_03=32'b00000000000000000000000010000011 + LPDIFF_LOCK_13=32'b00000000000000000000000100000110 + LPDIFF_LOCK_23=32'b00000000000000000000001000001100 + LPDIFF_LOCK_33=32'b00000000000000000000001010001111 + LPDIFF_LOCK_43=32'b00000000000000000000000100000110 + LPDIFF_UNLOCK_00=32'b00000000000000000000000000010011 + LPDIFF_UNLOCK_10=32'b00000000000000000000000000100111 + LPDIFF_UNLOCK_20=32'b00000000000000000000000001001110 + LPDIFF_UNLOCK_30=32'b00000000000000000000000001100010 + LPDIFF_UNLOCK_40=32'b00000000000000000000000000100111 + LPDIFF_UNLOCK_01=32'b00000000000000000000000001000001 + LPDIFF_UNLOCK_11=32'b00000000000000000000000010000011 + LPDIFF_UNLOCK_21=32'b00000000000000000000000100000110 + LPDIFF_UNLOCK_31=32'b00000000000000000000000101000111 + LPDIFF_UNLOCK_41=32'b00000000000000000000000010000011 + LPDIFF_UNLOCK_02=32'b00000000000000000000000001001000 + LPDIFF_UNLOCK_12=32'b00000000000000000000000010010000 + LPDIFF_UNLOCK_22=32'b00000000000000000000000100100000 + LPDIFF_UNLOCK_32=32'b00000000000000000000000101101000 + LPDIFF_UNLOCK_42=32'b00000000000000000000000010010000 + LPDIFF_UNLOCK_03=32'b00000000000000000000000011000100 + LPDIFF_UNLOCK_13=32'b00000000000000000000000110001001 + LPDIFF_UNLOCK_23=32'b00000000000000000000001100010010 + LPDIFF_UNLOCK_33=32'b00000000000000000000001111010111 + LPDIFF_UNLOCK_43=32'b00000000000000000000000110001001 + Generated name = sgmii_ecp5sll_core_Z1_layer1 +@N: CG179 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1287:54:1287:59|Removing redundant assignment. +@N: CG179 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1293:52:1293:55|Removing redundant assignment. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1350:0:1350:5|Pruning unused register rcpri_mod_ch_st. Make sure that there are no unused intermediate registers. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 0 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 0 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 1 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 2 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 16 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 18 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 19 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 20 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 21 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +@N: CG364 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":92:7:92:24|Synthesizing module sgmii_ecp5rsl_core in library work. + + pnum_channels=32'b00000000000000000000000000000001 + pprotocol=24'b010001110100001001000101 + pserdes_mode=72'b010100100101100000100000010000010100111001000100001000000101010001011000 + pport_tx_rdy=64'b0100010001001001010100110100000101000010010011000100010101000100 + pwait_tx_rdy=32'b00000000000000000000101110111000 + pport_rx_rdy=64'b0100010001001001010100110100000101000010010011000100010101000100 + pwait_rx_rdy=32'b00000000000000000000101110111000 + wa_num_cycles=32'b00000000000000000000010000000000 + dac_num_cycles=32'b00000000000000000000000000000011 + lreset_pwidth=32'b00000000000000000000000000000011 + lwait_b4_trst=32'b00000000000010111110101111000010 + lwait_b4_trst_s=32'b00000000000000000000001100001101 + lplol_cnt_width=32'b00000000000000000000000000010100 + lwait_after_plol0=32'b00000000000000000000000000000100 + lwait_b4_rrst=32'b00000000000000101100000000000000 + lrrst_wait_width=32'b00000000000000000000000000010100 + lwait_after_rrst=32'b00000000000011000011010100000000 + lwait_b4_rrst_s=32'b00000000000000000000000111001100 + lrlol_cnt_width=32'b00000000000000000000000000010011 + lwait_after_lols=32'b00000000000000001100010000000000 + lwait_after_lols_s=32'b00000000000000000000000010010110 + llols_cnt_width=32'b00000000000000000000000000010010 + lrdb_max=32'b00000000000000000000000000001111 + ltxr_wait_width=32'b00000000000000000000000000001100 + lrxr_wait_width=32'b00000000000000000000000000001100 + Generated name = sgmii_ecp5rsl_core_Z2_layer1 +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":274:33:274:48|Removing wire dual_or_serd_rst, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":275:33:275:46|Removing wire tx_any_pcs_rst, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":276:33:276:42|Removing wire tx_any_rst, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":277:33:277:41|Object txsr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":278:33:278:42|Object txdpr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":279:33:279:41|Object txpr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":280:33:280:41|Object txr_wt_en is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":281:33:281:42|Object txr_wt_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":282:33:282:41|Removing wire txr_wt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":283:33:283:43|Object ruo_tx_rdyr is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":326:33:326:40|Object rrst_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":327:33:327:43|Removing wire rrst_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":328:33:328:41|Object rrst_wait is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":341:33:341:39|Object rxp_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":342:33:342:39|Object rxp_rst is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":343:33:343:42|Removing wire rxp_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":346:33:346:42|Object rlolsz_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":347:33:347:45|Removing wire rlolsz_cnt_tc, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":350:33:350:43|Removing wire rxp_cnt2_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":351:33:351:47|Object data_loop_b_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":352:33:352:43|Object data_loop_b is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":353:33:353:46|Removing wire data_loop_b_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":356:33:356:41|Object rxsr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":357:33:357:41|Object rxpr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":358:33:358:42|Object rxsdr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":359:33:359:42|Object rxdpr_appd is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":360:33:360:48|Removing wire rxsdr_or_sr_appd, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":361:33:361:49|Removing wire dual_or_rserd_rst, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":362:33:362:46|Removing wire rx_any_pcs_rst, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":363:33:363:42|Removing wire rx_any_rst, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":364:33:364:41|Object rxr_wt_en is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":365:33:365:42|Object rxr_wt_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":366:33:366:41|Removing wire rxr_wt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":367:33:367:43|Object ruo_rx_rdyr is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":507:10:507:10|Object m is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":880:10:880:10|Object l is declared but not assigned. Either assign a value or remove the declaration. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":806:3:806:8|Pruning unused register genblk2.rxp_cnt2[2:0]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlol_p3. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlos_p3. Make sure that there are no unused intermediate registers. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":694:3:694:8|Optimizing register bit genblk2.rxs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":461:3:461:8|Optimizing register bit genblk1.txp_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":422:3:422:8|Optimizing register bit genblk1.txs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":422:3:422:8|Pruning register bit 2 of genblk1.txs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":461:3:461:8|Pruning register bit 2 of genblk1.txp_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":694:3:694:8|Pruning register bit 2 of genblk2.rxs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":200:33:200:48|Input port bits 3 to 1 of rui_tx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":204:33:204:51|Input port bits 3 to 1 of rui_rx_serdes_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":205:33:205:48|Input port bits 3 to 1 of rui_rx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":206:33:206:48|Input port bits 3 to 1 of rdi_rx_los_low_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":207:33:207:48|Input port bits 3 to 1 of rdi_rx_cdr_lol_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning register bits 6 to 4 of genblk5.rdiff_comp_unlock[6:3]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning register bits 5 to 3 of genblk5.rdiff_comp_lock[5:2]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rdiff_comp_unlock[3]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rcount_tc[17]. Make sure that there are no unused intermediate registers. +@N: CL201 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1801:0:1801:5|Trying to extract state machine for register sll_state. +Extracted state machine for register sll_state +State machine has 4 reachable states with original encodings of: + 00 + 01 + 10 + 11 + +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 75MB peak: 76MB) + + +Process completed successfully. +# Wed Apr 24 09:44:49 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode + +======================================================================================= +For a summary of linker messages for components that did not bind, please see log file: +@L: /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.linkerlog +======================================================================================= + + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Wed Apr 24 09:44:49 2019 + +###########################################################] +@END + +At c_hdl Exit (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 3MB peak: 4MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Wed Apr 24 09:44:49 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Wed Apr 24 09:44:50 2019 + +###########################################################] +Pre-mapping Report + +# Wed Apr 24 09:44:50 2019 + +Synopsys Lattice Technology Pre-mapping, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 100MB) + +Reading constraint file: /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.fdc +@L: /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5_scck.rpt +Printing clock summary report in "/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5_scck.rpt" file +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 102MB peak: 104MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 102MB peak: 104MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 114MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 116MB) + +@N: BN362 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1408:0:1408:5|Removing sequential instance pcpri_mod_ch (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:PrimLib.dffre(prim) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1244:27:1244:40|Removing instance div2_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_3(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1252:27:1252:41|Removing instance div11_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_2(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1236:27:1236:40|Removing instance gear_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_4(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1268:27:1268:44|Removing instance pcie_mod_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_0(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1260:27:1260:44|Removing instance cpri_mod_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_1(verilog) because it does not drive other instances. +ICG Latch Removal Summary: +Number of ICG latches removed: 0 +Number of ICG latches not removed: 0 +syn_allowed_resources : blockrams=56 set on top level netlist sgmii_ecp5 + +Finished netlist restructuring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + + + +Clock Summary +****************** + + Start Requested Requested Clock Clock Clock +Level Clock Frequency Period Type Group Load +---------------------------------------------------------------------------------------------------------------------- +0 - System 100.0 MHz 10.000 system system_clkgroup 0 + +0 - sgmii_ecp5|pll_refclki 100.0 MHz 10.000 inferred Inferred_clkgroup_0 76 + +0 - sgmii_ecp5|rxrefclk 100.0 MHz 10.000 inferred Inferred_clkgroup_1 59 + +0 - sgmii_ecp5|tx_pclk_inferred_clock 100.0 MHz 10.000 inferred Inferred_clkgroup_2 53 +====================================================================================================================== + +@W: MT529 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Found inferred clock sgmii_ecp5|pll_refclki which controls 76 sequential elements including sll_inst.phb_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":567:3:567:8|Found inferred clock sgmii_ecp5|rxrefclk which controls 59 sequential elements including rsl_inst.genblk2\.rlos_db_p1. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Found inferred clock sgmii_ecp5|tx_pclk_inferred_clock which controls 53 sequential elements including sll_inst.rtc_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. + +Finished Pre Mapping Phase. + +Starting constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + +Encoding state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) +original code -> new code + 00 -> 00 + 01 -> 01 + 10 -> 10 + 11 -> 11 +@N: MO225 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1801:0:1801:5|There are no possible illegal states for state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)); safe FSM implementation is not required. + +Finished constraint checker preprocessing (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + +None +None + +Finished constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + +Pre-mapping successful! + +At Mapper Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 58MB peak: 144MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime +# Wed Apr 24 09:44:51 2019 + +###########################################################] +Map & Optimize Report + +# Wed Apr 24 09:44:51 2019 + +Synopsys Lattice Technology Mapper, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 100MB) + +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 113MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 115MB) + + + +Starting Optimization and Mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 144MB) + + +Available hyper_sources - for debug and ip models + None Found + + +Finished RTL optimizations (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 144MB) + +Encoding state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) +original code -> new code + 00 -> 00 + 01 -> 01 + 10 -> 10 + 11 -> 11 +@N: MO225 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1801:0:1801:5|There are no possible illegal states for state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)); safe FSM implementation is not required. +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1350:0:1350:5|Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance rhb_wait_cnt[7:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1304:0:1304:5|Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance rcount[15:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1759:0:1759:5|Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance pcount[21:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":412:3:412:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk1\.plol_cnt[19:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":778:3:778:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.rlols0_cnt[17:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":680:3:680:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.rlol1_cnt[18:0] + +Starting factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + + +Finished factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + + +Starting gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + + +Finished gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + + +Finished generic timing optimizations - Pass 1 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 145MB) + + +Starting Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 146MB) + + +Finished Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 146MB) + + +Finished generic timing optimizations - Pass 2 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 146MB) + + +Finished preparing to map (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 146MB) + +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). + +Finished technology mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 146MB) + +Pass CPU time Worst Slack Luts / Registers +------------------------------------------------------------ + 1 0h:00m:01s 5.36ns 118 / 186 +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). + +Finished technology timing optimizations and critical path resynthesis (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 144MB peak: 146MB) + +@N: FX164 |The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute. + +Finished restoring hierarchy (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 144MB peak: 146MB) + + + +@S |Clock Optimization Summary + + +#### START OF CLOCK OPTIMIZATION REPORT #####[ + +3 non-gated/non-generated clock tree(s) driving 186 clock pin(s) of sequential element(s) +0 gated/generated clock tree(s) driving 0 clock pin(s) of sequential element(s) +0 instances converted, 0 sequential instances remain driven by gated/generated clocks + +=================================== Non-Gated/Non-Generated Clocks ==================================== +Clock Tree ID Driving Element Drive Element Type Fanout Sample Instance +------------------------------------------------------------------------------------------------------- +@K:CKID0001 pll_refclki port 74 rsl_inst.genblk1\.pll_lol_p1 +@K:CKID0002 rxrefclk port 59 rsl_inst.genblk2\.rlol1_cnt[18] +@K:CKID0003 DCU0_inst DCUA 53 sll_inst.pcount[21] +======================================================================================================= + + +##### END OF CLOCK OPTIMIZATION REPORT ######] + + +Start Writing Netlists (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 109MB peak: 146MB) + +Writing Analyst data base /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_m.srm + +Finished Writing Netlist Databases (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 144MB peak: 146MB) + +Writing EDIF Netlist and constraint files +@N: FX1056 |Writing EDF file: /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.edn +M-2017.03L-SP1-1 +@N: BW106 |Synplicity Constraint File capacitance units using default value of 1pF + +Finished Writing EDIF Netlist and constraint files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 148MB peak: 150MB) + +Writing Verilog Simulation files + +Finished Writing Verilog Simulation files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 148MB peak: 150MB) + +Writing VHDL Simulation files + +Finished Writing VHDL Simulation files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 148MB peak: 150MB) + + +Start final timing analysis (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 149MB peak: 150MB) + +@W: MT246 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd":150:4:150:12|Blackbox DCUA is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) +@W: MT420 |Found inferred clock sgmii_ecp5|rxrefclk with period 10.00ns. Please declare a user-defined clock on object "p:rxrefclk" +@W: MT420 |Found inferred clock sgmii_ecp5|pll_refclki with period 10.00ns. Please declare a user-defined clock on object "p:pll_refclki" +@W: MT420 |Found inferred clock sgmii_ecp5|tx_pclk_inferred_clock with period 10.00ns. Please declare a user-defined clock on object "n:tx_pclk" + + +##### START OF TIMING REPORT #####[ +# Timing Report written on Wed Apr 24 09:44:54 2019 +# + + +Top view: sgmii_ecp5 +Requested Frequency: 100.0 MHz +Wire load mode: top +Paths requested: 5 +Constraint File(s): /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.fdc + +@N: MT320 |This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. + +@N: MT322 |Clock constraints include only register-to-register paths associated with each individual clock. + + + +Performance Summary +******************* + + +Worst slack in design: 4.079 + + Requested Estimated Requested Estimated Clock Clock +Starting Clock Frequency Frequency Period Period Slack Type Group +------------------------------------------------------------------------------------------------------------------------------------------ +sgmii_ecp5|pll_refclki 100.0 MHz 168.9 MHz 10.000 5.921 4.079 inferred Inferred_clkgroup_0 +sgmii_ecp5|rxrefclk 100.0 MHz 170.5 MHz 10.000 5.864 4.136 inferred Inferred_clkgroup_1 +sgmii_ecp5|tx_pclk_inferred_clock 100.0 MHz 237.5 MHz 10.000 4.211 5.789 inferred Inferred_clkgroup_2 +System 100.0 MHz 18518.5 MHz 10.000 0.054 9.946 system system_clkgroup +========================================================================================================================================== + + + + + +Clock Relationships +******************* + +Clocks | rise to rise | fall to fall | rise to fall | fall to rise +------------------------------------------------------------------------------------------------------------------------------------------------------------ +Starting Ending | constraint slack | constraint slack | constraint slack | constraint slack +------------------------------------------------------------------------------------------------------------------------------------------------------------ +System sgmii_ecp5|rxrefclk | 10.000 9.946 | No paths - | No paths - | No paths - +sgmii_ecp5|pll_refclki System | 10.000 8.385 | No paths - | No paths - | No paths - +sgmii_ecp5|pll_refclki sgmii_ecp5|pll_refclki | 10.000 4.079 | No paths - | No paths - | No paths - +sgmii_ecp5|pll_refclki sgmii_ecp5|tx_pclk_inferred_clock | Diff grp - | No paths - | No paths - | No paths - +sgmii_ecp5|rxrefclk System | 10.000 8.283 | No paths - | No paths - | No paths - +sgmii_ecp5|rxrefclk sgmii_ecp5|rxrefclk | 10.000 4.136 | No paths - | No paths - | No paths - +sgmii_ecp5|tx_pclk_inferred_clock sgmii_ecp5|pll_refclki | Diff grp - | No paths - | No paths - | No paths - +sgmii_ecp5|tx_pclk_inferred_clock sgmii_ecp5|tx_pclk_inferred_clock | 10.000 5.789 | No paths - | No paths - | No paths - +============================================================================================================================================================ + Note: 'No paths' indicates there are no paths in the design for that pair of clock edges. + 'Diff grp' indicates that paths exist but the starting clock and ending clock are in different clock groups. + + + +Interface Information +********************* + +No IO constraint found + + + +==================================== +Detailed Report for Clock: sgmii_ecp5|pll_refclki +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +-------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[1] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[1] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[6] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[6] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[7] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[7] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[12] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[12] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[2] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[2] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[3] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[3] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[4] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[4] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[5] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[5] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[8] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[8] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[9] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[9] 0.907 4.684 +==================================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +----------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[19] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[19] 9.946 4.079 +rsl_inst.genblk1\.plol_cnt[17] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[17] 9.946 4.139 +rsl_inst.genblk1\.plol_cnt[18] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[18] 9.946 4.139 +rsl_inst.genblk1\.plol_cnt[15] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[15] 9.946 4.200 +rsl_inst.genblk1\.plol_cnt[16] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[16] 9.946 4.200 +rsl_inst.genblk1\.plol_cnt[13] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[13] 9.946 4.261 +rsl_inst.genblk1\.plol_cnt[14] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[14] 9.946 4.261 +rsl_inst.genblk1\.plol_cnt[11] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[11] 9.946 4.322 +rsl_inst.genblk1\.plol_cnt[12] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[12] 9.946 4.322 +rsl_inst.genblk1\.plol_cnt[9] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[9] 9.946 4.383 +======================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 5.867 + - Clock delay at starting point: 0.000 (ideal) + = Slack (critical) : 4.079 + + Number of logic level(s): 15 + Starting point: rsl_inst.genblk1\.plol_cnt[1] / Q + Ending point: rsl_inst.genblk1\.plol_cnt[19] / D + The start point is clocked by sgmii_ecp5|pll_refclki [rising] on pin CK + The end point is clocked by sgmii_ecp5|pll_refclki [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[1] FD1S3DX Q Out 0.907 0.907 - +plol_cnt[1] Net - - - - 2 +rsl_inst.genblk1\.un1_plol_cnt_tc_10 ORCALUT4 A In 0.000 0.907 - +rsl_inst.genblk1\.un1_plol_cnt_tc_10 ORCALUT4 Z Out 0.606 1.513 - +un1_plol_cnt_tc_10 Net - - - - 1 +rsl_inst.genblk1\.un1_plol_cnt_tc_14 ORCALUT4 D In 0.000 1.513 - +rsl_inst.genblk1\.un1_plol_cnt_tc_14 ORCALUT4 Z Out 0.606 2.119 - +un1_plol_cnt_tc_14 Net - - - - 1 +rsl_inst.genblk1\.un1_plol_cnt_tc ORCALUT4 D In 0.000 2.119 - +rsl_inst.genblk1\.un1_plol_cnt_tc ORCALUT4 Z Out 0.762 2.881 - +un1_plol_cnt_tc Net - - - - 5 +rsl_inst.genblk1\.plol_cnt11_i ORCALUT4 B In 0.000 2.881 - +rsl_inst.genblk1\.plol_cnt11_i ORCALUT4 Z Out 0.840 3.721 - +plol_cnt Net - - - - 21 +rsl_inst.genblk1\.plol_cnt_cry_0[0] CCU2C A1 In 0.000 3.721 - +rsl_inst.genblk1\.plol_cnt_cry_0[0] CCU2C COUT Out 0.900 4.621 - +plol_cnt_cry[0] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[1] CCU2C CIN In 0.000 4.621 - +rsl_inst.genblk1\.plol_cnt_cry_0[1] CCU2C COUT Out 0.061 4.682 - +plol_cnt_cry[2] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[3] CCU2C CIN In 0.000 4.682 - +rsl_inst.genblk1\.plol_cnt_cry_0[3] CCU2C COUT Out 0.061 4.743 - +plol_cnt_cry[4] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[5] CCU2C CIN In 0.000 4.743 - +rsl_inst.genblk1\.plol_cnt_cry_0[5] CCU2C COUT Out 0.061 4.804 - +plol_cnt_cry[6] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[7] CCU2C CIN In 0.000 4.804 - +rsl_inst.genblk1\.plol_cnt_cry_0[7] CCU2C COUT Out 0.061 4.865 - +plol_cnt_cry[8] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[9] CCU2C CIN In 0.000 4.865 - +rsl_inst.genblk1\.plol_cnt_cry_0[9] CCU2C COUT Out 0.061 4.926 - +plol_cnt_cry[10] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[11] CCU2C CIN In 0.000 4.926 - +rsl_inst.genblk1\.plol_cnt_cry_0[11] CCU2C COUT Out 0.061 4.987 - +plol_cnt_cry[12] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[13] CCU2C CIN In 0.000 4.987 - +rsl_inst.genblk1\.plol_cnt_cry_0[13] CCU2C COUT Out 0.061 5.048 - +plol_cnt_cry[14] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[15] CCU2C CIN In 0.000 5.048 - +rsl_inst.genblk1\.plol_cnt_cry_0[15] CCU2C COUT Out 0.061 5.109 - +plol_cnt_cry[16] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[17] CCU2C CIN In 0.000 5.109 - +rsl_inst.genblk1\.plol_cnt_cry_0[17] CCU2C COUT Out 0.061 5.170 - +plol_cnt_cry[18] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_s_0[19] CCU2C CIN In 0.000 5.170 - +rsl_inst.genblk1\.plol_cnt_s_0[19] CCU2C S0 Out 0.698 5.867 - +plol_cnt_s[19] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt[19] FD1S3DX D In 0.000 5.867 - +======================================================================================================= + + + + +==================================== +Detailed Report for Clock: sgmii_ecp5|rxrefclk +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rlol1_cnt[14] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[14] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[15] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[15] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[16] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[16] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[17] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[17] 0.907 4.136 +rsl_inst.genblk2\.rlols0_cnt[7] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[7] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[8] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[8] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[9] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[9] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[10] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[10] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[11] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[11] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[14] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[14] 0.907 4.170 +===================================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------------------------------------------ +rsl_inst.genblk2\.rlol1_cnt[17] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[17] 9.946 4.136 +rsl_inst.genblk2\.rlol1_cnt[18] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[18] 9.946 4.136 +rsl_inst.genblk2\.rlols0_cnt[17] sgmii_ecp5|rxrefclk FD1P3DX D rlols0_cnt_s[17] 9.946 4.170 +rsl_inst.genblk2\.rlol1_cnt[15] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[15] 9.946 4.197 +rsl_inst.genblk2\.rlol1_cnt[16] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[16] 9.946 4.197 +rsl_inst.genblk2\.rlols0_cnt[15] sgmii_ecp5|rxrefclk FD1P3DX D rlols0_cnt_s[15] 9.946 4.231 +rsl_inst.genblk2\.rlols0_cnt[16] sgmii_ecp5|rxrefclk FD1P3DX D rlols0_cnt_s[16] 9.946 4.231 +rsl_inst.genblk2\.rlol1_cnt[13] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[13] 9.946 4.258 +rsl_inst.genblk2\.rlol1_cnt[14] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[14] 9.946 4.258 +rsl_inst.genblk2\.rlols0_cnt[13] sgmii_ecp5|rxrefclk FD1P3DX D rlols0_cnt_s[13] 9.946 4.292 +======================================================================================================================== + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 5.809 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : 4.136 + + Number of logic level(s): 14 + Starting point: rsl_inst.genblk2\.rlol1_cnt[14] / Q + Ending point: rsl_inst.genblk2\.rlol1_cnt[18] / D + The start point is clocked by sgmii_ecp5|rxrefclk [rising] on pin CK + The end point is clocked by sgmii_ecp5|rxrefclk [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +-------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rlol1_cnt[14] FD1P3DX Q Out 0.907 0.907 - +rlol1_cnt[14] Net - - - - 2 +rsl_inst.rlol1_cnt_tc_1_10 ORCALUT4 A In 0.000 0.907 - +rsl_inst.rlol1_cnt_tc_1_10 ORCALUT4 Z Out 0.606 1.513 - +rlol1_cnt_tc_1_10 Net - - - - 1 +rsl_inst.rlol1_cnt_tc_1_14 ORCALUT4 D In 0.000 1.513 - +rsl_inst.rlol1_cnt_tc_1_14 ORCALUT4 Z Out 0.606 2.119 - +rlol1_cnt_tc_1_14 Net - - - - 1 +rsl_inst.rlol1_cnt_tc_1 ORCALUT4 D In 0.000 2.119 - +rsl_inst.rlol1_cnt_tc_1 ORCALUT4 Z Out 0.768 2.887 - +rlol1_cnt_tc_1 Net - - - - 6 +rsl_inst.genblk2\.rlos_db_p1_RNIS0OP ORCALUT4 A In 0.000 2.887 - +rsl_inst.genblk2\.rlos_db_p1_RNIS0OP ORCALUT4 Z Out 0.837 3.724 - +rlol1_cnt Net - - - - 20 +rsl_inst.genblk2\.rlol1_cnt_cry_0[0] CCU2C A1 In 0.000 3.724 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[0] CCU2C COUT Out 0.900 4.624 - +rlol1_cnt_cry[0] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[1] CCU2C CIN In 0.000 4.624 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[1] CCU2C COUT Out 0.061 4.685 - +rlol1_cnt_cry[2] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[3] CCU2C CIN In 0.000 4.685 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[3] CCU2C COUT Out 0.061 4.746 - +rlol1_cnt_cry[4] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[5] CCU2C CIN In 0.000 4.746 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[5] CCU2C COUT Out 0.061 4.807 - +rlol1_cnt_cry[6] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[7] CCU2C CIN In 0.000 4.807 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[7] CCU2C COUT Out 0.061 4.868 - +rlol1_cnt_cry[8] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[9] CCU2C CIN In 0.000 4.868 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[9] CCU2C COUT Out 0.061 4.929 - +rlol1_cnt_cry[10] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[11] CCU2C CIN In 0.000 4.929 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[11] CCU2C COUT Out 0.061 4.990 - +rlol1_cnt_cry[12] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[13] CCU2C CIN In 0.000 4.990 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[13] CCU2C COUT Out 0.061 5.051 - +rlol1_cnt_cry[14] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[15] CCU2C CIN In 0.000 5.051 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[15] CCU2C COUT Out 0.061 5.112 - +rlol1_cnt_cry[16] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[17] CCU2C CIN In 0.000 5.112 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[17] CCU2C S1 Out 0.698 5.809 - +rlol1_cnt_s[18] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt[18] FD1P3DX D In 0.000 5.809 - +======================================================================================================== + + + + +==================================== +Detailed Report for Clock: sgmii_ecp5|tx_pclk_inferred_clock +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------------------------------------------ +sll_inst.ppul_sync_p1 sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q ppul_sync_p1 1.098 5.789 +sll_inst.ppul_sync_p2 sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q ppul_sync_p2 1.098 5.789 +sll_inst.pcount_diff[0] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_0 0.985 6.147 +sll_inst.pcount[0] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q pcount[0] 0.955 6.178 +sll_inst.pcount_diff[1] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_1 0.955 6.239 +sll_inst.pcount_diff[2] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_2 0.955 6.239 +sll_inst.pcount[1] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q pcount[1] 0.907 6.287 +sll_inst.pcount[2] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q pcount[2] 0.907 6.287 +sll_inst.pcount_diff[3] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_3 0.955 6.300 +sll_inst.pcount_diff[4] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_4 0.955 6.300 +======================================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +----------------------------------------------------------------------------------------------------------------------------------------- +sll_inst.pcount[21] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[21] 9.946 5.789 +sll_inst.pcount[19] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[19] 9.946 5.850 +sll_inst.pcount[20] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[20] 9.946 5.850 +sll_inst.pcount[17] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[17] 9.946 5.911 +sll_inst.pcount[18] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[18] 9.946 5.911 +sll_inst.pcount[15] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[15] 9.946 5.972 +sll_inst.pcount[16] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[16] 9.946 5.972 +sll_inst.pcount[13] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[13] 9.946 6.033 +sll_inst.pcount[14] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[14] 9.946 6.033 +sll_inst.pcount_diff[21] sgmii_ecp5|tx_pclk_inferred_clock FD1P3DX D un1_pcount_diff_1_s_21_0_S0 9.946 6.034 +========================================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 4.157 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : 5.789 + + Number of logic level(s): 13 + Starting point: sll_inst.ppul_sync_p1 / Q + Ending point: sll_inst.pcount[21] / D + The start point is clocked by sgmii_ecp5|tx_pclk_inferred_clock [rising] on pin CK + The end point is clocked by sgmii_ecp5|tx_pclk_inferred_clock [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +-------------------------------------------------------------------------------------------- +sll_inst.ppul_sync_p1 FD1S3DX Q Out 1.098 1.098 - +ppul_sync_p1 Net - - - - 25 +sll_inst.pcount10_0_o3 ORCALUT4 A In 0.000 1.098 - +sll_inst.pcount10_0_o3 ORCALUT4 Z Out 0.851 1.950 - +N_8 Net - - - - 25 +sll_inst.pcount_cry_0[0] CCU2C A1 In 0.000 1.950 - +sll_inst.pcount_cry_0[0] CCU2C COUT Out 0.900 2.850 - +pcount_cry[0] Net - - - - 1 +sll_inst.pcount_cry_0[1] CCU2C CIN In 0.000 2.850 - +sll_inst.pcount_cry_0[1] CCU2C COUT Out 0.061 2.911 - +pcount_cry[2] Net - - - - 1 +sll_inst.pcount_cry_0[3] CCU2C CIN In 0.000 2.911 - +sll_inst.pcount_cry_0[3] CCU2C COUT Out 0.061 2.972 - +pcount_cry[4] Net - - - - 1 +sll_inst.pcount_cry_0[5] CCU2C CIN In 0.000 2.972 - +sll_inst.pcount_cry_0[5] CCU2C COUT Out 0.061 3.033 - +pcount_cry[6] Net - - - - 1 +sll_inst.pcount_cry_0[7] CCU2C CIN In 0.000 3.033 - +sll_inst.pcount_cry_0[7] CCU2C COUT Out 0.061 3.094 - +pcount_cry[8] Net - - - - 1 +sll_inst.pcount_cry_0[9] CCU2C CIN In 0.000 3.094 - +sll_inst.pcount_cry_0[9] CCU2C COUT Out 0.061 3.155 - +pcount_cry[10] Net - - - - 1 +sll_inst.pcount_cry_0[11] CCU2C CIN In 0.000 3.155 - +sll_inst.pcount_cry_0[11] CCU2C COUT Out 0.061 3.216 - +pcount_cry[12] Net - - - - 1 +sll_inst.pcount_cry_0[13] CCU2C CIN In 0.000 3.216 - +sll_inst.pcount_cry_0[13] CCU2C COUT Out 0.061 3.277 - +pcount_cry[14] Net - - - - 1 +sll_inst.pcount_cry_0[15] CCU2C CIN In 0.000 3.277 - +sll_inst.pcount_cry_0[15] CCU2C COUT Out 0.061 3.338 - +pcount_cry[16] Net - - - - 1 +sll_inst.pcount_cry_0[17] CCU2C CIN In 0.000 3.338 - +sll_inst.pcount_cry_0[17] CCU2C COUT Out 0.061 3.399 - +pcount_cry[18] Net - - - - 1 +sll_inst.pcount_cry_0[19] CCU2C CIN In 0.000 3.399 - +sll_inst.pcount_cry_0[19] CCU2C COUT Out 0.061 3.460 - +pcount_cry[20] Net - - - - 1 +sll_inst.pcount_s_0[21] CCU2C CIN In 0.000 3.460 - +sll_inst.pcount_s_0[21] CCU2C S0 Out 0.698 4.157 - +pcount_s[21] Net - - - - 1 +sll_inst.pcount[21] FD1S3DX D In 0.000 4.157 - +============================================================================================ + + + + +==================================== +Detailed Report for Clock: System +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +---------------------------------------------------------------------------------------- +DCU0_inst System DCUA CH0_FFS_RLOL rx_cdr_lol_s 0.000 9.946 +DCU0_inst System DCUA CH0_FFS_RLOS rx_los_low_s 0.000 9.946 +======================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rlol_p1 System FD1S3DX D rx_cdr_lol_s 9.946 9.946 +rsl_inst.genblk2\.rlos_p1 System FD1S3DX D rx_los_low_s 9.946 9.946 +=================================================================================================== + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 0.000 + - Clock delay at starting point: 0.000 (ideal) + - Estimated clock delay at start point: -0.000 + = Slack (non-critical) : 9.946 + + Number of logic level(s): 0 + Starting point: DCU0_inst / CH0_FFS_RLOL + Ending point: rsl_inst.genblk2\.rlol_p1 / D + The start point is clocked by System [rising] + The end point is clocked by sgmii_ecp5|rxrefclk [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +--------------------------------------------------------------------------------------------------- +DCU0_inst DCUA CH0_FFS_RLOL Out 0.000 0.000 - +rx_cdr_lol_s Net - - - - 2 +rsl_inst.genblk2\.rlol_p1 FD1S3DX D In 0.000 0.000 - +=================================================================================================== + + + +##### END OF TIMING REPORT #####] + +Timing exceptions that could not be applied +None + +Finished final timing analysis (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 149MB peak: 150MB) + + +Finished timing report (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 149MB peak: 150MB) + +--------------------------------------- +Resource Usage Report +Part: lfe5um_25f-6 + +Register bits: 186 of 24288 (1%) +PIC Latch: 0 +I/O cells: 0 + + +Details: +CCU2C: 99 +DCUA: 1 +FD1P3BX: 20 +FD1P3DX: 60 +FD1S3BX: 10 +FD1S3DX: 96 +GSR: 1 +INV: 3 +ORCALUT4: 116 +PFUMX: 2 +PUR: 1 +VHI: 6 +VLO: 6 +Mapper successful! + +At Mapper Exit (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 34MB peak: 150MB) + +Process took 0h:00m:03s realtime, 0h:00m:03s cputime +# Wed Apr 24 09:44:54 2019 + +###########################################################] diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/dm/layer0.xdm b/gbe/cores/sgmii/sgmii_ecp5/syn_results/dm/layer0.xdm new file mode 100644 index 0000000..96ecede --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/dm/layer0.xdm @@ -0,0 +1,546 @@ +%%% protect protected_file +@EG +- +]17p0Osk0CksRsPC#MHF=3"4j +"> +!S<-1-RFOksCHRVDRC#O0FMskHL0oHMRR0F0REC8HC#o-MR-S> +S +SS1SS1SS +SS1SS1SS1S +SF<1kCsOR"b=/lEFCF/#VD0/NH00O8C/HFNlMd8/3_4jG/nc#b$MLCN#/LDH/8PE/bE$CMsC0P#3ER8"N(=""=RD"8PEDO"RD0H#=4"-"DRbH=#0""-4/S> +SF<1kCsOR"b=/lEFC8/NsMHN/0oH/L0s6/#O0bClDCN0/Fbs[0CO/l#oH#H/oHlH_bCO6o/#l_HHC6Ob38PE"=RN"RU"DP="E"8DRHOD#"0=-R4"b#DH0-="4>"/ +"/ +/S<1sFkO>C# +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMI="F3s #HolHO_CbD6#DF_Os#C3$LM_D NO_GLF"=RD"8PED +">SWSSqS +SRS +S"/ +S +SS +S +SR +SR +SR +SR"/ +SuS +SRSuSS +S"/ + +SRSqS +SR +SR +SR + +/S<7>CV +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMI="F3s #HolHO_Cb#6sDF_Os#C3$LM_D NO_GLF"=RD"8PED +">SWSS +S"/ +SqS +SRSqSSqS"/ +"/ +S +SS +S +SR +SR"/ +S +S"/ +SqSSqSSqS +/S<7>CV +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMC="Okb6lB37z#q3$LM_D NO_GLF"=RD"8PED +">SWSS +S"/ +SqS +SRSqSS +SSqSS +SSuSS +SSuSS +SSuS"/ + +SR +SR +SR"/ +S +S +SR +SR"/ +"/ +S +S"/ + +SR +SR +SRSuS"/ +S +S +SR +SR +SR"/ + +SR"/ + +SRSuS"/ +SuS +SR +SR +SR +SR +SRSuS"/ +S +S +SR"/ + +SR +SR +SR +SR +SRS +S"/ +SuS +SR"/ + +SR"/ + +SRS +S"/ +S +S +SR"/ + +SRS +S"/ + +SR"/ + +SR"/ +S +S +SRSuSS +S"/ +SuS +SR +SR +SR"/ +S +S +SRSuS"/ +"/ +"/ +"/ +"/ +S +S +SR"/ +"/ +"/ +SuS +SR +SR +SR"/ + +SR +SR +SRSuS"/ +S +S +SR +SR +SR +SR +SRS +S"/ +"/ +"/ +SuS +SR"/ + +SRSuS"/ + +SR"/ +SuS +SRS +S"/ +SuS +SRSuS"/ +S +S +SRS +S"/ +S +S +SRSuS"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ + +SR"/ +S +S +SRSuS"/ +SuS +SR +SR +SR +SR +SRSuS"/ +S +S +SRS +S"/ +"/ +"/ +SuS +SR"/ + +SR +SR +SR +SR +SRS +S"/ +SuS +SRS +S"/ +SuS +SRS +S"/ +"/ +"/ +SuS +SRS +S"/ +"/ +"/ +SuS +SRS +S"/ +SuS +SR"/ + +SRSuS"/ + +SR"/ +SuS +SRS +S"/ +SuS +SRSuS"/ +S +S +SRSuS"/ +"/ +"/ +"/ +"/ + +SR"/ +S +S +SRS +S"/ + +SR"/ + +SR"/ +"/ +"/ +S +S +SR"/ + +SR +SR +SRSuSSuSSuS +SR"/ + +SR"/ +"/ +SuS +SRS +S"/ +SqS"/ +"/ +"/ +SqSSqSSqSSqS + + + +/S<7>CV +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMI="F3s #HolHO_CbP634D"R=E"P8>D" +S +S"/ +S +SS +SS +S"/ + +SRS +S + + + + +SC<)V=RM"bCO63kl7qBz3M#$_NLDOL _FRG"H7="B_zjH0M#"S> +SWS +SqSS +SSR +SqSS +SqSS +SSR"/ +SSSS"/ +SSS +SqSS +SSRS +SqS +SqS +SqSSSS +SSR +SqS +SqS"/ +SSS +SqSS +SSR +SqS"/ +SSS"/ +SSS"/ +SSSS +SSR +SqS"/ +SSSS +SqSS +SSRS"/ +SSS +SqSS +SSR"/ +SSSSS +SqSS +SSR +SqSS"/ +SSSS +SSR +SqSSS +SSRSS +SqSS +SqS"/ +SSSS +SSRS +SSRS +SSR"/ +SSSS +SSRS +SqS +SqSS"/ +SSSS +SSR +SqSS"/ +SSS +SqS"/ +SSSS +SSR +SqSS"/ +SSS +SqSS +SqSS"/ +SSSS +SSRS +SSR"/ +SSS +SqSSS +SSR"/ +SSS"/ +SSSSSS"/ +SSSS +SSRS +SSR"/ +SSSS +SSR"/ +SSS +SqSS +SSRS +SqSSS +SSR +SqS"/ +SSSS +SSR +SqS +SqS +SqSS +SqS"/ +SSSS +SqSS +SSR"/ +SSSS +SqSSS +SSRS +SSR +SqSS +SSR +SqS"/ +SSSSS +SSR"/ +SSSS +SSR +SqSS +SSR +SqS"/ +SSS +SqS +SqSS"/ +SSS"/ +SSS +SqSS +SSR"/ +SSS +SqSS +SSRS +SSRS +SqSS +SSR +SqS"/ +SSS"/ +SSSSS +SSRSS +SqSS +S +SC<)V=RM"sIF o3#l_HHC6Obs_#DOCFs3M#$_NLDOL _FRG"Hs="#HD_M"#0>S +SSRS +SSR +S)S)S +SWS +SqSS/S<)>CV +/S<7>CV +]sC + +@ diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/dm/layer1.xdm b/gbe/cores/sgmii/sgmii_ecp5/syn_results/dm/layer1.xdm new file mode 100644 index 0000000..5806254 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/dm/layer1.xdm @@ -0,0 +1,257 @@ +%%% protect protected_file +@EG +- +]17p0Osk0CksRsPC#MHF=3"4j +"> +!S<-1-RFOksCHRVDRC#O0FMskHL0oHMRR0F0REC8HC#o-MR-S> +S +S +SF<1kCsOR"b=/lEFCF/#VD0/NH00O8C/HFNlMd8/3_4jG/nc#b$MLCN#/LDH/ODkC/M0b_lH83CVPN"R=""4R"D=PHCsD"FoRHOD#"0=-R4"b#DH0-="4>"/ + +SF<1kCsOR"b=/lEFCF/#VD0/NH00O8C/HFNlMd8/3_4jG/nc#b$MLCN#/LDH/FPDol/ksN_Ob3HlPN"R=""dR"D=PHCsD"FoRHOD#"0=-R4"b#DH0-="4>"/ + +SF<1kCsOR"b=/lEFCF/#VD0/NH00O8C/HFNlMd8/3_4jG/nc#b$MLCN#/LDH/FPDoO/#C_lHbCHb#P3#EN"R=""6R"D=PHCsD"FoRHOD#"0=-R4"b#DH0-="4>"/ +< +S/k1Fs#OC> + + + +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMI="F3s #HolHO_Cb#6sDF_OsZC_.N_D$4Cs3sPCHoDF"=RD"sPCHoDF"S> +SRSqS"/ +S +SS +S"/ +S +SSuSSuS"/ +"/ +S +SSuSSuS +SR +SRS +SSuS +SR +SRS +S"/ +SuSS +SSuSS +SSuS +SR"/ + +SR"/ + +SRSqSSqSSqSSqS + + + +/S<7>CV +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMI="F3s #O$M_3j#PHCsD"FoR"D=PHCsD"Fo>S +S +SRSqS +SRSuS +SR +SRS +SS +SS +S +/S<7>CV +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMI="F3s #HolHO_CbD6#DF_OsZC_4N_D$4Cs3sPCHoDF"=RD"sPCHoDF"S> +SRSqS"/ +S +SS +S +SR"/ +SuSS +S +SRS +S"/ + +SR +SR +SR"/ +S +S"/ +S +S"/ +"/ +"/ +"/ +S +S +SR +SR +SRSuS"/ +S +S +SR +SRSuS"/ +S +S +SRSuS"/ + +SR"/ +S +SSuSS +SSuSS +SSuS +SRS +S"/ +SuS +SRS +SS +SS +SS +SS +S"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ + +SR"/ +"/ +"/ +"/ +SqS + + + + +SC<)V=RM"sIF $3#MjO_#C3PsFHDoH"R=E"bL$_#MHO_M"#0>S +SSRR/ +SSS"/ +SSS"/ +SSSS/S<)>CV +S +SqS +SqS +SqSS +S +SC<)V=RM"sIF $3#MjO_#C3PsFHDoH"R=8"bH_VV#O$M_#HM0 +">S +SqS +SqS +SqSS +S +SC<)V=RM"sIF $3#MjO_#C3PsFHDoH"R=C"oN#s_$_MOH0M#"S> +SWSS +SSRS +SSRS +SSR"/ +S +SS +SSRR/ +SSS"/ +SSS"/ +SSSS/S<)>CV +S +SSRR/ +SSS"/ +SSS"/ +SSSS/S<)>CV +0" +SSSSSS +S)S)SS +SqS +SqS +SqSS +S + +/p]71k0sOs0kC@> + + + + diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/run_options.txt b/gbe/cores/sgmii/sgmii_ecp5/syn_results/run_options.txt new file mode 100644 index 0000000..5110194 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/run_options.txt @@ -0,0 +1,76 @@ +#-- Synopsys, Inc. +#-- Version M-2017.03L-SP1-1 +#-- Project file /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/run_options.txt +#-- Written on Fri May 10 09:02:09 2019 + + +#project files +add_file -vhdl -lib work "/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd" +add_file -verilog "/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v" +add_file -fpga_constraint "/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.fdc" + + + +#implementation: "syn_results" +impl -add syn_results -type fpga + +# +#implementation attributes + +set_option -vlog_std v2001 + +#device options +set_option -technology ecp5um +set_option -part LFE5UM_25F +set_option -package MG285C +set_option -speed_grade -6 +set_option -part_companion "" + +#compilation/mapping options +set_option -top_module "sgmii_ecp5" + +# hdl_compiler_options +set_option -distributed_compile 0 + +# mapper_without_write_options +set_option -frequency 100 +set_option -srs_instrumentation 1 + +# mapper_options +set_option -write_verilog 1 +set_option -write_vhdl 1 + +# Lattice XP +set_option -maxfan 50 +set_option -disable_io_insertion 1 +set_option -retiming 0 +set_option -pipe 0 +set_option -forcegsr false +set_option -fix_gated_and_generated_clocks 1 +set_option -rw_check_on_ram 1 +set_option -update_models_cp 0 +set_option -syn_edif_array_rename 1 +set_option -Write_declared_clocks_only 1 + +# NFilter +set_option -no_sequential_opt 0 + +# sequential_optimization_options +set_option -symbolic_fsm_compiler 1 + +# Compiler Options +set_option -compiler_compatible 0 +set_option -resource_sharing 1 + +# Compiler Options +set_option -auto_infer_blackbox 0 + +#automatic place and route (vendor) options +set_option -write_apr_constraint 1 + +#set result format/file last +project -result_file "./sgmii_ecp5.edn" + +#set log file +set_option log_file "/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srf" +impl -active "syn_results" diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/scemi_cfg.txt b/gbe/cores/sgmii/sgmii_ecp5/syn_results/scemi_cfg.txt new file mode 100644 index 0000000..868d437 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/scemi_cfg.txt @@ -0,0 +1,3 @@ +## UMR3 MESSAGE PORT CONFIGURATION FILE +## ************************************ +XTOR_DPI_MSG_PORT_UMR_ADDR_VERSION=0 diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/scratchproject.prs b/gbe/cores/sgmii/sgmii_ecp5/syn_results/scratchproject.prs new file mode 100644 index 0000000..1406dc9 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/scratchproject.prs @@ -0,0 +1,74 @@ +#-- Synopsys, Inc. +#-- Version M-2017.03L-SP1-1 +#-- Project file /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/scratchproject.prs + +#project files +add_file -vhdl -lib work "/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd" +add_file -verilog "/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v" +add_file -fpga_constraint "/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.fdc" + + + +#implementation: "syn_results" +impl -add /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results -type fpga + +# +#implementation attributes + +set_option -vlog_std v2001 + +#device options +set_option -technology ecp5um +set_option -part LFE5UM_25F +set_option -package MG285C +set_option -speed_grade -6 +set_option -part_companion "" + +#compilation/mapping options +set_option -top_module "sgmii_ecp5" + +# hdl_compiler_options +set_option -distributed_compile 0 + +# mapper_without_write_options +set_option -frequency 100 +set_option -srs_instrumentation 1 + +# mapper_options +set_option -write_verilog 1 +set_option -write_vhdl 1 + +# Lattice XP +set_option -maxfan 50 +set_option -disable_io_insertion 1 +set_option -retiming 0 +set_option -pipe 0 +set_option -forcegsr false +set_option -fix_gated_and_generated_clocks 1 +set_option -rw_check_on_ram 1 +set_option -update_models_cp 0 +set_option -syn_edif_array_rename 1 +set_option -Write_declared_clocks_only 1 + +# NFilter +set_option -no_sequential_opt 0 + +# sequential_optimization_options +set_option -symbolic_fsm_compiler 1 + +# Compiler Options +set_option -compiler_compatible 0 +set_option -resource_sharing 1 + +# Compiler Options +set_option -auto_infer_blackbox 0 + +#automatic place and route (vendor) options +set_option -write_apr_constraint 1 + +#set result format/file last +project -result_file "/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.edn" + +#set log file +set_option log_file "/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srf" +impl -active "syn_results" diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.areasrr b/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.areasrr new file mode 100644 index 0000000..c3d63b8 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.areasrr @@ -0,0 +1,97 @@ +---------------------------------------------------------------------- +Report for cell sgmii_ecp5.v1 + +Register bits: 221 of 24288 (1%) +PIC Latch: 0 +I/O cells: 0 + Cell usage: + cell count Res Usage(%) + CCU2C 113 100.0 + DCUA 1 100.0 + FD1P3BX 20 100.0 + FD1P3DX 92 100.0 + FD1S3BX 12 100.0 + FD1S3DX 97 100.0 + GSR 1 100.0 + INV 3 100.0 + ORCALUT4 154 100.0 + PFUMX 2 100.0 + PUR 1 100.0 + VHI 6 100.0 + VLO 6 100.0 +SUB MODULES + sgmii_ecp5rsl_core_Z2_layer1 1 100.0 + sgmii_ecp5sll_core_Z1_layer1 1 100.0 + sync_0s 1 100.0 + sync_0s_0 1 100.0 + sync_0s_6 1 100.0 + + TOTAL 513 +---------------------------------------------------------------------- +Report for cell sgmii_ecp5rsl_core_Z2_layer1.netlist + Instance path: rsl_inst + Cell usage: + cell count Res Usage(%) + CCU2C 51 45.1 + FD1P3BX 4 20.0 + FD1P3DX 74 80.4 + FD1S3BX 12 100.0 + FD1S3DX 37 38.1 + ORCALUT4 100 64.9 + PFUMX 2 100.0 + VHI 1 16.7 + VLO 1 16.7 + + TOTAL 282 +---------------------------------------------------------------------- +Report for cell sgmii_ecp5sll_core_Z1_layer1.netlist + Instance path: sll_inst + Cell usage: + cell count Res Usage(%) + CCU2C 62 54.9 + FD1P3BX 16 80.0 + FD1P3DX 18 19.6 + FD1S3DX 60 61.9 + INV 3 100.0 + ORCALUT4 54 35.1 + VHI 4 66.7 + VLO 4 66.7 +SUB MODULES + sync_0s 1 100.0 + sync_0s_0 1 100.0 + sync_0s_6 1 100.0 + + TOTAL 224 +---------------------------------------------------------------------- +Report for cell sync_0s_0.netlist + Original Cell name sync_0s + Instance path: sll_inst.pdiff_sync_inst + Cell usage: + cell count Res Usage(%) + FD1S3DX 2 2.1 + VHI 1 16.7 + VLO 1 16.7 + + TOTAL 4 +---------------------------------------------------------------------- +Report for cell sync_0s_6.netlist + Original Cell name sync_0s + Instance path: sll_inst.rtc_sync_inst + Cell usage: + cell count Res Usage(%) + FD1S3DX 2 2.1 + VHI 1 16.7 + VLO 1 16.7 + + TOTAL 4 +---------------------------------------------------------------------- +Report for cell sync_0s.netlist + Original Cell name sync_0s + Instance path: sll_inst.phb_sync_inst + Cell usage: + cell count Res Usage(%) + FD1S3DX 2 2.1 + VHI 1 16.7 + VLO 1 16.7 + + TOTAL 4 diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.fse b/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.fse new file mode 100644 index 0000000..cc147f0 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.fse @@ -0,0 +1,12 @@ + +fsm_encoding {61801018011} sequential + +fsm_state_encoding {61801018011} LPLL_LOSS_ST {00} + +fsm_state_encoding {61801018011} LPLL_PRELOSS_ST {01} + +fsm_state_encoding {61801018011} LPLL_PRELOCK_ST {10} + +fsm_state_encoding {61801018011} LPLL_LOCK_ST {11} + +fsm_registers {61801018011} {sll_state[1]} {sll_state[0]} diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.htm b/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.htm new file mode 100644 index 0000000..31d89ed --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.htm @@ -0,0 +1,9 @@ + + + syntmp/sgmii_ecp5_srr.htm log file + + + + + + diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.prj b/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.prj new file mode 100644 index 0000000..7f5b1db --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.prj @@ -0,0 +1,47 @@ +#-- Lattice Semiconductor Corporation Ltd. +#-- Synplify OEM project file /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.prj +#-- Written on Fri May 10 09:02:08 2019 + + +#device options +set_option -technology ecp5um +set_option -part LFE5UM-85F +set_option -speed_grade 8 + +#use verilog 2001 standard option +set_option -vlog_std v2001 + +#map options +set_option -frequency 100 +set_option -fanout_limit 50 +set_option -disable_io_insertion true +set_option -retiming false +set_option -pipe false +set_option -pipe false +set_option -force_gsr false + +#simulation options +set_option -write_verilog true +set_option -write_vhdl true + +#timing analysis options + +#automatic place and route (vendor) options +set_option -write_apr_constraint 1 + +#-- add_file options +add_file -vhdl -lib work "/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd" +add_file -verilog -lib work "/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v" +add_file -constraint {"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.fdc"} + +#-- top module name +set_option -top_module sgmii_ecp5 + +#-- set result format/file last +project -result_file "sgmii_ecp5.edn" + +#-- error message log file +project -log_file sgmii_ecp5.srf + +#-- run Synplify with 'arrange VHDL file' +project -run diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srd b/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srd new file mode 100644 index 0000000000000000000000000000000000000000..bc01018dde3079b388e26dd2f26fee2cbfd60119 GIT binary patch literal 72824 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srf b/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srf new file mode 100644 index 0000000..4b5ec97 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srf @@ -0,0 +1,1137 @@ +#Build: Synplify Pro (R) M-2017.03L-SP1-1, Build 086R, Aug 4 2017 +#install: /home/soft/lattice/diamond/3.10_x64/synpbase +#OS: Linux +#Hostname: lxhadeb07 + +# Fri May 10 09:02:09 2019 + +#Implementation: syn_results + +Synopsys HDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Synopsys VHDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd":30:7:30:16|Top entity is set to sgmii_ecp5. +VHDL syntax check successful! +File /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd changed - recompiling + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB) + + +Process completed successfully. +# Fri May 10 09:02:09 2019 + +###########################################################] +Synopsys Verilog Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps) +@I::"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v" (library work) +Verilog syntax check successful! + +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB) + + +Process completed successfully. +# Fri May 10 09:02:10 2019 + +###########################################################] +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd":30:7:30:16|Top entity is set to sgmii_ecp5. +File /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd changed - recompiling +File /home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd changed - recompiling +VHDL syntax check successful! +File /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd changed - recompiling +@N: CD630 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd":30:7:30:16|Synthesizing work.sgmii_ecp5.v1. +Post processing for work.sgmii_ecp5.v1 + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 74MB peak: 76MB) + + +Process completed successfully. +# Fri May 10 09:02:10 2019 + +###########################################################] +Running on host :lxhadeb07 +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps) +@I::"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v" (library work) +Verilog syntax check successful! +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +@N: CG364 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1968:7:1968:10|Synthesizing module sync in library work. + + PDATA_RST_VAL=32'b00000000000000000000000000000000 + Generated name = sync_0s +@N: CG364 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1051:7:1051:24|Synthesizing module sgmii_ecp5sll_core in library work. + + PPROTOCOL=24'b010001110100001001000101 + PLOL_SETTING=32'b00000000000000000000000000000000 + PDYN_RATE_CTRL=64'b0100010001001001010100110100000101000010010011000100010101000100 + PPCIE_MAX_RATE=24'b001100100010111000110101 + PDIFF_VAL_LOCK=32'b00000000000000000000000000100111 + PDIFF_VAL_UNLOCK=32'b00000000000000000000000001001110 + PPCLK_TC=32'b00000000000000100000000000000000 + PDIFF_DIV11_VAL_LOCK=32'b00000000000000000000000000000000 + PDIFF_DIV11_VAL_UNLOCK=32'b00000000000000000000000000000000 + PPCLK_DIV11_TC=32'b00000000000000000000000000000000 + LPLL_LOSS_ST=2'b00 + LPLL_PRELOSS_ST=2'b01 + LPLL_PRELOCK_ST=2'b10 + LPLL_LOCK_ST=2'b11 + LRCLK_TC=16'b1111111111111111 + LRCLK_TC_PUL_WIDTH=16'b0000000000110010 + LHB_WAIT_CNT=8'b11111111 + LPCLK_TC_0=32'b00000000000000001000000000000000 + LPCLK_TC_1=32'b00000000000000010000000000000000 + LPCLK_TC_2=32'b00000000000000100000000000000000 + LPCLK_TC_3=32'b00000000000000101000000000000000 + LPCLK_TC_4=32'b00000000000000010000000000000000 + LPDIFF_LOCK_00=32'b00000000000000000000000000001001 + LPDIFF_LOCK_10=32'b00000000000000000000000000010011 + LPDIFF_LOCK_20=32'b00000000000000000000000000100111 + LPDIFF_LOCK_30=32'b00000000000000000000000000110001 + LPDIFF_LOCK_40=32'b00000000000000000000000000010011 + LPDIFF_LOCK_01=32'b00000000000000000000000000001001 + LPDIFF_LOCK_11=32'b00000000000000000000000000010011 + LPDIFF_LOCK_21=32'b00000000000000000000000000100111 + LPDIFF_LOCK_31=32'b00000000000000000000000000110001 + LPDIFF_LOCK_41=32'b00000000000000000000000000010011 + LPDIFF_LOCK_02=32'b00000000000000000000000000110001 + LPDIFF_LOCK_12=32'b00000000000000000000000001100010 + LPDIFF_LOCK_22=32'b00000000000000000000000011000100 + LPDIFF_LOCK_32=32'b00000000000000000000000011110101 + LPDIFF_LOCK_42=32'b00000000000000000000000001100010 + LPDIFF_LOCK_03=32'b00000000000000000000000010000011 + LPDIFF_LOCK_13=32'b00000000000000000000000100000110 + LPDIFF_LOCK_23=32'b00000000000000000000001000001100 + LPDIFF_LOCK_33=32'b00000000000000000000001010001111 + LPDIFF_LOCK_43=32'b00000000000000000000000100000110 + LPDIFF_UNLOCK_00=32'b00000000000000000000000000010011 + LPDIFF_UNLOCK_10=32'b00000000000000000000000000100111 + LPDIFF_UNLOCK_20=32'b00000000000000000000000001001110 + LPDIFF_UNLOCK_30=32'b00000000000000000000000001100010 + LPDIFF_UNLOCK_40=32'b00000000000000000000000000100111 + LPDIFF_UNLOCK_01=32'b00000000000000000000000001000001 + LPDIFF_UNLOCK_11=32'b00000000000000000000000010000011 + LPDIFF_UNLOCK_21=32'b00000000000000000000000100000110 + LPDIFF_UNLOCK_31=32'b00000000000000000000000101000111 + LPDIFF_UNLOCK_41=32'b00000000000000000000000010000011 + LPDIFF_UNLOCK_02=32'b00000000000000000000000001001000 + LPDIFF_UNLOCK_12=32'b00000000000000000000000010010000 + LPDIFF_UNLOCK_22=32'b00000000000000000000000100100000 + LPDIFF_UNLOCK_32=32'b00000000000000000000000101101000 + LPDIFF_UNLOCK_42=32'b00000000000000000000000010010000 + LPDIFF_UNLOCK_03=32'b00000000000000000000000011000100 + LPDIFF_UNLOCK_13=32'b00000000000000000000000110001001 + LPDIFF_UNLOCK_23=32'b00000000000000000000001100010010 + LPDIFF_UNLOCK_33=32'b00000000000000000000001111010111 + LPDIFF_UNLOCK_43=32'b00000000000000000000000110001001 + Generated name = sgmii_ecp5sll_core_Z1_layer1 +@N: CG179 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1287:54:1287:59|Removing redundant assignment. +@N: CG179 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1293:52:1293:55|Removing redundant assignment. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1350:0:1350:5|Pruning unused register rcpri_mod_ch_st. Make sure that there are no unused intermediate registers. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 0 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 0 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 1 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 2 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 16 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 18 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 19 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 20 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 21 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +@N: CG364 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":92:7:92:24|Synthesizing module sgmii_ecp5rsl_core in library work. + + pnum_channels=32'b00000000000000000000000000000001 + pprotocol=24'b010001110100001001000101 + pserdes_mode=72'b010100100101100000100000010000010100111001000100001000000101010001011000 + pport_tx_rdy=56'b01000101010011100100000101000010010011000100010101000100 + pwait_tx_rdy=32'b00000000000000000000101110111000 + pport_rx_rdy=56'b01000101010011100100000101000010010011000100010101000100 + pwait_rx_rdy=32'b00000000000000000000101110111000 + wa_num_cycles=32'b00000000000000000000010000000000 + dac_num_cycles=32'b00000000000000000000000000000011 + lreset_pwidth=32'b00000000000000000000000000000011 + lwait_b4_trst=32'b00000000000010111110101111000010 + lwait_b4_trst_s=32'b00000000000000000000001100001101 + lplol_cnt_width=32'b00000000000000000000000000010100 + lwait_after_plol0=32'b00000000000000000000000000000100 + lwait_b4_rrst=32'b00000000000000101100000000000000 + lrrst_wait_width=32'b00000000000000000000000000010100 + lwait_after_rrst=32'b00000000000011000011010100000000 + lwait_b4_rrst_s=32'b00000000000000000000000111001100 + lrlol_cnt_width=32'b00000000000000000000000000010011 + lwait_after_lols=32'b00000000000000001100010000000000 + lwait_after_lols_s=32'b00000000000000000000000010010110 + llols_cnt_width=32'b00000000000000000000000000010010 + lrdb_max=32'b00000000000000000000000000001111 + ltxr_wait_width=32'b00000000000000000000000000001100 + lrxr_wait_width=32'b00000000000000000000000000001100 + Generated name = sgmii_ecp5rsl_core_Z2_layer1 +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":326:33:326:40|Object rrst_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":327:33:327:43|Removing wire rrst_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":328:33:328:41|Object rrst_wait is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":341:33:341:39|Object rxp_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":342:33:342:39|Object rxp_rst is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":343:33:343:42|Removing wire rxp_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":346:33:346:42|Object rlolsz_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":347:33:347:45|Removing wire rlolsz_cnt_tc, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":350:33:350:43|Removing wire rxp_cnt2_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":351:33:351:47|Object data_loop_b_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":352:33:352:43|Object data_loop_b is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":353:33:353:46|Removing wire data_loop_b_tc, as there is no assignment to it. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":806:3:806:8|Pruning unused register genblk2.rxp_cnt2[2:0]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlol_p3. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlos_p3. Make sure that there are no unused intermediate registers. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":694:3:694:8|Optimizing register bit genblk2.rxs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":461:3:461:8|Optimizing register bit genblk1.txp_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":422:3:422:8|Optimizing register bit genblk1.txs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":422:3:422:8|Pruning register bit 2 of genblk1.txs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":461:3:461:8|Pruning register bit 2 of genblk1.txp_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":694:3:694:8|Pruning register bit 2 of genblk2.rxs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":200:33:200:48|Input port bits 3 to 1 of rui_tx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":204:33:204:51|Input port bits 3 to 1 of rui_rx_serdes_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":205:33:205:48|Input port bits 3 to 1 of rui_rx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":206:33:206:48|Input port bits 3 to 1 of rdi_rx_los_low_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":207:33:207:48|Input port bits 3 to 1 of rdi_rx_cdr_lol_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning register bits 6 to 4 of genblk5.rdiff_comp_unlock[6:3]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning register bits 5 to 3 of genblk5.rdiff_comp_lock[5:2]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rdiff_comp_unlock[3]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rcount_tc[17]. Make sure that there are no unused intermediate registers. +@N: CL201 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1801:0:1801:5|Trying to extract state machine for register sll_state. +Extracted state machine for register sll_state +State machine has 4 reachable states with original encodings of: + 00 + 01 + 10 + 11 + +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 75MB peak: 81MB) + + +Process completed successfully. +# Fri May 10 09:02:10 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +File /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/layer0.srs changed - recompiling +File /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/layer1.srs changed - recompiling + +======================================================================================= +For a summary of linker messages for components that did not bind, please see log file: +@L: /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.linkerlog +======================================================================================= + + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 09:02:11 2019 + +###########################################################] +@END + +At c_hdl Exit (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 3MB peak: 4MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 09:02:11 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +File /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.srs changed - recompiling + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 09:02:12 2019 + +###########################################################] +# Fri May 10 09:02:12 2019 + +Synopsys Lattice Technology Pre-mapping, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 100MB) + +Reading constraint file: /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.fdc +@L: /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5_scck.rpt +Printing clock summary report in "/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5_scck.rpt" file +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 102MB peak: 104MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 102MB peak: 104MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 114MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 116MB) + +@N: BN362 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1408:0:1408:5|Removing sequential instance pcpri_mod_ch (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:PrimLib.dffre(prim) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1244:27:1244:40|Removing instance div2_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_3(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1252:27:1252:41|Removing instance div11_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_2(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1236:27:1236:40|Removing instance gear_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_4(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1268:27:1268:44|Removing instance pcie_mod_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_0(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1260:27:1260:44|Removing instance cpri_mod_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_1(verilog) because it does not drive other instances. +ICG Latch Removal Summary: +Number of ICG latches removed: 0 +Number of ICG latches not removed: 0 +syn_allowed_resources : blockrams=56 set on top level netlist sgmii_ecp5 + +Finished netlist restructuring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + + + +Clock Summary +****************** + + Start Requested Requested Clock Clock Clock +Level Clock Frequency Period Type Group Load +---------------------------------------------------------------------------------------------------------------------- +0 - System 100.0 MHz 10.000 system system_clkgroup 0 + +0 - sgmii_ecp5|pll_refclki 100.0 MHz 10.000 inferred Inferred_clkgroup_0 93 + +0 - sgmii_ecp5|rxrefclk 100.0 MHz 10.000 inferred Inferred_clkgroup_1 77 + +0 - sgmii_ecp5|tx_pclk_inferred_clock 100.0 MHz 10.000 inferred Inferred_clkgroup_2 53 +====================================================================================================================== + +@W: MT529 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Found inferred clock sgmii_ecp5|pll_refclki which controls 93 sequential elements including sll_inst.phb_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":567:3:567:8|Found inferred clock sgmii_ecp5|rxrefclk which controls 77 sequential elements including rsl_inst.genblk2\.rlos_db_p1. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Found inferred clock sgmii_ecp5|tx_pclk_inferred_clock which controls 53 sequential elements including sll_inst.rtc_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. + +Finished Pre Mapping Phase. + +Starting constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + +Encoding state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) +original code -> new code + 00 -> 00 + 01 -> 01 + 10 -> 10 + 11 -> 11 +@N: MO225 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1801:0:1801:5|There are no possible illegal states for state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)); safe FSM implementation is not required. + +Finished constraint checker preprocessing (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + +None +None + +Finished constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + +Pre-mapping successful! + +At Mapper Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 58MB peak: 144MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime +# Fri May 10 09:02:13 2019 + +###########################################################] +# Fri May 10 09:02:13 2019 + +Synopsys Lattice Technology Mapper, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 100MB) + +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 113MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 115MB) + + + +Starting Optimization and Mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 144MB) + + +Available hyper_sources - for debug and ip models + None Found + + +Finished RTL optimizations (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + +Encoding state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) +original code -> new code + 00 -> 00 + 01 -> 01 + 10 -> 10 + 11 -> 11 +@N: MO225 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1801:0:1801:5|There are no possible illegal states for state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)); safe FSM implementation is not required. +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1350:0:1350:5|Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance rhb_wait_cnt[7:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1304:0:1304:5|Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance rcount[15:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1759:0:1759:5|Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance pcount[21:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":412:3:412:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk1\.plol_cnt[19:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":909:3:909:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.genblk3\.rxr_wt_cnt[11:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":527:3:527:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk1\.genblk2\.txr_wt_cnt[11:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":778:3:778:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.rlols0_cnt[17:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":680:3:680:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.rlol1_cnt[18:0] + +Starting factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + + +Finished factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 144MB) + + +Starting gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + + +Finished gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + + +Finished generic timing optimizations - Pass 1 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 145MB) + + +Starting Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 145MB) + + +Finished Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 145MB) + + +Finished generic timing optimizations - Pass 2 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 145MB) + + +Finished preparing to map (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:01s; Memory used current: 145MB peak: 145MB) + +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). + +Finished technology mapping (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 147MB peak: 149MB) + +Pass CPU time Worst Slack Luts / Registers +------------------------------------------------------------ + 1 0h:00m:01s 4.90ns 155 / 221 +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). + +Finished technology timing optimizations and critical path resynthesis (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 147MB peak: 149MB) + +@N: FX164 |The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute. + +Finished restoring hierarchy (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 147MB peak: 149MB) + + + +@S |Clock Optimization Summary + + +#### START OF CLOCK OPTIMIZATION REPORT #####[ + +3 non-gated/non-generated clock tree(s) driving 221 clock pin(s) of sequential element(s) +0 gated/generated clock tree(s) driving 0 clock pin(s) of sequential element(s) +0 instances converted, 0 sequential instances remain driven by gated/generated clocks + +============================================= Non-Gated/Non-Generated Clocks ============================================= +Clock Tree ID Driving Element Drive Element Type Fanout Sample Instance +-------------------------------------------------------------------------------------------------------------------------- +@K:CKID0001 pll_refclki port 91 rsl_inst.genblk1\.genblk2\.mfor\[0\]\.txpr_appd[0] +@K:CKID0002 rxrefclk port 77 rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] +@K:CKID0003 DCU0_inst DCUA 53 sll_inst.pcount[21] +========================================================================================================================== + + +##### END OF CLOCK OPTIMIZATION REPORT ######] + + +Start Writing Netlists (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 111MB peak: 149MB) + +Writing Analyst data base /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_m.srm + +Finished Writing Netlist Databases (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 146MB peak: 149MB) + +Writing EDIF Netlist and constraint files +@N: FX1056 |Writing EDF file: /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.edn +M-2017.03L-SP1-1 +@N: BW106 |Synplicity Constraint File capacitance units using default value of 1pF + +Finished Writing EDIF Netlist and constraint files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 150MB peak: 152MB) + +Writing Verilog Simulation files + +Finished Writing Verilog Simulation files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 151MB peak: 152MB) + +Writing VHDL Simulation files + +Finished Writing VHDL Simulation files (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB) + + +Start final timing analysis (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB) + +@W: MT246 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd":162:4:162:12|Blackbox DCUA is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) +@W: MT420 |Found inferred clock sgmii_ecp5|rxrefclk with period 10.00ns. Please declare a user-defined clock on object "p:rxrefclk" +@W: MT420 |Found inferred clock sgmii_ecp5|pll_refclki with period 10.00ns. Please declare a user-defined clock on object "p:pll_refclki" +@W: MT420 |Found inferred clock sgmii_ecp5|tx_pclk_inferred_clock with period 10.00ns. Please declare a user-defined clock on object "n:tx_pclk" + + +##### START OF TIMING REPORT #####[ +# Timing Report written on Fri May 10 09:02:16 2019 +# + + +Top view: sgmii_ecp5 +Requested Frequency: 100.0 MHz +Wire load mode: top +Paths requested: 5 +Constraint File(s): /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.fdc + +@N: MT320 |This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. + +@N: MT322 |Clock constraints include only register-to-register paths associated with each individual clock. + + + +Performance Summary +******************* + + +Worst slack in design: 4.043 + + Requested Estimated Requested Estimated Clock Clock +Starting Clock Frequency Frequency Period Period Slack Type Group +---------------------------------------------------------------------------------------------------------------------------------------- +sgmii_ecp5|pll_refclki 100.0 MHz 168.9 MHz 10.000 5.921 4.079 inferred Inferred_clkgroup_0 +sgmii_ecp5|rxrefclk 100.0 MHz 167.9 MHz 10.000 5.957 4.043 inferred Inferred_clkgroup_1 +sgmii_ecp5|tx_pclk_inferred_clock 100.0 MHz 237.5 MHz 10.000 4.211 5.789 inferred Inferred_clkgroup_2 +System 100.0 MHz 840.7 MHz 10.000 1.190 8.810 system system_clkgroup +======================================================================================================================================== + + + + + +Clock Relationships +******************* + +Clocks | rise to rise | fall to fall | rise to fall | fall to rise +------------------------------------------------------------------------------------------------------------------------------------------------------------ +Starting Ending | constraint slack | constraint slack | constraint slack | constraint slack +------------------------------------------------------------------------------------------------------------------------------------------------------------ +System sgmii_ecp5|rxrefclk | 10.000 8.811 | No paths - | No paths - | No paths - +sgmii_ecp5|pll_refclki System | 10.000 8.253 | No paths - | No paths - | No paths - +sgmii_ecp5|pll_refclki sgmii_ecp5|pll_refclki | 10.000 4.079 | No paths - | No paths - | No paths - +sgmii_ecp5|pll_refclki sgmii_ecp5|tx_pclk_inferred_clock | Diff grp - | No paths - | No paths - | No paths - +sgmii_ecp5|rxrefclk System | 10.000 8.277 | No paths - | No paths - | No paths - +sgmii_ecp5|rxrefclk sgmii_ecp5|rxrefclk | 10.000 4.043 | No paths - | No paths - | No paths - +sgmii_ecp5|tx_pclk_inferred_clock sgmii_ecp5|pll_refclki | Diff grp - | No paths - | No paths - | No paths - +sgmii_ecp5|tx_pclk_inferred_clock sgmii_ecp5|tx_pclk_inferred_clock | 10.000 5.789 | No paths - | No paths - | No paths - +============================================================================================================================================================ + Note: 'No paths' indicates there are no paths in the design for that pair of clock edges. + 'Diff grp' indicates that paths exist but the starting clock and ending clock are in different clock groups. + + + +Interface Information +********************* + +No IO constraint found + + + +==================================== +Detailed Report for Clock: sgmii_ecp5|pll_refclki +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +-------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[2] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[2] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[3] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[3] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[17] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[17] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[19] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[19] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[1] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[1] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[4] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[4] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[5] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[5] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[6] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[6] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[7] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[7] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[8] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[8] 0.907 4.684 +==================================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +----------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[19] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[19] 9.946 4.079 +rsl_inst.genblk1\.plol_cnt[17] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[17] 9.946 4.139 +rsl_inst.genblk1\.plol_cnt[18] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[18] 9.946 4.139 +rsl_inst.genblk1\.plol_cnt[15] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[15] 9.946 4.200 +rsl_inst.genblk1\.plol_cnt[16] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[16] 9.946 4.200 +rsl_inst.genblk1\.plol_cnt[13] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[13] 9.946 4.261 +rsl_inst.genblk1\.plol_cnt[14] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[14] 9.946 4.261 +rsl_inst.genblk1\.plol_cnt[11] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[11] 9.946 4.322 +rsl_inst.genblk1\.plol_cnt[12] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[12] 9.946 4.322 +rsl_inst.genblk1\.plol_cnt[9] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[9] 9.946 4.383 +======================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 5.867 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : 4.079 + + Number of logic level(s): 15 + Starting point: rsl_inst.genblk1\.plol_cnt[2] / Q + Ending point: rsl_inst.genblk1\.plol_cnt[19] / D + The start point is clocked by sgmii_ecp5|pll_refclki [rising] on pin CK + The end point is clocked by sgmii_ecp5|pll_refclki [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[2] FD1S3DX Q Out 0.907 0.907 - +plol_cnt[2] Net - - - - 2 +rsl_inst.genblk1\.un1_plol_cnt_tc_10 ORCALUT4 A In 0.000 0.907 - +rsl_inst.genblk1\.un1_plol_cnt_tc_10 ORCALUT4 Z Out 0.606 1.513 - +un1_plol_cnt_tc_10 Net - - - - 1 +rsl_inst.genblk1\.un1_plol_cnt_tc_14 ORCALUT4 D In 0.000 1.513 - +rsl_inst.genblk1\.un1_plol_cnt_tc_14 ORCALUT4 Z Out 0.606 2.119 - +un1_plol_cnt_tc_14 Net - - - - 1 +rsl_inst.genblk1\.un1_plol_cnt_tc ORCALUT4 D In 0.000 2.119 - +rsl_inst.genblk1\.un1_plol_cnt_tc ORCALUT4 Z Out 0.762 2.881 - +un1_plol_cnt_tc Net - - - - 5 +rsl_inst.genblk1\.plol_cnt11_i ORCALUT4 B In 0.000 2.881 - +rsl_inst.genblk1\.plol_cnt11_i ORCALUT4 Z Out 0.840 3.721 - +plol_cnt Net - - - - 21 +rsl_inst.genblk1\.plol_cnt_cry_0[0] CCU2C A1 In 0.000 3.721 - +rsl_inst.genblk1\.plol_cnt_cry_0[0] CCU2C COUT Out 0.900 4.621 - +plol_cnt_cry[0] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[1] CCU2C CIN In 0.000 4.621 - +rsl_inst.genblk1\.plol_cnt_cry_0[1] CCU2C COUT Out 0.061 4.682 - +plol_cnt_cry[2] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[3] CCU2C CIN In 0.000 4.682 - +rsl_inst.genblk1\.plol_cnt_cry_0[3] CCU2C COUT Out 0.061 4.743 - +plol_cnt_cry[4] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[5] CCU2C CIN In 0.000 4.743 - +rsl_inst.genblk1\.plol_cnt_cry_0[5] CCU2C COUT Out 0.061 4.804 - +plol_cnt_cry[6] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[7] CCU2C CIN In 0.000 4.804 - +rsl_inst.genblk1\.plol_cnt_cry_0[7] CCU2C COUT Out 0.061 4.865 - +plol_cnt_cry[8] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[9] CCU2C CIN In 0.000 4.865 - +rsl_inst.genblk1\.plol_cnt_cry_0[9] CCU2C COUT Out 0.061 4.926 - +plol_cnt_cry[10] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[11] CCU2C CIN In 0.000 4.926 - +rsl_inst.genblk1\.plol_cnt_cry_0[11] CCU2C COUT Out 0.061 4.987 - +plol_cnt_cry[12] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[13] CCU2C CIN In 0.000 4.987 - +rsl_inst.genblk1\.plol_cnt_cry_0[13] CCU2C COUT Out 0.061 5.048 - +plol_cnt_cry[14] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[15] CCU2C CIN In 0.000 5.048 - +rsl_inst.genblk1\.plol_cnt_cry_0[15] CCU2C COUT Out 0.061 5.109 - +plol_cnt_cry[16] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[17] CCU2C CIN In 0.000 5.109 - +rsl_inst.genblk1\.plol_cnt_cry_0[17] CCU2C COUT Out 0.061 5.170 - +plol_cnt_cry[18] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_s_0[19] CCU2C CIN In 0.000 5.170 - +rsl_inst.genblk1\.plol_cnt_s_0[19] CCU2C S0 Out 0.698 5.867 - +plol_cnt_s[19] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt[19] FD1S3DX D In 0.000 5.867 - +======================================================================================================= + + + + +==================================== +Detailed Report for Clock: sgmii_ecp5|rxrefclk +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rxs_rst sgmii_ecp5|rxrefclk FD1P3DX Q rxs_rst 1.015 4.043 +rsl_inst.genblk2\.rlol1_cnt[7] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[7] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[8] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[8] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[9] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[9] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[10] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[10] 0.907 4.136 +rsl_inst.genblk2\.rlols0_cnt[1] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[1] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[2] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[2] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[3] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[3] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[4] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[4] 0.907 4.170 +rsl_inst.genblk2\.rlol1_cnt[0] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[0] 0.907 4.742 +=================================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[11] sgmii_ecp5|rxrefclk FD1P3DX D rxr_wt_cnt_s[11] 9.946 4.043 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[9] sgmii_ecp5|rxrefclk FD1P3DX D rxr_wt_cnt_s[9] 9.946 4.104 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[10] sgmii_ecp5|rxrefclk FD1P3DX D rxr_wt_cnt_s[10] 9.946 4.104 +rsl_inst.genblk2\.rlol1_cnt[17] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[17] 9.946 4.136 +rsl_inst.genblk2\.rlol1_cnt[18] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[18] 9.946 4.136 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[7] sgmii_ecp5|rxrefclk FD1P3DX D rxr_wt_cnt_s[7] 9.946 4.165 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[8] sgmii_ecp5|rxrefclk FD1P3DX D rxr_wt_cnt_s[8] 9.946 4.165 +rsl_inst.genblk2\.rlols0_cnt[17] sgmii_ecp5|rxrefclk FD1P3DX D rlols0_cnt_s[17] 9.946 4.170 +rsl_inst.genblk2\.rlol1_cnt[15] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[15] 9.946 4.197 +rsl_inst.genblk2\.rlol1_cnt[16] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[16] 9.946 4.197 +================================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 5.902 + - Clock delay at starting point: 0.000 (ideal) + = Slack (critical) : 4.043 + + Number of logic level(s): 11 + Starting point: rsl_inst.genblk2\.rxs_rst / Q + Ending point: rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[11] / D + The start point is clocked by sgmii_ecp5|rxrefclk [rising] on pin CK + The end point is clocked by sgmii_ecp5|rxrefclk [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +----------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rxs_rst FD1P3DX Q Out 1.015 1.015 - +rxs_rst Net - - - - 6 +rsl_inst.rdo_rx_serdes_rst_c_1[0] ORCALUT4 B In 0.000 1.015 - +rsl_inst.rdo_rx_serdes_rst_c_1[0] ORCALUT4 Z Out 0.708 1.723 - +rsl_rx_serdes_rst_c Net - - - - 3 +rsl_inst.dual_or_rserd_rst ORCALUT4 A In 0.000 1.723 - +rsl_inst.dual_or_rserd_rst ORCALUT4 Z Out 0.798 2.521 - +dual_or_rserd_rst Net - - - - 9 +rsl_inst.rx_any_rst ORCALUT4 A In 0.000 2.521 - +rsl_inst.rx_any_rst ORCALUT4 Z Out 0.660 3.181 - +rx_any_rst Net - - - - 2 +rsl_inst.rx_any_rst_RNIFD021 ORCALUT4 A In 0.000 3.181 - +rsl_inst.rx_any_rst_RNIFD021 ORCALUT4 Z Out 0.819 4.000 - +rxr_wt_cnt9 Net - - - - 14 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[0] CCU2C A1 In 0.000 4.000 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[0] CCU2C COUT Out 0.900 4.900 - +rxr_wt_cnt_cry[0] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[1] CCU2C CIN In 0.000 4.900 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[1] CCU2C COUT Out 0.061 4.961 - +rxr_wt_cnt_cry[2] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[3] CCU2C CIN In 0.000 4.961 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[3] CCU2C COUT Out 0.061 5.022 - +rxr_wt_cnt_cry[4] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[5] CCU2C CIN In 0.000 5.022 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[5] CCU2C COUT Out 0.061 5.083 - +rxr_wt_cnt_cry[6] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[7] CCU2C CIN In 0.000 5.083 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[7] CCU2C COUT Out 0.061 5.144 - +rxr_wt_cnt_cry[8] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[9] CCU2C CIN In 0.000 5.144 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[9] CCU2C COUT Out 0.061 5.205 - +rxr_wt_cnt_cry[10] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_s_0[11] CCU2C CIN In 0.000 5.205 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_s_0[11] CCU2C S0 Out 0.698 5.902 - +rxr_wt_cnt_s[11] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[11] FD1P3DX D In 0.000 5.902 - +================================================================================================================= + + + + +==================================== +Detailed Report for Clock: sgmii_ecp5|tx_pclk_inferred_clock +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------------------------------------------ +sll_inst.ppul_sync_p1 sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q ppul_sync_p1 1.098 5.789 +sll_inst.ppul_sync_p2 sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q ppul_sync_p2 1.098 5.789 +sll_inst.pcount_diff[0] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_0 0.985 6.147 +sll_inst.pcount[0] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q pcount[0] 0.955 6.178 +sll_inst.pcount_diff[1] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_1 0.955 6.239 +sll_inst.pcount_diff[2] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_2 0.955 6.239 +sll_inst.pcount[1] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q pcount[1] 0.907 6.287 +sll_inst.pcount[2] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q pcount[2] 0.907 6.287 +sll_inst.pcount_diff[3] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_3 0.955 6.300 +sll_inst.pcount_diff[4] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_4 0.955 6.300 +======================================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +----------------------------------------------------------------------------------------------------------------------------------------- +sll_inst.pcount[21] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[21] 9.946 5.789 +sll_inst.pcount[19] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[19] 9.946 5.850 +sll_inst.pcount[20] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[20] 9.946 5.850 +sll_inst.pcount[17] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[17] 9.946 5.911 +sll_inst.pcount[18] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[18] 9.946 5.911 +sll_inst.pcount[15] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[15] 9.946 5.972 +sll_inst.pcount[16] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[16] 9.946 5.972 +sll_inst.pcount[13] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[13] 9.946 6.033 +sll_inst.pcount[14] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[14] 9.946 6.033 +sll_inst.pcount_diff[21] sgmii_ecp5|tx_pclk_inferred_clock FD1P3DX D un1_pcount_diff_1_s_21_0_S0 9.946 6.034 +========================================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 4.157 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : 5.789 + + Number of logic level(s): 13 + Starting point: sll_inst.ppul_sync_p1 / Q + Ending point: sll_inst.pcount[21] / D + The start point is clocked by sgmii_ecp5|tx_pclk_inferred_clock [rising] on pin CK + The end point is clocked by sgmii_ecp5|tx_pclk_inferred_clock [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +-------------------------------------------------------------------------------------------- +sll_inst.ppul_sync_p1 FD1S3DX Q Out 1.098 1.098 - +ppul_sync_p1 Net - - - - 25 +sll_inst.pcount10_0_o3 ORCALUT4 A In 0.000 1.098 - +sll_inst.pcount10_0_o3 ORCALUT4 Z Out 0.851 1.950 - +N_8 Net - - - - 25 +sll_inst.pcount_cry_0[0] CCU2C A1 In 0.000 1.950 - +sll_inst.pcount_cry_0[0] CCU2C COUT Out 0.900 2.850 - +pcount_cry[0] Net - - - - 1 +sll_inst.pcount_cry_0[1] CCU2C CIN In 0.000 2.850 - +sll_inst.pcount_cry_0[1] CCU2C COUT Out 0.061 2.911 - +pcount_cry[2] Net - - - - 1 +sll_inst.pcount_cry_0[3] CCU2C CIN In 0.000 2.911 - +sll_inst.pcount_cry_0[3] CCU2C COUT Out 0.061 2.972 - +pcount_cry[4] Net - - - - 1 +sll_inst.pcount_cry_0[5] CCU2C CIN In 0.000 2.972 - +sll_inst.pcount_cry_0[5] CCU2C COUT Out 0.061 3.033 - +pcount_cry[6] Net - - - - 1 +sll_inst.pcount_cry_0[7] CCU2C CIN In 0.000 3.033 - +sll_inst.pcount_cry_0[7] CCU2C COUT Out 0.061 3.094 - +pcount_cry[8] Net - - - - 1 +sll_inst.pcount_cry_0[9] CCU2C CIN In 0.000 3.094 - +sll_inst.pcount_cry_0[9] CCU2C COUT Out 0.061 3.155 - +pcount_cry[10] Net - - - - 1 +sll_inst.pcount_cry_0[11] CCU2C CIN In 0.000 3.155 - +sll_inst.pcount_cry_0[11] CCU2C COUT Out 0.061 3.216 - +pcount_cry[12] Net - - - - 1 +sll_inst.pcount_cry_0[13] CCU2C CIN In 0.000 3.216 - +sll_inst.pcount_cry_0[13] CCU2C COUT Out 0.061 3.277 - +pcount_cry[14] Net - - - - 1 +sll_inst.pcount_cry_0[15] CCU2C CIN In 0.000 3.277 - +sll_inst.pcount_cry_0[15] CCU2C COUT Out 0.061 3.338 - +pcount_cry[16] Net - - - - 1 +sll_inst.pcount_cry_0[17] CCU2C CIN In 0.000 3.338 - +sll_inst.pcount_cry_0[17] CCU2C COUT Out 0.061 3.399 - +pcount_cry[18] Net - - - - 1 +sll_inst.pcount_cry_0[19] CCU2C CIN In 0.000 3.399 - +sll_inst.pcount_cry_0[19] CCU2C COUT Out 0.061 3.460 - +pcount_cry[20] Net - - - - 1 +sll_inst.pcount_s_0[21] CCU2C CIN In 0.000 3.460 - +sll_inst.pcount_s_0[21] CCU2C S0 Out 0.698 4.157 - +pcount_s[21] Net - - - - 1 +sll_inst.pcount[21] FD1S3DX D In 0.000 4.157 - +============================================================================================ + + + + +==================================== +Detailed Report for Clock: System +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +---------------------------------------------------------------------------------------- +DCU0_inst System DCUA CH0_FFS_RLOL rx_cdr_lol_s 0.000 8.810 +DCU0_inst System DCUA CH0_FFS_RLOS rx_los_low_s 0.000 8.810 +======================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] System FD1P3DX SP un2_rdo_serdes_rst_dual_c_2_i 9.806 8.810 +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] System FD1P3DX D rxpr_appd_RNO[0] 9.946 9.556 +rsl_inst.genblk2\.rlol_p1 System FD1S3DX D rx_cdr_lol_s 9.946 9.946 +rsl_inst.genblk2\.rlos_p1 System FD1S3DX D rx_los_low_s 9.946 9.946 +============================================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.194 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.806 + + - Propagation time: 0.996 + - Clock delay at starting point: 0.000 (ideal) + - Estimated clock delay at start point: -0.000 + = Slack (non-critical) : 8.810 + + Number of logic level(s): 2 + Starting point: DCU0_inst / CH0_FFS_RLOL + Ending point: rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] / SP + The start point is clocked by System [rising] + The end point is clocked by sgmii_ecp5|rxrefclk [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +----------------------------------------------------------------------------------------------------------------------------------- +DCU0_inst DCUA CH0_FFS_RLOL Out 0.000 0.000 - +rx_cdr_lol_s Net - - - - 4 +rsl_inst.un2_rdo_serdes_rst_dual_c_1_1 ORCALUT4 A In 0.000 0.000 - +rsl_inst.un2_rdo_serdes_rst_dual_c_1_1 ORCALUT4 Z Out 0.606 0.606 - +un2_rdo_serdes_rst_dual_c_1_1 Net - - - - 1 +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd_RNO_0[0] ORCALUT4 B In 0.000 0.606 - +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd_RNO_0[0] ORCALUT4 Z Out 0.390 0.996 - +un2_rdo_serdes_rst_dual_c_2_i Net - - - - 1 +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] FD1P3DX SP In 0.000 0.996 - +=================================================================================================================================== + + + +##### END OF TIMING REPORT #####] + +Timing exceptions that could not be applied +None + +Finished final timing analysis (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB) + + +Finished timing report (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB) + +--------------------------------------- +Resource Usage Report +Part: lfe5um_25f-6 + +Register bits: 221 of 24288 (1%) +PIC Latch: 0 +I/O cells: 0 + + +Details: +CCU2C: 113 +DCUA: 1 +FD1P3BX: 20 +FD1P3DX: 92 +FD1S3BX: 12 +FD1S3DX: 97 +GSR: 1 +INV: 3 +ORCALUT4: 154 +PFUMX: 2 +PUR: 1 +VHI: 6 +VLO: 6 +Mapper successful! + +At Mapper Exit (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 35MB peak: 153MB) + +Process took 0h:00m:03s realtime, 0h:00m:03s cputime +# Fri May 10 09:02:16 2019 + +###########################################################] diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srm b/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srm new file mode 100644 index 0000000000000000000000000000000000000000..fc1b683f7a7268ddd47c206610aeb4ffe8cce108 GIT binary patch literal 31307 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srr b/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srr new file mode 100644 index 0000000..4b5ec97 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srr @@ -0,0 +1,1137 @@ +#Build: Synplify Pro (R) M-2017.03L-SP1-1, Build 086R, Aug 4 2017 +#install: /home/soft/lattice/diamond/3.10_x64/synpbase +#OS: Linux +#Hostname: lxhadeb07 + +# Fri May 10 09:02:09 2019 + +#Implementation: syn_results + +Synopsys HDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Synopsys VHDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd":30:7:30:16|Top entity is set to sgmii_ecp5. +VHDL syntax check successful! +File /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd changed - recompiling + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB) + + +Process completed successfully. +# Fri May 10 09:02:09 2019 + +###########################################################] +Synopsys Verilog Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps) +@I::"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v" (library work) +Verilog syntax check successful! + +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB) + + +Process completed successfully. +# Fri May 10 09:02:10 2019 + +###########################################################] +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd":30:7:30:16|Top entity is set to sgmii_ecp5. +File /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd changed - recompiling +File /home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd changed - recompiling +VHDL syntax check successful! +File /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd changed - recompiling +@N: CD630 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd":30:7:30:16|Synthesizing work.sgmii_ecp5.v1. +Post processing for work.sgmii_ecp5.v1 + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 74MB peak: 76MB) + + +Process completed successfully. +# Fri May 10 09:02:10 2019 + +###########################################################] +Running on host :lxhadeb07 +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps) +@I::"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v" (library work) +Verilog syntax check successful! +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +@N: CG364 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1968:7:1968:10|Synthesizing module sync in library work. + + PDATA_RST_VAL=32'b00000000000000000000000000000000 + Generated name = sync_0s +@N: CG364 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1051:7:1051:24|Synthesizing module sgmii_ecp5sll_core in library work. + + PPROTOCOL=24'b010001110100001001000101 + PLOL_SETTING=32'b00000000000000000000000000000000 + PDYN_RATE_CTRL=64'b0100010001001001010100110100000101000010010011000100010101000100 + PPCIE_MAX_RATE=24'b001100100010111000110101 + PDIFF_VAL_LOCK=32'b00000000000000000000000000100111 + PDIFF_VAL_UNLOCK=32'b00000000000000000000000001001110 + PPCLK_TC=32'b00000000000000100000000000000000 + PDIFF_DIV11_VAL_LOCK=32'b00000000000000000000000000000000 + PDIFF_DIV11_VAL_UNLOCK=32'b00000000000000000000000000000000 + PPCLK_DIV11_TC=32'b00000000000000000000000000000000 + LPLL_LOSS_ST=2'b00 + LPLL_PRELOSS_ST=2'b01 + LPLL_PRELOCK_ST=2'b10 + LPLL_LOCK_ST=2'b11 + LRCLK_TC=16'b1111111111111111 + LRCLK_TC_PUL_WIDTH=16'b0000000000110010 + LHB_WAIT_CNT=8'b11111111 + LPCLK_TC_0=32'b00000000000000001000000000000000 + LPCLK_TC_1=32'b00000000000000010000000000000000 + LPCLK_TC_2=32'b00000000000000100000000000000000 + LPCLK_TC_3=32'b00000000000000101000000000000000 + LPCLK_TC_4=32'b00000000000000010000000000000000 + LPDIFF_LOCK_00=32'b00000000000000000000000000001001 + LPDIFF_LOCK_10=32'b00000000000000000000000000010011 + LPDIFF_LOCK_20=32'b00000000000000000000000000100111 + LPDIFF_LOCK_30=32'b00000000000000000000000000110001 + LPDIFF_LOCK_40=32'b00000000000000000000000000010011 + LPDIFF_LOCK_01=32'b00000000000000000000000000001001 + LPDIFF_LOCK_11=32'b00000000000000000000000000010011 + LPDIFF_LOCK_21=32'b00000000000000000000000000100111 + LPDIFF_LOCK_31=32'b00000000000000000000000000110001 + LPDIFF_LOCK_41=32'b00000000000000000000000000010011 + LPDIFF_LOCK_02=32'b00000000000000000000000000110001 + LPDIFF_LOCK_12=32'b00000000000000000000000001100010 + LPDIFF_LOCK_22=32'b00000000000000000000000011000100 + LPDIFF_LOCK_32=32'b00000000000000000000000011110101 + LPDIFF_LOCK_42=32'b00000000000000000000000001100010 + LPDIFF_LOCK_03=32'b00000000000000000000000010000011 + LPDIFF_LOCK_13=32'b00000000000000000000000100000110 + LPDIFF_LOCK_23=32'b00000000000000000000001000001100 + LPDIFF_LOCK_33=32'b00000000000000000000001010001111 + LPDIFF_LOCK_43=32'b00000000000000000000000100000110 + LPDIFF_UNLOCK_00=32'b00000000000000000000000000010011 + LPDIFF_UNLOCK_10=32'b00000000000000000000000000100111 + LPDIFF_UNLOCK_20=32'b00000000000000000000000001001110 + LPDIFF_UNLOCK_30=32'b00000000000000000000000001100010 + LPDIFF_UNLOCK_40=32'b00000000000000000000000000100111 + LPDIFF_UNLOCK_01=32'b00000000000000000000000001000001 + LPDIFF_UNLOCK_11=32'b00000000000000000000000010000011 + LPDIFF_UNLOCK_21=32'b00000000000000000000000100000110 + LPDIFF_UNLOCK_31=32'b00000000000000000000000101000111 + LPDIFF_UNLOCK_41=32'b00000000000000000000000010000011 + LPDIFF_UNLOCK_02=32'b00000000000000000000000001001000 + LPDIFF_UNLOCK_12=32'b00000000000000000000000010010000 + LPDIFF_UNLOCK_22=32'b00000000000000000000000100100000 + LPDIFF_UNLOCK_32=32'b00000000000000000000000101101000 + LPDIFF_UNLOCK_42=32'b00000000000000000000000010010000 + LPDIFF_UNLOCK_03=32'b00000000000000000000000011000100 + LPDIFF_UNLOCK_13=32'b00000000000000000000000110001001 + LPDIFF_UNLOCK_23=32'b00000000000000000000001100010010 + LPDIFF_UNLOCK_33=32'b00000000000000000000001111010111 + LPDIFF_UNLOCK_43=32'b00000000000000000000000110001001 + Generated name = sgmii_ecp5sll_core_Z1_layer1 +@N: CG179 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1287:54:1287:59|Removing redundant assignment. +@N: CG179 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1293:52:1293:55|Removing redundant assignment. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1350:0:1350:5|Pruning unused register rcpri_mod_ch_st. Make sure that there are no unused intermediate registers. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 0 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 0 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 1 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 2 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 16 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 18 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 19 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 20 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 21 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +@N: CG364 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":92:7:92:24|Synthesizing module sgmii_ecp5rsl_core in library work. + + pnum_channels=32'b00000000000000000000000000000001 + pprotocol=24'b010001110100001001000101 + pserdes_mode=72'b010100100101100000100000010000010100111001000100001000000101010001011000 + pport_tx_rdy=56'b01000101010011100100000101000010010011000100010101000100 + pwait_tx_rdy=32'b00000000000000000000101110111000 + pport_rx_rdy=56'b01000101010011100100000101000010010011000100010101000100 + pwait_rx_rdy=32'b00000000000000000000101110111000 + wa_num_cycles=32'b00000000000000000000010000000000 + dac_num_cycles=32'b00000000000000000000000000000011 + lreset_pwidth=32'b00000000000000000000000000000011 + lwait_b4_trst=32'b00000000000010111110101111000010 + lwait_b4_trst_s=32'b00000000000000000000001100001101 + lplol_cnt_width=32'b00000000000000000000000000010100 + lwait_after_plol0=32'b00000000000000000000000000000100 + lwait_b4_rrst=32'b00000000000000101100000000000000 + lrrst_wait_width=32'b00000000000000000000000000010100 + lwait_after_rrst=32'b00000000000011000011010100000000 + lwait_b4_rrst_s=32'b00000000000000000000000111001100 + lrlol_cnt_width=32'b00000000000000000000000000010011 + lwait_after_lols=32'b00000000000000001100010000000000 + lwait_after_lols_s=32'b00000000000000000000000010010110 + llols_cnt_width=32'b00000000000000000000000000010010 + lrdb_max=32'b00000000000000000000000000001111 + ltxr_wait_width=32'b00000000000000000000000000001100 + lrxr_wait_width=32'b00000000000000000000000000001100 + Generated name = sgmii_ecp5rsl_core_Z2_layer1 +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":326:33:326:40|Object rrst_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":327:33:327:43|Removing wire rrst_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":328:33:328:41|Object rrst_wait is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":341:33:341:39|Object rxp_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":342:33:342:39|Object rxp_rst is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":343:33:343:42|Removing wire rxp_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":346:33:346:42|Object rlolsz_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":347:33:347:45|Removing wire rlolsz_cnt_tc, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":350:33:350:43|Removing wire rxp_cnt2_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":351:33:351:47|Object data_loop_b_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":352:33:352:43|Object data_loop_b is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":353:33:353:46|Removing wire data_loop_b_tc, as there is no assignment to it. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":806:3:806:8|Pruning unused register genblk2.rxp_cnt2[2:0]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlol_p3. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlos_p3. Make sure that there are no unused intermediate registers. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":694:3:694:8|Optimizing register bit genblk2.rxs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":461:3:461:8|Optimizing register bit genblk1.txp_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":422:3:422:8|Optimizing register bit genblk1.txs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":422:3:422:8|Pruning register bit 2 of genblk1.txs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":461:3:461:8|Pruning register bit 2 of genblk1.txp_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":694:3:694:8|Pruning register bit 2 of genblk2.rxs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":200:33:200:48|Input port bits 3 to 1 of rui_tx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":204:33:204:51|Input port bits 3 to 1 of rui_rx_serdes_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":205:33:205:48|Input port bits 3 to 1 of rui_rx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":206:33:206:48|Input port bits 3 to 1 of rdi_rx_los_low_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":207:33:207:48|Input port bits 3 to 1 of rdi_rx_cdr_lol_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning register bits 6 to 4 of genblk5.rdiff_comp_unlock[6:3]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning register bits 5 to 3 of genblk5.rdiff_comp_lock[5:2]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rdiff_comp_unlock[3]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rcount_tc[17]. Make sure that there are no unused intermediate registers. +@N: CL201 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1801:0:1801:5|Trying to extract state machine for register sll_state. +Extracted state machine for register sll_state +State machine has 4 reachable states with original encodings of: + 00 + 01 + 10 + 11 + +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 75MB peak: 81MB) + + +Process completed successfully. +# Fri May 10 09:02:10 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +File /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/layer0.srs changed - recompiling +File /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/layer1.srs changed - recompiling + +======================================================================================= +For a summary of linker messages for components that did not bind, please see log file: +@L: /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.linkerlog +======================================================================================= + + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 09:02:11 2019 + +###########################################################] +@END + +At c_hdl Exit (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 3MB peak: 4MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 09:02:11 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +File /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.srs changed - recompiling + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 09:02:12 2019 + +###########################################################] +# Fri May 10 09:02:12 2019 + +Synopsys Lattice Technology Pre-mapping, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 100MB) + +Reading constraint file: /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.fdc +@L: /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5_scck.rpt +Printing clock summary report in "/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5_scck.rpt" file +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 102MB peak: 104MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 102MB peak: 104MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 114MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 116MB) + +@N: BN362 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1408:0:1408:5|Removing sequential instance pcpri_mod_ch (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:PrimLib.dffre(prim) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1244:27:1244:40|Removing instance div2_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_3(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1252:27:1252:41|Removing instance div11_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_2(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1236:27:1236:40|Removing instance gear_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_4(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1268:27:1268:44|Removing instance pcie_mod_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_0(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1260:27:1260:44|Removing instance cpri_mod_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_1(verilog) because it does not drive other instances. +ICG Latch Removal Summary: +Number of ICG latches removed: 0 +Number of ICG latches not removed: 0 +syn_allowed_resources : blockrams=56 set on top level netlist sgmii_ecp5 + +Finished netlist restructuring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + + + +Clock Summary +****************** + + Start Requested Requested Clock Clock Clock +Level Clock Frequency Period Type Group Load +---------------------------------------------------------------------------------------------------------------------- +0 - System 100.0 MHz 10.000 system system_clkgroup 0 + +0 - sgmii_ecp5|pll_refclki 100.0 MHz 10.000 inferred Inferred_clkgroup_0 93 + +0 - sgmii_ecp5|rxrefclk 100.0 MHz 10.000 inferred Inferred_clkgroup_1 77 + +0 - sgmii_ecp5|tx_pclk_inferred_clock 100.0 MHz 10.000 inferred Inferred_clkgroup_2 53 +====================================================================================================================== + +@W: MT529 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Found inferred clock sgmii_ecp5|pll_refclki which controls 93 sequential elements including sll_inst.phb_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":567:3:567:8|Found inferred clock sgmii_ecp5|rxrefclk which controls 77 sequential elements including rsl_inst.genblk2\.rlos_db_p1. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Found inferred clock sgmii_ecp5|tx_pclk_inferred_clock which controls 53 sequential elements including sll_inst.rtc_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. + +Finished Pre Mapping Phase. + +Starting constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + +Encoding state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) +original code -> new code + 00 -> 00 + 01 -> 01 + 10 -> 10 + 11 -> 11 +@N: MO225 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1801:0:1801:5|There are no possible illegal states for state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)); safe FSM implementation is not required. + +Finished constraint checker preprocessing (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + +None +None + +Finished constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + +Pre-mapping successful! + +At Mapper Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 58MB peak: 144MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime +# Fri May 10 09:02:13 2019 + +###########################################################] +# Fri May 10 09:02:13 2019 + +Synopsys Lattice Technology Mapper, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 100MB) + +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 113MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 115MB) + + + +Starting Optimization and Mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 144MB) + + +Available hyper_sources - for debug and ip models + None Found + + +Finished RTL optimizations (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + +Encoding state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) +original code -> new code + 00 -> 00 + 01 -> 01 + 10 -> 10 + 11 -> 11 +@N: MO225 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1801:0:1801:5|There are no possible illegal states for state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)); safe FSM implementation is not required. +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1350:0:1350:5|Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance rhb_wait_cnt[7:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1304:0:1304:5|Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance rcount[15:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1759:0:1759:5|Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance pcount[21:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":412:3:412:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk1\.plol_cnt[19:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":909:3:909:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.genblk3\.rxr_wt_cnt[11:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":527:3:527:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk1\.genblk2\.txr_wt_cnt[11:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":778:3:778:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.rlols0_cnt[17:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":680:3:680:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.rlol1_cnt[18:0] + +Starting factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + + +Finished factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 144MB) + + +Starting gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + + +Finished gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + + +Finished generic timing optimizations - Pass 1 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 145MB) + + +Starting Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 145MB) + + +Finished Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 145MB) + + +Finished generic timing optimizations - Pass 2 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 145MB) + + +Finished preparing to map (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:01s; Memory used current: 145MB peak: 145MB) + +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). + +Finished technology mapping (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 147MB peak: 149MB) + +Pass CPU time Worst Slack Luts / Registers +------------------------------------------------------------ + 1 0h:00m:01s 4.90ns 155 / 221 +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). + +Finished technology timing optimizations and critical path resynthesis (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 147MB peak: 149MB) + +@N: FX164 |The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute. + +Finished restoring hierarchy (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 147MB peak: 149MB) + + + +@S |Clock Optimization Summary + + +#### START OF CLOCK OPTIMIZATION REPORT #####[ + +3 non-gated/non-generated clock tree(s) driving 221 clock pin(s) of sequential element(s) +0 gated/generated clock tree(s) driving 0 clock pin(s) of sequential element(s) +0 instances converted, 0 sequential instances remain driven by gated/generated clocks + +============================================= Non-Gated/Non-Generated Clocks ============================================= +Clock Tree ID Driving Element Drive Element Type Fanout Sample Instance +-------------------------------------------------------------------------------------------------------------------------- +@K:CKID0001 pll_refclki port 91 rsl_inst.genblk1\.genblk2\.mfor\[0\]\.txpr_appd[0] +@K:CKID0002 rxrefclk port 77 rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] +@K:CKID0003 DCU0_inst DCUA 53 sll_inst.pcount[21] +========================================================================================================================== + + +##### END OF CLOCK OPTIMIZATION REPORT ######] + + +Start Writing Netlists (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 111MB peak: 149MB) + +Writing Analyst data base /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_m.srm + +Finished Writing Netlist Databases (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 146MB peak: 149MB) + +Writing EDIF Netlist and constraint files +@N: FX1056 |Writing EDF file: /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.edn +M-2017.03L-SP1-1 +@N: BW106 |Synplicity Constraint File capacitance units using default value of 1pF + +Finished Writing EDIF Netlist and constraint files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 150MB peak: 152MB) + +Writing Verilog Simulation files + +Finished Writing Verilog Simulation files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 151MB peak: 152MB) + +Writing VHDL Simulation files + +Finished Writing VHDL Simulation files (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB) + + +Start final timing analysis (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB) + +@W: MT246 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd":162:4:162:12|Blackbox DCUA is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) +@W: MT420 |Found inferred clock sgmii_ecp5|rxrefclk with period 10.00ns. Please declare a user-defined clock on object "p:rxrefclk" +@W: MT420 |Found inferred clock sgmii_ecp5|pll_refclki with period 10.00ns. Please declare a user-defined clock on object "p:pll_refclki" +@W: MT420 |Found inferred clock sgmii_ecp5|tx_pclk_inferred_clock with period 10.00ns. Please declare a user-defined clock on object "n:tx_pclk" + + +##### START OF TIMING REPORT #####[ +# Timing Report written on Fri May 10 09:02:16 2019 +# + + +Top view: sgmii_ecp5 +Requested Frequency: 100.0 MHz +Wire load mode: top +Paths requested: 5 +Constraint File(s): /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.fdc + +@N: MT320 |This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. + +@N: MT322 |Clock constraints include only register-to-register paths associated with each individual clock. + + + +Performance Summary +******************* + + +Worst slack in design: 4.043 + + Requested Estimated Requested Estimated Clock Clock +Starting Clock Frequency Frequency Period Period Slack Type Group +---------------------------------------------------------------------------------------------------------------------------------------- +sgmii_ecp5|pll_refclki 100.0 MHz 168.9 MHz 10.000 5.921 4.079 inferred Inferred_clkgroup_0 +sgmii_ecp5|rxrefclk 100.0 MHz 167.9 MHz 10.000 5.957 4.043 inferred Inferred_clkgroup_1 +sgmii_ecp5|tx_pclk_inferred_clock 100.0 MHz 237.5 MHz 10.000 4.211 5.789 inferred Inferred_clkgroup_2 +System 100.0 MHz 840.7 MHz 10.000 1.190 8.810 system system_clkgroup +======================================================================================================================================== + + + + + +Clock Relationships +******************* + +Clocks | rise to rise | fall to fall | rise to fall | fall to rise +------------------------------------------------------------------------------------------------------------------------------------------------------------ +Starting Ending | constraint slack | constraint slack | constraint slack | constraint slack +------------------------------------------------------------------------------------------------------------------------------------------------------------ +System sgmii_ecp5|rxrefclk | 10.000 8.811 | No paths - | No paths - | No paths - +sgmii_ecp5|pll_refclki System | 10.000 8.253 | No paths - | No paths - | No paths - +sgmii_ecp5|pll_refclki sgmii_ecp5|pll_refclki | 10.000 4.079 | No paths - | No paths - | No paths - +sgmii_ecp5|pll_refclki sgmii_ecp5|tx_pclk_inferred_clock | Diff grp - | No paths - | No paths - | No paths - +sgmii_ecp5|rxrefclk System | 10.000 8.277 | No paths - | No paths - | No paths - +sgmii_ecp5|rxrefclk sgmii_ecp5|rxrefclk | 10.000 4.043 | No paths - | No paths - | No paths - +sgmii_ecp5|tx_pclk_inferred_clock sgmii_ecp5|pll_refclki | Diff grp - | No paths - | No paths - | No paths - +sgmii_ecp5|tx_pclk_inferred_clock sgmii_ecp5|tx_pclk_inferred_clock | 10.000 5.789 | No paths - | No paths - | No paths - +============================================================================================================================================================ + Note: 'No paths' indicates there are no paths in the design for that pair of clock edges. + 'Diff grp' indicates that paths exist but the starting clock and ending clock are in different clock groups. + + + +Interface Information +********************* + +No IO constraint found + + + +==================================== +Detailed Report for Clock: sgmii_ecp5|pll_refclki +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +-------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[2] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[2] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[3] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[3] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[17] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[17] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[19] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[19] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[1] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[1] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[4] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[4] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[5] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[5] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[6] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[6] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[7] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[7] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[8] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[8] 0.907 4.684 +==================================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +----------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[19] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[19] 9.946 4.079 +rsl_inst.genblk1\.plol_cnt[17] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[17] 9.946 4.139 +rsl_inst.genblk1\.plol_cnt[18] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[18] 9.946 4.139 +rsl_inst.genblk1\.plol_cnt[15] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[15] 9.946 4.200 +rsl_inst.genblk1\.plol_cnt[16] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[16] 9.946 4.200 +rsl_inst.genblk1\.plol_cnt[13] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[13] 9.946 4.261 +rsl_inst.genblk1\.plol_cnt[14] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[14] 9.946 4.261 +rsl_inst.genblk1\.plol_cnt[11] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[11] 9.946 4.322 +rsl_inst.genblk1\.plol_cnt[12] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[12] 9.946 4.322 +rsl_inst.genblk1\.plol_cnt[9] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[9] 9.946 4.383 +======================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 5.867 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : 4.079 + + Number of logic level(s): 15 + Starting point: rsl_inst.genblk1\.plol_cnt[2] / Q + Ending point: rsl_inst.genblk1\.plol_cnt[19] / D + The start point is clocked by sgmii_ecp5|pll_refclki [rising] on pin CK + The end point is clocked by sgmii_ecp5|pll_refclki [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[2] FD1S3DX Q Out 0.907 0.907 - +plol_cnt[2] Net - - - - 2 +rsl_inst.genblk1\.un1_plol_cnt_tc_10 ORCALUT4 A In 0.000 0.907 - +rsl_inst.genblk1\.un1_plol_cnt_tc_10 ORCALUT4 Z Out 0.606 1.513 - +un1_plol_cnt_tc_10 Net - - - - 1 +rsl_inst.genblk1\.un1_plol_cnt_tc_14 ORCALUT4 D In 0.000 1.513 - +rsl_inst.genblk1\.un1_plol_cnt_tc_14 ORCALUT4 Z Out 0.606 2.119 - +un1_plol_cnt_tc_14 Net - - - - 1 +rsl_inst.genblk1\.un1_plol_cnt_tc ORCALUT4 D In 0.000 2.119 - +rsl_inst.genblk1\.un1_plol_cnt_tc ORCALUT4 Z Out 0.762 2.881 - +un1_plol_cnt_tc Net - - - - 5 +rsl_inst.genblk1\.plol_cnt11_i ORCALUT4 B In 0.000 2.881 - +rsl_inst.genblk1\.plol_cnt11_i ORCALUT4 Z Out 0.840 3.721 - +plol_cnt Net - - - - 21 +rsl_inst.genblk1\.plol_cnt_cry_0[0] CCU2C A1 In 0.000 3.721 - +rsl_inst.genblk1\.plol_cnt_cry_0[0] CCU2C COUT Out 0.900 4.621 - +plol_cnt_cry[0] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[1] CCU2C CIN In 0.000 4.621 - +rsl_inst.genblk1\.plol_cnt_cry_0[1] CCU2C COUT Out 0.061 4.682 - +plol_cnt_cry[2] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[3] CCU2C CIN In 0.000 4.682 - +rsl_inst.genblk1\.plol_cnt_cry_0[3] CCU2C COUT Out 0.061 4.743 - +plol_cnt_cry[4] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[5] CCU2C CIN In 0.000 4.743 - +rsl_inst.genblk1\.plol_cnt_cry_0[5] CCU2C COUT Out 0.061 4.804 - +plol_cnt_cry[6] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[7] CCU2C CIN In 0.000 4.804 - +rsl_inst.genblk1\.plol_cnt_cry_0[7] CCU2C COUT Out 0.061 4.865 - +plol_cnt_cry[8] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[9] CCU2C CIN In 0.000 4.865 - +rsl_inst.genblk1\.plol_cnt_cry_0[9] CCU2C COUT Out 0.061 4.926 - +plol_cnt_cry[10] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[11] CCU2C CIN In 0.000 4.926 - +rsl_inst.genblk1\.plol_cnt_cry_0[11] CCU2C COUT Out 0.061 4.987 - +plol_cnt_cry[12] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[13] CCU2C CIN In 0.000 4.987 - +rsl_inst.genblk1\.plol_cnt_cry_0[13] CCU2C COUT Out 0.061 5.048 - +plol_cnt_cry[14] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[15] CCU2C CIN In 0.000 5.048 - +rsl_inst.genblk1\.plol_cnt_cry_0[15] CCU2C COUT Out 0.061 5.109 - +plol_cnt_cry[16] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[17] CCU2C CIN In 0.000 5.109 - +rsl_inst.genblk1\.plol_cnt_cry_0[17] CCU2C COUT Out 0.061 5.170 - +plol_cnt_cry[18] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_s_0[19] CCU2C CIN In 0.000 5.170 - +rsl_inst.genblk1\.plol_cnt_s_0[19] CCU2C S0 Out 0.698 5.867 - +plol_cnt_s[19] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt[19] FD1S3DX D In 0.000 5.867 - +======================================================================================================= + + + + +==================================== +Detailed Report for Clock: sgmii_ecp5|rxrefclk +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rxs_rst sgmii_ecp5|rxrefclk FD1P3DX Q rxs_rst 1.015 4.043 +rsl_inst.genblk2\.rlol1_cnt[7] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[7] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[8] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[8] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[9] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[9] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[10] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[10] 0.907 4.136 +rsl_inst.genblk2\.rlols0_cnt[1] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[1] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[2] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[2] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[3] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[3] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[4] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[4] 0.907 4.170 +rsl_inst.genblk2\.rlol1_cnt[0] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[0] 0.907 4.742 +=================================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[11] sgmii_ecp5|rxrefclk FD1P3DX D rxr_wt_cnt_s[11] 9.946 4.043 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[9] sgmii_ecp5|rxrefclk FD1P3DX D rxr_wt_cnt_s[9] 9.946 4.104 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[10] sgmii_ecp5|rxrefclk FD1P3DX D rxr_wt_cnt_s[10] 9.946 4.104 +rsl_inst.genblk2\.rlol1_cnt[17] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[17] 9.946 4.136 +rsl_inst.genblk2\.rlol1_cnt[18] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[18] 9.946 4.136 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[7] sgmii_ecp5|rxrefclk FD1P3DX D rxr_wt_cnt_s[7] 9.946 4.165 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[8] sgmii_ecp5|rxrefclk FD1P3DX D rxr_wt_cnt_s[8] 9.946 4.165 +rsl_inst.genblk2\.rlols0_cnt[17] sgmii_ecp5|rxrefclk FD1P3DX D rlols0_cnt_s[17] 9.946 4.170 +rsl_inst.genblk2\.rlol1_cnt[15] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[15] 9.946 4.197 +rsl_inst.genblk2\.rlol1_cnt[16] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[16] 9.946 4.197 +================================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 5.902 + - Clock delay at starting point: 0.000 (ideal) + = Slack (critical) : 4.043 + + Number of logic level(s): 11 + Starting point: rsl_inst.genblk2\.rxs_rst / Q + Ending point: rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[11] / D + The start point is clocked by sgmii_ecp5|rxrefclk [rising] on pin CK + The end point is clocked by sgmii_ecp5|rxrefclk [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +----------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rxs_rst FD1P3DX Q Out 1.015 1.015 - +rxs_rst Net - - - - 6 +rsl_inst.rdo_rx_serdes_rst_c_1[0] ORCALUT4 B In 0.000 1.015 - +rsl_inst.rdo_rx_serdes_rst_c_1[0] ORCALUT4 Z Out 0.708 1.723 - +rsl_rx_serdes_rst_c Net - - - - 3 +rsl_inst.dual_or_rserd_rst ORCALUT4 A In 0.000 1.723 - +rsl_inst.dual_or_rserd_rst ORCALUT4 Z Out 0.798 2.521 - +dual_or_rserd_rst Net - - - - 9 +rsl_inst.rx_any_rst ORCALUT4 A In 0.000 2.521 - +rsl_inst.rx_any_rst ORCALUT4 Z Out 0.660 3.181 - +rx_any_rst Net - - - - 2 +rsl_inst.rx_any_rst_RNIFD021 ORCALUT4 A In 0.000 3.181 - +rsl_inst.rx_any_rst_RNIFD021 ORCALUT4 Z Out 0.819 4.000 - +rxr_wt_cnt9 Net - - - - 14 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[0] CCU2C A1 In 0.000 4.000 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[0] CCU2C COUT Out 0.900 4.900 - +rxr_wt_cnt_cry[0] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[1] CCU2C CIN In 0.000 4.900 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[1] CCU2C COUT Out 0.061 4.961 - +rxr_wt_cnt_cry[2] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[3] CCU2C CIN In 0.000 4.961 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[3] CCU2C COUT Out 0.061 5.022 - +rxr_wt_cnt_cry[4] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[5] CCU2C CIN In 0.000 5.022 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[5] CCU2C COUT Out 0.061 5.083 - +rxr_wt_cnt_cry[6] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[7] CCU2C CIN In 0.000 5.083 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[7] CCU2C COUT Out 0.061 5.144 - +rxr_wt_cnt_cry[8] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[9] CCU2C CIN In 0.000 5.144 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[9] CCU2C COUT Out 0.061 5.205 - +rxr_wt_cnt_cry[10] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_s_0[11] CCU2C CIN In 0.000 5.205 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_s_0[11] CCU2C S0 Out 0.698 5.902 - +rxr_wt_cnt_s[11] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[11] FD1P3DX D In 0.000 5.902 - +================================================================================================================= + + + + +==================================== +Detailed Report for Clock: sgmii_ecp5|tx_pclk_inferred_clock +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------------------------------------------ +sll_inst.ppul_sync_p1 sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q ppul_sync_p1 1.098 5.789 +sll_inst.ppul_sync_p2 sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q ppul_sync_p2 1.098 5.789 +sll_inst.pcount_diff[0] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_0 0.985 6.147 +sll_inst.pcount[0] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q pcount[0] 0.955 6.178 +sll_inst.pcount_diff[1] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_1 0.955 6.239 +sll_inst.pcount_diff[2] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_2 0.955 6.239 +sll_inst.pcount[1] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q pcount[1] 0.907 6.287 +sll_inst.pcount[2] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q pcount[2] 0.907 6.287 +sll_inst.pcount_diff[3] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_3 0.955 6.300 +sll_inst.pcount_diff[4] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_4 0.955 6.300 +======================================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +----------------------------------------------------------------------------------------------------------------------------------------- +sll_inst.pcount[21] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[21] 9.946 5.789 +sll_inst.pcount[19] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[19] 9.946 5.850 +sll_inst.pcount[20] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[20] 9.946 5.850 +sll_inst.pcount[17] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[17] 9.946 5.911 +sll_inst.pcount[18] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[18] 9.946 5.911 +sll_inst.pcount[15] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[15] 9.946 5.972 +sll_inst.pcount[16] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[16] 9.946 5.972 +sll_inst.pcount[13] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[13] 9.946 6.033 +sll_inst.pcount[14] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[14] 9.946 6.033 +sll_inst.pcount_diff[21] sgmii_ecp5|tx_pclk_inferred_clock FD1P3DX D un1_pcount_diff_1_s_21_0_S0 9.946 6.034 +========================================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 4.157 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : 5.789 + + Number of logic level(s): 13 + Starting point: sll_inst.ppul_sync_p1 / Q + Ending point: sll_inst.pcount[21] / D + The start point is clocked by sgmii_ecp5|tx_pclk_inferred_clock [rising] on pin CK + The end point is clocked by sgmii_ecp5|tx_pclk_inferred_clock [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +-------------------------------------------------------------------------------------------- +sll_inst.ppul_sync_p1 FD1S3DX Q Out 1.098 1.098 - +ppul_sync_p1 Net - - - - 25 +sll_inst.pcount10_0_o3 ORCALUT4 A In 0.000 1.098 - +sll_inst.pcount10_0_o3 ORCALUT4 Z Out 0.851 1.950 - +N_8 Net - - - - 25 +sll_inst.pcount_cry_0[0] CCU2C A1 In 0.000 1.950 - +sll_inst.pcount_cry_0[0] CCU2C COUT Out 0.900 2.850 - +pcount_cry[0] Net - - - - 1 +sll_inst.pcount_cry_0[1] CCU2C CIN In 0.000 2.850 - +sll_inst.pcount_cry_0[1] CCU2C COUT Out 0.061 2.911 - +pcount_cry[2] Net - - - - 1 +sll_inst.pcount_cry_0[3] CCU2C CIN In 0.000 2.911 - +sll_inst.pcount_cry_0[3] CCU2C COUT Out 0.061 2.972 - +pcount_cry[4] Net - - - - 1 +sll_inst.pcount_cry_0[5] CCU2C CIN In 0.000 2.972 - +sll_inst.pcount_cry_0[5] CCU2C COUT Out 0.061 3.033 - +pcount_cry[6] Net - - - - 1 +sll_inst.pcount_cry_0[7] CCU2C CIN In 0.000 3.033 - +sll_inst.pcount_cry_0[7] CCU2C COUT Out 0.061 3.094 - +pcount_cry[8] Net - - - - 1 +sll_inst.pcount_cry_0[9] CCU2C CIN In 0.000 3.094 - +sll_inst.pcount_cry_0[9] CCU2C COUT Out 0.061 3.155 - +pcount_cry[10] Net - - - - 1 +sll_inst.pcount_cry_0[11] CCU2C CIN In 0.000 3.155 - +sll_inst.pcount_cry_0[11] CCU2C COUT Out 0.061 3.216 - +pcount_cry[12] Net - - - - 1 +sll_inst.pcount_cry_0[13] CCU2C CIN In 0.000 3.216 - +sll_inst.pcount_cry_0[13] CCU2C COUT Out 0.061 3.277 - +pcount_cry[14] Net - - - - 1 +sll_inst.pcount_cry_0[15] CCU2C CIN In 0.000 3.277 - +sll_inst.pcount_cry_0[15] CCU2C COUT Out 0.061 3.338 - +pcount_cry[16] Net - - - - 1 +sll_inst.pcount_cry_0[17] CCU2C CIN In 0.000 3.338 - +sll_inst.pcount_cry_0[17] CCU2C COUT Out 0.061 3.399 - +pcount_cry[18] Net - - - - 1 +sll_inst.pcount_cry_0[19] CCU2C CIN In 0.000 3.399 - +sll_inst.pcount_cry_0[19] CCU2C COUT Out 0.061 3.460 - +pcount_cry[20] Net - - - - 1 +sll_inst.pcount_s_0[21] CCU2C CIN In 0.000 3.460 - +sll_inst.pcount_s_0[21] CCU2C S0 Out 0.698 4.157 - +pcount_s[21] Net - - - - 1 +sll_inst.pcount[21] FD1S3DX D In 0.000 4.157 - +============================================================================================ + + + + +==================================== +Detailed Report for Clock: System +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +---------------------------------------------------------------------------------------- +DCU0_inst System DCUA CH0_FFS_RLOL rx_cdr_lol_s 0.000 8.810 +DCU0_inst System DCUA CH0_FFS_RLOS rx_los_low_s 0.000 8.810 +======================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] System FD1P3DX SP un2_rdo_serdes_rst_dual_c_2_i 9.806 8.810 +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] System FD1P3DX D rxpr_appd_RNO[0] 9.946 9.556 +rsl_inst.genblk2\.rlol_p1 System FD1S3DX D rx_cdr_lol_s 9.946 9.946 +rsl_inst.genblk2\.rlos_p1 System FD1S3DX D rx_los_low_s 9.946 9.946 +============================================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.194 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.806 + + - Propagation time: 0.996 + - Clock delay at starting point: 0.000 (ideal) + - Estimated clock delay at start point: -0.000 + = Slack (non-critical) : 8.810 + + Number of logic level(s): 2 + Starting point: DCU0_inst / CH0_FFS_RLOL + Ending point: rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] / SP + The start point is clocked by System [rising] + The end point is clocked by sgmii_ecp5|rxrefclk [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +----------------------------------------------------------------------------------------------------------------------------------- +DCU0_inst DCUA CH0_FFS_RLOL Out 0.000 0.000 - +rx_cdr_lol_s Net - - - - 4 +rsl_inst.un2_rdo_serdes_rst_dual_c_1_1 ORCALUT4 A In 0.000 0.000 - +rsl_inst.un2_rdo_serdes_rst_dual_c_1_1 ORCALUT4 Z Out 0.606 0.606 - +un2_rdo_serdes_rst_dual_c_1_1 Net - - - - 1 +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd_RNO_0[0] ORCALUT4 B In 0.000 0.606 - +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd_RNO_0[0] ORCALUT4 Z Out 0.390 0.996 - +un2_rdo_serdes_rst_dual_c_2_i Net - - - - 1 +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] FD1P3DX SP In 0.000 0.996 - +=================================================================================================================================== + + + +##### END OF TIMING REPORT #####] + +Timing exceptions that could not be applied +None + +Finished final timing analysis (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB) + + +Finished timing report (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB) + +--------------------------------------- +Resource Usage Report +Part: lfe5um_25f-6 + +Register bits: 221 of 24288 (1%) +PIC Latch: 0 +I/O cells: 0 + + +Details: +CCU2C: 113 +DCUA: 1 +FD1P3BX: 20 +FD1P3DX: 92 +FD1S3BX: 12 +FD1S3DX: 97 +GSR: 1 +INV: 3 +ORCALUT4: 154 +PFUMX: 2 +PUR: 1 +VHI: 6 +VLO: 6 +Mapper successful! + +At Mapper Exit (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 35MB peak: 153MB) + +Process took 0h:00m:03s realtime, 0h:00m:03s cputime +# Fri May 10 09:02:16 2019 + +###########################################################] diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srr.db b/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srr.db new file mode 100644 index 0000000000000000000000000000000000000000..8868cb218988b1713b4046aedbde725a2fe5b4bc GIT binary patch literal 36864 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srs b/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.srs new file mode 100644 index 0000000000000000000000000000000000000000..ba6320d6dde96cfc286a1bc7c504affac477b093 GIT binary patch literal 27481 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 HuxtSULWJ~L literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.vhm b/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.vhm new file mode 100644 index 0000000..bbff63b --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.vhm @@ -0,0 +1,6445 @@ +-- +-- Written by Synplicity +-- Product Version "M-2017.03L-SP1-1" +-- Program "Synplify Pro", Mapper "maplat, Build 1796R" +-- Fri May 10 09:02:16 2019 +-- + +-- +-- Written by Synplify Pro version Build 1796R +-- Fri May 10 09:02:16 2019 +-- + +-- +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; +library synplify; +use synplify.components.all; +library pmi; +use pmi.pmi_components.all; +library ecp5um; +use ecp5um.components.all; + +entity sync_0s_0 is +port( + ppul_sync : in std_logic; + pdiff_sync : out std_logic; + sli_rst : in std_logic; + pll_refclki : in std_logic); +end sync_0s_0; + +architecture beh of sync_0s_0 is + signal DATA_P1 : std_logic ; + signal DATA_P2_QN_1 : std_logic ; + signal VCC : std_logic ; + signal DATA_P1_QN_1 : std_logic ; + signal GND : std_logic ; +begin +DATA_P2_REG_Z10: FD1S3DX port map ( + D => DATA_P1, + CK => pll_refclki, + CD => sli_rst, + Q => pdiff_sync); +DATA_P1_REG_Z12: FD1S3DX port map ( + D => ppul_sync, + CK => pll_refclki, + CD => sli_rst, + Q => DATA_P1); +VCC_0: VHI port map ( + Z => VCC); +II_GND: VLO port map ( + Z => GND); +end beh; + +-- +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; +library synplify; +use synplify.components.all; +library pmi; +use pmi.pmi_components.all; +library ecp5um; +use ecp5um.components.all; + +entity sync_0s_6 is +port( +rtc_pul : in std_logic; +ppul_sync : out std_logic; +sli_rst : in std_logic; +tx_pclk : in std_logic); +end sync_0s_6; + +architecture beh of sync_0s_6 is +signal DATA_P1 : std_logic ; +signal DATA_P2_QN : std_logic ; +signal VCC : std_logic ; +signal DATA_P1_QN : std_logic ; +signal GND : std_logic ; +begin +DATA_P2_REG_Z10: FD1S3DX port map ( + D => DATA_P1, + CK => tx_pclk, + CD => sli_rst, + Q => ppul_sync); +DATA_P1_REG_Z12: FD1S3DX port map ( + D => rtc_pul, + CK => tx_pclk, + CD => sli_rst, + Q => DATA_P1); +VCC_0: VHI port map ( + Z => VCC); +II_GND: VLO port map ( + Z => GND); +end beh; + +-- +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; +library synplify; +use synplify.components.all; +library pmi; +use pmi.pmi_components.all; +library ecp5um; +use ecp5um.components.all; + +entity sync_0s is +port( +phb : in std_logic; +rhb_sync : out std_logic; +sli_rst : in std_logic; +pll_refclki : in std_logic); +end sync_0s; + +architecture beh of sync_0s is +signal DATA_P1 : std_logic ; +signal DATA_P2_QN_0 : std_logic ; +signal VCC : std_logic ; +signal DATA_P1_QN_0 : std_logic ; +signal GND : std_logic ; +begin +DATA_P2_REG_Z10: FD1S3DX port map ( +D => DATA_P1, +CK => pll_refclki, +CD => sli_rst, +Q => rhb_sync); +DATA_P1_REG_Z12: FD1S3DX port map ( +D => phb, +CK => pll_refclki, +CD => sli_rst, +Q => DATA_P1); +VCC_0: VHI port map ( +Z => VCC); +II_GND: VLO port map ( +Z => GND); +end beh; + +-- +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; +library synplify; +use synplify.components.all; +library pmi; +use pmi.pmi_components.all; +library ecp5um; +use ecp5um.components.all; + +entity sgmii_ecp5rsl_core_Z2_layer1 is +port( +rx_pcs_rst_c : in std_logic; +tx_pcs_rst_c : in std_logic; +tx_serdes_rst_c : in std_logic; +serdes_rst_dual_c : in std_logic; +rsl_tx_pcs_rst_c : out std_logic; +rsl_rx_serdes_rst_c : out std_logic; +rsl_serdes_rst_dual_c : out std_logic; +rsl_tx_serdes_rst_c : out std_logic; +rsl_tx_rdy : out std_logic; +pll_lock_i : in std_logic; +pll_refclki : in std_logic; +rsl_rx_rdy : out std_logic; +rsl_rst : in std_logic; +rxrefclk : in std_logic; +rsl_disable : in std_logic; +rx_serdes_rst_c : in std_logic; +rsl_rx_pcs_rst_c : out std_logic; +rst_dual_c : in std_logic; +rx_cdr_lol_s : in std_logic; +rx_los_low_s : in std_logic); +end sgmii_ecp5rsl_core_Z2_layer1; + +architecture beh of sgmii_ecp5rsl_core_Z2_layer1 is +signal RXS_CNT : std_logic_vector(1 downto 0); +signal RXS_CNT_3 : std_logic_vector(1 downto 0); +signal RXPR_APPD_RNO : std_logic_vector(0 to 0); +signal PLOL0_CNT : std_logic_vector(2 downto 0); +signal PLOL0_CNT_3 : std_logic_vector(2 downto 0); +signal RXSR_APPD : std_logic_vector(0 to 0); +signal RXS_CNT_QN : std_logic_vector(1 downto 0); +signal RLOS_DB_CNT : std_logic_vector(3 downto 0); +signal RLOS_DB_CNT_QN : std_logic_vector(3 downto 0); +signal RLOLS0_CNT_S : std_logic_vector(17 downto 0); +signal RLOLS0_CNT : std_logic_vector(17 downto 0); +signal RLOLS0_CNT_QN : std_logic_vector(17 downto 0); +signal RLOL_DB_CNT : std_logic_vector(3 downto 0); +signal RLOL_DB_CNT_QN : std_logic_vector(3 downto 0); +signal RLOL1_CNT_S : std_logic_vector(18 downto 0); +signal RLOL1_CNT : std_logic_vector(18 downto 0); +signal RLOL1_CNT_QN : std_logic_vector(18 downto 0); +signal RXR_WT_CNT_S : std_logic_vector(11 downto 0); +signal RXR_WT_CNT : std_logic_vector(11 downto 0); +signal RXR_WT_CNT_QN : std_logic_vector(11 downto 0); +signal RXSR_APPD_QN : std_logic_vector(0 to 0); +signal RXPR_APPD : std_logic_vector(0 to 0); +signal RXPR_APPD_QN : std_logic_vector(0 to 0); +signal TXS_CNT : std_logic_vector(1 downto 0); +signal TXS_CNT_QN : std_logic_vector(1 downto 0); +signal TXS_CNT_RNO : std_logic_vector(1 to 1); +signal TXP_CNT : std_logic_vector(1 downto 0); +signal TXP_CNT_QN : std_logic_vector(1 downto 0); +signal TXP_CNT_RNO : std_logic_vector(1 to 1); +signal PLOL_CNT_S : std_logic_vector(19 downto 0); +signal PLOL_CNT : std_logic_vector(19 downto 0); +signal PLOL_CNT_QN : std_logic_vector(19 downto 0); +signal PLOL0_CNT_QN : std_logic_vector(2 downto 0); +signal TXR_WT_CNT_S : std_logic_vector(11 downto 0); +signal TXR_WT_CNT : std_logic_vector(11 downto 0); +signal TXR_WT_CNT_QN : std_logic_vector(11 downto 0); +signal TXPR_APPD : std_logic_vector(0 to 0); +signal TXPR_APPD_QN : std_logic_vector(0 to 0); +signal UN1_RLOL_DB_CNT_ZERO : std_logic_vector(0 to 0); +signal UN1_RLOS_DB_CNT_ZERO : std_logic_vector(0 to 0); +signal UN1_RLOL_DB_CNT_ZERO_BM : std_logic_vector(0 to 0); +signal UN1_RLOL_DB_CNT_ZERO_AM : std_logic_vector(0 to 0); +signal UN1_RLOS_DB_CNT_ZERO_BM : std_logic_vector(0 to 0); +signal UN1_RLOS_DB_CNT_ZERO_AM : std_logic_vector(0 to 0); +signal RLOL1_CNT_CRY : std_logic_vector(16 downto 0); +signal RLOL1_CNT_CRY_0_S0 : std_logic_vector(0 to 0); +signal RLOL1_CNT_CRY_0_COUT : std_logic_vector(17 to 17); +signal RLOLS0_CNT_CRY : std_logic_vector(16 downto 0); +signal RLOLS0_CNT_CRY_0_S0 : std_logic_vector(0 to 0); +signal RLOLS0_CNT_S_0_COUT : std_logic_vector(17 to 17); +signal RLOLS0_CNT_S_0_S1 : std_logic_vector(17 to 17); +signal TXR_WT_CNT_CRY : std_logic_vector(10 downto 0); +signal TXR_WT_CNT_CRY_0_S0 : std_logic_vector(0 to 0); +signal TXR_WT_CNT_S_0_COUT : std_logic_vector(11 to 11); +signal TXR_WT_CNT_S_0_S1 : std_logic_vector(11 to 11); +signal RXR_WT_CNT_CRY : std_logic_vector(10 downto 0); +signal RXR_WT_CNT_CRY_0_S0 : std_logic_vector(0 to 0); +signal RXR_WT_CNT_S_0_COUT : std_logic_vector(11 to 11); +signal RXR_WT_CNT_S_0_S1 : std_logic_vector(11 to 11); +signal PLOL_CNT_CRY : std_logic_vector(18 downto 0); +signal PLOL_CNT_CRY_0_S0 : std_logic_vector(0 to 0); +signal PLOL_CNT_S_0_COUT : std_logic_vector(19 to 19); +signal PLOL_CNT_S_0_S1 : std_logic_vector(19 to 19); +signal RXS_RST : std_logic ; +signal VCC : std_logic ; +signal DUAL_OR_RSERD_RST : std_logic ; +signal PLOL0_CNT9 : std_logic ; +signal WAITA_PLOL0 : std_logic ; +signal RLOS_DB_P1 : std_logic ; +signal RLOS_DB : std_logic ; +signal RXP_RST25 : std_logic ; +signal RLOL_DB : std_logic ; +signal UN1_RUI_RST_DUAL_C_1_1 : std_logic ; +signal RX_ALL_WELL : std_logic ; +signal RSL_RX_PCS_RST_C_10 : std_logic ; +signal UN3_RX_ALL_WELL_2 : std_logic ; +signal UN17_RXR_WT_TC : std_logic ; +signal UN3_RX_ALL_WELL_1 : std_logic ; +signal RX_ANY_RST : std_logic ; +signal RXR_WT_CNT9 : std_logic ; +signal UN1_RUI_RST_DUAL_C_1_I : std_logic ; +signal RLOL1_CNT_TC_1 : std_logic ; +signal \RLOL1_CNT_\ : std_logic ; +signal RXR_WT_EN : std_logic ; +signal RXR_WT_CNTE : std_logic ; +signal RLOLS0_CNT_TC_1 : std_logic ; +signal UN2_RLOS_REDGE_1_I : std_logic ; +signal UN18_TXR_WT_TC : std_logic ; +signal TX_ANY_RST : std_logic ; +signal PLL_LOL_P2 : std_logic ; +signal UN2_PLOL_FEDGE_5_I : std_logic ; +signal N_2124_0 : std_logic ; +signal WAITA_RLOLS06 : std_logic ; +signal UN1_RLOLS0_CNT_TC : std_logic ; +signal WAITA_RLOLS0 : std_logic ; +signal WAITA_RLOLS0_QN : std_logic ; +signal WAIT_CALIB_RNO : std_logic ; +signal UN1_RLOS_FEDGE_1 : std_logic ; +signal WAIT_CALIB : std_logic ; +signal WAIT_CALIB_QN : std_logic ; +signal RXS_RST6 : std_logic ; +signal UN1_RXS_CNT_TC : std_logic ; +signal RXS_RST_QN : std_logic ; +signal RXP_RST2 : std_logic ; +signal RXP_RST2_QN : std_logic ; +signal RLOS_P1 : std_logic ; +signal RLOS_P2 : std_logic ; +signal RLOS_P2_QN : std_logic ; +signal RLOS_P1_QN : std_logic ; +signal RLOS_DB_P1_QN : std_logic ; +signal RLOS_DB_CNT_AXB_0 : std_logic ; +signal RLOS_DB_CNT_CRY_1_0_S0 : std_logic ; +signal RLOS_DB_CNT_CRY_1_0_S1 : std_logic ; +signal RLOS_DB_CNT_S_3_0_S0 : std_logic ; +signal UN1_RLOS_DB_CNT_MAX : std_logic ; +signal RLOS_DB_QN : std_logic ; +signal RLOLS0_CNTE : std_logic ; +signal RLOL_P1 : std_logic ; +signal RLOL_P2 : std_logic ; +signal RLOL_P2_QN : std_logic ; +signal RLOL_P1_QN : std_logic ; +signal RLOL_DB_P1 : std_logic ; +signal RLOL_DB_P1_QN : std_logic ; +signal RLOL_DB_CNT_AXB_0 : std_logic ; +signal RLOL_DB_CNT_CRY_1_0_S0 : std_logic ; +signal RLOL_DB_CNT_CRY_1_0_S1 : std_logic ; +signal RLOL_DB_CNT_S_3_0_S0 : std_logic ; +signal UN1_RLOL_DB_CNT_MAX : std_logic ; +signal RLOL_DB_QN : std_logic ; +signal RLOL1_CNTE : std_logic ; +signal RXSDR_APPD_2 : std_logic ; +signal RXSDR_APPD : std_logic ; +signal RXSDR_APPD_QN : std_logic ; +signal UN1_DUAL_OR_RSERD_RST_2_I : std_logic ; +signal RXR_WT_EN_QN : std_logic ; +signal RXDPR_APPD : std_logic ; +signal RXDPR_APPD_QN : std_logic ; +signal RSL_RX_RDY_9 : std_logic ; +signal RUO_RX_RDYR_QN : std_logic ; +signal UN2_RDO_SERDES_RST_DUAL_C_2_I : std_logic ; +signal PLOL_FEDGE : std_logic ; +signal UN1_PLOL0_CNT_TC_1_I : std_logic ; +signal WAITA_PLOL0_QN : std_logic ; +signal UN1_PLOL_CNT_TC : std_logic ; +signal UN2_PLOL_CNT_TC : std_logic ; +signal TXS_RST : std_logic ; +signal TXS_RST_QN : std_logic ; +signal N_10_I : std_logic ; +signal UN9_PLOL0_CNT_TC : std_logic ; +signal UN1_PLOL0_CNT_TC_1 : std_logic ; +signal TXP_RST : std_logic ; +signal TXP_RST_QN : std_logic ; +signal N_11_I : std_logic ; +signal PLL_LOL_P3 : std_logic ; +signal PLL_LOL_P3_QN : std_logic ; +signal PLL_LOL_P1 : std_logic ; +signal PLL_LOL_P2_QN : std_logic ; +signal PLL_LOL_P1_QN : std_logic ; +signal TXSR_APPD_2 : std_logic ; +signal TXSR_APPD : std_logic ; +signal TXSR_APPD_QN : std_logic ; +signal UN1_DUAL_OR_SERD_RST_1_1 : std_logic ; +signal UN1_DUAL_OR_SERD_RST_1_I : std_logic ; +signal TXR_WT_EN : std_logic ; +signal TXR_WT_EN_QN : std_logic ; +signal TXR_WT_CNTE : std_logic ; +signal UN2_PLOL_FEDGE_2 : std_logic ; +signal UN2_PLOL_FEDGE_3_I : std_logic ; +signal TXDPR_APPD : std_logic ; +signal TXDPR_APPD_QN : std_logic ; +signal UN2_PLOL_FEDGE_5_1 : std_logic ; +signal RSL_TX_RDY_8 : std_logic ; +signal RUO_TX_RDYR_QN : std_logic ; +signal UN2_PLOL_FEDGE_8_I : std_logic ; +signal RLOS_REDGE : std_logic ; +signal RLOLS0_CNT11_0 : std_logic ; +signal RSL_TX_SERDES_RST_C_7 : std_logic ; +signal \PLOL_CNT_\ : std_logic ; +signal \RLOLS0_CNT_\ : std_logic ; +signal UN8_RXS_CNT_TC : std_logic ; +signal UN1_TXSR_APPD : std_logic ; +signal RSL_SERDES_RST_DUAL_C_6 : std_logic ; +signal UN3_RX_ALL_WELL_2_1 : std_logic ; +signal UN1_RXSDR_OR_SR_APPD : std_logic ; +signal UN2_RDO_SERDES_RST_DUAL_C_1_1 : std_logic ; +signal RSL_RX_SERDES_RST_C_5 : std_logic ; +signal RLOLS0_CNT_TC_1_10 : std_logic ; +signal RLOLS0_CNT_TC_1_11 : std_logic ; +signal RLOLS0_CNT_TC_1_12 : std_logic ; +signal RLOLS0_CNT_TC_1_13 : std_logic ; +signal UN1_PLOL_CNT_TC_11 : std_logic ; +signal UN1_PLOL_CNT_TC_12 : std_logic ; +signal UN1_PLOL_CNT_TC_13 : std_logic ; +signal UN1_PLOL_CNT_TC_14 : std_logic ; +signal RLOL1_CNT_TC_1_11 : std_logic ; +signal RLOL1_CNT_TC_1_12 : std_logic ; +signal RLOL1_CNT_TC_1_13 : std_logic ; +signal RLOL1_CNT_TC_1_14 : std_logic ; +signal TXSR_APPD_4 : std_logic ; +signal RSL_TX_PCS_RST_C_4 : std_logic ; +signal CO0_2 : std_logic ; +signal UN18_TXR_WT_TC_6 : std_logic ; +signal UN18_TXR_WT_TC_7 : std_logic ; +signal UN18_TXR_WT_TC_8 : std_logic ; +signal UN17_RXR_WT_TC_6 : std_logic ; +signal UN17_RXR_WT_TC_7 : std_logic ; +signal UN17_RXR_WT_TC_8 : std_logic ; +signal RXSDR_APPD_4 : std_logic ; +signal RLOLS0_CNT_TC_1_9 : std_logic ; +signal UN1_PLOL_CNT_TC_10 : std_logic ; +signal RLOL1_CNT_TC_1_10 : std_logic ; +signal \TXR_WT_CNT_\ : std_logic ; +signal RLOS_DB_CNT_CRY_0 : std_logic ; +signal RLOS_DB_CNT_CRY_0_0_S0 : std_logic ; +signal RLOS_DB_CNT_CRY_0_0_S1 : std_logic ; +signal RLOS_DB_CNT_CRY_2 : std_logic ; +signal RLOS_DB_CNT_S_3_0_COUT : std_logic ; +signal RLOS_DB_CNT_S_3_0_S1 : std_logic ; +signal RLOL_DB_CNT_CRY_0 : std_logic ; +signal RLOL_DB_CNT_CRY_0_0_S0 : std_logic ; +signal RLOL_DB_CNT_CRY_0_0_S1 : std_logic ; +signal RLOL_DB_CNT_CRY_2 : std_logic ; +signal RLOL_DB_CNT_S_3_0_COUT : std_logic ; +signal RLOL_DB_CNT_S_3_0_S1 : std_logic ; +signal GND : std_logic ; +signal N_1 : std_logic ; +signal N_2 : std_logic ; +signal N_3 : std_logic ; +signal N_4 : std_logic ; +signal N_5 : std_logic ; +signal N_6 : std_logic ; +signal N_7 : std_logic ; +begin +\GENBLK2.RXS_CNT_RNO[0]\: LUT4 +generic map( + init => X"2626" +) +port map ( +A => RXS_RST, +B => RXS_CNT(0), +C => RXS_CNT(1), +D => VCC, +Z => RXS_CNT_3(0)); +\GENBLK2.GENBLK3.LFOR[0].RXPR_APPD_RNO[0]\: LUT4 +generic map( + init => X"0101" +) +port map ( +A => DUAL_OR_RSERD_RST, +B => rx_los_low_s, +C => rx_cdr_lol_s, +D => VCC, +Z => RXPR_APPD_RNO(0)); +\GENBLK1.PLOL0_CNT_RNO[1]\: LUT4 +generic map( + init => X"1222" +) +port map ( +A => PLOL0_CNT(1), +B => PLOL0_CNT9, +C => WAITA_PLOL0, +D => PLOL0_CNT(0), +Z => PLOL0_CNT_3(1)); +\GENBLK2.RXP_RST2_RNO\: LUT4 +generic map( + init => X"BABA" +) +port map ( +A => DUAL_OR_RSERD_RST, +B => RLOS_DB_P1, +C => RLOS_DB, +D => VCC, +Z => RXP_RST25); +\GENBLK2.GENBLK3.RXDPR_APPD_RNO\: LUT4 +generic map( + init => X"0101" +) +port map ( +A => DUAL_OR_RSERD_RST, +B => RLOS_DB, +C => RLOL_DB, +D => VCC, +Z => UN1_RUI_RST_DUAL_C_1_1); +\GENBLK2.GENBLK3.RUO_RX_RDYR_RNO\: LUT4 +generic map( + init => X"0002" +) +port map ( +A => RX_ALL_WELL, +B => rst_dual_c, +C => RSL_RX_PCS_RST_C_10, +D => DUAL_OR_RSERD_RST, +Z => UN3_RX_ALL_WELL_2); +\GENBLK2.GENBLK3.RXR_WT_EN_RNO\: LUT4 +generic map( + init => X"0404" +) +port map ( +A => UN17_RXR_WT_TC, +B => RX_ALL_WELL, +C => DUAL_OR_RSERD_RST, +D => VCC, +Z => UN3_RX_ALL_WELL_1); +RX_ANY_RST_RNIFD021: LUT4 +generic map( + init => X"FFFE" +) +port map ( +A => RX_ANY_RST, +B => UN17_RXR_WT_TC, +C => RLOS_DB, +D => RLOL_DB, +Z => RXR_WT_CNT9); +\GENBLK2.GENBLK3.RXDPR_APPD_RNO_0\: LUT4 +generic map( + init => X"FBFB" +) +port map ( +A => rst_dual_c, +B => RX_ALL_WELL, +C => DUAL_OR_RSERD_RST, +D => VCC, +Z => UN1_RUI_RST_DUAL_C_1_I); +\GENBLK2.RXS_RST_RNIS0OP\: LUT4 +generic map( + init => X"1011" +) +port map ( +A => RLOL1_CNT_TC_1, +B => RXS_RST, +C => RLOS_DB_P1, +D => RLOS_DB, +Z => \RLOL1_CNT_\); +\GENBLK2.GENBLK3.RXR_WT_EN_RNIQF0H1\: LUT4 +generic map( + init => X"FFEF" +) +port map ( +A => RXR_WT_EN, +B => RX_ANY_RST, +C => RX_ALL_WELL, +D => UN17_RXR_WT_TC, +Z => RXR_WT_CNTE); +\GENBLK2.RXP_RST2_RNO_0\: LUT4 +generic map( + init => X"EFEE" +) +port map ( +A => RLOLS0_CNT_TC_1, +B => DUAL_OR_RSERD_RST, +C => RLOS_DB_P1, +D => RLOS_DB, +Z => UN2_RLOS_REDGE_1_I); +\GENBLK1.GENBLK2.RUO_TX_RDYR_RNO\: LUT4 +generic map( + init => X"FEFE" +) +port map ( +A => UN18_TXR_WT_TC, +B => TX_ANY_RST, +C => PLL_LOL_P2, +D => VCC, +Z => UN2_PLOL_FEDGE_5_I); +\GENBLK2.GENBLK3.LFOR[0].RXSR_APPD_RNO[0]\: LUT4 +generic map( + init => X"EEFE" +) +port map ( +A => RXSR_APPD(0), +B => rx_serdes_rst_c, +C => RXS_RST, +D => rsl_disable, +Z => N_2124_0); +\GENBLK2.WAITA_RLOLS0_REG_Z618\: FD1P3DX port map ( +D => WAITA_RLOLS06, +SP => UN1_RLOLS0_CNT_TC, +CK => rxrefclk, +CD => rsl_rst, +Q => WAITA_RLOLS0); +\GENBLK2.WAIT_CALIB_REG_Z620\: FD1P3BX port map ( +D => WAIT_CALIB_RNO, +SP => UN1_RLOS_FEDGE_1, +CK => rxrefclk, +PD => rsl_rst, +Q => WAIT_CALIB); +\GENBLK2.RXS_RST_REG_Z622\: FD1P3DX port map ( +D => RXS_RST6, +SP => UN1_RXS_CNT_TC, +CK => rxrefclk, +CD => rsl_rst, +Q => RXS_RST); +\GENBLK2.RXS_CNT[0]_REG_Z624\: FD1S3DX port map ( +D => RXS_CNT_3(0), +CK => rxrefclk, +CD => rsl_rst, +Q => RXS_CNT(0)); +\GENBLK2.RXS_CNT[1]_REG_Z626\: FD1S3DX port map ( +D => RXS_CNT_3(1), +CK => rxrefclk, +CD => rsl_rst, +Q => RXS_CNT(1)); +\GENBLK2.RXP_RST2_REG_Z628\: FD1P3BX port map ( +D => RXP_RST25, +SP => UN2_RLOS_REDGE_1_I, +CK => rxrefclk, +PD => rsl_rst, +Q => RXP_RST2); +\GENBLK2.RLOS_P2_REG_Z630\: FD1S3DX port map ( +D => RLOS_P1, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOS_P2); +\GENBLK2.RLOS_P1_REG_Z632\: FD1S3DX port map ( +D => rx_los_low_s, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOS_P1); +\GENBLK2.RLOS_DB_P1_REG_Z634\: FD1S3BX port map ( +D => RLOS_DB, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOS_DB_P1); +\GENBLK2.RLOS_DB_CNT[0]_REG_Z636\: FD1S3BX port map ( +D => RLOS_DB_CNT_AXB_0, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOS_DB_CNT(0)); +\GENBLK2.RLOS_DB_CNT[1]_REG_Z638\: FD1S3BX port map ( +D => RLOS_DB_CNT_CRY_1_0_S0, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOS_DB_CNT(1)); +\GENBLK2.RLOS_DB_CNT[2]_REG_Z640\: FD1S3BX port map ( +D => RLOS_DB_CNT_CRY_1_0_S1, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOS_DB_CNT(2)); +\GENBLK2.RLOS_DB_CNT[3]_REG_Z642\: FD1S3BX port map ( +D => RLOS_DB_CNT_S_3_0_S0, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOS_DB_CNT(3)); +\GENBLK2.RLOS_DB_REG_Z644\: FD1P3BX port map ( +D => RLOS_DB_CNT(1), +SP => UN1_RLOS_DB_CNT_MAX, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOS_DB); +\GENBLK2.RLOLS0_CNT[0]_REG_Z646\: FD1P3DX port map ( +D => RLOLS0_CNT_S(0), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(0)); +\GENBLK2.RLOLS0_CNT[1]_REG_Z648\: FD1P3DX port map ( +D => RLOLS0_CNT_S(1), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(1)); +\GENBLK2.RLOLS0_CNT[2]_REG_Z650\: FD1P3DX port map ( +D => RLOLS0_CNT_S(2), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(2)); +\GENBLK2.RLOLS0_CNT[3]_REG_Z652\: FD1P3DX port map ( +D => RLOLS0_CNT_S(3), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(3)); +\GENBLK2.RLOLS0_CNT[4]_REG_Z654\: FD1P3DX port map ( +D => RLOLS0_CNT_S(4), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(4)); +\GENBLK2.RLOLS0_CNT[5]_REG_Z656\: FD1P3DX port map ( +D => RLOLS0_CNT_S(5), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(5)); +\GENBLK2.RLOLS0_CNT[6]_REG_Z658\: FD1P3DX port map ( +D => RLOLS0_CNT_S(6), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(6)); +\GENBLK2.RLOLS0_CNT[7]_REG_Z660\: FD1P3DX port map ( +D => RLOLS0_CNT_S(7), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(7)); +\GENBLK2.RLOLS0_CNT[8]_REG_Z662\: FD1P3DX port map ( +D => RLOLS0_CNT_S(8), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(8)); +\GENBLK2.RLOLS0_CNT[9]_REG_Z664\: FD1P3DX port map ( +D => RLOLS0_CNT_S(9), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(9)); +\GENBLK2.RLOLS0_CNT[10]_REG_Z666\: FD1P3DX port map ( +D => RLOLS0_CNT_S(10), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(10)); +\GENBLK2.RLOLS0_CNT[11]_REG_Z668\: FD1P3DX port map ( +D => RLOLS0_CNT_S(11), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(11)); +\GENBLK2.RLOLS0_CNT[12]_REG_Z670\: FD1P3DX port map ( +D => RLOLS0_CNT_S(12), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(12)); +\GENBLK2.RLOLS0_CNT[13]_REG_Z672\: FD1P3DX port map ( +D => RLOLS0_CNT_S(13), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(13)); +\GENBLK2.RLOLS0_CNT[14]_REG_Z674\: FD1P3DX port map ( +D => RLOLS0_CNT_S(14), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(14)); +\GENBLK2.RLOLS0_CNT[15]_REG_Z676\: FD1P3DX port map ( +D => RLOLS0_CNT_S(15), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(15)); +\GENBLK2.RLOLS0_CNT[16]_REG_Z678\: FD1P3DX port map ( +D => RLOLS0_CNT_S(16), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(16)); +\GENBLK2.RLOLS0_CNT[17]_REG_Z680\: FD1P3DX port map ( +D => RLOLS0_CNT_S(17), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(17)); +\GENBLK2.RLOL_P2_REG_Z682\: FD1S3DX port map ( +D => RLOL_P1, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL_P2); +\GENBLK2.RLOL_P1_REG_Z684\: FD1S3DX port map ( +D => rx_cdr_lol_s, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL_P1); +\GENBLK2.RLOL_DB_P1_REG_Z686\: FD1S3BX port map ( +D => RLOL_DB, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOL_DB_P1); +\GENBLK2.RLOL_DB_CNT[0]_REG_Z688\: FD1S3BX port map ( +D => RLOL_DB_CNT_AXB_0, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOL_DB_CNT(0)); +\GENBLK2.RLOL_DB_CNT[1]_REG_Z690\: FD1S3BX port map ( +D => RLOL_DB_CNT_CRY_1_0_S0, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOL_DB_CNT(1)); +\GENBLK2.RLOL_DB_CNT[2]_REG_Z692\: FD1S3BX port map ( +D => RLOL_DB_CNT_CRY_1_0_S1, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOL_DB_CNT(2)); +\GENBLK2.RLOL_DB_CNT[3]_REG_Z694\: FD1S3BX port map ( +D => RLOL_DB_CNT_S_3_0_S0, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOL_DB_CNT(3)); +\GENBLK2.RLOL_DB_REG_Z696\: FD1P3BX port map ( +D => RLOL_DB_CNT(1), +SP => UN1_RLOL_DB_CNT_MAX, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOL_DB); +\GENBLK2.RLOL1_CNT[0]_REG_Z698\: FD1P3DX port map ( +D => RLOL1_CNT_S(0), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(0)); +\GENBLK2.RLOL1_CNT[1]_REG_Z700\: FD1P3DX port map ( +D => RLOL1_CNT_S(1), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(1)); +\GENBLK2.RLOL1_CNT[2]_REG_Z702\: FD1P3DX port map ( +D => RLOL1_CNT_S(2), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(2)); +\GENBLK2.RLOL1_CNT[3]_REG_Z704\: FD1P3DX port map ( +D => RLOL1_CNT_S(3), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(3)); +\GENBLK2.RLOL1_CNT[4]_REG_Z706\: FD1P3DX port map ( +D => RLOL1_CNT_S(4), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(4)); +\GENBLK2.RLOL1_CNT[5]_REG_Z708\: FD1P3DX port map ( +D => RLOL1_CNT_S(5), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(5)); +\GENBLK2.RLOL1_CNT[6]_REG_Z710\: FD1P3DX port map ( +D => RLOL1_CNT_S(6), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(6)); +\GENBLK2.RLOL1_CNT[7]_REG_Z712\: FD1P3DX port map ( +D => RLOL1_CNT_S(7), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(7)); +\GENBLK2.RLOL1_CNT[8]_REG_Z714\: FD1P3DX port map ( +D => RLOL1_CNT_S(8), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(8)); +\GENBLK2.RLOL1_CNT[9]_REG_Z716\: FD1P3DX port map ( +D => RLOL1_CNT_S(9), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(9)); +\GENBLK2.RLOL1_CNT[10]_REG_Z718\: FD1P3DX port map ( +D => RLOL1_CNT_S(10), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(10)); +\GENBLK2.RLOL1_CNT[11]_REG_Z720\: FD1P3DX port map ( +D => RLOL1_CNT_S(11), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(11)); +\GENBLK2.RLOL1_CNT[12]_REG_Z722\: FD1P3DX port map ( +D => RLOL1_CNT_S(12), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(12)); +\GENBLK2.RLOL1_CNT[13]_REG_Z724\: FD1P3DX port map ( +D => RLOL1_CNT_S(13), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(13)); +\GENBLK2.RLOL1_CNT[14]_REG_Z726\: FD1P3DX port map ( +D => RLOL1_CNT_S(14), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(14)); +\GENBLK2.RLOL1_CNT[15]_REG_Z728\: FD1P3DX port map ( +D => RLOL1_CNT_S(15), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(15)); +\GENBLK2.RLOL1_CNT[16]_REG_Z730\: FD1P3DX port map ( +D => RLOL1_CNT_S(16), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(16)); +\GENBLK2.RLOL1_CNT[17]_REG_Z732\: FD1P3DX port map ( +D => RLOL1_CNT_S(17), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(17)); +\GENBLK2.RLOL1_CNT[18]_REG_Z734\: FD1P3DX port map ( +D => RLOL1_CNT_S(18), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(18)); +\GENBLK2.GENBLK3.RXSDR_APPD_REG_Z736\: FD1S3BX port map ( +D => RXSDR_APPD_2, +CK => rxrefclk, +PD => rsl_rst, +Q => RXSDR_APPD); +\GENBLK2.GENBLK3.RXR_WT_EN_REG_Z738\: FD1P3DX port map ( +D => UN3_RX_ALL_WELL_1, +SP => UN1_DUAL_OR_RSERD_RST_2_I, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_EN); +\GENBLK2.GENBLK3.RXR_WT_CNT[0]_REG_Z740\: FD1P3DX port map ( +D => RXR_WT_CNT_S(0), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(0)); +\GENBLK2.GENBLK3.RXR_WT_CNT[1]_REG_Z742\: FD1P3DX port map ( +D => RXR_WT_CNT_S(1), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(1)); +\GENBLK2.GENBLK3.RXR_WT_CNT[2]_REG_Z744\: FD1P3DX port map ( +D => RXR_WT_CNT_S(2), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(2)); +\GENBLK2.GENBLK3.RXR_WT_CNT[3]_REG_Z746\: FD1P3DX port map ( +D => RXR_WT_CNT_S(3), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(3)); +\GENBLK2.GENBLK3.RXR_WT_CNT[4]_REG_Z748\: FD1P3DX port map ( +D => RXR_WT_CNT_S(4), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(4)); +\GENBLK2.GENBLK3.RXR_WT_CNT[5]_REG_Z750\: FD1P3DX port map ( +D => RXR_WT_CNT_S(5), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(5)); +\GENBLK2.GENBLK3.RXR_WT_CNT[6]_REG_Z752\: FD1P3DX port map ( +D => RXR_WT_CNT_S(6), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(6)); +\GENBLK2.GENBLK3.RXR_WT_CNT[7]_REG_Z754\: FD1P3DX port map ( +D => RXR_WT_CNT_S(7), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(7)); +\GENBLK2.GENBLK3.RXR_WT_CNT[8]_REG_Z756\: FD1P3DX port map ( +D => RXR_WT_CNT_S(8), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(8)); +\GENBLK2.GENBLK3.RXR_WT_CNT[9]_REG_Z758\: FD1P3DX port map ( +D => RXR_WT_CNT_S(9), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(9)); +\GENBLK2.GENBLK3.RXR_WT_CNT[10]_REG_Z760\: FD1P3DX port map ( +D => RXR_WT_CNT_S(10), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(10)); +\GENBLK2.GENBLK3.RXR_WT_CNT[11]_REG_Z762\: FD1P3DX port map ( +D => RXR_WT_CNT_S(11), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(11)); +\GENBLK2.GENBLK3.RXDPR_APPD_REG_Z764\: FD1P3DX port map ( +D => UN1_RUI_RST_DUAL_C_1_1, +SP => UN1_RUI_RST_DUAL_C_1_I, +CK => rxrefclk, +CD => rsl_rst, +Q => RXDPR_APPD); +\GENBLK2.GENBLK3.RUO_RX_RDYR_REG_Z766\: FD1P3DX port map ( +D => UN3_RX_ALL_WELL_2, +SP => RXR_WT_CNT9, +CK => rxrefclk, +CD => rsl_rst, +Q => RSL_RX_RDY_9); +\GENBLK2.GENBLK3.LFOR[0].RXSR_APPD[0]_REG_Z768\: FD1S3DX port map ( +D => N_2124_0, +CK => rxrefclk, +CD => rsl_rst, +Q => RXSR_APPD(0)); +\GENBLK2.GENBLK3.LFOR[0].RXPR_APPD[0]_REG_Z770\: FD1P3DX port map ( +D => RXPR_APPD_RNO(0), +SP => UN2_RDO_SERDES_RST_DUAL_C_2_I, +CK => rxrefclk, +CD => rsl_rst, +Q => RXPR_APPD(0)); +\GENBLK1.WAITA_PLOL0_REG_Z772\: FD1P3DX port map ( +D => PLOL_FEDGE, +SP => UN1_PLOL0_CNT_TC_1_I, +CK => pll_refclki, +CD => rsl_rst, +Q => WAITA_PLOL0); +\GENBLK1.TXS_RST_REG_Z774\: FD1P3DX port map ( +D => UN1_PLOL_CNT_TC, +SP => UN2_PLOL_CNT_TC, +CK => pll_refclki, +CD => rsl_rst, +Q => TXS_RST); +\GENBLK1.TXS_CNT[0]_REG_Z776\: FD1S3DX port map ( +D => N_10_I, +CK => pll_refclki, +CD => rsl_rst, +Q => TXS_CNT(0)); +\GENBLK1.TXS_CNT[1]_REG_Z778\: FD1S3DX port map ( +D => TXS_CNT_RNO(1), +CK => pll_refclki, +CD => rsl_rst, +Q => TXS_CNT(1)); +\GENBLK1.TXP_RST_REG_Z780\: FD1P3DX port map ( +D => UN9_PLOL0_CNT_TC, +SP => UN1_PLOL0_CNT_TC_1, +CK => pll_refclki, +CD => rsl_rst, +Q => TXP_RST); +\GENBLK1.TXP_CNT[0]_REG_Z782\: FD1S3DX port map ( +D => N_11_I, +CK => pll_refclki, +CD => rsl_rst, +Q => TXP_CNT(0)); +\GENBLK1.TXP_CNT[1]_REG_Z784\: FD1S3DX port map ( +D => TXP_CNT_RNO(1), +CK => pll_refclki, +CD => rsl_rst, +Q => TXP_CNT(1)); +\GENBLK1.PLOL_CNT[0]_REG_Z786\: FD1S3DX port map ( +D => PLOL_CNT_S(0), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(0)); +\GENBLK1.PLOL_CNT[1]_REG_Z788\: FD1S3DX port map ( +D => PLOL_CNT_S(1), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(1)); +\GENBLK1.PLOL_CNT[2]_REG_Z790\: FD1S3DX port map ( +D => PLOL_CNT_S(2), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(2)); +\GENBLK1.PLOL_CNT[3]_REG_Z792\: FD1S3DX port map ( +D => PLOL_CNT_S(3), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(3)); +\GENBLK1.PLOL_CNT[4]_REG_Z794\: FD1S3DX port map ( +D => PLOL_CNT_S(4), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(4)); +\GENBLK1.PLOL_CNT[5]_REG_Z796\: FD1S3DX port map ( +D => PLOL_CNT_S(5), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(5)); +\GENBLK1.PLOL_CNT[6]_REG_Z798\: FD1S3DX port map ( +D => PLOL_CNT_S(6), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(6)); +\GENBLK1.PLOL_CNT[7]_REG_Z800\: FD1S3DX port map ( +D => PLOL_CNT_S(7), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(7)); +\GENBLK1.PLOL_CNT[8]_REG_Z802\: FD1S3DX port map ( +D => PLOL_CNT_S(8), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(8)); +\GENBLK1.PLOL_CNT[9]_REG_Z804\: FD1S3DX port map ( +D => PLOL_CNT_S(9), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(9)); +\GENBLK1.PLOL_CNT[10]_REG_Z806\: FD1S3DX port map ( +D => PLOL_CNT_S(10), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(10)); +\GENBLK1.PLOL_CNT[11]_REG_Z808\: FD1S3DX port map ( +D => PLOL_CNT_S(11), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(11)); +\GENBLK1.PLOL_CNT[12]_REG_Z810\: FD1S3DX port map ( +D => PLOL_CNT_S(12), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(12)); +\GENBLK1.PLOL_CNT[13]_REG_Z812\: FD1S3DX port map ( +D => PLOL_CNT_S(13), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(13)); +\GENBLK1.PLOL_CNT[14]_REG_Z814\: FD1S3DX port map ( +D => PLOL_CNT_S(14), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(14)); +\GENBLK1.PLOL_CNT[15]_REG_Z816\: FD1S3DX port map ( +D => PLOL_CNT_S(15), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(15)); +\GENBLK1.PLOL_CNT[16]_REG_Z818\: FD1S3DX port map ( +D => PLOL_CNT_S(16), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(16)); +\GENBLK1.PLOL_CNT[17]_REG_Z820\: FD1S3DX port map ( +D => PLOL_CNT_S(17), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(17)); +\GENBLK1.PLOL_CNT[18]_REG_Z822\: FD1S3DX port map ( +D => PLOL_CNT_S(18), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(18)); +\GENBLK1.PLOL_CNT[19]_REG_Z824\: FD1S3DX port map ( +D => PLOL_CNT_S(19), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(19)); +\GENBLK1.PLOL0_CNT[0]_REG_Z826\: FD1S3DX port map ( +D => PLOL0_CNT_3(0), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL0_CNT(0)); +\GENBLK1.PLOL0_CNT[1]_REG_Z828\: FD1S3DX port map ( +D => PLOL0_CNT_3(1), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL0_CNT(1)); +\GENBLK1.PLOL0_CNT[2]_REG_Z830\: FD1S3DX port map ( +D => PLOL0_CNT_3(2), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL0_CNT(2)); +\GENBLK1.PLL_LOL_P3_REG_Z832\: FD1S3DX port map ( +D => PLL_LOL_P2, +CK => pll_refclki, +CD => rsl_rst, +Q => PLL_LOL_P3); +\GENBLK1.PLL_LOL_P2_REG_Z834\: FD1S3DX port map ( +D => PLL_LOL_P1, +CK => pll_refclki, +CD => rsl_rst, +Q => PLL_LOL_P2); +\GENBLK1.PLL_LOL_P1_REG_Z836\: FD1S3DX port map ( +D => pll_lock_i, +CK => pll_refclki, +CD => rsl_rst, +Q => PLL_LOL_P1); +\GENBLK1.GENBLK2.TXSR_APPD_REG_Z838\: FD1S3BX port map ( +D => TXSR_APPD_2, +CK => pll_refclki, +PD => rsl_rst, +Q => TXSR_APPD); +\GENBLK1.GENBLK2.TXR_WT_EN_REG_Z840\: FD1P3DX port map ( +D => UN1_DUAL_OR_SERD_RST_1_1, +SP => UN1_DUAL_OR_SERD_RST_1_I, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_EN); +\GENBLK1.GENBLK2.TXR_WT_CNT[0]_REG_Z842\: FD1P3DX port map ( +D => TXR_WT_CNT_S(0), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(0)); +\GENBLK1.GENBLK2.TXR_WT_CNT[1]_REG_Z844\: FD1P3DX port map ( +D => TXR_WT_CNT_S(1), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(1)); +\GENBLK1.GENBLK2.TXR_WT_CNT[2]_REG_Z846\: FD1P3DX port map ( +D => TXR_WT_CNT_S(2), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(2)); +\GENBLK1.GENBLK2.TXR_WT_CNT[3]_REG_Z848\: FD1P3DX port map ( +D => TXR_WT_CNT_S(3), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(3)); +\GENBLK1.GENBLK2.TXR_WT_CNT[4]_REG_Z850\: FD1P3DX port map ( +D => TXR_WT_CNT_S(4), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(4)); +\GENBLK1.GENBLK2.TXR_WT_CNT[5]_REG_Z852\: FD1P3DX port map ( +D => TXR_WT_CNT_S(5), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(5)); +\GENBLK1.GENBLK2.TXR_WT_CNT[6]_REG_Z854\: FD1P3DX port map ( +D => TXR_WT_CNT_S(6), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(6)); +\GENBLK1.GENBLK2.TXR_WT_CNT[7]_REG_Z856\: FD1P3DX port map ( +D => TXR_WT_CNT_S(7), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(7)); +\GENBLK1.GENBLK2.TXR_WT_CNT[8]_REG_Z858\: FD1P3DX port map ( +D => TXR_WT_CNT_S(8), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(8)); +\GENBLK1.GENBLK2.TXR_WT_CNT[9]_REG_Z860\: FD1P3DX port map ( +D => TXR_WT_CNT_S(9), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(9)); +\GENBLK1.GENBLK2.TXR_WT_CNT[10]_REG_Z862\: FD1P3DX port map ( +D => TXR_WT_CNT_S(10), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(10)); +\GENBLK1.GENBLK2.TXR_WT_CNT[11]_REG_Z864\: FD1P3DX port map ( +D => TXR_WT_CNT_S(11), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(11)); +\GENBLK1.GENBLK2.TXDPR_APPD_REG_Z866\: FD1P3DX port map ( +D => UN2_PLOL_FEDGE_2, +SP => UN2_PLOL_FEDGE_3_I, +CK => pll_refclki, +CD => rsl_rst, +Q => TXDPR_APPD); +\GENBLK1.GENBLK2.RUO_TX_RDYR_REG_Z868\: FD1P3DX port map ( +D => UN2_PLOL_FEDGE_5_1, +SP => UN2_PLOL_FEDGE_5_I, +CK => pll_refclki, +CD => rsl_rst, +Q => RSL_TX_RDY_8); +\GENBLK1.GENBLK2.MFOR[0].TXPR_APPD[0]_REG_Z870\: FD1P3DX port map ( +D => UN2_PLOL_FEDGE_2, +SP => UN2_PLOL_FEDGE_8_I, +CK => pll_refclki, +CD => rsl_rst, +Q => TXPR_APPD(0)); +\GENBLK1.TXS_CNT_RNO[0]\: LUT4 +generic map( + init => X"A6A6" +) +port map ( +A => TXS_CNT(0), +B => TXS_RST, +C => UN1_PLOL_CNT_TC, +D => VCC, +Z => N_10_I); +\GENBLK1.TXS_CNT_RNO[1]\: LUT4 +generic map( + init => X"CC6C" +) +port map ( +A => TXS_CNT(0), +B => TXS_CNT(1), +C => TXS_RST, +D => UN1_PLOL_CNT_TC, +Z => TXS_CNT_RNO(1)); +\GENBLK1.GENBLK2.TXR_WT_EN_RNO\: LUT4 +generic map( + init => X"0F2F" +) +port map ( +A => TXPR_APPD(0), +B => PLL_LOL_P2, +C => UN1_DUAL_OR_SERD_RST_1_1, +D => RSL_TX_RDY_8, +Z => UN1_DUAL_OR_SERD_RST_1_I); +\GENBLK2.RXS_RST6\: LUT4 +generic map( + init => X"2020" +) +port map ( +A => RLOL_DB, +B => RLOS_DB, +C => RLOL1_CNT_TC_1, +D => VCC, +Z => RXS_RST6); +\GENBLK2.WAIT_CALIB_RNIKRP81\: LUT4 +generic map( + init => X"FFFE" +) +port map ( +A => RXS_RST, +B => WAIT_CALIB, +C => RLOL1_CNT_TC_1, +D => RLOS_REDGE, +Z => RLOL1_CNTE); +\GENBLK2.WAITA_RLOLS0_RNI266C\: LUT4 +generic map( + init => X"FEFE" +) +port map ( +A => RLOLS0_CNT11_0, +B => WAITA_RLOLS0, +C => RLOLS0_CNT_TC_1, +D => VCC, +Z => RLOLS0_CNTE); +\GENBLK1.PLOL_CNT11_I\: LUT4 +generic map( + init => X"0202" +) +port map ( +A => PLL_LOL_P2, +B => UN1_PLOL_CNT_TC, +C => RSL_TX_SERDES_RST_C_7, +D => VCC, +Z => \PLOL_CNT_\); +\GENBLK2.RLOLS0_CNT11_I\: LUT4 +generic map( + init => X"1111" +) +port map ( +A => RLOLS0_CNT11_0, +B => RLOLS0_CNT_TC_1, +C => VCC, +D => VCC, +Z => \RLOLS0_CNT_\); +\GENBLK2.UN1_RXS_CNT_TC\: LUT4 +generic map( + init => X"FEFC" +) +port map ( +A => RLOL_DB, +B => RLOS_DB, +C => UN8_RXS_CNT_TC, +D => RLOL1_CNT_TC_1, +Z => UN1_RXS_CNT_TC); +\GENBLK2.WAIT_CALIB_RNO\: LUT4 +generic map( + init => X"A3A3" +) +port map ( +A => RLOL_DB, +B => RLOS_DB, +C => RLOL1_CNT_TC_1, +D => VCC, +Z => WAIT_CALIB_RNO); +\GENBLK1.GENBLK2.MFOR[0].TXPR_APPD_RNO[0]\: LUT4 +generic map( + init => X"FFFE" +) +port map ( +A => UN1_TXSR_APPD, +B => PLL_LOL_P2, +C => RSL_SERDES_RST_DUAL_C_6, +D => RSL_TX_SERDES_RST_C_7, +Z => UN2_PLOL_FEDGE_8_I); +\GENBLK2.GENBLK3.RXR_WT_EN_RNO_0\: LUT4 +generic map( + init => X"FEFF" +) +port map ( +A => DUAL_OR_RSERD_RST, +B => UN3_RX_ALL_WELL_2_1, +C => UN17_RXR_WT_TC, +D => RX_ALL_WELL, +Z => UN1_DUAL_OR_RSERD_RST_2_I); +\GENBLK2.GENBLK3.LFOR[0].RXPR_APPD_RNO_0[0]\: LUT4 +generic map( + init => X"FFFB" +) +port map ( +A => UN1_RXSDR_OR_SR_APPD, +B => UN2_RDO_SERDES_RST_DUAL_C_1_1, +C => RSL_RX_SERDES_RST_C_5, +D => RSL_SERDES_RST_DUAL_C_6, +Z => UN2_RDO_SERDES_RST_DUAL_C_2_I); +\GENBLK1.UN2_PLOL_CNT_TC\: LUT4 +generic map( + init => X"F8F8" +) +port map ( +A => TXS_CNT(0), +B => TXS_CNT(1), +C => UN1_PLOL_CNT_TC, +D => VCC, +Z => UN2_PLOL_CNT_TC); +\GENBLK1.GENBLK2.TXR_WT_EN_RNICEBT\: LUT4 +generic map( + init => X"FEFE" +) +port map ( +A => TXR_WT_EN, +B => UN18_TXR_WT_TC, +C => TX_ANY_RST, +D => VCC, +Z => TXR_WT_CNTE); +\GENBLK2.UN1_RLOS_FEDGE_1\: LUT4 +generic map( + init => X"F6F6" +) +port map ( +A => RLOS_DB, +B => RLOS_DB_P1, +C => RLOL1_CNT_TC_1, +D => VCC, +Z => UN1_RLOS_FEDGE_1); +\GENBLK2.UN1_RLOLS0_CNT_TC\: LUT4 +generic map( + init => X"FEFE" +) +port map ( +A => RLOLS0_CNT11_0, +B => WAITA_RLOLS06, +C => RLOLS0_CNT_TC_1, +D => VCC, +Z => UN1_RLOLS0_CNT_TC); +\GENBLK1.GENBLK2.TXDPR_APPD_RNO\: LUT4 +generic map( + init => X"FFFE" +) +port map ( +A => PLL_LOL_P2, +B => RSL_SERDES_RST_DUAL_C_6, +C => RSL_TX_SERDES_RST_C_7, +D => rst_dual_c, +Z => UN2_PLOL_FEDGE_3_I); +\GENBLK1.TXP_CNT_RNO[0]\: LUT4 +generic map( + init => X"A6A6" +) +port map ( +A => TXP_CNT(0), +B => TXP_RST, +C => UN9_PLOL0_CNT_TC, +D => VCC, +Z => N_11_I); +UN2_PLOL_FEDGE_5_1_Z890: LUT4 +generic map( + init => X"1111" +) +port map ( +A => PLL_LOL_P2, +B => TX_ANY_RST, +C => VCC, +D => VCC, +Z => UN2_PLOL_FEDGE_5_1); +UN1_DUAL_OR_SERD_RST_1_1_Z891: LUT4 +generic map( + init => X"0101" +) +port map ( +A => UN18_TXR_WT_TC, +B => RSL_SERDES_RST_DUAL_C_6, +C => RSL_TX_SERDES_RST_C_7, +D => VCC, +Z => UN1_DUAL_OR_SERD_RST_1_1); +\GENBLK1.TXP_CNT_RNO[1]\: LUT4 +generic map( + init => X"CC6C" +) +port map ( +A => TXP_CNT(0), +B => TXP_CNT(1), +C => TXP_RST, +D => UN9_PLOL0_CNT_TC, +Z => TXP_CNT_RNO(1)); +RLOLS0_CNT_TC_1_Z893: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RLOLS0_CNT_TC_1_10, +B => RLOLS0_CNT_TC_1_11, +C => RLOLS0_CNT_TC_1_12, +D => RLOLS0_CNT_TC_1_13, +Z => RLOLS0_CNT_TC_1); +\GENBLK1.UN1_PLOL_CNT_TC\: LUT4 +generic map( + init => X"8000" +) +port map ( +A => UN1_PLOL_CNT_TC_11, +B => UN1_PLOL_CNT_TC_12, +C => UN1_PLOL_CNT_TC_13, +D => UN1_PLOL_CNT_TC_14, +Z => UN1_PLOL_CNT_TC); +RLOL1_CNT_TC_1_Z895: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RLOL1_CNT_TC_1_11, +B => RLOL1_CNT_TC_1_12, +C => RLOL1_CNT_TC_1_13, +D => RLOL1_CNT_TC_1_14, +Z => RLOL1_CNT_TC_1); +\UN1_GENBLK2.RLOL_DB_CNT_AXB_0\: LUT4 +generic map( + init => X"9999" +) +port map ( +A => RLOL_DB_CNT(0), +B => UN1_RLOL_DB_CNT_ZERO(0), +C => VCC, +D => VCC, +Z => RLOL_DB_CNT_AXB_0); +\UN1_GENBLK2.RLOS_DB_CNT_AXB_0\: LUT4 +generic map( + init => X"9999" +) +port map ( +A => RLOS_DB_CNT(0), +B => UN1_RLOS_DB_CNT_ZERO(0), +C => VCC, +D => VCC, +Z => RLOS_DB_CNT_AXB_0); +\GENBLK1.WAITA_PLOL0_RNO\: LUT4 +generic map( + init => X"F6F6" +) +port map ( +A => PLL_LOL_P2, +B => PLL_LOL_P3, +C => UN9_PLOL0_CNT_TC, +D => VCC, +Z => UN1_PLOL0_CNT_TC_1_I); +\GENBLK1.GENBLK2.MFOR[0].UN1_TXSR_APPD\: LUT4 +generic map( + init => X"C8C8" +) +port map ( +A => TXDPR_APPD, +B => TXSR_APPD_4, +C => RSL_TX_PCS_RST_C_4, +D => VCC, +Z => UN1_TXSR_APPD); +\GENBLK1.GENBLK2.TXSR_APPD_2\: LUT4 +generic map( + init => X"FEFE" +) +port map ( +A => TXSR_APPD_4, +B => RSL_SERDES_RST_DUAL_C_6, +C => RSL_TX_SERDES_RST_C_7, +D => VCC, +Z => TXSR_APPD_2); +\GENBLK1.PLOL0_CNT_3[0]\: LUT4 +generic map( + init => X"1414" +) +port map ( +A => PLOL0_CNT9, +B => PLOL0_CNT(0), +C => WAITA_PLOL0, +D => VCC, +Z => PLOL0_CNT_3(0)); +\GENBLK1.PLOL0_CNT_3[2]\: LUT4 +generic map( + init => X"1320" +) +port map ( +A => CO0_2, +B => PLOL0_CNT9, +C => PLOL0_CNT(1), +D => PLOL0_CNT(2), +Z => PLOL0_CNT_3(2)); +\GENBLK1.GENBLK2.UN18_TXR_WT_TC\: LUT4 +generic map( + init => X"8080" +) +port map ( +A => UN18_TXR_WT_TC_6, +B => UN18_TXR_WT_TC_7, +C => UN18_TXR_WT_TC_8, +D => VCC, +Z => UN18_TXR_WT_TC); +UN2_PLOL_FEDGE_2_Z904: LUT4 +generic map( + init => X"0101" +) +port map ( +A => PLL_LOL_P2, +B => RSL_SERDES_RST_DUAL_C_6, +C => RSL_TX_SERDES_RST_C_7, +D => VCC, +Z => UN2_PLOL_FEDGE_2); +TX_ANY_RST_Z905: LUT4 +generic map( + init => X"FFFE" +) +port map ( +A => RSL_SERDES_RST_DUAL_C_6, +B => RSL_TX_PCS_RST_C_4, +C => RSL_TX_SERDES_RST_C_7, +D => rst_dual_c, +Z => TX_ANY_RST); +RX_ANY_RST_Z906: LUT4 +generic map( + init => X"FEFE" +) +port map ( +A => DUAL_OR_RSERD_RST, +B => RSL_RX_PCS_RST_C_10, +C => rst_dual_c, +D => VCC, +Z => RX_ANY_RST); +\GENBLK2.GENBLK3.UN17_RXR_WT_TC\: LUT4 +generic map( + init => X"8080" +) +port map ( +A => UN17_RXR_WT_TC_6, +B => UN17_RXR_WT_TC_7, +C => UN17_RXR_WT_TC_8, +D => VCC, +Z => UN17_RXR_WT_TC); +\UN1_RLOL_DB_CNT_ZERO_BM[0]_Z908\: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RLOL_DB_CNT(0), +B => RLOL_DB_CNT(1), +C => RLOL_DB_CNT(2), +D => RLOL_DB_CNT(3), +Z => UN1_RLOL_DB_CNT_ZERO_BM(0)); +\UN1_RLOL_DB_CNT_ZERO[0]_Z909\: PFUMX port map ( +ALUT => UN1_RLOL_DB_CNT_ZERO_BM(0), +BLUT => UN1_RLOL_DB_CNT_ZERO_AM(0), +C0 => RLOL_P2, +Z => UN1_RLOL_DB_CNT_ZERO(0)); +\UN1_RLOS_DB_CNT_ZERO_BM[0]_Z910\: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RLOS_DB_CNT(0), +B => RLOS_DB_CNT(1), +C => RLOS_DB_CNT(2), +D => RLOS_DB_CNT(3), +Z => UN1_RLOS_DB_CNT_ZERO_BM(0)); +\UN1_RLOS_DB_CNT_ZERO[0]_Z911\: PFUMX port map ( +ALUT => UN1_RLOS_DB_CNT_ZERO_BM(0), +BLUT => UN1_RLOS_DB_CNT_ZERO_AM(0), +C0 => RLOS_P2, +Z => UN1_RLOS_DB_CNT_ZERO(0)); +\GENBLK2.UN1_RLOL_DB_CNT_MAX\: LUT4 +generic map( + init => X"8001" +) +port map ( +A => RLOL_DB_CNT(0), +B => RLOL_DB_CNT(1), +C => RLOL_DB_CNT(2), +D => RLOL_DB_CNT(3), +Z => UN1_RLOL_DB_CNT_MAX); +\GENBLK2.UN1_RLOS_DB_CNT_MAX\: LUT4 +generic map( + init => X"8001" +) +port map ( +A => RLOS_DB_CNT(0), +B => RLOS_DB_CNT(1), +C => RLOS_DB_CNT(2), +D => RLOS_DB_CNT(3), +Z => UN1_RLOS_DB_CNT_MAX); +\GENBLK1.UN1_PLOL0_CNT_TC_1\: LUT4 +generic map( + init => X"F8F8" +) +port map ( +A => TXP_CNT(0), +B => TXP_CNT(1), +C => UN9_PLOL0_CNT_TC, +D => VCC, +Z => UN1_PLOL0_CNT_TC_1); +\GENBLK2.WAITA_RLOLS06\: LUT4 +generic map( + init => X"0504" +) +port map ( +A => RLOL_DB, +B => RLOL_DB_P1, +C => RLOS_DB, +D => RLOS_DB_P1, +Z => WAITA_RLOLS06); +\RXS_CNT_3[1]_Z916\: LUT4 +generic map( + init => X"6464" +) +port map ( +A => RXS_CNT(0), +B => RXS_CNT(1), +C => RXS_RST, +D => VCC, +Z => RXS_CNT_3(1)); +\GENBLK2.GENBLK3.LFOR[0].UN1_RXSDR_OR_SR_APPD\: LUT4 +generic map( + init => X"3200" +) +port map ( +A => RXSR_APPD(0), +B => RX_ALL_WELL, +C => RXSDR_APPD_4, +D => RSL_RX_PCS_RST_C_10, +Z => UN1_RXSDR_OR_SR_APPD); +RLOLS0_CNT_TC_1_13_Z918: LUT4 +generic map( + init => X"1010" +) +port map ( +A => RLOLS0_CNT(16), +B => RLOLS0_CNT(17), +C => RLOLS0_CNT_TC_1_9, +D => VCC, +Z => RLOLS0_CNT_TC_1_13); +\GENBLK1.UN1_PLOL_CNT_TC_14\: LUT4 +generic map( + init => X"0100" +) +port map ( +A => PLOL_CNT(4), +B => PLOL_CNT(5), +C => PLOL_CNT(18), +D => UN1_PLOL_CNT_TC_10, +Z => UN1_PLOL_CNT_TC_14); +RLOL1_CNT_TC_1_14_Z920: LUT4 +generic map( + init => X"0100" +) +port map ( +A => RLOL1_CNT(11), +B => RLOL1_CNT(12), +C => RLOL1_CNT(18), +D => RLOL1_CNT_TC_1_10, +Z => RLOL1_CNT_TC_1_14); +\GENBLK2.GENBLK3.UN3_RX_ALL_WELL_2_1\: LUT4 +generic map( + init => X"0E0E" +) +port map ( +A => RXPR_APPD(0), +B => RXDPR_APPD, +C => RSL_RX_RDY_9, +D => VCC, +Z => UN3_RX_ALL_WELL_2_1); +RDO_SERDES_RST_DUAL_C: LUT4 +generic map( + init => X"F4F4" +) +port map ( +A => rsl_disable, +B => rsl_rst, +C => serdes_rst_dual_c, +D => VCC, +Z => RSL_SERDES_RST_DUAL_C_6); +RDO_TX_SERDES_RST_C: LUT4 +generic map( + init => X"F4F4" +) +port map ( +A => rsl_disable, +B => TXS_RST, +C => tx_serdes_rst_c, +D => VCC, +Z => RSL_TX_SERDES_RST_C_7); +\RDO_TX_PCS_RST_C_1[0]\: LUT4 +generic map( + init => X"F4F4" +) +port map ( +A => rsl_disable, +B => TXP_RST, +C => tx_pcs_rst_c, +D => VCC, +Z => RSL_TX_PCS_RST_C_4); +\RDO_RX_SERDES_RST_C_1[0]\: LUT4 +generic map( + init => X"F4F4" +) +port map ( +A => rsl_disable, +B => RXS_RST, +C => rx_serdes_rst_c, +D => VCC, +Z => RSL_RX_SERDES_RST_C_5); +\RDO_RX_PCS_RST_C_1[0]\: LUT4 +generic map( + init => X"F4F4" +) +port map ( +A => rsl_disable, +B => RXP_RST2, +C => rx_pcs_rst_c, +D => VCC, +Z => RSL_RX_PCS_RST_C_10); +\GENBLK1.UN9_PLOL0_CNT_TC\: LUT4 +generic map( + init => X"1010" +) +port map ( +A => PLOL0_CNT(0), +B => PLOL0_CNT(1), +C => PLOL0_CNT(2), +D => VCC, +Z => UN9_PLOL0_CNT_TC); +\GENBLK2.GENBLK3.UN17_RXR_WT_TC_6\: LUT4 +generic map( + init => X"4000" +) +port map ( +A => RXR_WT_CNT(0), +B => RXR_WT_CNT(8), +C => RXR_WT_CNT(9), +D => RXR_WT_CNT(11), +Z => UN17_RXR_WT_TC_6); +\GENBLK2.GENBLK3.UN17_RXR_WT_TC_7\: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RXR_WT_CNT(3), +B => RXR_WT_CNT(4), +C => RXR_WT_CNT(5), +D => RXR_WT_CNT(7), +Z => UN17_RXR_WT_TC_7); +\GENBLK2.GENBLK3.UN17_RXR_WT_TC_8\: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RXR_WT_CNT(1), +B => RXR_WT_CNT(2), +C => RXR_WT_CNT(6), +D => RXR_WT_CNT(10), +Z => UN17_RXR_WT_TC_8); +\GENBLK1.GENBLK2.UN18_TXR_WT_TC_6\: LUT4 +generic map( + init => X"4000" +) +port map ( +A => TXR_WT_CNT(0), +B => TXR_WT_CNT(8), +C => TXR_WT_CNT(9), +D => TXR_WT_CNT(11), +Z => UN18_TXR_WT_TC_6); +\GENBLK1.GENBLK2.UN18_TXR_WT_TC_7\: LUT4 +generic map( + init => X"8000" +) +port map ( +A => TXR_WT_CNT(3), +B => TXR_WT_CNT(4), +C => TXR_WT_CNT(5), +D => TXR_WT_CNT(7), +Z => UN18_TXR_WT_TC_7); +\GENBLK1.GENBLK2.UN18_TXR_WT_TC_8\: LUT4 +generic map( + init => X"0001" +) +port map ( +A => TXR_WT_CNT(1), +B => TXR_WT_CNT(2), +C => TXR_WT_CNT(6), +D => TXR_WT_CNT(10), +Z => UN18_TXR_WT_TC_8); +RLOLS0_CNT_TC_1_9_Z934: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RLOLS0_CNT(1), +B => RLOLS0_CNT(2), +C => RLOLS0_CNT(3), +D => RLOLS0_CNT(4), +Z => RLOLS0_CNT_TC_1_9); +RLOLS0_CNT_TC_1_10_Z935: LUT4 +generic map( + init => X"4000" +) +port map ( +A => RLOLS0_CNT(0), +B => RLOLS0_CNT(10), +C => RLOLS0_CNT(14), +D => RLOLS0_CNT(15), +Z => RLOLS0_CNT_TC_1_10); +RLOLS0_CNT_TC_1_11_Z936: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RLOLS0_CNT(9), +B => RLOLS0_CNT(11), +C => RLOLS0_CNT(12), +D => RLOLS0_CNT(13), +Z => RLOLS0_CNT_TC_1_11); +RLOLS0_CNT_TC_1_12_Z937: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RLOLS0_CNT(5), +B => RLOLS0_CNT(6), +C => RLOLS0_CNT(7), +D => RLOLS0_CNT(8), +Z => RLOLS0_CNT_TC_1_12); +\GENBLK1.UN1_PLOL_CNT_TC_10\: LUT4 +generic map( + init => X"1000" +) +port map ( +A => PLOL_CNT(2), +B => PLOL_CNT(3), +C => PLOL_CNT(17), +D => PLOL_CNT(19), +Z => UN1_PLOL_CNT_TC_10); +\GENBLK1.UN1_PLOL_CNT_TC_11\: LUT4 +generic map( + init => X"8000" +) +port map ( +A => PLOL_CNT(13), +B => PLOL_CNT(14), +C => PLOL_CNT(15), +D => PLOL_CNT(16), +Z => UN1_PLOL_CNT_TC_11); +\GENBLK1.UN1_PLOL_CNT_TC_12\: LUT4 +generic map( + init => X"8000" +) +port map ( +A => PLOL_CNT(7), +B => PLOL_CNT(8), +C => PLOL_CNT(9), +D => PLOL_CNT(11), +Z => UN1_PLOL_CNT_TC_12); +\GENBLK1.UN1_PLOL_CNT_TC_13\: LUT4 +generic map( + init => X"0008" +) +port map ( +A => PLOL_CNT(1), +B => PLOL_CNT(6), +C => PLOL_CNT(10), +D => PLOL_CNT(12), +Z => UN1_PLOL_CNT_TC_13); +RLOL1_CNT_TC_1_10_Z942: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RLOL1_CNT(7), +B => RLOL1_CNT(8), +C => RLOL1_CNT(9), +D => RLOL1_CNT(10), +Z => RLOL1_CNT_TC_1_10); +RLOL1_CNT_TC_1_11_Z943: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RLOL1_CNT(3), +B => RLOL1_CNT(4), +C => RLOL1_CNT(5), +D => RLOL1_CNT(6), +Z => RLOL1_CNT_TC_1_11); +RLOL1_CNT_TC_1_12_Z944: LUT4 +generic map( + init => X"0100" +) +port map ( +A => RLOL1_CNT(0), +B => RLOL1_CNT(1), +C => RLOL1_CNT(2), +D => RLOL1_CNT(17), +Z => RLOL1_CNT_TC_1_12); +RLOL1_CNT_TC_1_13_Z945: LUT4 +generic map( + init => X"0040" +) +port map ( +A => RLOL1_CNT(13), +B => RLOL1_CNT(14), +C => RLOL1_CNT(15), +D => RLOL1_CNT(16), +Z => RLOL1_CNT_TC_1_13); +\GENBLK2.GENBLK3.RXSDR_APPD_2\: LUT4 +generic map( + init => X"EEEE" +) +port map ( +A => RXSDR_APPD_4, +B => serdes_rst_dual_c, +C => VCC, +D => VCC, +Z => RXSDR_APPD_2); +RX_ALL_WELL_Z947: LUT4 +generic map( + init => X"1111" +) +port map ( +A => RLOL_DB, +B => RLOS_DB, +C => VCC, +D => VCC, +Z => RX_ALL_WELL); +\GENBLK2.UN8_RXS_CNT_TC\: LUT4 +generic map( + init => X"8888" +) +port map ( +A => RXS_CNT(0), +B => RXS_CNT(1), +C => VCC, +D => VCC, +Z => UN8_RXS_CNT_TC); +PLOL_FEDGE_Z949: LUT4 +generic map( + init => X"4444" +) +port map ( +A => PLL_LOL_P2, +B => PLL_LOL_P3, +C => VCC, +D => VCC, +Z => PLOL_FEDGE); +RLOS_REDGE_Z950: LUT4 +generic map( + init => X"2222" +) +port map ( +A => RLOS_DB, +B => RLOS_DB_P1, +C => VCC, +D => VCC, +Z => RLOS_REDGE); +\GENBLK1.PLOL0_CNT_3_RNO[2]\: LUT4 +generic map( + init => X"8888" +) +port map ( +A => PLOL0_CNT(0), +B => WAITA_PLOL0, +C => VCC, +D => VCC, +Z => CO0_2); +UN2_RDO_SERDES_RST_DUAL_C_1_1_Z952: LUT4 +generic map( + init => X"1111" +) +port map ( +A => rx_cdr_lol_s, +B => rx_los_low_s, +C => VCC, +D => VCC, +Z => UN2_RDO_SERDES_RST_DUAL_C_1_1); +\UN1_RLOS_DB_CNT_ZERO_AM[0]_Z953\: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RLOS_DB_CNT(0), +B => RLOS_DB_CNT(1), +C => RLOS_DB_CNT(2), +D => RLOS_DB_CNT(3), +Z => UN1_RLOS_DB_CNT_ZERO_AM(0)); +\UN1_RLOL_DB_CNT_ZERO_AM[0]_Z954\: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RLOL_DB_CNT(0), +B => RLOL_DB_CNT(1), +C => RLOL_DB_CNT(2), +D => RLOL_DB_CNT(3), +Z => UN1_RLOL_DB_CNT_ZERO_AM(0)); +DUAL_OR_RSERD_RST_Z955: LUT4 +generic map( + init => X"EEFE" +) +port map ( +A => RSL_RX_SERDES_RST_C_5, +B => serdes_rst_dual_c, +C => rsl_rst, +D => rsl_disable, +Z => DUAL_OR_RSERD_RST); +\GENBLK1.PLOL0_CNT9\: LUT4 +generic map( + init => X"AAAE" +) +port map ( +A => PLL_LOL_P2, +B => PLOL0_CNT(2), +C => PLOL0_CNT(1), +D => PLOL0_CNT(0), +Z => PLOL0_CNT9); +\GENBLK2.RLOLS0_CNT11_0\: LUT4 +generic map( + init => X"4F44" +) +port map ( +A => RLOL_DB_P1, +B => RLOL_DB, +C => RLOS_DB_P1, +D => RLOS_DB, +Z => RLOLS0_CNT11_0); +\GENBLK1.GENBLK2.TXR_WT_CNT9_I\: LUT4 +generic map( + init => X"1555" +) +port map ( +A => TX_ANY_RST, +B => UN18_TXR_WT_TC_8, +C => UN18_TXR_WT_TC_7, +D => UN18_TXR_WT_TC_6, +Z => \TXR_WT_CNT_\); +\GENBLK2.RLOL1_CNT_CRY_0[0]\: CCU2C +generic map( + INIT0 => X"500c", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => \RLOL1_CNT_\, +C0 => VCC, +D0 => VCC, +A1 => \RLOL1_CNT_\, +B1 => RLOL1_CNT(0), +C1 => VCC, +D1 => VCC, +CIN => N_7, +COUT => RLOL1_CNT_CRY(0), +S0 => RLOL1_CNT_CRY_0_S0(0), +S1 => RLOL1_CNT_S(0)); +\GENBLK2.RLOL1_CNT_CRY_0[1]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOL1_CNT_\, +B0 => RLOL1_CNT(1), +C0 => VCC, +D0 => VCC, +A1 => \RLOL1_CNT_\, +B1 => RLOL1_CNT(2), +C1 => VCC, +D1 => VCC, +CIN => RLOL1_CNT_CRY(0), +COUT => RLOL1_CNT_CRY(2), +S0 => RLOL1_CNT_S(1), +S1 => RLOL1_CNT_S(2)); +\GENBLK2.RLOL1_CNT_CRY_0[3]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOL1_CNT_\, +B0 => RLOL1_CNT(3), +C0 => VCC, +D0 => VCC, +A1 => \RLOL1_CNT_\, +B1 => RLOL1_CNT(4), +C1 => VCC, +D1 => VCC, +CIN => RLOL1_CNT_CRY(2), +COUT => RLOL1_CNT_CRY(4), +S0 => RLOL1_CNT_S(3), +S1 => RLOL1_CNT_S(4)); +\GENBLK2.RLOL1_CNT_CRY_0[5]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOL1_CNT_\, +B0 => RLOL1_CNT(5), +C0 => VCC, +D0 => VCC, +A1 => \RLOL1_CNT_\, +B1 => RLOL1_CNT(6), +C1 => VCC, +D1 => VCC, +CIN => RLOL1_CNT_CRY(4), +COUT => RLOL1_CNT_CRY(6), +S0 => RLOL1_CNT_S(5), +S1 => RLOL1_CNT_S(6)); +\GENBLK2.RLOL1_CNT_CRY_0[7]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOL1_CNT_\, +B0 => RLOL1_CNT(7), +C0 => VCC, +D0 => VCC, +A1 => \RLOL1_CNT_\, +B1 => RLOL1_CNT(8), +C1 => VCC, +D1 => VCC, +CIN => RLOL1_CNT_CRY(6), +COUT => RLOL1_CNT_CRY(8), +S0 => RLOL1_CNT_S(7), +S1 => RLOL1_CNT_S(8)); +\GENBLK2.RLOL1_CNT_CRY_0[9]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOL1_CNT_\, +B0 => RLOL1_CNT(9), +C0 => VCC, +D0 => VCC, +A1 => \RLOL1_CNT_\, +B1 => RLOL1_CNT(10), +C1 => VCC, +D1 => VCC, +CIN => RLOL1_CNT_CRY(8), +COUT => RLOL1_CNT_CRY(10), +S0 => RLOL1_CNT_S(9), +S1 => RLOL1_CNT_S(10)); +\GENBLK2.RLOL1_CNT_CRY_0[11]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOL1_CNT_\, +B0 => RLOL1_CNT(11), +C0 => VCC, +D0 => VCC, +A1 => \RLOL1_CNT_\, +B1 => RLOL1_CNT(12), +C1 => VCC, +D1 => VCC, +CIN => RLOL1_CNT_CRY(10), +COUT => RLOL1_CNT_CRY(12), +S0 => RLOL1_CNT_S(11), +S1 => RLOL1_CNT_S(12)); +\GENBLK2.RLOL1_CNT_CRY_0[13]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOL1_CNT_\, +B0 => RLOL1_CNT(13), +C0 => VCC, +D0 => VCC, +A1 => \RLOL1_CNT_\, +B1 => RLOL1_CNT(14), +C1 => VCC, +D1 => VCC, +CIN => RLOL1_CNT_CRY(12), +COUT => RLOL1_CNT_CRY(14), +S0 => RLOL1_CNT_S(13), +S1 => RLOL1_CNT_S(14)); +\GENBLK2.RLOL1_CNT_CRY_0[15]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOL1_CNT_\, +B0 => RLOL1_CNT(15), +C0 => VCC, +D0 => VCC, +A1 => \RLOL1_CNT_\, +B1 => RLOL1_CNT(16), +C1 => VCC, +D1 => VCC, +CIN => RLOL1_CNT_CRY(14), +COUT => RLOL1_CNT_CRY(16), +S0 => RLOL1_CNT_S(15), +S1 => RLOL1_CNT_S(16)); +\GENBLK2.RLOL1_CNT_CRY_0[17]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"800a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOL1_CNT_\, +B0 => RLOL1_CNT(17), +C0 => VCC, +D0 => VCC, +A1 => \RLOL1_CNT_\, +B1 => RLOL1_CNT(18), +C1 => VCC, +D1 => VCC, +CIN => RLOL1_CNT_CRY(16), +COUT => RLOL1_CNT_CRY_0_COUT(17), +S0 => RLOL1_CNT_S(17), +S1 => RLOL1_CNT_S(18)); +\GENBLK2.RLOLS0_CNT_CRY_0[0]\: CCU2C +generic map( + INIT0 => X"500c", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => \RLOLS0_CNT_\, +C0 => VCC, +D0 => VCC, +A1 => \RLOLS0_CNT_\, +B1 => RLOLS0_CNT(0), +C1 => VCC, +D1 => VCC, +CIN => N_6, +COUT => RLOLS0_CNT_CRY(0), +S0 => RLOLS0_CNT_CRY_0_S0(0), +S1 => RLOLS0_CNT_S(0)); +\GENBLK2.RLOLS0_CNT_CRY_0[1]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOLS0_CNT_\, +B0 => RLOLS0_CNT(1), +C0 => VCC, +D0 => VCC, +A1 => \RLOLS0_CNT_\, +B1 => RLOLS0_CNT(2), +C1 => VCC, +D1 => VCC, +CIN => RLOLS0_CNT_CRY(0), +COUT => RLOLS0_CNT_CRY(2), +S0 => RLOLS0_CNT_S(1), +S1 => RLOLS0_CNT_S(2)); +\GENBLK2.RLOLS0_CNT_CRY_0[3]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOLS0_CNT_\, +B0 => RLOLS0_CNT(3), +C0 => VCC, +D0 => VCC, +A1 => \RLOLS0_CNT_\, +B1 => RLOLS0_CNT(4), +C1 => VCC, +D1 => VCC, +CIN => RLOLS0_CNT_CRY(2), +COUT => RLOLS0_CNT_CRY(4), +S0 => RLOLS0_CNT_S(3), +S1 => RLOLS0_CNT_S(4)); +\GENBLK2.RLOLS0_CNT_CRY_0[5]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOLS0_CNT_\, +B0 => RLOLS0_CNT(5), +C0 => VCC, +D0 => VCC, +A1 => \RLOLS0_CNT_\, +B1 => RLOLS0_CNT(6), +C1 => VCC, +D1 => VCC, +CIN => RLOLS0_CNT_CRY(4), +COUT => RLOLS0_CNT_CRY(6), +S0 => RLOLS0_CNT_S(5), +S1 => RLOLS0_CNT_S(6)); +\GENBLK2.RLOLS0_CNT_CRY_0[7]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOLS0_CNT_\, +B0 => RLOLS0_CNT(7), +C0 => VCC, +D0 => VCC, +A1 => \RLOLS0_CNT_\, +B1 => RLOLS0_CNT(8), +C1 => VCC, +D1 => VCC, +CIN => RLOLS0_CNT_CRY(6), +COUT => RLOLS0_CNT_CRY(8), +S0 => RLOLS0_CNT_S(7), +S1 => RLOLS0_CNT_S(8)); +\GENBLK2.RLOLS0_CNT_CRY_0[9]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOLS0_CNT_\, +B0 => RLOLS0_CNT(9), +C0 => VCC, +D0 => VCC, +A1 => \RLOLS0_CNT_\, +B1 => RLOLS0_CNT(10), +C1 => VCC, +D1 => VCC, +CIN => RLOLS0_CNT_CRY(8), +COUT => RLOLS0_CNT_CRY(10), +S0 => RLOLS0_CNT_S(9), +S1 => RLOLS0_CNT_S(10)); +\GENBLK2.RLOLS0_CNT_CRY_0[11]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOLS0_CNT_\, +B0 => RLOLS0_CNT(11), +C0 => VCC, +D0 => VCC, +A1 => \RLOLS0_CNT_\, +B1 => RLOLS0_CNT(12), +C1 => VCC, +D1 => VCC, +CIN => RLOLS0_CNT_CRY(10), +COUT => RLOLS0_CNT_CRY(12), +S0 => RLOLS0_CNT_S(11), +S1 => RLOLS0_CNT_S(12)); +\GENBLK2.RLOLS0_CNT_CRY_0[13]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOLS0_CNT_\, +B0 => RLOLS0_CNT(13), +C0 => VCC, +D0 => VCC, +A1 => \RLOLS0_CNT_\, +B1 => RLOLS0_CNT(14), +C1 => VCC, +D1 => VCC, +CIN => RLOLS0_CNT_CRY(12), +COUT => RLOLS0_CNT_CRY(14), +S0 => RLOLS0_CNT_S(13), +S1 => RLOLS0_CNT_S(14)); +\GENBLK2.RLOLS0_CNT_CRY_0[15]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOLS0_CNT_\, +B0 => RLOLS0_CNT(15), +C0 => VCC, +D0 => VCC, +A1 => \RLOLS0_CNT_\, +B1 => RLOLS0_CNT(16), +C1 => VCC, +D1 => VCC, +CIN => RLOLS0_CNT_CRY(14), +COUT => RLOLS0_CNT_CRY(16), +S0 => RLOLS0_CNT_S(15), +S1 => RLOLS0_CNT_S(16)); +\GENBLK2.RLOLS0_CNT_S_0[17]\: CCU2C +generic map( + INIT0 => X"800a", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOLS0_CNT_\, +B0 => RLOLS0_CNT(17), +C0 => VCC, +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => RLOLS0_CNT_CRY(16), +COUT => RLOLS0_CNT_S_0_COUT(17), +S0 => RLOLS0_CNT_S(17), +S1 => RLOLS0_CNT_S_0_S1(17)); +\GENBLK1.GENBLK2.TXR_WT_CNT_CRY_0[0]\: CCU2C +generic map( + INIT0 => X"500c", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => \TXR_WT_CNT_\, +C0 => VCC, +D0 => VCC, +A1 => \TXR_WT_CNT_\, +B1 => TXR_WT_CNT(0), +C1 => VCC, +D1 => VCC, +CIN => N_5, +COUT => TXR_WT_CNT_CRY(0), +S0 => TXR_WT_CNT_CRY_0_S0(0), +S1 => TXR_WT_CNT_S(0)); +\GENBLK1.GENBLK2.TXR_WT_CNT_CRY_0[1]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \TXR_WT_CNT_\, +B0 => TXR_WT_CNT(1), +C0 => VCC, +D0 => VCC, +A1 => \TXR_WT_CNT_\, +B1 => TXR_WT_CNT(2), +C1 => VCC, +D1 => VCC, +CIN => TXR_WT_CNT_CRY(0), +COUT => TXR_WT_CNT_CRY(2), +S0 => TXR_WT_CNT_S(1), +S1 => TXR_WT_CNT_S(2)); +\GENBLK1.GENBLK2.TXR_WT_CNT_CRY_0[3]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \TXR_WT_CNT_\, +B0 => TXR_WT_CNT(3), +C0 => VCC, +D0 => VCC, +A1 => \TXR_WT_CNT_\, +B1 => TXR_WT_CNT(4), +C1 => VCC, +D1 => VCC, +CIN => TXR_WT_CNT_CRY(2), +COUT => TXR_WT_CNT_CRY(4), +S0 => TXR_WT_CNT_S(3), +S1 => TXR_WT_CNT_S(4)); +\GENBLK1.GENBLK2.TXR_WT_CNT_CRY_0[5]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \TXR_WT_CNT_\, +B0 => TXR_WT_CNT(5), +C0 => VCC, +D0 => VCC, +A1 => \TXR_WT_CNT_\, +B1 => TXR_WT_CNT(6), +C1 => VCC, +D1 => VCC, +CIN => TXR_WT_CNT_CRY(4), +COUT => TXR_WT_CNT_CRY(6), +S0 => TXR_WT_CNT_S(5), +S1 => TXR_WT_CNT_S(6)); +\GENBLK1.GENBLK2.TXR_WT_CNT_CRY_0[7]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \TXR_WT_CNT_\, +B0 => TXR_WT_CNT(7), +C0 => VCC, +D0 => VCC, +A1 => \TXR_WT_CNT_\, +B1 => TXR_WT_CNT(8), +C1 => VCC, +D1 => VCC, +CIN => TXR_WT_CNT_CRY(6), +COUT => TXR_WT_CNT_CRY(8), +S0 => TXR_WT_CNT_S(7), +S1 => TXR_WT_CNT_S(8)); +\GENBLK1.GENBLK2.TXR_WT_CNT_CRY_0[9]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \TXR_WT_CNT_\, +B0 => TXR_WT_CNT(9), +C0 => VCC, +D0 => VCC, +A1 => \TXR_WT_CNT_\, +B1 => TXR_WT_CNT(10), +C1 => VCC, +D1 => VCC, +CIN => TXR_WT_CNT_CRY(8), +COUT => TXR_WT_CNT_CRY(10), +S0 => TXR_WT_CNT_S(9), +S1 => TXR_WT_CNT_S(10)); +\GENBLK1.GENBLK2.TXR_WT_CNT_S_0[11]\: CCU2C +generic map( + INIT0 => X"800a", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \TXR_WT_CNT_\, +B0 => TXR_WT_CNT(11), +C0 => VCC, +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => TXR_WT_CNT_CRY(10), +COUT => TXR_WT_CNT_S_0_COUT(11), +S0 => TXR_WT_CNT_S(11), +S1 => TXR_WT_CNT_S_0_S1(11)); +\GENBLK2.GENBLK3.RXR_WT_CNT_CRY_0[0]\: CCU2C +generic map( + INIT0 => X"5003", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => RXR_WT_CNT9, +C0 => VCC, +D0 => VCC, +A1 => RXR_WT_CNT9, +B1 => RXR_WT_CNT(0), +C1 => VCC, +D1 => VCC, +CIN => N_4, +COUT => RXR_WT_CNT_CRY(0), +S0 => RXR_WT_CNT_CRY_0_S0(0), +S1 => RXR_WT_CNT_S(0)); +\GENBLK2.GENBLK3.RXR_WT_CNT_CRY_0[1]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => RXR_WT_CNT9, +B0 => RXR_WT_CNT(1), +C0 => VCC, +D0 => VCC, +A1 => RXR_WT_CNT9, +B1 => RXR_WT_CNT(2), +C1 => VCC, +D1 => VCC, +CIN => RXR_WT_CNT_CRY(0), +COUT => RXR_WT_CNT_CRY(2), +S0 => RXR_WT_CNT_S(1), +S1 => RXR_WT_CNT_S(2)); +\GENBLK2.GENBLK3.RXR_WT_CNT_CRY_0[3]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => RXR_WT_CNT9, +B0 => RXR_WT_CNT(3), +C0 => VCC, +D0 => VCC, +A1 => RXR_WT_CNT9, +B1 => RXR_WT_CNT(4), +C1 => VCC, +D1 => VCC, +CIN => RXR_WT_CNT_CRY(2), +COUT => RXR_WT_CNT_CRY(4), +S0 => RXR_WT_CNT_S(3), +S1 => RXR_WT_CNT_S(4)); +\GENBLK2.GENBLK3.RXR_WT_CNT_CRY_0[5]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => RXR_WT_CNT9, +B0 => RXR_WT_CNT(5), +C0 => VCC, +D0 => VCC, +A1 => RXR_WT_CNT9, +B1 => RXR_WT_CNT(6), +C1 => VCC, +D1 => VCC, +CIN => RXR_WT_CNT_CRY(4), +COUT => RXR_WT_CNT_CRY(6), +S0 => RXR_WT_CNT_S(5), +S1 => RXR_WT_CNT_S(6)); +\GENBLK2.GENBLK3.RXR_WT_CNT_CRY_0[7]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => RXR_WT_CNT9, +B0 => RXR_WT_CNT(7), +C0 => VCC, +D0 => VCC, +A1 => RXR_WT_CNT9, +B1 => RXR_WT_CNT(8), +C1 => VCC, +D1 => VCC, +CIN => RXR_WT_CNT_CRY(6), +COUT => RXR_WT_CNT_CRY(8), +S0 => RXR_WT_CNT_S(7), +S1 => RXR_WT_CNT_S(8)); +\GENBLK2.GENBLK3.RXR_WT_CNT_CRY_0[9]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => RXR_WT_CNT9, +B0 => RXR_WT_CNT(9), +C0 => VCC, +D0 => VCC, +A1 => RXR_WT_CNT9, +B1 => RXR_WT_CNT(10), +C1 => VCC, +D1 => VCC, +CIN => RXR_WT_CNT_CRY(8), +COUT => RXR_WT_CNT_CRY(10), +S0 => RXR_WT_CNT_S(9), +S1 => RXR_WT_CNT_S(10)); +\GENBLK2.GENBLK3.RXR_WT_CNT_S_0[11]\: CCU2C +generic map( + INIT0 => X"4005", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => RXR_WT_CNT9, +B0 => RXR_WT_CNT(11), +C0 => VCC, +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => RXR_WT_CNT_CRY(10), +COUT => RXR_WT_CNT_S_0_COUT(11), +S0 => RXR_WT_CNT_S(11), +S1 => RXR_WT_CNT_S_0_S1(11)); +\GENBLK1.PLOL_CNT_CRY_0[0]\: CCU2C +generic map( + INIT0 => X"500c", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => \PLOL_CNT_\, +C0 => VCC, +D0 => VCC, +A1 => \PLOL_CNT_\, +B1 => PLOL_CNT(0), +C1 => VCC, +D1 => VCC, +CIN => N_3, +COUT => PLOL_CNT_CRY(0), +S0 => PLOL_CNT_CRY_0_S0(0), +S1 => PLOL_CNT_S(0)); +\GENBLK1.PLOL_CNT_CRY_0[1]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \PLOL_CNT_\, +B0 => PLOL_CNT(1), +C0 => VCC, +D0 => VCC, +A1 => \PLOL_CNT_\, +B1 => PLOL_CNT(2), +C1 => VCC, +D1 => VCC, +CIN => PLOL_CNT_CRY(0), +COUT => PLOL_CNT_CRY(2), +S0 => PLOL_CNT_S(1), +S1 => PLOL_CNT_S(2)); +\GENBLK1.PLOL_CNT_CRY_0[3]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \PLOL_CNT_\, +B0 => PLOL_CNT(3), +C0 => VCC, +D0 => VCC, +A1 => \PLOL_CNT_\, +B1 => PLOL_CNT(4), +C1 => VCC, +D1 => VCC, +CIN => PLOL_CNT_CRY(2), +COUT => PLOL_CNT_CRY(4), +S0 => PLOL_CNT_S(3), +S1 => PLOL_CNT_S(4)); +\GENBLK1.PLOL_CNT_CRY_0[5]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \PLOL_CNT_\, +B0 => PLOL_CNT(5), +C0 => VCC, +D0 => VCC, +A1 => \PLOL_CNT_\, +B1 => PLOL_CNT(6), +C1 => VCC, +D1 => VCC, +CIN => PLOL_CNT_CRY(4), +COUT => PLOL_CNT_CRY(6), +S0 => PLOL_CNT_S(5), +S1 => PLOL_CNT_S(6)); +\GENBLK1.PLOL_CNT_CRY_0[7]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \PLOL_CNT_\, +B0 => PLOL_CNT(7), +C0 => VCC, +D0 => VCC, +A1 => \PLOL_CNT_\, +B1 => PLOL_CNT(8), +C1 => VCC, +D1 => VCC, +CIN => PLOL_CNT_CRY(6), +COUT => PLOL_CNT_CRY(8), +S0 => PLOL_CNT_S(7), +S1 => PLOL_CNT_S(8)); +\GENBLK1.PLOL_CNT_CRY_0[9]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \PLOL_CNT_\, +B0 => PLOL_CNT(9), +C0 => VCC, +D0 => VCC, +A1 => \PLOL_CNT_\, +B1 => PLOL_CNT(10), +C1 => VCC, +D1 => VCC, +CIN => PLOL_CNT_CRY(8), +COUT => PLOL_CNT_CRY(10), +S0 => PLOL_CNT_S(9), +S1 => PLOL_CNT_S(10)); +\GENBLK1.PLOL_CNT_CRY_0[11]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \PLOL_CNT_\, +B0 => PLOL_CNT(11), +C0 => VCC, +D0 => VCC, +A1 => \PLOL_CNT_\, +B1 => PLOL_CNT(12), +C1 => VCC, +D1 => VCC, +CIN => PLOL_CNT_CRY(10), +COUT => PLOL_CNT_CRY(12), +S0 => PLOL_CNT_S(11), +S1 => PLOL_CNT_S(12)); +\GENBLK1.PLOL_CNT_CRY_0[13]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \PLOL_CNT_\, +B0 => PLOL_CNT(13), +C0 => VCC, +D0 => VCC, +A1 => \PLOL_CNT_\, +B1 => PLOL_CNT(14), +C1 => VCC, +D1 => VCC, +CIN => PLOL_CNT_CRY(12), +COUT => PLOL_CNT_CRY(14), +S0 => PLOL_CNT_S(13), +S1 => PLOL_CNT_S(14)); +\GENBLK1.PLOL_CNT_CRY_0[15]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \PLOL_CNT_\, +B0 => PLOL_CNT(15), +C0 => VCC, +D0 => VCC, +A1 => \PLOL_CNT_\, +B1 => PLOL_CNT(16), +C1 => VCC, +D1 => VCC, +CIN => PLOL_CNT_CRY(14), +COUT => PLOL_CNT_CRY(16), +S0 => PLOL_CNT_S(15), +S1 => PLOL_CNT_S(16)); +\GENBLK1.PLOL_CNT_CRY_0[17]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \PLOL_CNT_\, +B0 => PLOL_CNT(17), +C0 => VCC, +D0 => VCC, +A1 => \PLOL_CNT_\, +B1 => PLOL_CNT(18), +C1 => VCC, +D1 => VCC, +CIN => PLOL_CNT_CRY(16), +COUT => PLOL_CNT_CRY(18), +S0 => PLOL_CNT_S(17), +S1 => PLOL_CNT_S(18)); +\GENBLK1.PLOL_CNT_S_0[19]\: CCU2C +generic map( + INIT0 => X"800a", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \PLOL_CNT_\, +B0 => PLOL_CNT(19), +C0 => VCC, +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => PLOL_CNT_CRY(18), +COUT => PLOL_CNT_S_0_COUT(19), +S0 => PLOL_CNT_S(19), +S1 => PLOL_CNT_S_0_S1(19)); +\UN1_GENBLK2.RLOS_DB_CNT_CRY_0_0\: CCU2C +generic map( + INIT0 => X"5003", + INIT1 => X"900a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => RLOS_DB_CNT(0), +B1 => UN1_RLOS_DB_CNT_ZERO(0), +C1 => VCC, +D1 => VCC, +CIN => N_2, +COUT => RLOS_DB_CNT_CRY_0, +S0 => RLOS_DB_CNT_CRY_0_0_S0, +S1 => RLOS_DB_CNT_CRY_0_0_S1); +\UN1_GENBLK2.RLOS_DB_CNT_CRY_1_0\: CCU2C +generic map( + INIT0 => X"e101", + INIT1 => X"e101", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_RLOS_DB_CNT_ZERO(0), +B0 => RLOS_P2, +C0 => RLOS_DB_CNT(1), +D0 => VCC, +A1 => UN1_RLOS_DB_CNT_ZERO(0), +B1 => RLOS_P2, +C1 => RLOS_DB_CNT(2), +D1 => VCC, +CIN => RLOS_DB_CNT_CRY_0, +COUT => RLOS_DB_CNT_CRY_2, +S0 => RLOS_DB_CNT_CRY_1_0_S0, +S1 => RLOS_DB_CNT_CRY_1_0_S1); +\UN1_GENBLK2.RLOS_DB_CNT_S_3_0\: CCU2C +generic map( + INIT0 => X"a90a", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => RLOS_DB_CNT(3), +B0 => RLOS_P2, +C0 => UN1_RLOS_DB_CNT_ZERO(0), +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => RLOS_DB_CNT_CRY_2, +COUT => RLOS_DB_CNT_S_3_0_COUT, +S0 => RLOS_DB_CNT_S_3_0_S0, +S1 => RLOS_DB_CNT_S_3_0_S1); +\UN1_GENBLK2.RLOL_DB_CNT_CRY_0_0\: CCU2C +generic map( + INIT0 => X"5003", + INIT1 => X"900a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => RLOL_DB_CNT(0), +B1 => UN1_RLOL_DB_CNT_ZERO(0), +C1 => VCC, +D1 => VCC, +CIN => N_1, +COUT => RLOL_DB_CNT_CRY_0, +S0 => RLOL_DB_CNT_CRY_0_0_S0, +S1 => RLOL_DB_CNT_CRY_0_0_S1); +\UN1_GENBLK2.RLOL_DB_CNT_CRY_1_0\: CCU2C +generic map( + INIT0 => X"e101", + INIT1 => X"e101", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_RLOL_DB_CNT_ZERO(0), +B0 => RLOL_P2, +C0 => RLOL_DB_CNT(1), +D0 => VCC, +A1 => UN1_RLOL_DB_CNT_ZERO(0), +B1 => RLOL_P2, +C1 => RLOL_DB_CNT(2), +D1 => VCC, +CIN => RLOL_DB_CNT_CRY_0, +COUT => RLOL_DB_CNT_CRY_2, +S0 => RLOL_DB_CNT_CRY_1_0_S0, +S1 => RLOL_DB_CNT_CRY_1_0_S1); +\UN1_GENBLK2.RLOL_DB_CNT_S_3_0\: CCU2C +generic map( + INIT0 => X"a90a", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => RLOL_DB_CNT(3), +B0 => RLOL_P2, +C0 => UN1_RLOL_DB_CNT_ZERO(0), +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => RLOL_DB_CNT_CRY_2, +COUT => RLOL_DB_CNT_S_3_0_COUT, +S0 => RLOL_DB_CNT_S_3_0_S0, +S1 => RLOL_DB_CNT_S_3_0_S1); +RXSDR_APPD_4 <= RXSDR_APPD; +TXSR_APPD_4 <= TXSR_APPD; +VCC_0: VHI port map ( +Z => VCC); +II_GND: VLO port map ( +Z => GND); +rsl_tx_pcs_rst_c <= RSL_TX_PCS_RST_C_4; +rsl_rx_serdes_rst_c <= RSL_RX_SERDES_RST_C_5; +rsl_serdes_rst_dual_c <= RSL_SERDES_RST_DUAL_C_6; +rsl_tx_serdes_rst_c <= RSL_TX_SERDES_RST_C_7; +rsl_tx_rdy <= RSL_TX_RDY_8; +rsl_rx_rdy <= RSL_RX_RDY_9; +rsl_rx_pcs_rst_c <= RSL_RX_PCS_RST_C_10; +end beh; + +-- +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; +library synplify; +use synplify.components.all; +library pmi; +use pmi.pmi_components.all; +library ecp5um; +use ecp5um.components.all; + +entity sgmii_ecp5sll_core_Z1_layer1 is +port( +tx_pclk : in std_logic; +sli_rst : in std_logic; +pll_refclki : in std_logic; +pll_lock_i : out std_logic); +end sgmii_ecp5sll_core_Z1_layer1; + +architecture beh of sgmii_ecp5sll_core_Z1_layer1 is +signal PHB_CNT : std_logic_vector(2 downto 0); +signal PHB_CNT_I : std_logic_vector(2 downto 0); +signal RCOUNT : std_logic_vector(15 downto 0); +signal PCOUNT : std_logic_vector(21 downto 0); +signal UN1_PCOUNT_DIFF_I : std_logic_vector(0 to 0); +signal SLL_STATE : std_logic_vector(1 downto 0); +signal SLL_STATE_QN : std_logic_vector(1 downto 0); +signal RHB_WAIT_CNT_S : std_logic_vector(7 downto 0); +signal RHB_WAIT_CNT : std_logic_vector(7 downto 0); +signal RHB_WAIT_CNT_QN : std_logic_vector(7 downto 0); +signal RCOUNT_S : std_logic_vector(15 downto 0); +signal RCOUNT_QN : std_logic_vector(15 downto 0); +signal PHB_CNT_QN : std_logic_vector(2 downto 0); +signal PHB_CNT_RNO : std_logic_vector(2 downto 1); +signal PCOUNT_S : std_logic_vector(21 downto 0); +signal PCOUNT_QN : std_logic_vector(21 downto 0); +signal PCOUNT_DIFF_QN : std_logic_vector(21 downto 0); +signal RDIFF_COMP_LOCK : std_logic_vector(2 to 2); +signal RDIFF_COMP_LOCK_QN : std_logic_vector(2 to 2); +signal UN1_PCOUNT_DIFF : std_logic_vector(0 to 0); +signal PCOUNT_CRY : std_logic_vector(20 downto 0); +signal PCOUNT_CRY_0_S0 : std_logic_vector(0 to 0); +signal PCOUNT_S_0_COUT : std_logic_vector(21 to 21); +signal PCOUNT_S_0_S1 : std_logic_vector(21 to 21); +signal RCOUNT_CRY : std_logic_vector(14 downto 0); +signal RCOUNT_CRY_0_S0 : std_logic_vector(0 to 0); +signal RCOUNT_S_0_COUT : std_logic_vector(15 to 15); +signal RCOUNT_S_0_S1 : std_logic_vector(15 to 15); +signal RHB_WAIT_CNT_CRY : std_logic_vector(6 downto 0); +signal RHB_WAIT_CNT_CRY_0_S0 : std_logic_vector(0 to 0); +signal RHB_WAIT_CNT_S_0_COUT : std_logic_vector(7 to 7); +signal RHB_WAIT_CNT_S_0_S1 : std_logic_vector(7 to 7); +signal PLL_LOCK : std_logic ; +signal RTC_CTRL4_0_A3_1 : std_logic ; +signal UN13_LOCK_20 : std_logic ; +signal PPUL_SYNC_P2 : std_logic ; +signal PPUL_SYNC_P1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_20 : std_logic ; +signal UN13_LOCK_19 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_19 : std_logic ; +signal UN13_LOCK_18 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_18 : std_logic ; +signal UN13_LOCK_17 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_17_0_RNO : std_logic ; +signal UN13_LOCK_16 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_16 : std_logic ; +signal UN13_LOCK_15 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_15 : std_logic ; +signal UN13_LOCK_14 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_14 : std_logic ; +signal UN13_LOCK_13 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_13 : std_logic ; +signal UN13_LOCK_12 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_12 : std_logic ; +signal UN13_LOCK_11 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_11 : std_logic ; +signal UN13_LOCK_10 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_10 : std_logic ; +signal UN13_LOCK_9 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_9 : std_logic ; +signal UN13_LOCK_8 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_8 : std_logic ; +signal UN13_LOCK_7 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_7 : std_logic ; +signal UN13_LOCK_6 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_6 : std_logic ; +signal UN13_LOCK_5 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_5 : std_logic ; +signal UN13_LOCK_4 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_4 : std_logic ; +signal UN13_LOCK_3 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_3 : std_logic ; +signal UN13_LOCK_2 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_2 : std_logic ; +signal UN13_LOCK_1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_1 : std_logic ; +signal UN13_LOCK_21 : std_logic ; +signal PPUL_SYNC_P3 : std_logic ; +signal N_7 : std_logic ; +signal UN13_LOCK_0 : std_logic ; +signal RTC_CTRL4 : std_logic ; +signal RTC_CTRL : std_logic ; +signal VCC : std_logic ; +signal N_2085_0 : std_logic ; +signal UNLOCK_5 : std_logic ; +signal UNLOCK_1_SQMUXA_I : std_logic ; +signal UNLOCK : std_logic ; +signal UNLOCK_QN : std_logic ; +signal N_95_I : std_logic ; +signal N_97_I : std_logic ; +signal RTC_PUL : std_logic ; +signal RTC_PUL_P1 : std_logic ; +signal RTC_PUL_P1_QN : std_logic ; +signal RTC_PUL5 : std_logic ; +signal RTC_PUL_QN : std_logic ; +signal RTC_CTRL_QN : std_logic ; +signal RSTAT_PCLK_2 : std_logic ; +signal RSTAT_PCLK : std_logic ; +signal RSTAT_PCLK_QN : std_logic ; +signal RHB_SYNC_P1 : std_logic ; +signal RHB_SYNC_P2 : std_logic ; +signal RHB_SYNC_P2_QN : std_logic ; +signal RHB_SYNC : std_logic ; +signal RHB_SYNC_P1_QN : std_logic ; +signal PPUL_SYNC_P3_QN : std_logic ; +signal PPUL_SYNC_P2_QN : std_logic ; +signal PPUL_SYNC : std_logic ; +signal PPUL_SYNC_P1_QN : std_logic ; +signal N_53_I : std_logic ; +signal PLL_LOCK_QN : std_logic ; +signal PHB : std_logic ; +signal PHB_QN : std_logic ; +signal PDIFF_SYNC : std_logic ; +signal PDIFF_SYNC_P1 : std_logic ; +signal PDIFF_SYNC_P1_QN : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_1_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_1_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_3_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_3_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_5_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_5_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_7_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_7_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_9_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_9_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_11_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_11_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_13_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_13_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_15_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_15_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_17_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_17_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_19_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_19_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_S_21_0_S0 : std_logic ; +signal LOCK_5 : std_logic ; +signal LOCK_1_SQMUXA_I : std_logic ; +signal LOCK : std_logic ; +signal LOCK_QN : std_logic ; +signal N_98 : std_logic ; +signal RTC_PUL5_0_O3 : std_logic ; +signal RTC_PUL5_0_A3_6 : std_logic ; +signal RTC_PUL5_0_A3_7 : std_logic ; +signal UN1_RCOUNT_1_0_A3 : std_logic ; +signal RHB_WAIT_CNT12 : std_logic ; +signal UN1_RHB_WAIT_CNT_4 : std_logic ; +signal UN1_RHB_WAIT_CNT_5 : std_logic ; +signal N_99 : std_logic ; +signal RTC_CTRL4_0_A3_12_4 : std_logic ; +signal RTC_CTRL4_0_A3_12_5 : std_logic ; +signal RTC_CTRL4_10 : std_logic ; +signal UN1_RCOUNT_1_0_A3_1 : std_logic ; +signal N_6 : std_logic ; +signal RTC_PUL5_0_A3_5 : std_logic ; +signal N_8 : std_logic ; +signal UN13_UNLOCK_CRY_21 : std_logic ; +signal UN13_LOCK_CRY_21_I : std_logic ; +signal \RHB_WAIT_CNT_\ : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_0_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_0_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_2 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_4 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_6 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_8 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_10 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_12 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_14 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_16 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_18 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_20 : std_logic ; +signal UN1_PCOUNT_DIFF_1_S_21_0_COUT : std_logic ; +signal UN1_PCOUNT_DIFF_1_S_21_0_S1 : std_logic ; +signal UN13_LOCK_CRY_0 : std_logic ; +signal UN13_LOCK_CRY_0_0_S0 : std_logic ; +signal UN13_LOCK_CRY_0_0_S1 : std_logic ; +signal UN13_LOCK_CRY_2 : std_logic ; +signal UN13_LOCK_CRY_1_0_S0 : std_logic ; +signal UN13_LOCK_CRY_1_0_S1 : std_logic ; +signal UN13_LOCK_CRY_4 : std_logic ; +signal UN13_LOCK_CRY_3_0_S0 : std_logic ; +signal UN13_LOCK_CRY_3_0_S1 : std_logic ; +signal UN13_LOCK_CRY_6 : std_logic ; +signal UN13_LOCK_CRY_5_0_S0 : std_logic ; +signal UN13_LOCK_CRY_5_0_S1 : std_logic ; +signal UN13_LOCK_CRY_8 : std_logic ; +signal UN13_LOCK_CRY_7_0_S0 : std_logic ; +signal UN13_LOCK_CRY_7_0_S1 : std_logic ; +signal UN13_LOCK_CRY_10 : std_logic ; +signal UN13_LOCK_CRY_9_0_S0 : std_logic ; +signal UN13_LOCK_CRY_9_0_S1 : std_logic ; +signal UN13_LOCK_CRY_12 : std_logic ; +signal UN13_LOCK_CRY_11_0_S0 : std_logic ; +signal UN13_LOCK_CRY_11_0_S1 : std_logic ; +signal UN13_LOCK_CRY_14 : std_logic ; +signal UN13_LOCK_CRY_13_0_S0 : std_logic ; +signal UN13_LOCK_CRY_13_0_S1 : std_logic ; +signal UN13_LOCK_CRY_16 : std_logic ; +signal UN13_LOCK_CRY_15_0_S0 : std_logic ; +signal UN13_LOCK_CRY_15_0_S1 : std_logic ; +signal UN13_LOCK_CRY_18 : std_logic ; +signal UN13_LOCK_CRY_17_0_S0 : std_logic ; +signal UN13_LOCK_CRY_17_0_S1 : std_logic ; +signal UN13_LOCK_CRY_20 : std_logic ; +signal UN13_LOCK_CRY_19_0_S0 : std_logic ; +signal UN13_LOCK_CRY_19_0_S1 : std_logic ; +signal UN13_LOCK_CRY_21_0_COUT : std_logic ; +signal UN13_LOCK_CRY_21_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_0 : std_logic ; +signal UN13_UNLOCK_CRY_0_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_0_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_2 : std_logic ; +signal UN13_UNLOCK_CRY_1_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_1_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_4 : std_logic ; +signal UN13_UNLOCK_CRY_3_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_3_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_6 : std_logic ; +signal UN13_UNLOCK_CRY_5_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_5_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_8 : std_logic ; +signal UN13_UNLOCK_CRY_7_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_7_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_10 : std_logic ; +signal UN13_UNLOCK_CRY_9_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_9_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_12 : std_logic ; +signal UN13_UNLOCK_CRY_11_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_11_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_14 : std_logic ; +signal UN13_UNLOCK_CRY_13_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_13_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_16 : std_logic ; +signal UN13_UNLOCK_CRY_15_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_15_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_18 : std_logic ; +signal UN13_UNLOCK_CRY_17_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_17_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_20 : std_logic ; +signal UN13_UNLOCK_CRY_19_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_19_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_21_0_COUT : std_logic ; +signal UN13_UNLOCK_CRY_21_0_S0 : std_logic ; +signal N_21 : std_logic ; +signal N_20 : std_logic ; +signal N_19 : std_logic ; +signal N_18 : std_logic ; +signal N_14 : std_logic ; +signal GND : std_logic ; +signal N_1 : std_logic ; +signal N_2 : std_logic ; +signal N_3 : std_logic ; +signal N_4 : std_logic ; +signal N_5 : std_logic ; +signal N_9 : std_logic ; +component sync_0s +port( +phb : in std_logic; +rhb_sync : out std_logic; +sli_rst : in std_logic; +pll_refclki : in std_logic ); +end component; +component sync_0s_6 +port( +rtc_pul : in std_logic; +ppul_sync : out std_logic; +sli_rst : in std_logic; +tx_pclk : in std_logic ); +end component; +component sync_0s_0 +port( +ppul_sync : in std_logic; +pdiff_sync : out std_logic; +sli_rst : in std_logic; +pll_refclki : in std_logic ); +end component; +begin +PHB_RNO: INV port map ( +A => PHB_CNT(2), +Z => PHB_CNT_I(2)); +\PHB_CNT_RNO[0]\: INV port map ( +A => PHB_CNT(0), +Z => PHB_CNT_I(0)); +PLL_LOCK_RNI6JK9: INV port map ( +A => PLL_LOCK, +Z => pll_lock_i); +RTC_CTRL4_0_A3_RNO: LUT4 +generic map( + init => X"2000" +) +port map ( +A => RCOUNT(2), +B => RCOUNT(0), +C => RCOUNT(5), +D => RCOUNT(4), +Z => RTC_CTRL4_0_A3_1); +UN1_PCOUNT_DIFF_1_CRY_19_0_RNO_0: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_20, +B => PCOUNT(20), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_20); +UN1_PCOUNT_DIFF_1_CRY_19_0_RNO: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_19, +B => PCOUNT(19), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_19); +UN1_PCOUNT_DIFF_1_CRY_17_0_RNO_0: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_18, +B => PCOUNT(18), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_18); +UN1_PCOUNT_DIFF_1_CRY_17_0_RNO_Z477: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_17, +B => PCOUNT(17), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_CRY_17_0_RNO); +UN1_PCOUNT_DIFF_1_CRY_15_0_RNO_0: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_16, +B => PCOUNT(16), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_16); +UN1_PCOUNT_DIFF_1_CRY_15_0_RNO: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_15, +B => PCOUNT(15), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_15); +UN1_PCOUNT_DIFF_1_CRY_13_0_RNO_0: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_14, +B => PCOUNT(14), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_14); +UN1_PCOUNT_DIFF_1_CRY_13_0_RNO: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_13, +B => PCOUNT(13), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_13); +UN1_PCOUNT_DIFF_1_CRY_11_0_RNO_0: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_12, +B => PCOUNT(12), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_12); +UN1_PCOUNT_DIFF_1_CRY_11_0_RNO: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_11, +B => PCOUNT(11), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_11); +UN1_PCOUNT_DIFF_1_CRY_9_0_RNO_0: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_10, +B => PCOUNT(10), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_10); +UN1_PCOUNT_DIFF_1_CRY_9_0_RNO: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_9, +B => PCOUNT(9), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_9); +UN1_PCOUNT_DIFF_1_CRY_7_0_RNO_0: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_8, +B => PCOUNT(8), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_8); +UN1_PCOUNT_DIFF_1_CRY_7_0_RNO: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_7, +B => PCOUNT(7), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_7); +UN1_PCOUNT_DIFF_1_CRY_5_0_RNO_0: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_6, +B => PCOUNT(6), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_6); +UN1_PCOUNT_DIFF_1_CRY_5_0_RNO: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_5, +B => PCOUNT(5), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_5); +UN1_PCOUNT_DIFF_1_CRY_3_0_RNO_0: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_4, +B => PCOUNT(4), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_4); +UN1_PCOUNT_DIFF_1_CRY_3_0_RNO: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_3, +B => PCOUNT(3), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_3); +UN1_PCOUNT_DIFF_1_CRY_1_0_RNO_0: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_2, +B => PCOUNT(2), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_2); +UN1_PCOUNT_DIFF_1_CRY_1_0_RNO: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_1, +B => PCOUNT(1), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_1); +PPUL_SYNC_P3_RNIU65C: LUT4 +generic map( + init => X"2F20" +) +port map ( +A => UN13_LOCK_21, +B => PPUL_SYNC_P3, +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => N_7); +\PCOUNT_DIFF_RNO[0]\: LUT4 +generic map( + init => X"FD20" +) +port map ( +A => PPUL_SYNC_P1, +B => PPUL_SYNC_P2, +C => PCOUNT(0), +D => UN13_LOCK_0, +Z => UN1_PCOUNT_DIFF_I(0)); +RTC_CTRL_0: LUT4 +generic map( + init => X"EEEE" +) +port map ( +A => RTC_CTRL4, +B => RTC_CTRL, +C => VCC, +D => VCC, +Z => N_2085_0); +UNLOCK_REG_Z498: FD1P3DX port map ( +D => UNLOCK_5, +SP => UNLOCK_1_SQMUXA_I, +CK => pll_refclki, +CD => sli_rst, +Q => UNLOCK); +\SLL_STATE[0]_REG_Z500\: FD1S3DX port map ( +D => N_95_I, +CK => pll_refclki, +CD => sli_rst, +Q => SLL_STATE(0)); +\SLL_STATE[1]_REG_Z502\: FD1S3DX port map ( +D => N_97_I, +CK => pll_refclki, +CD => sli_rst, +Q => SLL_STATE(1)); +RTC_PUL_P1_REG_Z504: FD1S3DX port map ( +D => RTC_PUL, +CK => pll_refclki, +CD => sli_rst, +Q => RTC_PUL_P1); +RTC_PUL_REG_Z506: FD1P3DX port map ( +D => RTC_PUL5, +SP => RTC_CTRL, +CK => pll_refclki, +CD => sli_rst, +Q => RTC_PUL); +RTC_CTRL_REG_Z508: FD1S3DX port map ( +D => N_2085_0, +CK => pll_refclki, +CD => sli_rst, +Q => RTC_CTRL); +RSTAT_PCLK_REG_Z510: FD1P3DX port map ( +D => RSTAT_PCLK_2, +SP => RTC_CTRL, +CK => pll_refclki, +CD => sli_rst, +Q => RSTAT_PCLK); +\RHB_WAIT_CNT[0]_REG_Z512\: FD1P3DX port map ( +D => RHB_WAIT_CNT_S(0), +SP => RTC_CTRL, +CK => pll_refclki, +CD => sli_rst, +Q => RHB_WAIT_CNT(0)); +\RHB_WAIT_CNT[1]_REG_Z514\: FD1P3DX port map ( +D => RHB_WAIT_CNT_S(1), +SP => RTC_CTRL, +CK => pll_refclki, +CD => sli_rst, +Q => RHB_WAIT_CNT(1)); +\RHB_WAIT_CNT[2]_REG_Z516\: FD1P3DX port map ( +D => RHB_WAIT_CNT_S(2), +SP => RTC_CTRL, +CK => pll_refclki, +CD => sli_rst, +Q => RHB_WAIT_CNT(2)); +\RHB_WAIT_CNT[3]_REG_Z518\: FD1P3DX port map ( +D => RHB_WAIT_CNT_S(3), +SP => RTC_CTRL, +CK => pll_refclki, +CD => sli_rst, +Q => RHB_WAIT_CNT(3)); +\RHB_WAIT_CNT[4]_REG_Z520\: FD1P3DX port map ( +D => RHB_WAIT_CNT_S(4), +SP => RTC_CTRL, +CK => pll_refclki, +CD => sli_rst, +Q => RHB_WAIT_CNT(4)); +\RHB_WAIT_CNT[5]_REG_Z522\: FD1P3DX port map ( +D => RHB_WAIT_CNT_S(5), +SP => RTC_CTRL, +CK => pll_refclki, +CD => sli_rst, +Q => RHB_WAIT_CNT(5)); +\RHB_WAIT_CNT[6]_REG_Z524\: FD1P3DX port map ( +D => RHB_WAIT_CNT_S(6), +SP => RTC_CTRL, +CK => pll_refclki, +CD => sli_rst, +Q => RHB_WAIT_CNT(6)); +\RHB_WAIT_CNT[7]_REG_Z526\: FD1P3DX port map ( +D => RHB_WAIT_CNT_S(7), +SP => RTC_CTRL, +CK => pll_refclki, +CD => sli_rst, +Q => RHB_WAIT_CNT(7)); +RHB_SYNC_P2_REG_Z528: FD1S3DX port map ( +D => RHB_SYNC_P1, +CK => pll_refclki, +CD => sli_rst, +Q => RHB_SYNC_P2); +RHB_SYNC_P1_REG_Z530: FD1S3DX port map ( +D => RHB_SYNC, +CK => pll_refclki, +CD => sli_rst, +Q => RHB_SYNC_P1); +\RCOUNT[0]_REG_Z532\: FD1S3DX port map ( +D => RCOUNT_S(0), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(0)); +\RCOUNT[1]_REG_Z534\: FD1S3DX port map ( +D => RCOUNT_S(1), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(1)); +\RCOUNT[2]_REG_Z536\: FD1S3DX port map ( +D => RCOUNT_S(2), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(2)); +\RCOUNT[3]_REG_Z538\: FD1S3DX port map ( +D => RCOUNT_S(3), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(3)); +\RCOUNT[4]_REG_Z540\: FD1S3DX port map ( +D => RCOUNT_S(4), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(4)); +\RCOUNT[5]_REG_Z542\: FD1S3DX port map ( +D => RCOUNT_S(5), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(5)); +\RCOUNT[6]_REG_Z544\: FD1S3DX port map ( +D => RCOUNT_S(6), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(6)); +\RCOUNT[7]_REG_Z546\: FD1S3DX port map ( +D => RCOUNT_S(7), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(7)); +\RCOUNT[8]_REG_Z548\: FD1S3DX port map ( +D => RCOUNT_S(8), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(8)); +\RCOUNT[9]_REG_Z550\: FD1S3DX port map ( +D => RCOUNT_S(9), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(9)); +\RCOUNT[10]_REG_Z552\: FD1S3DX port map ( +D => RCOUNT_S(10), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(10)); +\RCOUNT[11]_REG_Z554\: FD1S3DX port map ( +D => RCOUNT_S(11), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(11)); +\RCOUNT[12]_REG_Z556\: FD1S3DX port map ( +D => RCOUNT_S(12), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(12)); +\RCOUNT[13]_REG_Z558\: FD1S3DX port map ( +D => RCOUNT_S(13), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(13)); +\RCOUNT[14]_REG_Z560\: FD1S3DX port map ( +D => RCOUNT_S(14), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(14)); +\RCOUNT[15]_REG_Z562\: FD1S3DX port map ( +D => RCOUNT_S(15), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(15)); +PPUL_SYNC_P3_REG_Z564: FD1S3DX port map ( +D => PPUL_SYNC_P2, +CK => tx_pclk, +CD => sli_rst, +Q => PPUL_SYNC_P3); +PPUL_SYNC_P2_REG_Z566: FD1S3DX port map ( +D => PPUL_SYNC_P1, +CK => tx_pclk, +CD => sli_rst, +Q => PPUL_SYNC_P2); +PPUL_SYNC_P1_REG_Z568: FD1S3DX port map ( +D => PPUL_SYNC, +CK => tx_pclk, +CD => sli_rst, +Q => PPUL_SYNC_P1); +PLL_LOCK_REG_Z570: FD1S3DX port map ( +D => N_53_I, +CK => pll_refclki, +CD => sli_rst, +Q => PLL_LOCK); +\PHB_CNT[0]_REG_Z572\: FD1S3DX port map ( +D => PHB_CNT_I(0), +CK => tx_pclk, +CD => sli_rst, +Q => PHB_CNT(0)); +\PHB_CNT[1]_REG_Z574\: FD1S3DX port map ( +D => PHB_CNT_RNO(1), +CK => tx_pclk, +CD => sli_rst, +Q => PHB_CNT(1)); +\PHB_CNT[2]_REG_Z576\: FD1S3DX port map ( +D => PHB_CNT_RNO(2), +CK => tx_pclk, +CD => sli_rst, +Q => PHB_CNT(2)); +PHB_REG_Z578: FD1S3DX port map ( +D => PHB_CNT_I(2), +CK => tx_pclk, +CD => sli_rst, +Q => PHB); +PDIFF_SYNC_P1_REG_Z580: FD1S3DX port map ( +D => PDIFF_SYNC, +CK => pll_refclki, +CD => sli_rst, +Q => PDIFF_SYNC_P1); +\PCOUNT[0]_REG_Z582\: FD1S3DX port map ( +D => PCOUNT_S(0), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(0)); +\PCOUNT_DIFF[0]_REG_Z584\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_I(0), +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_0); +\PCOUNT[1]_REG_Z586\: FD1S3DX port map ( +D => PCOUNT_S(1), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(1)); +\PCOUNT_DIFF[1]_REG_Z588\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_1_0_S0, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_1); +\PCOUNT_DIFF[2]_REG_Z590\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_1_0_S1, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_2); +\PCOUNT[2]_REG_Z592\: FD1S3DX port map ( +D => PCOUNT_S(2), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(2)); +\PCOUNT_DIFF[3]_REG_Z594\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_3_0_S0, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_3); +\PCOUNT[3]_REG_Z596\: FD1S3DX port map ( +D => PCOUNT_S(3), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(3)); +\PCOUNT_DIFF[4]_REG_Z598\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_3_0_S1, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_4); +\PCOUNT[4]_REG_Z600\: FD1S3DX port map ( +D => PCOUNT_S(4), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(4)); +\PCOUNT_DIFF[5]_REG_Z602\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_5_0_S0, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_5); +\PCOUNT[5]_REG_Z604\: FD1S3DX port map ( +D => PCOUNT_S(5), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(5)); +\PCOUNT[6]_REG_Z606\: FD1S3DX port map ( +D => PCOUNT_S(6), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(6)); +\PCOUNT_DIFF[6]_REG_Z608\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_5_0_S1, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_6); +\PCOUNT[7]_REG_Z610\: FD1S3DX port map ( +D => PCOUNT_S(7), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(7)); +\PCOUNT_DIFF[7]_REG_Z612\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_7_0_S0, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_7); +\PCOUNT[8]_REG_Z614\: FD1S3DX port map ( +D => PCOUNT_S(8), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(8)); +\PCOUNT_DIFF[8]_REG_Z616\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_7_0_S1, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_8); +\PCOUNT_DIFF[9]_REG_Z618\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_9_0_S0, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_9); +\PCOUNT[9]_REG_Z620\: FD1S3DX port map ( +D => PCOUNT_S(9), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(9)); +\PCOUNT[10]_REG_Z622\: FD1S3DX port map ( +D => PCOUNT_S(10), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(10)); +\PCOUNT_DIFF[10]_REG_Z624\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_9_0_S1, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_10); +\PCOUNT_DIFF[11]_REG_Z626\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_11_0_S0, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_11); +\PCOUNT[11]_REG_Z628\: FD1S3DX port map ( +D => PCOUNT_S(11), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(11)); +\PCOUNT[12]_REG_Z630\: FD1S3DX port map ( +D => PCOUNT_S(12), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(12)); +\PCOUNT_DIFF[12]_REG_Z632\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_11_0_S1, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_12); +\PCOUNT_DIFF[13]_REG_Z634\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_13_0_S0, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_13); +\PCOUNT[13]_REG_Z636\: FD1S3DX port map ( +D => PCOUNT_S(13), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(13)); +\PCOUNT_DIFF[14]_REG_Z638\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_13_0_S1, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_14); +\PCOUNT[14]_REG_Z640\: FD1S3DX port map ( +D => PCOUNT_S(14), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(14)); +\PCOUNT[15]_REG_Z642\: FD1S3DX port map ( +D => PCOUNT_S(15), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(15)); +\PCOUNT_DIFF[15]_REG_Z644\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_15_0_S0, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_15); +\PCOUNT[16]_REG_Z646\: FD1S3DX port map ( +D => PCOUNT_S(16), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(16)); +\PCOUNT_DIFF[16]_REG_Z648\: FD1P3DX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_15_0_S1, +SP => N_7, +CK => tx_pclk, +CD => sli_rst, +Q => UN13_LOCK_16); +\PCOUNT_DIFF[17]_REG_Z650\: FD1P3DX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_17_0_S0, +SP => N_7, +CK => tx_pclk, +CD => sli_rst, +Q => UN13_LOCK_17); +\PCOUNT[17]_REG_Z652\: FD1S3DX port map ( +D => PCOUNT_S(17), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(17)); +\PCOUNT_DIFF[18]_REG_Z654\: FD1P3DX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_17_0_S1, +SP => N_7, +CK => tx_pclk, +CD => sli_rst, +Q => UN13_LOCK_18); +\PCOUNT[18]_REG_Z656\: FD1S3DX port map ( +D => PCOUNT_S(18), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(18)); +\PCOUNT[19]_REG_Z658\: FD1S3DX port map ( +D => PCOUNT_S(19), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(19)); +\PCOUNT_DIFF[19]_REG_Z660\: FD1P3DX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_19_0_S0, +SP => N_7, +CK => tx_pclk, +CD => sli_rst, +Q => UN13_LOCK_19); +\PCOUNT[20]_REG_Z662\: FD1S3DX port map ( +D => PCOUNT_S(20), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(20)); +\PCOUNT_DIFF[20]_REG_Z664\: FD1P3DX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_19_0_S1, +SP => N_7, +CK => tx_pclk, +CD => sli_rst, +Q => UN13_LOCK_20); +\PCOUNT_DIFF[21]_REG_Z666\: FD1P3DX port map ( +D => UN1_PCOUNT_DIFF_1_S_21_0_S0, +SP => N_7, +CK => tx_pclk, +CD => sli_rst, +Q => UN13_LOCK_21); +\PCOUNT[21]_REG_Z668\: FD1S3DX port map ( +D => PCOUNT_S(21), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(21)); +LOCK_REG_Z670: FD1P3DX port map ( +D => LOCK_5, +SP => LOCK_1_SQMUXA_I, +CK => pll_refclki, +CD => sli_rst, +Q => LOCK); +\GENBLK5.RDIFF_COMP_LOCK[2]_REG_Z672\: FD1S3DX port map ( +D => VCC, +CK => pll_refclki, +CD => sli_rst, +Q => RDIFF_COMP_LOCK(2)); +\SLL_STATE_RNO[0]\: LUT4 +generic map( + init => X"E050" +) +port map ( +A => N_98, +B => LOCK, +C => RSTAT_PCLK, +D => SLL_STATE(0), +Z => N_95_I); +RTC_PUL5_0_0: LUT4 +generic map( + init => X"FF80" +) +port map ( +A => RTC_PUL5_0_O3, +B => RTC_PUL5_0_A3_6, +C => RTC_PUL5_0_A3_7, +D => UN1_RCOUNT_1_0_A3, +Z => RTC_PUL5); +RSTAT_PCLK_2_IV: LUT4 +generic map( + init => X"AEEE" +) +port map ( +A => RHB_WAIT_CNT12, +B => RSTAT_PCLK, +C => UN1_RHB_WAIT_CNT_4, +D => UN1_RHB_WAIT_CNT_5, +Z => RSTAT_PCLK_2); +\SLL_STATE_RNO[1]\: LUT4 +generic map( + init => X"8088" +) +port map ( +A => N_99, +B => RSTAT_PCLK, +C => SLL_STATE(1), +D => UNLOCK, +Z => N_97_I); +RTC_CTRL4_0_A3: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RTC_CTRL4_0_A3_1, +B => RTC_CTRL4_0_A3_12_4, +C => RTC_CTRL4_0_A3_12_5, +D => RTC_CTRL4_10, +Z => RTC_CTRL4); +UN1_RCOUNT_1_0_A3_Z678: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RTC_CTRL4_0_A3_12_4, +B => RTC_CTRL4_0_A3_12_5, +C => RTC_CTRL4_10, +D => UN1_RCOUNT_1_0_A3_1, +Z => UN1_RCOUNT_1_0_A3); +LOCK_1_SQMUXA_I_Z679: LUT4 +generic map( + init => X"7575" +) +port map ( +A => LOCK, +B => PDIFF_SYNC, +C => PDIFF_SYNC_P1, +D => VCC, +Z => LOCK_1_SQMUXA_I); +UNLOCK_1_SQMUXA_I_Z680: LUT4 +generic map( + init => X"4F4F" +) +port map ( +A => PDIFF_SYNC, +B => PDIFF_SYNC_P1, +C => UNLOCK, +D => VCC, +Z => UNLOCK_1_SQMUXA_I); +RTC_PUL5_0_O3_Z681: LUT4 +generic map( + init => X"AAAB" +) +port map ( +A => N_6, +B => RCOUNT(1), +C => RCOUNT(2), +D => RCOUNT(3), +Z => RTC_PUL5_0_O3); +RTC_PUL5_0_A3_7_Z682: LUT4 +generic map( + init => X"1010" +) +port map ( +A => RCOUNT(7), +B => RCOUNT(8), +C => RTC_PUL5_0_A3_5, +D => VCC, +Z => RTC_PUL5_0_A3_7); +\SLL_STATE_NS_I_M4[1]\: LUT4 +generic map( + init => X"EF20" +) +port map ( +A => LOCK, +B => RTC_PUL, +C => RTC_PUL_P1, +D => SLL_STATE(1), +Z => N_99); +PLL_LOCK_RNO: LUT4 +generic map( + init => X"8888" +) +port map ( +A => SLL_STATE(0), +B => SLL_STATE(1), +C => VCC, +D => VCC, +Z => N_53_I); +\PHB_CNT_RNO[2]_Z685\: LUT4 +generic map( + init => X"7878" +) +port map ( +A => PHB_CNT(0), +B => PHB_CNT(1), +C => PHB_CNT(2), +D => VCC, +Z => PHB_CNT_RNO(2)); +\SLL_STATE_NS_I_O4[0]\: LUT4 +generic map( + init => X"BFBF" +) +port map ( +A => RTC_PUL, +B => RTC_PUL_P1, +C => SLL_STATE(1), +D => VCC, +Z => N_98); +RTC_CTRL4_0_A3_10: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RCOUNT(1), +B => RCOUNT(3), +C => RCOUNT(6), +D => RCOUNT(15), +Z => RTC_CTRL4_10); +UN1_RHB_WAIT_CNT_4_Z688: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RHB_WAIT_CNT(4), +B => RHB_WAIT_CNT(5), +C => RHB_WAIT_CNT(6), +D => RHB_WAIT_CNT(7), +Z => UN1_RHB_WAIT_CNT_4); +UN1_RHB_WAIT_CNT_5_Z689: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RHB_WAIT_CNT(0), +B => RHB_WAIT_CNT(1), +C => RHB_WAIT_CNT(2), +D => RHB_WAIT_CNT(3), +Z => UN1_RHB_WAIT_CNT_5); +RTC_CTRL4_0_A3_12_4_Z690: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RCOUNT(11), +B => RCOUNT(12), +C => RCOUNT(13), +D => RCOUNT(14), +Z => RTC_CTRL4_0_A3_12_4); +RTC_CTRL4_0_A3_12_5_Z691: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RCOUNT(7), +B => RCOUNT(8), +C => RCOUNT(9), +D => RCOUNT(10), +Z => RTC_CTRL4_0_A3_12_5); +RTC_PUL5_0_A3_5_Z692: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RCOUNT(6), +B => RCOUNT(13), +C => RCOUNT(14), +D => RCOUNT(15), +Z => RTC_PUL5_0_A3_5); +RTC_PUL5_0_A3_6_Z693: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RCOUNT(9), +B => RCOUNT(10), +C => RCOUNT(11), +D => RCOUNT(12), +Z => RTC_PUL5_0_A3_6); +PCOUNT10_0_O3: LUT4 +generic map( + init => X"DDDD" +) +port map ( +A => PPUL_SYNC_P1, +B => PPUL_SYNC_P2, +C => VCC, +D => VCC, +Z => N_8); +\PHB_CNT_RNO[1]_Z695\: LUT4 +generic map( + init => X"6666" +) +port map ( +A => PHB_CNT(0), +B => PHB_CNT(1), +C => VCC, +D => VCC, +Z => PHB_CNT_RNO(1)); +RTC_CTRL4_0_O3: LUT4 +generic map( + init => X"7777" +) +port map ( +A => RCOUNT(4), +B => RCOUNT(5), +C => VCC, +D => VCC, +Z => N_6); +UNLOCK_5_Z697: LUT4 +generic map( + init => X"8888" +) +port map ( +A => PDIFF_SYNC, +B => UN13_UNLOCK_CRY_21, +C => VCC, +D => VCC, +Z => UNLOCK_5); +LOCK_5_Z698: LUT4 +generic map( + init => X"8888" +) +port map ( +A => PDIFF_SYNC, +B => UN13_LOCK_CRY_21_I, +C => VCC, +D => VCC, +Z => LOCK_5); +RHB_WAIT_CNT12_Z699: LUT4 +generic map( + init => X"2222" +) +port map ( +A => RHB_SYNC_P1, +B => RHB_SYNC_P2, +C => VCC, +D => VCC, +Z => RHB_WAIT_CNT12); +\UN1_PCOUNT_DIFF[0]_Z700\: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_0, +B => PCOUNT(0), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF(0)); +UN1_RCOUNT_1_0_A3_1_Z701: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RCOUNT(2), +B => RCOUNT(0), +C => RCOUNT(5), +D => RCOUNT(4), +Z => UN1_RCOUNT_1_0_A3_1); +RHB_SYNC_P2_RNIU9TG1: LUT4 +generic map( + init => X"7077" +) +port map ( +A => UN1_RHB_WAIT_CNT_5, +B => UN1_RHB_WAIT_CNT_4, +C => RHB_SYNC_P2, +D => RHB_SYNC_P1, +Z => \RHB_WAIT_CNT_\); +\PCOUNT_CRY_0[0]\: CCU2C +generic map( + INIT0 => X"500c", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => N_8, +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(0), +C1 => VCC, +D1 => VCC, +CIN => N_9, +COUT => PCOUNT_CRY(0), +S0 => PCOUNT_CRY_0_S0(0), +S1 => PCOUNT_S(0)); +\PCOUNT_CRY_0[1]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(1), +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(2), +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(0), +COUT => PCOUNT_CRY(2), +S0 => PCOUNT_S(1), +S1 => PCOUNT_S(2)); +\PCOUNT_CRY_0[3]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(3), +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(4), +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(2), +COUT => PCOUNT_CRY(4), +S0 => PCOUNT_S(3), +S1 => PCOUNT_S(4)); +\PCOUNT_CRY_0[5]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(5), +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(6), +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(4), +COUT => PCOUNT_CRY(6), +S0 => PCOUNT_S(5), +S1 => PCOUNT_S(6)); +\PCOUNT_CRY_0[7]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(7), +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(8), +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(6), +COUT => PCOUNT_CRY(8), +S0 => PCOUNT_S(7), +S1 => PCOUNT_S(8)); +\PCOUNT_CRY_0[9]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(9), +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(10), +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(8), +COUT => PCOUNT_CRY(10), +S0 => PCOUNT_S(9), +S1 => PCOUNT_S(10)); +\PCOUNT_CRY_0[11]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(11), +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(12), +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(10), +COUT => PCOUNT_CRY(12), +S0 => PCOUNT_S(11), +S1 => PCOUNT_S(12)); +\PCOUNT_CRY_0[13]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(13), +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(14), +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(12), +COUT => PCOUNT_CRY(14), +S0 => PCOUNT_S(13), +S1 => PCOUNT_S(14)); +\PCOUNT_CRY_0[15]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(15), +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(16), +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(14), +COUT => PCOUNT_CRY(16), +S0 => PCOUNT_S(15), +S1 => PCOUNT_S(16)); +\PCOUNT_CRY_0[17]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(17), +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(18), +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(16), +COUT => PCOUNT_CRY(18), +S0 => PCOUNT_S(17), +S1 => PCOUNT_S(18)); +\PCOUNT_CRY_0[19]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(19), +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(20), +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(18), +COUT => PCOUNT_CRY(20), +S0 => PCOUNT_S(19), +S1 => PCOUNT_S(20)); +\PCOUNT_S_0[21]\: CCU2C +generic map( + INIT0 => X"800a", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(21), +C0 => VCC, +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(20), +COUT => PCOUNT_S_0_COUT(21), +S0 => PCOUNT_S(21), +S1 => PCOUNT_S_0_S1(21)); +\RCOUNT_CRY_0[0]\: CCU2C +generic map( + INIT0 => X"5003", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => UN1_RCOUNT_1_0_A3, +C0 => VCC, +D0 => VCC, +A1 => UN1_RCOUNT_1_0_A3, +B1 => RCOUNT(0), +C1 => VCC, +D1 => VCC, +CIN => N_5, +COUT => RCOUNT_CRY(0), +S0 => RCOUNT_CRY_0_S0(0), +S1 => RCOUNT_S(0)); +\RCOUNT_CRY_0[1]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_RCOUNT_1_0_A3, +B0 => RCOUNT(1), +C0 => VCC, +D0 => VCC, +A1 => UN1_RCOUNT_1_0_A3, +B1 => RCOUNT(2), +C1 => VCC, +D1 => VCC, +CIN => RCOUNT_CRY(0), +COUT => RCOUNT_CRY(2), +S0 => RCOUNT_S(1), +S1 => RCOUNT_S(2)); +\RCOUNT_CRY_0[3]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_RCOUNT_1_0_A3, +B0 => RCOUNT(3), +C0 => VCC, +D0 => VCC, +A1 => UN1_RCOUNT_1_0_A3, +B1 => RCOUNT(4), +C1 => VCC, +D1 => VCC, +CIN => RCOUNT_CRY(2), +COUT => RCOUNT_CRY(4), +S0 => RCOUNT_S(3), +S1 => RCOUNT_S(4)); +\RCOUNT_CRY_0[5]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_RCOUNT_1_0_A3, +B0 => RCOUNT(5), +C0 => VCC, +D0 => VCC, +A1 => UN1_RCOUNT_1_0_A3, +B1 => RCOUNT(6), +C1 => VCC, +D1 => VCC, +CIN => RCOUNT_CRY(4), +COUT => RCOUNT_CRY(6), +S0 => RCOUNT_S(5), +S1 => RCOUNT_S(6)); +\RCOUNT_CRY_0[7]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_RCOUNT_1_0_A3, +B0 => RCOUNT(7), +C0 => VCC, +D0 => VCC, +A1 => UN1_RCOUNT_1_0_A3, +B1 => RCOUNT(8), +C1 => VCC, +D1 => VCC, +CIN => RCOUNT_CRY(6), +COUT => RCOUNT_CRY(8), +S0 => RCOUNT_S(7), +S1 => RCOUNT_S(8)); +\RCOUNT_CRY_0[9]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_RCOUNT_1_0_A3, +B0 => RCOUNT(9), +C0 => VCC, +D0 => VCC, +A1 => UN1_RCOUNT_1_0_A3, +B1 => RCOUNT(10), +C1 => VCC, +D1 => VCC, +CIN => RCOUNT_CRY(8), +COUT => RCOUNT_CRY(10), +S0 => RCOUNT_S(9), +S1 => RCOUNT_S(10)); +\RCOUNT_CRY_0[11]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_RCOUNT_1_0_A3, +B0 => RCOUNT(11), +C0 => VCC, +D0 => VCC, +A1 => UN1_RCOUNT_1_0_A3, +B1 => RCOUNT(12), +C1 => VCC, +D1 => VCC, +CIN => RCOUNT_CRY(10), +COUT => RCOUNT_CRY(12), +S0 => RCOUNT_S(11), +S1 => RCOUNT_S(12)); +\RCOUNT_CRY_0[13]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_RCOUNT_1_0_A3, +B0 => RCOUNT(13), +C0 => VCC, +D0 => VCC, +A1 => UN1_RCOUNT_1_0_A3, +B1 => RCOUNT(14), +C1 => VCC, +D1 => VCC, +CIN => RCOUNT_CRY(12), +COUT => RCOUNT_CRY(14), +S0 => RCOUNT_S(13), +S1 => RCOUNT_S(14)); +\RCOUNT_S_0[15]\: CCU2C +generic map( + INIT0 => X"4005", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_RCOUNT_1_0_A3, +B0 => RCOUNT(15), +C0 => VCC, +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => RCOUNT_CRY(14), +COUT => RCOUNT_S_0_COUT(15), +S0 => RCOUNT_S(15), +S1 => RCOUNT_S_0_S1(15)); +\RHB_WAIT_CNT_CRY_0[0]\: CCU2C +generic map( + INIT0 => X"500c", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => \RHB_WAIT_CNT_\, +C0 => VCC, +D0 => VCC, +A1 => \RHB_WAIT_CNT_\, +B1 => RHB_WAIT_CNT(0), +C1 => VCC, +D1 => VCC, +CIN => N_4, +COUT => RHB_WAIT_CNT_CRY(0), +S0 => RHB_WAIT_CNT_CRY_0_S0(0), +S1 => RHB_WAIT_CNT_S(0)); +\RHB_WAIT_CNT_CRY_0[1]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RHB_WAIT_CNT_\, +B0 => RHB_WAIT_CNT(1), +C0 => VCC, +D0 => VCC, +A1 => \RHB_WAIT_CNT_\, +B1 => RHB_WAIT_CNT(2), +C1 => VCC, +D1 => VCC, +CIN => RHB_WAIT_CNT_CRY(0), +COUT => RHB_WAIT_CNT_CRY(2), +S0 => RHB_WAIT_CNT_S(1), +S1 => RHB_WAIT_CNT_S(2)); +\RHB_WAIT_CNT_CRY_0[3]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RHB_WAIT_CNT_\, +B0 => RHB_WAIT_CNT(3), +C0 => VCC, +D0 => VCC, +A1 => \RHB_WAIT_CNT_\, +B1 => RHB_WAIT_CNT(4), +C1 => VCC, +D1 => VCC, +CIN => RHB_WAIT_CNT_CRY(2), +COUT => RHB_WAIT_CNT_CRY(4), +S0 => RHB_WAIT_CNT_S(3), +S1 => RHB_WAIT_CNT_S(4)); +\RHB_WAIT_CNT_CRY_0[5]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RHB_WAIT_CNT_\, +B0 => RHB_WAIT_CNT(5), +C0 => VCC, +D0 => VCC, +A1 => \RHB_WAIT_CNT_\, +B1 => RHB_WAIT_CNT(6), +C1 => VCC, +D1 => VCC, +CIN => RHB_WAIT_CNT_CRY(4), +COUT => RHB_WAIT_CNT_CRY(6), +S0 => RHB_WAIT_CNT_S(5), +S1 => RHB_WAIT_CNT_S(6)); +\RHB_WAIT_CNT_S_0[7]\: CCU2C +generic map( + INIT0 => X"800a", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RHB_WAIT_CNT_\, +B0 => RHB_WAIT_CNT(7), +C0 => VCC, +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => RHB_WAIT_CNT_CRY(6), +COUT => RHB_WAIT_CNT_S_0_COUT(7), +S0 => RHB_WAIT_CNT_S(7), +S1 => RHB_WAIT_CNT_S_0_S1(7)); +UN1_PCOUNT_DIFF_1_CRY_0_0: CCU2C +generic map( + INIT0 => X"5003", + INIT1 => X"500f", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF(0), +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => N_3, +COUT => UN1_PCOUNT_DIFF_1_CRY_0, +S0 => UN1_PCOUNT_DIFF_1_CRY_0_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_0_0_S1); +UN1_PCOUNT_DIFF_1_CRY_1_0: CCU2C +generic map( + INIT0 => X"a003", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_PCOUNT_DIFF_1_AXB_1, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF_1_AXB_2, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_0, +COUT => UN1_PCOUNT_DIFF_1_CRY_2, +S0 => UN1_PCOUNT_DIFF_1_CRY_1_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_1_0_S1); +UN1_PCOUNT_DIFF_1_CRY_3_0: CCU2C +generic map( + INIT0 => X"a003", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_PCOUNT_DIFF_1_AXB_3, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF_1_AXB_4, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_2, +COUT => UN1_PCOUNT_DIFF_1_CRY_4, +S0 => UN1_PCOUNT_DIFF_1_CRY_3_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_3_0_S1); +UN1_PCOUNT_DIFF_1_CRY_5_0: CCU2C +generic map( + INIT0 => X"a003", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_PCOUNT_DIFF_1_AXB_5, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF_1_AXB_6, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_4, +COUT => UN1_PCOUNT_DIFF_1_CRY_6, +S0 => UN1_PCOUNT_DIFF_1_CRY_5_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_5_0_S1); +UN1_PCOUNT_DIFF_1_CRY_7_0: CCU2C +generic map( + INIT0 => X"a003", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_PCOUNT_DIFF_1_AXB_7, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF_1_AXB_8, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_6, +COUT => UN1_PCOUNT_DIFF_1_CRY_8, +S0 => UN1_PCOUNT_DIFF_1_CRY_7_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_7_0_S1); +UN1_PCOUNT_DIFF_1_CRY_9_0: CCU2C +generic map( + INIT0 => X"a003", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_PCOUNT_DIFF_1_AXB_9, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF_1_AXB_10, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_8, +COUT => UN1_PCOUNT_DIFF_1_CRY_10, +S0 => UN1_PCOUNT_DIFF_1_CRY_9_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_9_0_S1); +UN1_PCOUNT_DIFF_1_CRY_11_0: CCU2C +generic map( + INIT0 => X"a003", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_PCOUNT_DIFF_1_AXB_11, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF_1_AXB_12, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_10, +COUT => UN1_PCOUNT_DIFF_1_CRY_12, +S0 => UN1_PCOUNT_DIFF_1_CRY_11_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_11_0_S1); +UN1_PCOUNT_DIFF_1_CRY_13_0: CCU2C +generic map( + INIT0 => X"a003", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_PCOUNT_DIFF_1_AXB_13, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF_1_AXB_14, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_12, +COUT => UN1_PCOUNT_DIFF_1_CRY_14, +S0 => UN1_PCOUNT_DIFF_1_CRY_13_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_13_0_S1); +UN1_PCOUNT_DIFF_1_CRY_15_0: CCU2C +generic map( + INIT0 => X"a003", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_PCOUNT_DIFF_1_AXB_15, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF_1_AXB_16, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_14, +COUT => UN1_PCOUNT_DIFF_1_CRY_16, +S0 => UN1_PCOUNT_DIFF_1_CRY_15_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_15_0_S1); +UN1_PCOUNT_DIFF_1_CRY_17_0: CCU2C +generic map( + INIT0 => X"b404", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => RDIFF_COMP_LOCK(2), +C0 => UN1_PCOUNT_DIFF_1_CRY_17_0_RNO, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF_1_AXB_18, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_16, +COUT => UN1_PCOUNT_DIFF_1_CRY_18, +S0 => UN1_PCOUNT_DIFF_1_CRY_17_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_17_0_S1); +UN1_PCOUNT_DIFF_1_CRY_19_0: CCU2C +generic map( + INIT0 => X"a003", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_PCOUNT_DIFF_1_AXB_19, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF_1_AXB_20, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_18, +COUT => UN1_PCOUNT_DIFF_1_CRY_20, +S0 => UN1_PCOUNT_DIFF_1_CRY_19_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_19_0_S1); +UN1_PCOUNT_DIFF_1_S_21_0: CCU2C +generic map( + INIT0 => X"350a", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => PCOUNT(21), +B0 => UN13_LOCK_21, +C0 => N_8, +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_20, +COUT => UN1_PCOUNT_DIFF_1_S_21_0_COUT, +S0 => UN1_PCOUNT_DIFF_1_S_21_0_S0, +S1 => UN1_PCOUNT_DIFF_1_S_21_0_S1); +UN13_LOCK_CRY_0_0: CCU2C +generic map( + INIT0 => X"5003", + INIT1 => X"900a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_0, +B1 => RDIFF_COMP_LOCK(2), +C1 => VCC, +D1 => VCC, +CIN => N_2, +COUT => UN13_LOCK_CRY_0, +S0 => UN13_LOCK_CRY_0_0_S0, +S1 => UN13_LOCK_CRY_0_0_S1); +UN13_LOCK_CRY_1_0: CCU2C +generic map( + INIT0 => X"900a", + INIT1 => X"900a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_1, +B0 => RDIFF_COMP_LOCK(2), +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_2, +B1 => RDIFF_COMP_LOCK(2), +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_0, +COUT => UN13_LOCK_CRY_2, +S0 => UN13_LOCK_CRY_1_0_S0, +S1 => UN13_LOCK_CRY_1_0_S1); +UN13_LOCK_CRY_3_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_3, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_4, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_2, +COUT => UN13_LOCK_CRY_4, +S0 => UN13_LOCK_CRY_3_0_S0, +S1 => UN13_LOCK_CRY_3_0_S1); +UN13_LOCK_CRY_5_0: CCU2C +generic map( + INIT0 => X"900a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_5, +B0 => RDIFF_COMP_LOCK(2), +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_6, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_4, +COUT => UN13_LOCK_CRY_6, +S0 => UN13_LOCK_CRY_5_0_S0, +S1 => UN13_LOCK_CRY_5_0_S1); +UN13_LOCK_CRY_7_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_7, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_8, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_6, +COUT => UN13_LOCK_CRY_8, +S0 => UN13_LOCK_CRY_7_0_S0, +S1 => UN13_LOCK_CRY_7_0_S1); +UN13_LOCK_CRY_9_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_9, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_10, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_8, +COUT => UN13_LOCK_CRY_10, +S0 => UN13_LOCK_CRY_9_0_S0, +S1 => UN13_LOCK_CRY_9_0_S1); +UN13_LOCK_CRY_11_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_11, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_12, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_10, +COUT => UN13_LOCK_CRY_12, +S0 => UN13_LOCK_CRY_11_0_S0, +S1 => UN13_LOCK_CRY_11_0_S1); +UN13_LOCK_CRY_13_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_13, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_14, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_12, +COUT => UN13_LOCK_CRY_14, +S0 => UN13_LOCK_CRY_13_0_S0, +S1 => UN13_LOCK_CRY_13_0_S1); +UN13_LOCK_CRY_15_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_15, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_16, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_14, +COUT => UN13_LOCK_CRY_16, +S0 => UN13_LOCK_CRY_15_0_S0, +S1 => UN13_LOCK_CRY_15_0_S1); +UN13_LOCK_CRY_17_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_17, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_18, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_16, +COUT => UN13_LOCK_CRY_18, +S0 => UN13_LOCK_CRY_17_0_S0, +S1 => UN13_LOCK_CRY_17_0_S1); +UN13_LOCK_CRY_19_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_19, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_20, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_18, +COUT => UN13_LOCK_CRY_20, +S0 => UN13_LOCK_CRY_19_0_S0, +S1 => UN13_LOCK_CRY_19_0_S1); +UN13_LOCK_CRY_21_0: CCU2C +generic map( + INIT0 => X"500f", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_21, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_20, +COUT => UN13_LOCK_CRY_21_0_COUT, +S0 => UN13_LOCK_CRY_21_0_S0, +S1 => UN13_LOCK_CRY_21_I); +UN13_UNLOCK_CRY_0_0: CCU2C +generic map( + INIT0 => X"5003", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_0, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => N_1, +COUT => UN13_UNLOCK_CRY_0, +S0 => UN13_UNLOCK_CRY_0_0_S0, +S1 => UN13_UNLOCK_CRY_0_0_S1); +UN13_UNLOCK_CRY_1_0: CCU2C +generic map( + INIT0 => X"900a", + INIT1 => X"900a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_1, +B0 => RDIFF_COMP_LOCK(2), +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_2, +B1 => RDIFF_COMP_LOCK(2), +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_0, +COUT => UN13_UNLOCK_CRY_2, +S0 => UN13_UNLOCK_CRY_1_0_S0, +S1 => UN13_UNLOCK_CRY_1_0_S1); +UN13_UNLOCK_CRY_3_0: CCU2C +generic map( + INIT0 => X"900a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_3, +B0 => RDIFF_COMP_LOCK(2), +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_4, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_2, +COUT => UN13_UNLOCK_CRY_4, +S0 => UN13_UNLOCK_CRY_3_0_S0, +S1 => UN13_UNLOCK_CRY_3_0_S1); +UN13_UNLOCK_CRY_5_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"900a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_5, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_6, +B1 => RDIFF_COMP_LOCK(2), +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_4, +COUT => UN13_UNLOCK_CRY_6, +S0 => UN13_UNLOCK_CRY_5_0_S0, +S1 => UN13_UNLOCK_CRY_5_0_S1); +UN13_UNLOCK_CRY_7_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_7, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_8, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_6, +COUT => UN13_UNLOCK_CRY_8, +S0 => UN13_UNLOCK_CRY_7_0_S0, +S1 => UN13_UNLOCK_CRY_7_0_S1); +UN13_UNLOCK_CRY_9_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_9, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_10, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_8, +COUT => UN13_UNLOCK_CRY_10, +S0 => UN13_UNLOCK_CRY_9_0_S0, +S1 => UN13_UNLOCK_CRY_9_0_S1); +UN13_UNLOCK_CRY_11_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_11, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_12, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_10, +COUT => UN13_UNLOCK_CRY_12, +S0 => UN13_UNLOCK_CRY_11_0_S0, +S1 => UN13_UNLOCK_CRY_11_0_S1); +UN13_UNLOCK_CRY_13_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_13, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_14, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_12, +COUT => UN13_UNLOCK_CRY_14, +S0 => UN13_UNLOCK_CRY_13_0_S0, +S1 => UN13_UNLOCK_CRY_13_0_S1); +UN13_UNLOCK_CRY_15_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_15, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_16, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_14, +COUT => UN13_UNLOCK_CRY_16, +S0 => UN13_UNLOCK_CRY_15_0_S0, +S1 => UN13_UNLOCK_CRY_15_0_S1); +UN13_UNLOCK_CRY_17_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_17, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_18, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_16, +COUT => UN13_UNLOCK_CRY_18, +S0 => UN13_UNLOCK_CRY_17_0_S0, +S1 => UN13_UNLOCK_CRY_17_0_S1); +UN13_UNLOCK_CRY_19_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_19, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_20, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_18, +COUT => UN13_UNLOCK_CRY_20, +S0 => UN13_UNLOCK_CRY_19_0_S0, +S1 => UN13_UNLOCK_CRY_19_0_S1); +UN13_UNLOCK_CRY_21_0: CCU2C +generic map( + INIT0 => X"500f", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_21, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_20, +COUT => UN13_UNLOCK_CRY_21_0_COUT, +S0 => UN13_UNLOCK_CRY_21_0_S0, +S1 => UN13_UNLOCK_CRY_21); +PHB_SYNC_INST: sync_0s port map ( +phb => PHB, +rhb_sync => RHB_SYNC, +sli_rst => sli_rst, +pll_refclki => pll_refclki); +RTC_SYNC_INST: sync_0s_6 port map ( +rtc_pul => RTC_PUL, +ppul_sync => PPUL_SYNC, +sli_rst => sli_rst, +tx_pclk => tx_pclk); +PDIFF_SYNC_INST: sync_0s_0 port map ( +ppul_sync => PPUL_SYNC, +pdiff_sync => PDIFF_SYNC, +sli_rst => sli_rst, +pll_refclki => pll_refclki); +VCC_0: VHI port map ( +Z => VCC); +II_GND: VLO port map ( +Z => GND); +end beh; + +-- +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; +library synplify; +use synplify.components.all; +library pmi; +use pmi.pmi_components.all; +library ecp5um; +use ecp5um.components.all; + +entity sgmii_ecp5 is +port( +hdoutp : out std_logic; +hdoutn : out std_logic; +hdinp : in std_logic; +hdinn : in std_logic; +rxrefclk : in std_logic; +tx_pclk : out std_logic; +txi_clk : in std_logic; +txdata : in std_logic_vector(7 downto 0); +tx_k : in std_logic_vector(0 downto 0); +xmit : in std_logic_vector(0 downto 0); +tx_disp_correct : in std_logic_vector(0 downto 0); +rxdata : out std_logic_vector(7 downto 0); +rx_k : out std_logic_vector(0 downto 0); +rx_disp_err : out std_logic_vector(0 downto 0); +rx_cv_err : out std_logic_vector(0 downto 0); +signal_detect_c : in std_logic; +rx_los_low_s : out std_logic; +lsm_status_s : out std_logic; +ctc_urun_s : out std_logic; +ctc_orun_s : out std_logic; +rx_cdr_lol_s : out std_logic; +ctc_ins_s : out std_logic; +ctc_del_s : out std_logic; +sli_rst : in std_logic; +tx_pwrup_c : in std_logic; +rx_pwrup_c : in std_logic; +sci_wrdata : in std_logic_vector(7 downto 0); +sci_addr : in std_logic_vector(5 downto 0); +sci_rddata : out std_logic_vector(7 downto 0); +sci_en_dual : in std_logic; +sci_sel_dual : in std_logic; +sci_en : in std_logic; +sci_sel : in std_logic; +sci_rd : in std_logic; +sci_wrn : in std_logic; +sci_int : out std_logic; +cyawstn : in std_logic; +serdes_pdb : in std_logic; +pll_refclki : in std_logic; +rsl_disable : in std_logic; +rsl_rst : in std_logic; +serdes_rst_dual_c : in std_logic; +rst_dual_c : in std_logic; +tx_serdes_rst_c : in std_logic; +tx_pcs_rst_c : in std_logic; +pll_lol : out std_logic; +rsl_tx_rdy : out std_logic; +rx_serdes_rst_c : in std_logic; +rx_pcs_rst_c : in std_logic; +rsl_rx_rdy : out std_logic); +end sgmii_ecp5; + +architecture beh of sgmii_ecp5 is +signal TX_PCLK_11 : std_logic ; +signal RX_LOS_LOW_S_12 : std_logic ; +signal RX_CDR_LOL_S_13 : std_logic ; +signal RSL_TX_PCS_RST_C : std_logic ; +signal RSL_RX_PCS_RST_C : std_logic ; +signal RSL_RX_SERDES_RST_C : std_logic ; +signal RSL_SERDES_RST_DUAL_C : std_logic ; +signal RSL_TX_SERDES_RST_C : std_logic ; +signal N47_1 : std_logic ; +signal N48_1 : std_logic ; +signal N1_1 : std_logic ; +signal N2_1 : std_logic ; +signal N3_1 : std_logic ; +signal N4_1 : std_logic ; +signal N5_1 : std_logic ; +signal N49_1 : std_logic ; +signal N6_1 : std_logic ; +signal N50_1 : std_logic ; +signal N7_1 : std_logic ; +signal N51_1 : std_logic ; +signal N8_1 : std_logic ; +signal N52_1 : std_logic ; +signal N9_1 : std_logic ; +signal N53_1 : std_logic ; +signal N54_1 : std_logic ; +signal N55_1 : std_logic ; +signal N56_1 : std_logic ; +signal N57_1 : std_logic ; +signal N58_1 : std_logic ; +signal N59_1 : std_logic ; +signal N60_1 : std_logic ; +signal N61_1 : std_logic ; +signal N62_1 : std_logic ; +signal N63_1 : std_logic ; +signal N64_1 : std_logic ; +signal N65_1 : std_logic ; +signal N10_1 : std_logic ; +signal N66_1 : std_logic ; +signal N67_1 : std_logic ; +signal N68_1 : std_logic ; +signal N69_1 : std_logic ; +signal N70_1 : std_logic ; +signal N71_1 : std_logic ; +signal N72_1 : std_logic ; +signal N73_1 : std_logic ; +signal N74_1 : std_logic ; +signal N75_1 : std_logic ; +signal N76_1 : std_logic ; +signal N77_1 : std_logic ; +signal N78_1 : std_logic ; +signal N79_1 : std_logic ; +signal N80_1 : std_logic ; +signal N81_1 : std_logic ; +signal N82_1 : std_logic ; +signal N83_1 : std_logic ; +signal N84_1 : std_logic ; +signal N85_1 : std_logic ; +signal N86_1 : std_logic ; +signal N87_1 : std_logic ; +signal N88_1 : std_logic ; +signal N11_1 : std_logic ; +signal N89_1 : std_logic ; +signal N12_1 : std_logic ; +signal N90_1 : std_logic ; +signal N13_1 : std_logic ; +signal N91_1 : std_logic ; +signal N92_1 : std_logic ; +signal N93_1 : std_logic ; +signal N94_1 : std_logic ; +signal N95_1 : std_logic ; +signal N14_1 : std_logic ; +signal N96_1 : std_logic ; +signal N15_1 : std_logic ; +signal N97_1 : std_logic ; +signal N98_1 : std_logic ; +signal N99_1 : std_logic ; +signal N100_1 : std_logic ; +signal N101_1 : std_logic ; +signal N112_1 : std_logic ; +signal N16_1 : std_logic ; +signal N17_1 : std_logic ; +signal N18_1 : std_logic ; +signal N19_1 : std_logic ; +signal N20_1 : std_logic ; +signal N21_1 : std_logic ; +signal N22_1 : std_logic ; +signal N23_1 : std_logic ; +signal N24_1 : std_logic ; +signal N25_1 : std_logic ; +signal N26_1 : std_logic ; +signal N27_1 : std_logic ; +signal N28_1 : std_logic ; +signal N29_1 : std_logic ; +signal N30_1 : std_logic ; +signal N31_1 : std_logic ; +signal N32_1 : std_logic ; +signal N33_1 : std_logic ; +signal N34_1 : std_logic ; +signal N35_1 : std_logic ; +signal N36_1 : std_logic ; +signal N37_1 : std_logic ; +signal N38_1 : std_logic ; +signal N39_1 : std_logic ; +signal N40_1 : std_logic ; +signal N41_1 : std_logic ; +signal N42_1 : std_logic ; +signal N43_1 : std_logic ; +signal N46_1 : std_logic ; +signal TX_PCLK_I : std_logic ; +signal GND : std_logic ; +signal VCC : std_logic ; +signal \SLL_INST.PLL_LOCK_I_14\ : std_logic ; +component sgmii_ecp5sll_core_Z1_layer1 +port( +tx_pclk : in std_logic; +sli_rst : in std_logic; +pll_refclki : in std_logic; +pll_lock_i : out std_logic ); +end component; +component sgmii_ecp5rsl_core_Z2_layer1 +port( +rx_pcs_rst_c : in std_logic; +tx_pcs_rst_c : in std_logic; +tx_serdes_rst_c : in std_logic; +serdes_rst_dual_c : in std_logic; +rsl_tx_pcs_rst_c : out std_logic; +rsl_rx_serdes_rst_c : out std_logic; +rsl_serdes_rst_dual_c : out std_logic; +rsl_tx_serdes_rst_c : out std_logic; +rsl_tx_rdy : out std_logic; +pll_lock_i : in std_logic; +pll_refclki : in std_logic; +rsl_rx_rdy : out std_logic; +rsl_rst : in std_logic; +rxrefclk : in std_logic; +rsl_disable : in std_logic; +rx_serdes_rst_c : in std_logic; +rsl_rx_pcs_rst_c : out std_logic; +rst_dual_c : in std_logic; +rx_cdr_lol_s : in std_logic; +rx_los_low_s : in std_logic ); +end component; +begin +VCC_0: VHI port map ( +Z => VCC); +GND_0: VLO port map ( +Z => GND); +PUR_INST: PUR port map ( +PUR => VCC); +GSR_INST: GSR port map ( +GSR => VCC); +TX_PCLK_11 <= TX_PCLK_I; +DCU0_INST: DCUA +generic map( + D_MACROPDB => "0b1", + D_IB_PWDNB => "0b1", + D_XGE_MODE => "0b0", + D_LOW_MARK => "0d4", + D_HIGH_MARK => "0d12", + D_BUS8BIT_SEL => "0b0", + D_CDR_LOL_SET => "0b00", + D_BITCLK_LOCAL_EN => "0b1", + D_BITCLK_ND_EN => "0b0", + D_BITCLK_FROM_ND_EN => "0b0", + D_SYNC_LOCAL_EN => "0b1", + D_SYNC_ND_EN => "0b0", + CH0_UC_MODE => "0b0", + CH0_PCIE_MODE => "0b0", + CH0_RIO_MODE => "0b0", + CH0_WA_MODE => "0b0", + CH0_INVERT_RX => "0b0", + CH0_INVERT_TX => "0b0", + CH0_PRBS_SELECTION => "0b0", + CH0_GE_AN_ENABLE => "0b0", + CH0_PRBS_LOCK => "0b0", + CH0_PRBS_ENABLE => "0b0", + CH0_ENABLE_CG_ALIGN => "0b1", + CH0_TX_GEAR_MODE => "0b0", + CH0_RX_GEAR_MODE => "0b0", + CH0_PCS_DET_TIME_SEL => "0b00", + CH0_PCIE_EI_EN => "0b0", + CH0_TX_GEAR_BYPASS => "0b0", + CH0_ENC_BYPASS => "0b0", + CH0_SB_BYPASS => "0b0", + CH0_RX_SB_BYPASS => "0b0", + CH0_WA_BYPASS => "0b0", + CH0_DEC_BYPASS => "0b0", + CH0_CTC_BYPASS => "0b0", + CH0_RX_GEAR_BYPASS => "0b0", + CH0_LSM_DISABLE => "0b0", + CH0_MATCH_2_ENABLE => "0b1", + CH0_MATCH_4_ENABLE => "0b0", + CH0_MIN_IPG_CNT => "0b11", + CH0_CC_MATCH_1 => "0x000", + CH0_CC_MATCH_2 => "0x000", + CH0_CC_MATCH_3 => "0x1BC", + CH0_CC_MATCH_4 => "0x050", + CH0_UDF_COMMA_MASK => "0x3ff", + CH0_UDF_COMMA_A => "0x283", + CH0_UDF_COMMA_B => "0x17C", + CH0_RX_DCO_CK_DIV => "0b010", + CH0_RCV_DCC_EN => "0b0", + CH0_REQ_LVL_SET => "0b00", + CH0_REQ_EN => "0b1", + CH0_RTERM_RX => "0d22", + CH0_PDEN_SEL => "0b1", + CH0_LDR_RX2CORE_SEL => "0b0", + CH0_LDR_CORE2TX_SEL => "0b0", + CH0_TPWDNB => "0b1", + CH0_RATE_MODE_TX => "0b0", + CH0_RTERM_TX => "0d19", + CH0_TX_CM_SEL => "0b00", + CH0_TDRV_PRE_EN => "0b0", + CH0_TDRV_SLICE0_SEL => "0b01", + CH0_TDRV_SLICE1_SEL => "0b00", + CH0_TDRV_SLICE2_SEL => "0b01", + CH0_TDRV_SLICE3_SEL => "0b01", + CH0_TDRV_SLICE4_SEL => "0b01", + CH0_TDRV_SLICE5_SEL => "0b01", + CH0_TDRV_SLICE0_CUR => "0b101", + CH0_TDRV_SLICE1_CUR => "0b000", + CH0_TDRV_SLICE2_CUR => "0b11", + CH0_TDRV_SLICE3_CUR => "0b11", + CH0_TDRV_SLICE4_CUR => "0b11", + CH0_TDRV_SLICE5_CUR => "0b00", + CH0_TDRV_DAT_SEL => "0b00", + CH0_TX_DIV11_SEL => "0b0", + CH0_RPWDNB => "0b1", + CH0_RATE_MODE_RX => "0b0", + CH0_RLOS_SEL => "0b1", + CH0_RX_LOS_LVL => "0b010", + CH0_RX_LOS_CEQ => "0b11", + CH0_RX_LOS_HYST_EN => "0b0", + CH0_RX_LOS_EN => "0b1", + CH0_RX_DIV11_SEL => "0b0", + CH0_SEL_SD_RX_CLK => "0b0", + CH0_FF_RX_H_CLK_EN => "0b0", + CH0_FF_RX_F_CLK_DIS => "0b0", + CH0_FF_TX_H_CLK_EN => "0b0", + CH0_FF_TX_F_CLK_DIS => "0b0", + CH0_RX_RATE_SEL => "0d8", + CH0_TDRV_POST_EN => "0b0", + CH0_TX_POST_SIGN => "0b0", + CH0_TX_PRE_SIGN => "0b0", + CH0_RXTERM_CM => "0b11", + CH0_RXIN_CM => "0b11", + CH0_LEQ_OFFSET_SEL => "0b0", + CH0_LEQ_OFFSET_TRIM => "0b000", + D_TX_MAX_RATE => "1.25", + CH0_CDR_MAX_RATE => "1.25", + CH0_TXAMPLITUDE => "0d1100", + CH0_TXDEPRE => "DISABLED", + CH0_TXDEPOST => "DISABLED", + CH0_PROTOCOL => "GBE", + D_ISETLOS => "0d0", + D_SETIRPOLY_AUX => "0b00", + D_SETICONST_AUX => "0b00", + D_SETIRPOLY_CH => "0b00", + D_SETICONST_CH => "0b00", + D_REQ_ISET => "0b000", + D_PD_ISET => "0b00", + D_DCO_CALIB_TIME_SEL => "0b00", + CH0_DCOCTLGI => "0b010", + CH0_DCOATDDLY => "0b00", + CH0_DCOATDCFG => "0b00", + CH0_DCOBYPSATD => "0b1", + CH0_DCOSCALEI => "0b00", + CH0_DCOITUNE4LSB => "0b111", + CH0_DCOIOSTUNE => "0b000", + CH0_DCODISBDAVOID => "0b0", + CH0_DCOCALDIV => "0b001", + CH0_DCONUOFLSB => "0b101", + CH0_DCOIUPDNX2 => "0b1", + CH0_DCOSTEP => "0b00", + CH0_DCOSTARTVAL => "0b000", + CH0_DCOFLTDAC => "0b01", + CH0_DCOITUNE => "0b00", + CH0_DCOFTNRG => "0b110", + CH0_CDR_CNT4SEL => "0b00", + CH0_CDR_CNT8SEL => "0b00", + CH0_BAND_THRESHOLD => "0d0", + CH0_AUTO_FACQ_EN => "0b1", + CH0_AUTO_CALIB_EN => "0b1", + CH0_CALIB_CK_MODE => "0b0", + CH0_REG_BAND_OFFSET => "0d0", + CH0_REG_BAND_SEL => "0d0", + CH0_REG_IDAC_SEL => "0d0", + CH0_REG_IDAC_EN => "0b0", + D_TXPLL_PWDNB => "0b1", + D_SETPLLRC => "0d1", + D_REFCK_MODE => "0b001", + D_TX_VCO_CK_DIV => "0b010", + D_PLL_LOL_SET => "0b00", + D_RG_EN => "0b0", + D_RG_SET => "0b00", + D_CMUSETISCL4VCO => "0b000", + D_CMUSETI4VCO => "0b00", + D_CMUSETINITVCT => "0b00", + D_CMUSETZGM => "0b000", + D_CMUSETP2AGM => "0b000", + D_CMUSETP1GM => "0b000", + D_CMUSETI4CPZ => "0d3", + D_CMUSETI4CPP => "0d3", + D_CMUSETICP4Z => "0b101", + D_CMUSETICP4P => "0b01", + D_CMUSETBIASI => "0b00" +) +port map ( +CH0_HDINP => hdinp, +CH1_HDINP => GND, +CH0_HDINN => hdinn, +CH1_HDINN => GND, +D_TXBIT_CLKP_FROM_ND => GND, +D_TXBIT_CLKN_FROM_ND => GND, +D_SYNC_ND => GND, +D_TXPLL_LOL_FROM_ND => GND, +CH0_RX_REFCLK => rxrefclk, +CH1_RX_REFCLK => GND, +CH0_FF_RXI_CLK => TX_PCLK_11, +CH1_FF_RXI_CLK => VCC, +CH0_FF_TXI_CLK => txi_clk, +CH1_FF_TXI_CLK => VCC, +CH0_FF_EBRD_CLK => TX_PCLK_11, +CH1_FF_EBRD_CLK => VCC, +CH0_FF_TX_D_0 => txdata(0), +CH1_FF_TX_D_0 => GND, +CH0_FF_TX_D_1 => txdata(1), +CH1_FF_TX_D_1 => GND, +CH0_FF_TX_D_2 => txdata(2), +CH1_FF_TX_D_2 => GND, +CH0_FF_TX_D_3 => txdata(3), +CH1_FF_TX_D_3 => GND, +CH0_FF_TX_D_4 => txdata(4), +CH1_FF_TX_D_4 => GND, +CH0_FF_TX_D_5 => txdata(5), +CH1_FF_TX_D_5 => GND, +CH0_FF_TX_D_6 => txdata(6), +CH1_FF_TX_D_6 => GND, +CH0_FF_TX_D_7 => txdata(7), +CH1_FF_TX_D_7 => GND, +CH0_FF_TX_D_8 => tx_k(0), +CH1_FF_TX_D_8 => GND, +CH0_FF_TX_D_9 => GND, +CH1_FF_TX_D_9 => GND, +CH0_FF_TX_D_10 => xmit(0), +CH1_FF_TX_D_10 => GND, +CH0_FF_TX_D_11 => tx_disp_correct(0), +CH1_FF_TX_D_11 => GND, +CH0_FF_TX_D_12 => GND, +CH1_FF_TX_D_12 => GND, +CH0_FF_TX_D_13 => GND, +CH1_FF_TX_D_13 => GND, +CH0_FF_TX_D_14 => GND, +CH1_FF_TX_D_14 => GND, +CH0_FF_TX_D_15 => GND, +CH1_FF_TX_D_15 => GND, +CH0_FF_TX_D_16 => GND, +CH1_FF_TX_D_16 => GND, +CH0_FF_TX_D_17 => GND, +CH1_FF_TX_D_17 => GND, +CH0_FF_TX_D_18 => GND, +CH1_FF_TX_D_18 => GND, +CH0_FF_TX_D_19 => GND, +CH1_FF_TX_D_19 => GND, +CH0_FF_TX_D_20 => GND, +CH1_FF_TX_D_20 => GND, +CH0_FF_TX_D_21 => GND, +CH1_FF_TX_D_21 => GND, +CH0_FF_TX_D_22 => GND, +CH1_FF_TX_D_22 => GND, +CH0_FF_TX_D_23 => GND, +CH1_FF_TX_D_23 => GND, +CH0_FFC_EI_EN => GND, +CH1_FFC_EI_EN => GND, +CH0_FFC_PCIE_DET_EN => GND, +CH1_FFC_PCIE_DET_EN => GND, +CH0_FFC_PCIE_CT => GND, +CH1_FFC_PCIE_CT => GND, +CH0_FFC_SB_INV_RX => GND, +CH1_FFC_SB_INV_RX => GND, +CH0_FFC_ENABLE_CGALIGN => GND, +CH1_FFC_ENABLE_CGALIGN => GND, +CH0_FFC_SIGNAL_DETECT => signal_detect_c, +CH1_FFC_SIGNAL_DETECT => GND, +CH0_FFC_FB_LOOPBACK => GND, +CH1_FFC_FB_LOOPBACK => GND, +CH0_FFC_SB_PFIFO_LP => GND, +CH1_FFC_SB_PFIFO_LP => GND, +CH0_FFC_PFIFO_CLR => GND, +CH1_FFC_PFIFO_CLR => GND, +CH0_FFC_RATE_MODE_RX => GND, +CH1_FFC_RATE_MODE_RX => GND, +CH0_FFC_RATE_MODE_TX => GND, +CH1_FFC_RATE_MODE_TX => GND, +CH0_FFC_DIV11_MODE_RX => GND, +CH1_FFC_DIV11_MODE_RX => GND, +CH0_FFC_RX_GEAR_MODE => GND, +CH1_FFC_RX_GEAR_MODE => GND, +CH0_FFC_TX_GEAR_MODE => GND, +CH1_FFC_TX_GEAR_MODE => GND, +CH0_FFC_DIV11_MODE_TX => GND, +CH1_FFC_DIV11_MODE_TX => GND, +CH0_FFC_LDR_CORE2TX_EN => GND, +CH1_FFC_LDR_CORE2TX_EN => GND, +CH0_FFC_LANE_TX_RST => RSL_TX_PCS_RST_C, +CH1_FFC_LANE_TX_RST => GND, +CH0_FFC_LANE_RX_RST => RSL_RX_PCS_RST_C, +CH1_FFC_LANE_RX_RST => GND, +CH0_FFC_RRST => RSL_RX_SERDES_RST_C, +CH1_FFC_RRST => GND, +CH0_FFC_TXPWDNB => tx_pwrup_c, +CH1_FFC_TXPWDNB => GND, +CH0_FFC_RXPWDNB => rx_pwrup_c, +CH1_FFC_RXPWDNB => GND, +CH0_LDR_CORE2TX => GND, +CH1_LDR_CORE2TX => GND, +D_SCIWDATA0 => sci_wrdata(0), +D_SCIWDATA1 => sci_wrdata(1), +D_SCIWDATA2 => sci_wrdata(2), +D_SCIWDATA3 => sci_wrdata(3), +D_SCIWDATA4 => sci_wrdata(4), +D_SCIWDATA5 => sci_wrdata(5), +D_SCIWDATA6 => sci_wrdata(6), +D_SCIWDATA7 => sci_wrdata(7), +D_SCIADDR0 => sci_addr(0), +D_SCIADDR1 => sci_addr(1), +D_SCIADDR2 => sci_addr(2), +D_SCIADDR3 => sci_addr(3), +D_SCIADDR4 => sci_addr(4), +D_SCIADDR5 => sci_addr(5), +D_SCIENAUX => sci_en_dual, +D_SCISELAUX => sci_sel_dual, +CH0_SCIEN => sci_en, +CH1_SCIEN => GND, +CH0_SCISEL => sci_sel, +CH1_SCISEL => GND, +D_SCIRD => sci_rd, +D_SCIWSTN => sci_wrn, +D_CYAWSTN => cyawstn, +D_FFC_SYNC_TOGGLE => GND, +D_FFC_DUAL_RST => rst_dual_c, +D_FFC_MACRO_RST => RSL_SERDES_RST_DUAL_C, +D_FFC_MACROPDB => serdes_pdb, +D_FFC_TRST => RSL_TX_SERDES_RST_C, +CH0_FFC_CDR_EN_BITSLIP => GND, +CH1_FFC_CDR_EN_BITSLIP => GND, +D_SCAN_ENABLE => GND, +D_SCAN_IN_0 => GND, +D_SCAN_IN_1 => GND, +D_SCAN_IN_2 => GND, +D_SCAN_IN_3 => GND, +D_SCAN_IN_4 => GND, +D_SCAN_IN_5 => GND, +D_SCAN_IN_6 => GND, +D_SCAN_IN_7 => GND, +D_SCAN_MODE => GND, +D_SCAN_RESET => GND, +D_CIN0 => GND, +D_CIN1 => GND, +D_CIN2 => GND, +D_CIN3 => GND, +D_CIN4 => GND, +D_CIN5 => GND, +D_CIN6 => GND, +D_CIN7 => GND, +D_CIN8 => GND, +D_CIN9 => GND, +D_CIN10 => GND, +D_CIN11 => GND, +CH0_HDOUTP => hdoutp, +CH1_HDOUTP => N47_1, +CH0_HDOUTN => hdoutn, +CH1_HDOUTN => N48_1, +D_TXBIT_CLKP_TO_ND => N1_1, +D_TXBIT_CLKN_TO_ND => N2_1, +D_SYNC_PULSE2ND => N3_1, +D_TXPLL_LOL_TO_ND => N4_1, +CH0_FF_RX_F_CLK => N5_1, +CH1_FF_RX_F_CLK => N49_1, +CH0_FF_RX_H_CLK => N6_1, +CH1_FF_RX_H_CLK => N50_1, +CH0_FF_TX_F_CLK => N7_1, +CH1_FF_TX_F_CLK => N51_1, +CH0_FF_TX_H_CLK => N8_1, +CH1_FF_TX_H_CLK => N52_1, +CH0_FF_RX_PCLK => N9_1, +CH1_FF_RX_PCLK => N53_1, +CH0_FF_TX_PCLK => TX_PCLK_I, +CH1_FF_TX_PCLK => N54_1, +CH0_FF_RX_D_0 => rxdata(0), +CH1_FF_RX_D_0 => N55_1, +CH0_FF_RX_D_1 => rxdata(1), +CH1_FF_RX_D_1 => N56_1, +CH0_FF_RX_D_2 => rxdata(2), +CH1_FF_RX_D_2 => N57_1, +CH0_FF_RX_D_3 => rxdata(3), +CH1_FF_RX_D_3 => N58_1, +CH0_FF_RX_D_4 => rxdata(4), +CH1_FF_RX_D_4 => N59_1, +CH0_FF_RX_D_5 => rxdata(5), +CH1_FF_RX_D_5 => N60_1, +CH0_FF_RX_D_6 => rxdata(6), +CH1_FF_RX_D_6 => N61_1, +CH0_FF_RX_D_7 => rxdata(7), +CH1_FF_RX_D_7 => N62_1, +CH0_FF_RX_D_8 => rx_k(0), +CH1_FF_RX_D_8 => N63_1, +CH0_FF_RX_D_9 => rx_disp_err(0), +CH1_FF_RX_D_9 => N64_1, +CH0_FF_RX_D_10 => rx_cv_err(0), +CH1_FF_RX_D_10 => N65_1, +CH0_FF_RX_D_11 => N10_1, +CH1_FF_RX_D_11 => N66_1, +CH0_FF_RX_D_12 => N67_1, +CH1_FF_RX_D_12 => N68_1, +CH0_FF_RX_D_13 => N69_1, +CH1_FF_RX_D_13 => N70_1, +CH0_FF_RX_D_14 => N71_1, +CH1_FF_RX_D_14 => N72_1, +CH0_FF_RX_D_15 => N73_1, +CH1_FF_RX_D_15 => N74_1, +CH0_FF_RX_D_16 => N75_1, +CH1_FF_RX_D_16 => N76_1, +CH0_FF_RX_D_17 => N77_1, +CH1_FF_RX_D_17 => N78_1, +CH0_FF_RX_D_18 => N79_1, +CH1_FF_RX_D_18 => N80_1, +CH0_FF_RX_D_19 => N81_1, +CH1_FF_RX_D_19 => N82_1, +CH0_FF_RX_D_20 => N83_1, +CH1_FF_RX_D_20 => N84_1, +CH0_FF_RX_D_21 => N85_1, +CH1_FF_RX_D_21 => N86_1, +CH0_FF_RX_D_22 => N87_1, +CH1_FF_RX_D_22 => N88_1, +CH0_FF_RX_D_23 => N11_1, +CH1_FF_RX_D_23 => N89_1, +CH0_FFS_PCIE_DONE => N12_1, +CH1_FFS_PCIE_DONE => N90_1, +CH0_FFS_PCIE_CON => N13_1, +CH1_FFS_PCIE_CON => N91_1, +CH0_FFS_RLOS => RX_LOS_LOW_S_12, +CH1_FFS_RLOS => N92_1, +CH0_FFS_LS_SYNC_STATUS => lsm_status_s, +CH1_FFS_LS_SYNC_STATUS => N93_1, +CH0_FFS_CC_UNDERRUN => ctc_urun_s, +CH1_FFS_CC_UNDERRUN => N94_1, +CH0_FFS_CC_OVERRUN => ctc_orun_s, +CH1_FFS_CC_OVERRUN => N95_1, +CH0_FFS_RXFBFIFO_ERROR => N14_1, +CH1_FFS_RXFBFIFO_ERROR => N96_1, +CH0_FFS_TXFBFIFO_ERROR => N15_1, +CH1_FFS_TXFBFIFO_ERROR => N97_1, +CH0_FFS_RLOL => RX_CDR_LOL_S_13, +CH1_FFS_RLOL => N98_1, +CH0_FFS_SKP_ADDED => ctc_ins_s, +CH1_FFS_SKP_ADDED => N99_1, +CH0_FFS_SKP_DELETED => ctc_del_s, +CH1_FFS_SKP_DELETED => N100_1, +CH0_LDR_RX2CORE => N101_1, +CH1_LDR_RX2CORE => N112_1, +D_SCIRDATA0 => sci_rddata(0), +D_SCIRDATA1 => sci_rddata(1), +D_SCIRDATA2 => sci_rddata(2), +D_SCIRDATA3 => sci_rddata(3), +D_SCIRDATA4 => sci_rddata(4), +D_SCIRDATA5 => sci_rddata(5), +D_SCIRDATA6 => sci_rddata(6), +D_SCIRDATA7 => sci_rddata(7), +D_SCIINT => sci_int, +D_SCAN_OUT_0 => N16_1, +D_SCAN_OUT_1 => N17_1, +D_SCAN_OUT_2 => N18_1, +D_SCAN_OUT_3 => N19_1, +D_SCAN_OUT_4 => N20_1, +D_SCAN_OUT_5 => N21_1, +D_SCAN_OUT_6 => N22_1, +D_SCAN_OUT_7 => N23_1, +D_COUT0 => N24_1, +D_COUT1 => N25_1, +D_COUT2 => N26_1, +D_COUT3 => N27_1, +D_COUT4 => N28_1, +D_COUT5 => N29_1, +D_COUT6 => N30_1, +D_COUT7 => N31_1, +D_COUT8 => N32_1, +D_COUT9 => N33_1, +D_COUT10 => N34_1, +D_COUT11 => N35_1, +D_COUT12 => N36_1, +D_COUT13 => N37_1, +D_COUT14 => N38_1, +D_COUT15 => N39_1, +D_COUT16 => N40_1, +D_COUT17 => N41_1, +D_COUT18 => N42_1, +D_COUT19 => N43_1, +D_REFCLKI => pll_refclki, +D_FFS_PLOL => N46_1); +SLL_INST: sgmii_ecp5sll_core_Z1_layer1 port map ( +tx_pclk => TX_PCLK_11, +sli_rst => sli_rst, +pll_refclki => pll_refclki, +pll_lock_i => \SLL_INST.PLL_LOCK_I_14\); +RSL_INST: sgmii_ecp5rsl_core_Z2_layer1 port map ( +rx_pcs_rst_c => rx_pcs_rst_c, +tx_pcs_rst_c => tx_pcs_rst_c, +tx_serdes_rst_c => tx_serdes_rst_c, +serdes_rst_dual_c => serdes_rst_dual_c, +rsl_tx_pcs_rst_c => RSL_TX_PCS_RST_C, +rsl_rx_serdes_rst_c => RSL_RX_SERDES_RST_C, +rsl_serdes_rst_dual_c => RSL_SERDES_RST_DUAL_C, +rsl_tx_serdes_rst_c => RSL_TX_SERDES_RST_C, +rsl_tx_rdy => rsl_tx_rdy, +pll_lock_i => \SLL_INST.PLL_LOCK_I_14\, +pll_refclki => pll_refclki, +rsl_rx_rdy => rsl_rx_rdy, +rsl_rst => rsl_rst, +rxrefclk => rxrefclk, +rsl_disable => rsl_disable, +rx_serdes_rst_c => rx_serdes_rst_c, +rsl_rx_pcs_rst_c => RSL_RX_PCS_RST_C, +rst_dual_c => rst_dual_c, +rx_cdr_lol_s => RX_CDR_LOL_S_13, +rx_los_low_s => RX_LOS_LOW_S_12); +tx_pclk <= TX_PCLK_11; +rx_los_low_s <= RX_LOS_LOW_S_12; +rx_cdr_lol_s <= RX_CDR_LOL_S_13; +pll_lol <= \SLL_INST.PLL_LOCK_I_14\; +end beh; + diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.vm b/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.vm new file mode 100644 index 0000000..ece1a16 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.vm @@ -0,0 +1,6626 @@ +// +// Written by Synplify Pro +// Product Version "M-2017.03L-SP1-1" +// Program "Synplify Pro", Mapper "maplat, Build 1796R" +// Fri May 10 09:02:16 2019 +// +// Source file index table: +// Object locations will have the form : +// file 0 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd " +// file 1 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/snps_haps_pkg.vhd " +// file 2 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std1164.vhd " +// file 3 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/numeric.vhd " +// file 4 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/umr_capim.vhd " +// file 5 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/arith.vhd " +// file 6 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/unsigned.vhd " +// file 7 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/hyperents.vhd " +// file 8 "\/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd " +// file 9 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd " +// file 10 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v " +// file 11 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v " +// file 12 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v " +// file 13 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v " +// file 14 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v " +// file 15 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh " +// file 16 "\/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v " +// file 17 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/nlconst.dat " +// file 18 "\/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.fdc " + +`timescale 100 ps/100 ps +module sync_0s ( + phb, + rhb_sync, + sli_rst, + pll_refclki +) +; +input phb ; +output rhb_sync ; +input sli_rst ; +input pll_refclki ; +wire phb ; +wire rhb_sync ; +wire sli_rst ; +wire pll_refclki ; +wire data_p1 ; +wire data_p2_QN_0 ; +wire VCC ; +wire data_p1_QN_0 ; +wire GND ; +// @16:1988 + FD1S3DX data_p2 ( + .D(data_p1), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_sync) +); +// @16:1988 + FD1S3DX data_p1_reg ( + .D(phb), + .CK(pll_refclki), + .CD(sli_rst), + .Q(data_p1) +); + VHI VCC_0 ( + .Z(VCC) +); +// @16:865 + VLO GND_cZ ( + .Z(GND) +); +endmodule /* sync_0s */ + +module sync_0s_6 ( + rtc_pul, + ppul_sync, + sli_rst, + tx_pclk +) +; +input rtc_pul ; +output ppul_sync ; +input sli_rst ; +input tx_pclk ; +wire rtc_pul ; +wire ppul_sync ; +wire sli_rst ; +wire tx_pclk ; +wire data_p1 ; +wire data_p2_QN ; +wire VCC ; +wire data_p1_QN ; +wire GND ; +// @16:1988 + FD1S3DX data_p2 ( + .D(data_p1), + .CK(tx_pclk), + .CD(sli_rst), + .Q(ppul_sync) +); +// @16:1988 + FD1S3DX data_p1_reg ( + .D(rtc_pul), + .CK(tx_pclk), + .CD(sli_rst), + .Q(data_p1) +); + VHI VCC_0 ( + .Z(VCC) +); +// @16:865 + VLO GND_cZ ( + .Z(GND) +); +endmodule /* sync_0s_6 */ + +module sync_0s_0 ( + ppul_sync, + pdiff_sync, + sli_rst, + pll_refclki +) +; +input ppul_sync ; +output pdiff_sync ; +input sli_rst ; +input pll_refclki ; +wire ppul_sync ; +wire pdiff_sync ; +wire sli_rst ; +wire pll_refclki ; +wire data_p1 ; +wire data_p2_QN_1 ; +wire VCC ; +wire data_p1_QN_1 ; +wire GND ; +// @16:1988 + FD1S3DX data_p2 ( + .D(data_p1), + .CK(pll_refclki), + .CD(sli_rst), + .Q(pdiff_sync) +); +// @16:1988 + FD1S3DX data_p1_reg ( + .D(ppul_sync), + .CK(pll_refclki), + .CD(sli_rst), + .Q(data_p1) +); + VHI VCC_0 ( + .Z(VCC) +); +// @16:865 + VLO GND_cZ ( + .Z(GND) +); +endmodule /* sync_0s_0 */ + +module sgmii_ecp5sll_core_Z1_layer1 ( + tx_pclk, + sli_rst, + pll_refclki, + pll_lock_i +) +; +input tx_pclk ; +input sli_rst ; +input pll_refclki ; +output pll_lock_i ; +wire tx_pclk ; +wire sli_rst ; +wire pll_refclki ; +wire pll_lock_i ; +wire [2:0] phb_cnt; +wire [2:0] phb_cnt_i; +wire [15:0] rcount; +wire [21:0] pcount; +wire [0:0] un1_pcount_diff_i; +wire [1:0] sll_state; +wire [1:0] sll_state_QN; +wire [7:0] rhb_wait_cnt_s; +wire [7:0] rhb_wait_cnt; +wire [7:0] rhb_wait_cnt_QN; +wire [15:0] rcount_s; +wire [15:0] rcount_QN; +wire [2:0] phb_cnt_QN; +wire [2:1] phb_cnt_RNO; +wire [21:0] pcount_s; +wire [21:0] pcount_QN; +wire [21:0] pcount_diff_QN; +wire [2:2] rdiff_comp_lock; +wire [2:2] rdiff_comp_lock_QN; +wire [0:0] un1_pcount_diff; +wire [20:0] pcount_cry; +wire [0:0] pcount_cry_0_S0; +wire [21:21] pcount_s_0_COUT; +wire [21:21] pcount_s_0_S1; +wire [14:0] rcount_cry; +wire [0:0] rcount_cry_0_S0; +wire [15:15] rcount_s_0_COUT; +wire [15:15] rcount_s_0_S1; +wire [6:0] rhb_wait_cnt_cry; +wire [0:0] rhb_wait_cnt_cry_0_S0; +wire [7:7] rhb_wait_cnt_s_0_COUT; +wire [7:7] rhb_wait_cnt_s_0_S1; +wire pll_lock ; +wire rtc_ctrl4_0_a3_1 ; +wire un13_lock_20 ; +wire ppul_sync_p2 ; +wire ppul_sync_p1 ; +wire un1_pcount_diff_1_axb_20 ; +wire un13_lock_19 ; +wire un1_pcount_diff_1_axb_19 ; +wire un13_lock_18 ; +wire un1_pcount_diff_1_axb_18 ; +wire un13_lock_17 ; +wire un1_pcount_diff_1_cry_17_0_RNO ; +wire un13_lock_16 ; +wire un1_pcount_diff_1_axb_16 ; +wire un13_lock_15 ; +wire un1_pcount_diff_1_axb_15 ; +wire un13_lock_14 ; +wire un1_pcount_diff_1_axb_14 ; +wire un13_lock_13 ; +wire un1_pcount_diff_1_axb_13 ; +wire un13_lock_12 ; +wire un1_pcount_diff_1_axb_12 ; +wire un13_lock_11 ; +wire un1_pcount_diff_1_axb_11 ; +wire un13_lock_10 ; +wire un1_pcount_diff_1_axb_10 ; +wire un13_lock_9 ; +wire un1_pcount_diff_1_axb_9 ; +wire un13_lock_8 ; +wire un1_pcount_diff_1_axb_8 ; +wire un13_lock_7 ; +wire un1_pcount_diff_1_axb_7 ; +wire un13_lock_6 ; +wire un1_pcount_diff_1_axb_6 ; +wire un13_lock_5 ; +wire un1_pcount_diff_1_axb_5 ; +wire un13_lock_4 ; +wire un1_pcount_diff_1_axb_4 ; +wire un13_lock_3 ; +wire un1_pcount_diff_1_axb_3 ; +wire un13_lock_2 ; +wire un1_pcount_diff_1_axb_2 ; +wire un13_lock_1 ; +wire un1_pcount_diff_1_axb_1 ; +wire un13_lock_21 ; +wire ppul_sync_p3 ; +wire N_7 ; +wire un13_lock_0 ; +wire rtc_ctrl4 ; +wire rtc_ctrl ; +wire VCC ; +wire N_2085_0 ; +wire unlock_5 ; +wire unlock_1_sqmuxa_i ; +wire unlock ; +wire unlock_QN ; +wire N_95_i ; +wire N_97_i ; +wire rtc_pul ; +wire rtc_pul_p1 ; +wire rtc_pul_p1_QN ; +wire rtc_pul5 ; +wire rtc_pul_QN ; +wire rtc_ctrl_QN ; +wire rstat_pclk_2 ; +wire rstat_pclk ; +wire rstat_pclk_QN ; +wire rhb_sync_p1 ; +wire rhb_sync_p2 ; +wire rhb_sync_p2_QN ; +wire rhb_sync ; +wire rhb_sync_p1_QN ; +wire ppul_sync_p3_QN ; +wire ppul_sync_p2_QN ; +wire ppul_sync ; +wire ppul_sync_p1_QN ; +wire N_53_i ; +wire pll_lock_QN ; +wire phb ; +wire phb_QN ; +wire pdiff_sync ; +wire pdiff_sync_p1 ; +wire pdiff_sync_p1_QN ; +wire un1_pcount_diff_1_cry_1_0_S0 ; +wire un1_pcount_diff_1_cry_1_0_S1 ; +wire un1_pcount_diff_1_cry_3_0_S0 ; +wire un1_pcount_diff_1_cry_3_0_S1 ; +wire un1_pcount_diff_1_cry_5_0_S0 ; +wire un1_pcount_diff_1_cry_5_0_S1 ; +wire un1_pcount_diff_1_cry_7_0_S0 ; +wire un1_pcount_diff_1_cry_7_0_S1 ; +wire un1_pcount_diff_1_cry_9_0_S0 ; +wire un1_pcount_diff_1_cry_9_0_S1 ; +wire un1_pcount_diff_1_cry_11_0_S0 ; +wire un1_pcount_diff_1_cry_11_0_S1 ; +wire un1_pcount_diff_1_cry_13_0_S0 ; +wire un1_pcount_diff_1_cry_13_0_S1 ; +wire un1_pcount_diff_1_cry_15_0_S0 ; +wire un1_pcount_diff_1_cry_15_0_S1 ; +wire un1_pcount_diff_1_cry_17_0_S0 ; +wire un1_pcount_diff_1_cry_17_0_S1 ; +wire un1_pcount_diff_1_cry_19_0_S0 ; +wire un1_pcount_diff_1_cry_19_0_S1 ; +wire un1_pcount_diff_1_s_21_0_S0 ; +wire lock_5 ; +wire lock_1_sqmuxa_i ; +wire lock ; +wire lock_QN ; +wire N_98 ; +wire rtc_pul5_0_o3 ; +wire rtc_pul5_0_a3_6 ; +wire rtc_pul5_0_a3_7 ; +wire un1_rcount_1_0_a3 ; +wire rhb_wait_cnt12 ; +wire un1_rhb_wait_cnt_4 ; +wire un1_rhb_wait_cnt_5 ; +wire N_99 ; +wire rtc_ctrl4_0_a3_12_4 ; +wire rtc_ctrl4_0_a3_12_5 ; +wire rtc_ctrl4_10 ; +wire un1_rcount_1_0_a3_1 ; +wire N_6 ; +wire rtc_pul5_0_a3_5 ; +wire N_8 ; +wire un13_unlock_cry_21 ; +wire un13_lock_cry_21_i ; +wire rhb_wait_cnt_scalar ; +wire un1_pcount_diff_1_cry_0 ; +wire un1_pcount_diff_1_cry_0_0_S0 ; +wire un1_pcount_diff_1_cry_0_0_S1 ; +wire un1_pcount_diff_1_cry_2 ; +wire un1_pcount_diff_1_cry_4 ; +wire un1_pcount_diff_1_cry_6 ; +wire un1_pcount_diff_1_cry_8 ; +wire un1_pcount_diff_1_cry_10 ; +wire un1_pcount_diff_1_cry_12 ; +wire un1_pcount_diff_1_cry_14 ; +wire un1_pcount_diff_1_cry_16 ; +wire un1_pcount_diff_1_cry_18 ; +wire un1_pcount_diff_1_cry_20 ; +wire un1_pcount_diff_1_s_21_0_COUT ; +wire un1_pcount_diff_1_s_21_0_S1 ; +wire un13_lock_cry_0 ; +wire un13_lock_cry_0_0_S0 ; +wire un13_lock_cry_0_0_S1 ; +wire un13_lock_cry_2 ; +wire un13_lock_cry_1_0_S0 ; +wire un13_lock_cry_1_0_S1 ; +wire un13_lock_cry_4 ; +wire un13_lock_cry_3_0_S0 ; +wire un13_lock_cry_3_0_S1 ; +wire un13_lock_cry_6 ; +wire un13_lock_cry_5_0_S0 ; +wire un13_lock_cry_5_0_S1 ; +wire un13_lock_cry_8 ; +wire un13_lock_cry_7_0_S0 ; +wire un13_lock_cry_7_0_S1 ; +wire un13_lock_cry_10 ; +wire un13_lock_cry_9_0_S0 ; +wire un13_lock_cry_9_0_S1 ; +wire un13_lock_cry_12 ; +wire un13_lock_cry_11_0_S0 ; +wire un13_lock_cry_11_0_S1 ; +wire un13_lock_cry_14 ; +wire un13_lock_cry_13_0_S0 ; +wire un13_lock_cry_13_0_S1 ; +wire un13_lock_cry_16 ; +wire un13_lock_cry_15_0_S0 ; +wire un13_lock_cry_15_0_S1 ; +wire un13_lock_cry_18 ; +wire un13_lock_cry_17_0_S0 ; +wire un13_lock_cry_17_0_S1 ; +wire un13_lock_cry_20 ; +wire un13_lock_cry_19_0_S0 ; +wire un13_lock_cry_19_0_S1 ; +wire un13_lock_cry_21_0_COUT ; +wire un13_lock_cry_21_0_S0 ; +wire un13_unlock_cry_0 ; +wire un13_unlock_cry_0_0_S0 ; +wire un13_unlock_cry_0_0_S1 ; +wire un13_unlock_cry_2 ; +wire un13_unlock_cry_1_0_S0 ; +wire un13_unlock_cry_1_0_S1 ; +wire un13_unlock_cry_4 ; +wire un13_unlock_cry_3_0_S0 ; +wire un13_unlock_cry_3_0_S1 ; +wire un13_unlock_cry_6 ; +wire un13_unlock_cry_5_0_S0 ; +wire un13_unlock_cry_5_0_S1 ; +wire un13_unlock_cry_8 ; +wire un13_unlock_cry_7_0_S0 ; +wire un13_unlock_cry_7_0_S1 ; +wire un13_unlock_cry_10 ; +wire un13_unlock_cry_9_0_S0 ; +wire un13_unlock_cry_9_0_S1 ; +wire un13_unlock_cry_12 ; +wire un13_unlock_cry_11_0_S0 ; +wire un13_unlock_cry_11_0_S1 ; +wire un13_unlock_cry_14 ; +wire un13_unlock_cry_13_0_S0 ; +wire un13_unlock_cry_13_0_S1 ; +wire un13_unlock_cry_16 ; +wire un13_unlock_cry_15_0_S0 ; +wire un13_unlock_cry_15_0_S1 ; +wire un13_unlock_cry_18 ; +wire un13_unlock_cry_17_0_S0 ; +wire un13_unlock_cry_17_0_S1 ; +wire un13_unlock_cry_20 ; +wire un13_unlock_cry_19_0_S0 ; +wire un13_unlock_cry_19_0_S1 ; +wire un13_unlock_cry_21_0_COUT ; +wire un13_unlock_cry_21_0_S0 ; +wire N_21 ; +wire N_20 ; +wire N_19 ; +wire N_18 ; +wire N_14 ; +wire GND ; +wire N_1 ; +wire N_2 ; +wire N_3 ; +wire N_4 ; +wire N_5 ; +wire N_9 ; + INV phb_RNO ( + .A(phb_cnt[2]), + .Z(phb_cnt_i[2]) +); + INV \phb_cnt_RNO[0] ( + .A(phb_cnt[0]), + .Z(phb_cnt_i[0]) +); + INV pll_lock_RNI6JK9 ( + .A(pll_lock), + .Z(pll_lock_i) +); + LUT4 rtc_ctrl4_0_a3_RNO ( + .A(rcount[2]), + .B(rcount[0]), + .C(rcount[5]), + .D(rcount[4]), + .Z(rtc_ctrl4_0_a3_1) +); +defparam rtc_ctrl4_0_a3_RNO.init=16'h2000; + LUT4 un1_pcount_diff_1_cry_19_0_RNO_0 ( + .A(un13_lock_20), + .B(pcount[20]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_20) +); +defparam un1_pcount_diff_1_cry_19_0_RNO_0.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_19_0_RNO ( + .A(un13_lock_19), + .B(pcount[19]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_19) +); +defparam un1_pcount_diff_1_cry_19_0_RNO.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_17_0_RNO_0 ( + .A(un13_lock_18), + .B(pcount[18]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_18) +); +defparam un1_pcount_diff_1_cry_17_0_RNO_0.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_17_0_RNO_cZ ( + .A(un13_lock_17), + .B(pcount[17]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_cry_17_0_RNO) +); +defparam un1_pcount_diff_1_cry_17_0_RNO_cZ.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_15_0_RNO_0 ( + .A(un13_lock_16), + .B(pcount[16]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_16) +); +defparam un1_pcount_diff_1_cry_15_0_RNO_0.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_15_0_RNO ( + .A(un13_lock_15), + .B(pcount[15]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_15) +); +defparam un1_pcount_diff_1_cry_15_0_RNO.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_13_0_RNO_0 ( + .A(un13_lock_14), + .B(pcount[14]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_14) +); +defparam un1_pcount_diff_1_cry_13_0_RNO_0.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_13_0_RNO ( + .A(un13_lock_13), + .B(pcount[13]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_13) +); +defparam un1_pcount_diff_1_cry_13_0_RNO.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_11_0_RNO_0 ( + .A(un13_lock_12), + .B(pcount[12]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_12) +); +defparam un1_pcount_diff_1_cry_11_0_RNO_0.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_11_0_RNO ( + .A(un13_lock_11), + .B(pcount[11]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_11) +); +defparam un1_pcount_diff_1_cry_11_0_RNO.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_9_0_RNO_0 ( + .A(un13_lock_10), + .B(pcount[10]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_10) +); +defparam un1_pcount_diff_1_cry_9_0_RNO_0.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_9_0_RNO ( + .A(un13_lock_9), + .B(pcount[9]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_9) +); +defparam un1_pcount_diff_1_cry_9_0_RNO.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_7_0_RNO_0 ( + .A(un13_lock_8), + .B(pcount[8]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_8) +); +defparam un1_pcount_diff_1_cry_7_0_RNO_0.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_7_0_RNO ( + .A(un13_lock_7), + .B(pcount[7]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_7) +); +defparam un1_pcount_diff_1_cry_7_0_RNO.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_5_0_RNO_0 ( + .A(un13_lock_6), + .B(pcount[6]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_6) +); +defparam un1_pcount_diff_1_cry_5_0_RNO_0.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_5_0_RNO ( + .A(un13_lock_5), + .B(pcount[5]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_5) +); +defparam un1_pcount_diff_1_cry_5_0_RNO.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_3_0_RNO_0 ( + .A(un13_lock_4), + .B(pcount[4]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_4) +); +defparam un1_pcount_diff_1_cry_3_0_RNO_0.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_3_0_RNO ( + .A(un13_lock_3), + .B(pcount[3]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_3) +); +defparam un1_pcount_diff_1_cry_3_0_RNO.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_1_0_RNO_0 ( + .A(un13_lock_2), + .B(pcount[2]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_2) +); +defparam un1_pcount_diff_1_cry_1_0_RNO_0.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_1_0_RNO ( + .A(un13_lock_1), + .B(pcount[1]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_1) +); +defparam un1_pcount_diff_1_cry_1_0_RNO.init=16'h5355; + LUT4 ppul_sync_p3_RNIU65C ( + .A(un13_lock_21), + .B(ppul_sync_p3), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(N_7) +); +defparam ppul_sync_p3_RNIU65C.init=16'h2F20; + LUT4 \pcount_diff_RNO[0] ( + .A(ppul_sync_p1), + .B(ppul_sync_p2), + .C(pcount[0]), + .D(un13_lock_0), + .Z(un1_pcount_diff_i[0]) +); +defparam \pcount_diff_RNO[0] .init=16'hFD20; +// @16:1304 + LUT4 rtc_ctrl_0 ( + .A(rtc_ctrl4), + .B(rtc_ctrl), + .C(VCC), + .D(VCC), + .Z(N_2085_0) +); +defparam rtc_ctrl_0.init=16'hEEEE; +// @16:1278 + FD1P3DX unlock_reg ( + .D(unlock_5), + .SP(unlock_1_sqmuxa_i), + .CK(pll_refclki), + .CD(sli_rst), + .Q(unlock) +); +// @16:1801 + FD1S3DX \sll_state_reg[0] ( + .D(N_95_i), + .CK(pll_refclki), + .CD(sli_rst), + .Q(sll_state[0]) +); +// @16:1801 + FD1S3DX \sll_state_reg[1] ( + .D(N_97_i), + .CK(pll_refclki), + .CD(sli_rst), + .Q(sll_state[1]) +); +// @16:1304 + FD1S3DX rtc_pul_p1_reg ( + .D(rtc_pul), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rtc_pul_p1) +); +// @16:1304 + FD1P3DX rtc_pul_reg ( + .D(rtc_pul5), + .SP(rtc_ctrl), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rtc_pul) +); +// @16:1304 + FD1S3DX rtc_ctrl_reg ( + .D(N_2085_0), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rtc_ctrl) +); +// @16:1350 + FD1P3DX rstat_pclk_reg ( + .D(rstat_pclk_2), + .SP(rtc_ctrl), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rstat_pclk) +); +// @16:1350 + FD1P3DX \rhb_wait_cnt_reg[0] ( + .D(rhb_wait_cnt_s[0]), + .SP(rtc_ctrl), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_wait_cnt[0]) +); +// @16:1350 + FD1P3DX \rhb_wait_cnt_reg[1] ( + .D(rhb_wait_cnt_s[1]), + .SP(rtc_ctrl), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_wait_cnt[1]) +); +// @16:1350 + FD1P3DX \rhb_wait_cnt_reg[2] ( + .D(rhb_wait_cnt_s[2]), + .SP(rtc_ctrl), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_wait_cnt[2]) +); +// @16:1350 + FD1P3DX \rhb_wait_cnt_reg[3] ( + .D(rhb_wait_cnt_s[3]), + .SP(rtc_ctrl), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_wait_cnt[3]) +); +// @16:1350 + FD1P3DX \rhb_wait_cnt_reg[4] ( + .D(rhb_wait_cnt_s[4]), + .SP(rtc_ctrl), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_wait_cnt[4]) +); +// @16:1350 + FD1P3DX \rhb_wait_cnt_reg[5] ( + .D(rhb_wait_cnt_s[5]), + .SP(rtc_ctrl), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_wait_cnt[5]) +); +// @16:1350 + FD1P3DX \rhb_wait_cnt_reg[6] ( + .D(rhb_wait_cnt_s[6]), + .SP(rtc_ctrl), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_wait_cnt[6]) +); +// @16:1350 + FD1P3DX \rhb_wait_cnt_reg[7] ( + .D(rhb_wait_cnt_s[7]), + .SP(rtc_ctrl), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_wait_cnt[7]) +); +// @16:1350 + FD1S3DX rhb_sync_p2_reg ( + .D(rhb_sync_p1), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_sync_p2) +); +// @16:1350 + FD1S3DX rhb_sync_p1_reg ( + .D(rhb_sync), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_sync_p1) +); +// @16:1304 + FD1S3DX \rcount_reg[0] ( + .D(rcount_s[0]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[0]) +); +// @16:1304 + FD1S3DX \rcount_reg[1] ( + .D(rcount_s[1]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[1]) +); +// @16:1304 + FD1S3DX \rcount_reg[2] ( + .D(rcount_s[2]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[2]) +); +// @16:1304 + FD1S3DX \rcount_reg[3] ( + .D(rcount_s[3]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[3]) +); +// @16:1304 + FD1S3DX \rcount_reg[4] ( + .D(rcount_s[4]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[4]) +); +// @16:1304 + FD1S3DX \rcount_reg[5] ( + .D(rcount_s[5]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[5]) +); +// @16:1304 + FD1S3DX \rcount_reg[6] ( + .D(rcount_s[6]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[6]) +); +// @16:1304 + FD1S3DX \rcount_reg[7] ( + .D(rcount_s[7]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[7]) +); +// @16:1304 + FD1S3DX \rcount_reg[8] ( + .D(rcount_s[8]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[8]) +); +// @16:1304 + FD1S3DX \rcount_reg[9] ( + .D(rcount_s[9]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[9]) +); +// @16:1304 + FD1S3DX \rcount_reg[10] ( + .D(rcount_s[10]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[10]) +); +// @16:1304 + FD1S3DX \rcount_reg[11] ( + .D(rcount_s[11]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[11]) +); +// @16:1304 + FD1S3DX \rcount_reg[12] ( + .D(rcount_s[12]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[12]) +); +// @16:1304 + FD1S3DX \rcount_reg[13] ( + .D(rcount_s[13]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[13]) +); +// @16:1304 + FD1S3DX \rcount_reg[14] ( + .D(rcount_s[14]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[14]) +); +// @16:1304 + FD1S3DX \rcount_reg[15] ( + .D(rcount_s[15]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[15]) +); +// @16:1408 + FD1S3DX ppul_sync_p3_reg ( + .D(ppul_sync_p2), + .CK(tx_pclk), + .CD(sli_rst), + .Q(ppul_sync_p3) +); +// @16:1408 + FD1S3DX ppul_sync_p2_reg ( + .D(ppul_sync_p1), + .CK(tx_pclk), + .CD(sli_rst), + .Q(ppul_sync_p2) +); +// @16:1408 + FD1S3DX ppul_sync_p1_reg ( + .D(ppul_sync), + .CK(tx_pclk), + .CD(sli_rst), + .Q(ppul_sync_p1) +); +// @16:1879 + FD1S3DX pll_lock_reg ( + .D(N_53_i), + .CK(pll_refclki), + .CD(sli_rst), + .Q(pll_lock) +); +// @16:1759 + FD1S3DX \phb_cnt_reg[0] ( + .D(phb_cnt_i[0]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(phb_cnt[0]) +); +// @16:1759 + FD1S3DX \phb_cnt_reg[1] ( + .D(phb_cnt_RNO[1]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(phb_cnt[1]) +); +// @16:1759 + FD1S3DX \phb_cnt_reg[2] ( + .D(phb_cnt_RNO[2]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(phb_cnt[2]) +); +// @16:1759 + FD1S3DX phb_reg ( + .D(phb_cnt_i[2]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(phb) +); +// @16:1278 + FD1S3DX pdiff_sync_p1_reg ( + .D(pdiff_sync), + .CK(pll_refclki), + .CD(sli_rst), + .Q(pdiff_sync_p1) +); +// @16:1759 + FD1S3DX \pcount_reg[0] ( + .D(pcount_s[0]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[0]) +); +// @16:1759 + FD1P3BX \pcount_diff[0] ( + .D(un1_pcount_diff_i[0]), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_0) +); +// @16:1759 + FD1S3DX \pcount_reg[1] ( + .D(pcount_s[1]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[1]) +); +// @16:1759 + FD1P3BX \pcount_diff[1] ( + .D(un1_pcount_diff_1_cry_1_0_S0), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_1) +); +// @16:1759 + FD1P3BX \pcount_diff[2] ( + .D(un1_pcount_diff_1_cry_1_0_S1), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_2) +); +// @16:1759 + FD1S3DX \pcount_reg[2] ( + .D(pcount_s[2]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[2]) +); +// @16:1759 + FD1P3BX \pcount_diff[3] ( + .D(un1_pcount_diff_1_cry_3_0_S0), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_3) +); +// @16:1759 + FD1S3DX \pcount_reg[3] ( + .D(pcount_s[3]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[3]) +); +// @16:1759 + FD1P3BX \pcount_diff[4] ( + .D(un1_pcount_diff_1_cry_3_0_S1), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_4) +); +// @16:1759 + FD1S3DX \pcount_reg[4] ( + .D(pcount_s[4]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[4]) +); +// @16:1759 + FD1P3BX \pcount_diff[5] ( + .D(un1_pcount_diff_1_cry_5_0_S0), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_5) +); +// @16:1759 + FD1S3DX \pcount_reg[5] ( + .D(pcount_s[5]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[5]) +); +// @16:1759 + FD1S3DX \pcount_reg[6] ( + .D(pcount_s[6]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[6]) +); +// @16:1759 + FD1P3BX \pcount_diff[6] ( + .D(un1_pcount_diff_1_cry_5_0_S1), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_6) +); +// @16:1759 + FD1S3DX \pcount_reg[7] ( + .D(pcount_s[7]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[7]) +); +// @16:1759 + FD1P3BX \pcount_diff[7] ( + .D(un1_pcount_diff_1_cry_7_0_S0), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_7) +); +// @16:1759 + FD1S3DX \pcount_reg[8] ( + .D(pcount_s[8]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[8]) +); +// @16:1759 + FD1P3BX \pcount_diff[8] ( + .D(un1_pcount_diff_1_cry_7_0_S1), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_8) +); +// @16:1759 + FD1P3BX \pcount_diff[9] ( + .D(un1_pcount_diff_1_cry_9_0_S0), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_9) +); +// @16:1759 + FD1S3DX \pcount_reg[9] ( + .D(pcount_s[9]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[9]) +); +// @16:1759 + FD1S3DX \pcount_reg[10] ( + .D(pcount_s[10]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[10]) +); +// @16:1759 + FD1P3BX \pcount_diff[10] ( + .D(un1_pcount_diff_1_cry_9_0_S1), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_10) +); +// @16:1759 + FD1P3BX \pcount_diff[11] ( + .D(un1_pcount_diff_1_cry_11_0_S0), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_11) +); +// @16:1759 + FD1S3DX \pcount_reg[11] ( + .D(pcount_s[11]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[11]) +); +// @16:1759 + FD1S3DX \pcount_reg[12] ( + .D(pcount_s[12]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[12]) +); +// @16:1759 + FD1P3BX \pcount_diff[12] ( + .D(un1_pcount_diff_1_cry_11_0_S1), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_12) +); +// @16:1759 + FD1P3BX \pcount_diff[13] ( + .D(un1_pcount_diff_1_cry_13_0_S0), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_13) +); +// @16:1759 + FD1S3DX \pcount_reg[13] ( + .D(pcount_s[13]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[13]) +); +// @16:1759 + FD1P3BX \pcount_diff[14] ( + .D(un1_pcount_diff_1_cry_13_0_S1), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_14) +); +// @16:1759 + FD1S3DX \pcount_reg[14] ( + .D(pcount_s[14]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[14]) +); +// @16:1759 + FD1S3DX \pcount_reg[15] ( + .D(pcount_s[15]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[15]) +); +// @16:1759 + FD1P3BX \pcount_diff[15] ( + .D(un1_pcount_diff_1_cry_15_0_S0), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_15) +); +// @16:1759 + FD1S3DX \pcount_reg[16] ( + .D(pcount_s[16]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[16]) +); +// @16:1759 + FD1P3DX \pcount_diff[16] ( + .D(un1_pcount_diff_1_cry_15_0_S1), + .SP(N_7), + .CK(tx_pclk), + .CD(sli_rst), + .Q(un13_lock_16) +); +// @16:1759 + FD1P3DX \pcount_diff[17] ( + .D(un1_pcount_diff_1_cry_17_0_S0), + .SP(N_7), + .CK(tx_pclk), + .CD(sli_rst), + .Q(un13_lock_17) +); +// @16:1759 + FD1S3DX \pcount_reg[17] ( + .D(pcount_s[17]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[17]) +); +// @16:1759 + FD1P3DX \pcount_diff[18] ( + .D(un1_pcount_diff_1_cry_17_0_S1), + .SP(N_7), + .CK(tx_pclk), + .CD(sli_rst), + .Q(un13_lock_18) +); +// @16:1759 + FD1S3DX \pcount_reg[18] ( + .D(pcount_s[18]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[18]) +); +// @16:1759 + FD1S3DX \pcount_reg[19] ( + .D(pcount_s[19]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[19]) +); +// @16:1759 + FD1P3DX \pcount_diff[19] ( + .D(un1_pcount_diff_1_cry_19_0_S0), + .SP(N_7), + .CK(tx_pclk), + .CD(sli_rst), + .Q(un13_lock_19) +); +// @16:1759 + FD1S3DX \pcount_reg[20] ( + .D(pcount_s[20]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[20]) +); +// @16:1759 + FD1P3DX \pcount_diff[20] ( + .D(un1_pcount_diff_1_cry_19_0_S1), + .SP(N_7), + .CK(tx_pclk), + .CD(sli_rst), + .Q(un13_lock_20) +); +// @16:1759 + FD1P3DX \pcount_diff[21] ( + .D(un1_pcount_diff_1_s_21_0_S0), + .SP(N_7), + .CK(tx_pclk), + .CD(sli_rst), + .Q(un13_lock_21) +); +// @16:1759 + FD1S3DX \pcount_reg[21] ( + .D(pcount_s[21]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[21]) +); +// @16:1278 + FD1P3DX lock_reg ( + .D(lock_5), + .SP(lock_1_sqmuxa_i), + .CK(pll_refclki), + .CD(sli_rst), + .Q(lock) +); +// @16:1739 + FD1S3DX \genblk5.rdiff_comp_lock[2] ( + .D(VCC), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rdiff_comp_lock[2]) +); +// @16:1801 + LUT4 \sll_state_RNO[0] ( + .A(N_98), + .B(lock), + .C(rstat_pclk), + .D(sll_state[0]), + .Z(N_95_i) +); +defparam \sll_state_RNO[0] .init=16'hE050; +// @16:1334 + LUT4 rtc_pul5_0_0 ( + .A(rtc_pul5_0_o3), + .B(rtc_pul5_0_a3_6), + .C(rtc_pul5_0_a3_7), + .D(un1_rcount_1_0_a3), + .Z(rtc_pul5) +); +defparam rtc_pul5_0_0.init=16'hFF80; +// @16:1389 + LUT4 rstat_pclk_2_iv ( + .A(rhb_wait_cnt12), + .B(rstat_pclk), + .C(un1_rhb_wait_cnt_4), + .D(un1_rhb_wait_cnt_5), + .Z(rstat_pclk_2) +); +defparam rstat_pclk_2_iv.init=16'hAEEE; +// @16:1801 + LUT4 \sll_state_RNO[1] ( + .A(N_99), + .B(rstat_pclk), + .C(sll_state[1]), + .D(unlock), + .Z(N_97_i) +); +defparam \sll_state_RNO[1] .init=16'h8088; +// @16:1328 + LUT4 rtc_ctrl4_0_a3 ( + .A(rtc_ctrl4_0_a3_1), + .B(rtc_ctrl4_0_a3_12_4), + .C(rtc_ctrl4_0_a3_12_5), + .D(rtc_ctrl4_10), + .Z(rtc_ctrl4) +); +defparam rtc_ctrl4_0_a3.init=16'h8000; +// @16:1319 + LUT4 un1_rcount_1_0_a3_cZ ( + .A(rtc_ctrl4_0_a3_12_4), + .B(rtc_ctrl4_0_a3_12_5), + .C(rtc_ctrl4_10), + .D(un1_rcount_1_0_a3_1), + .Z(un1_rcount_1_0_a3) +); +defparam un1_rcount_1_0_a3_cZ.init=16'h8000; +// @16:1278 + LUT4 lock_1_sqmuxa_i_cZ ( + .A(lock), + .B(pdiff_sync), + .C(pdiff_sync_p1), + .D(VCC), + .Z(lock_1_sqmuxa_i) +); +defparam lock_1_sqmuxa_i_cZ.init=16'h7575; +// @16:1278 + LUT4 unlock_1_sqmuxa_i_cZ ( + .A(pdiff_sync), + .B(pdiff_sync_p1), + .C(unlock), + .D(VCC), + .Z(unlock_1_sqmuxa_i) +); +defparam unlock_1_sqmuxa_i_cZ.init=16'h4F4F; +// @16:1334 + LUT4 rtc_pul5_0_o3_cZ ( + .A(N_6), + .B(rcount[1]), + .C(rcount[2]), + .D(rcount[3]), + .Z(rtc_pul5_0_o3) +); +defparam rtc_pul5_0_o3_cZ.init=16'hAAAB; +// @16:1334 + LUT4 rtc_pul5_0_a3_7_cZ ( + .A(rcount[7]), + .B(rcount[8]), + .C(rtc_pul5_0_a3_5), + .D(VCC), + .Z(rtc_pul5_0_a3_7) +); +defparam rtc_pul5_0_a3_7_cZ.init=16'h1010; +// @16:1801 + LUT4 \sll_state_ns_i_m4[1] ( + .A(lock), + .B(rtc_pul), + .C(rtc_pul_p1), + .D(sll_state[1]), + .Z(N_99) +); +defparam \sll_state_ns_i_m4[1] .init=16'hEF20; +// @16:1879 + LUT4 pll_lock_RNO ( + .A(sll_state[0]), + .B(sll_state[1]), + .C(VCC), + .D(VCC), + .Z(N_53_i) +); +defparam pll_lock_RNO.init=16'h8888; +// @16:1776 + LUT4 \phb_cnt_RNO_cZ[2] ( + .A(phb_cnt[0]), + .B(phb_cnt[1]), + .C(phb_cnt[2]), + .D(VCC), + .Z(phb_cnt_RNO[2]) +); +defparam \phb_cnt_RNO_cZ[2] .init=16'h7878; +// @16:1801 + LUT4 \sll_state_ns_i_o4[0] ( + .A(rtc_pul), + .B(rtc_pul_p1), + .C(sll_state[1]), + .D(VCC), + .Z(N_98) +); +defparam \sll_state_ns_i_o4[0] .init=16'hBFBF; +// @16:1328 + LUT4 rtc_ctrl4_0_a3_10 ( + .A(rcount[1]), + .B(rcount[3]), + .C(rcount[6]), + .D(rcount[15]), + .Z(rtc_ctrl4_10) +); +defparam rtc_ctrl4_0_a3_10.init=16'h8000; +// @16:1393 + LUT4 un1_rhb_wait_cnt_4_cZ ( + .A(rhb_wait_cnt[4]), + .B(rhb_wait_cnt[5]), + .C(rhb_wait_cnt[6]), + .D(rhb_wait_cnt[7]), + .Z(un1_rhb_wait_cnt_4) +); +defparam un1_rhb_wait_cnt_4_cZ.init=16'h8000; +// @16:1393 + LUT4 un1_rhb_wait_cnt_5_cZ ( + .A(rhb_wait_cnt[0]), + .B(rhb_wait_cnt[1]), + .C(rhb_wait_cnt[2]), + .D(rhb_wait_cnt[3]), + .Z(un1_rhb_wait_cnt_5) +); +defparam un1_rhb_wait_cnt_5_cZ.init=16'h8000; +// @16:1328 + LUT4 rtc_ctrl4_0_a3_12_4_cZ ( + .A(rcount[11]), + .B(rcount[12]), + .C(rcount[13]), + .D(rcount[14]), + .Z(rtc_ctrl4_0_a3_12_4) +); +defparam rtc_ctrl4_0_a3_12_4_cZ.init=16'h8000; +// @16:1328 + LUT4 rtc_ctrl4_0_a3_12_5_cZ ( + .A(rcount[7]), + .B(rcount[8]), + .C(rcount[9]), + .D(rcount[10]), + .Z(rtc_ctrl4_0_a3_12_5) +); +defparam rtc_ctrl4_0_a3_12_5_cZ.init=16'h8000; +// @16:1334 + LUT4 rtc_pul5_0_a3_5_cZ ( + .A(rcount[6]), + .B(rcount[13]), + .C(rcount[14]), + .D(rcount[15]), + .Z(rtc_pul5_0_a3_5) +); +defparam rtc_pul5_0_a3_5_cZ.init=16'h0001; +// @16:1334 + LUT4 rtc_pul5_0_a3_6_cZ ( + .A(rcount[9]), + .B(rcount[10]), + .C(rcount[11]), + .D(rcount[12]), + .Z(rtc_pul5_0_a3_6) +); +defparam rtc_pul5_0_a3_6_cZ.init=16'h0001; +// @16:1768 + LUT4 pcount10_0_o3 ( + .A(ppul_sync_p1), + .B(ppul_sync_p2), + .C(VCC), + .D(VCC), + .Z(N_8) +); +defparam pcount10_0_o3.init=16'hDDDD; +// @16:1776 + LUT4 \phb_cnt_RNO_cZ[1] ( + .A(phb_cnt[0]), + .B(phb_cnt[1]), + .C(VCC), + .D(VCC), + .Z(phb_cnt_RNO[1]) +); +defparam \phb_cnt_RNO_cZ[1] .init=16'h6666; +// @16:1328 + LUT4 rtc_ctrl4_0_o3 ( + .A(rcount[4]), + .B(rcount[5]), + .C(VCC), + .D(VCC), + .Z(N_6) +); +defparam rtc_ctrl4_0_o3.init=16'h7777; +// @16:1286 + LUT4 unlock_5_cZ ( + .A(pdiff_sync), + .B(un13_unlock_cry_21), + .C(VCC), + .D(VCC), + .Z(unlock_5) +); +defparam unlock_5_cZ.init=16'h8888; +// @16:1292 + LUT4 lock_5_cZ ( + .A(pdiff_sync), + .B(un13_lock_cry_21_i), + .C(VCC), + .D(VCC), + .Z(lock_5) +); +defparam lock_5_cZ.init=16'h8888; +// @16:1389 + LUT4 rhb_wait_cnt12_cZ ( + .A(rhb_sync_p1), + .B(rhb_sync_p2), + .C(VCC), + .D(VCC), + .Z(rhb_wait_cnt12) +); +defparam rhb_wait_cnt12_cZ.init=16'h2222; +// @16:1786 + LUT4 \un1_pcount_diff_cZ[0] ( + .A(un13_lock_0), + .B(pcount[0]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff[0]) +); +defparam \un1_pcount_diff_cZ[0] .init=16'h5355; +// @16:1319 + LUT4 un1_rcount_1_0_a3_1_cZ ( + .A(rcount[2]), + .B(rcount[0]), + .C(rcount[5]), + .D(rcount[4]), + .Z(un1_rcount_1_0_a3_1) +); +defparam un1_rcount_1_0_a3_1_cZ.init=16'h8000; +// @16:1350 + LUT4 rhb_sync_p2_RNIU9TG1 ( + .A(un1_rhb_wait_cnt_5), + .B(un1_rhb_wait_cnt_4), + .C(rhb_sync_p2), + .D(rhb_sync_p1), + .Z(rhb_wait_cnt_scalar) +); +defparam rhb_sync_p2_RNIU9TG1.init=16'h7077; + CCU2C \pcount_cry_0[0] ( + .A0(VCC), + .B0(N_8), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_9), + .COUT(pcount_cry[0]), + .S0(pcount_cry_0_S0[0]), + .S1(pcount_s[0]) +); +defparam \pcount_cry_0[0] .INIT0=16'h500c; +defparam \pcount_cry_0[0] .INIT1=16'h8000; +defparam \pcount_cry_0[0] .INJECT1_0="NO"; +defparam \pcount_cry_0[0] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_cry_0[1] ( + .A0(N_8), + .B0(pcount[1]), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[2]), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[0]), + .COUT(pcount_cry[2]), + .S0(pcount_s[1]), + .S1(pcount_s[2]) +); +defparam \pcount_cry_0[1] .INIT0=16'h8000; +defparam \pcount_cry_0[1] .INIT1=16'h8000; +defparam \pcount_cry_0[1] .INJECT1_0="NO"; +defparam \pcount_cry_0[1] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_cry_0[3] ( + .A0(N_8), + .B0(pcount[3]), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[4]), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[2]), + .COUT(pcount_cry[4]), + .S0(pcount_s[3]), + .S1(pcount_s[4]) +); +defparam \pcount_cry_0[3] .INIT0=16'h8000; +defparam \pcount_cry_0[3] .INIT1=16'h8000; +defparam \pcount_cry_0[3] .INJECT1_0="NO"; +defparam \pcount_cry_0[3] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_cry_0[5] ( + .A0(N_8), + .B0(pcount[5]), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[6]), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[4]), + .COUT(pcount_cry[6]), + .S0(pcount_s[5]), + .S1(pcount_s[6]) +); +defparam \pcount_cry_0[5] .INIT0=16'h8000; +defparam \pcount_cry_0[5] .INIT1=16'h8000; +defparam \pcount_cry_0[5] .INJECT1_0="NO"; +defparam \pcount_cry_0[5] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_cry_0[7] ( + .A0(N_8), + .B0(pcount[7]), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[8]), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[6]), + .COUT(pcount_cry[8]), + .S0(pcount_s[7]), + .S1(pcount_s[8]) +); +defparam \pcount_cry_0[7] .INIT0=16'h8000; +defparam \pcount_cry_0[7] .INIT1=16'h8000; +defparam \pcount_cry_0[7] .INJECT1_0="NO"; +defparam \pcount_cry_0[7] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_cry_0[9] ( + .A0(N_8), + .B0(pcount[9]), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[10]), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[8]), + .COUT(pcount_cry[10]), + .S0(pcount_s[9]), + .S1(pcount_s[10]) +); +defparam \pcount_cry_0[9] .INIT0=16'h8000; +defparam \pcount_cry_0[9] .INIT1=16'h8000; +defparam \pcount_cry_0[9] .INJECT1_0="NO"; +defparam \pcount_cry_0[9] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_cry_0[11] ( + .A0(N_8), + .B0(pcount[11]), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[12]), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[10]), + .COUT(pcount_cry[12]), + .S0(pcount_s[11]), + .S1(pcount_s[12]) +); +defparam \pcount_cry_0[11] .INIT0=16'h8000; +defparam \pcount_cry_0[11] .INIT1=16'h8000; +defparam \pcount_cry_0[11] .INJECT1_0="NO"; +defparam \pcount_cry_0[11] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_cry_0[13] ( + .A0(N_8), + .B0(pcount[13]), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[14]), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[12]), + .COUT(pcount_cry[14]), + .S0(pcount_s[13]), + .S1(pcount_s[14]) +); +defparam \pcount_cry_0[13] .INIT0=16'h8000; +defparam \pcount_cry_0[13] .INIT1=16'h8000; +defparam \pcount_cry_0[13] .INJECT1_0="NO"; +defparam \pcount_cry_0[13] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_cry_0[15] ( + .A0(N_8), + .B0(pcount[15]), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[16]), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[14]), + .COUT(pcount_cry[16]), + .S0(pcount_s[15]), + .S1(pcount_s[16]) +); +defparam \pcount_cry_0[15] .INIT0=16'h8000; +defparam \pcount_cry_0[15] .INIT1=16'h8000; +defparam \pcount_cry_0[15] .INJECT1_0="NO"; +defparam \pcount_cry_0[15] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_cry_0[17] ( + .A0(N_8), + .B0(pcount[17]), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[18]), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[16]), + .COUT(pcount_cry[18]), + .S0(pcount_s[17]), + .S1(pcount_s[18]) +); +defparam \pcount_cry_0[17] .INIT0=16'h8000; +defparam \pcount_cry_0[17] .INIT1=16'h8000; +defparam \pcount_cry_0[17] .INJECT1_0="NO"; +defparam \pcount_cry_0[17] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_cry_0[19] ( + .A0(N_8), + .B0(pcount[19]), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[20]), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[18]), + .COUT(pcount_cry[20]), + .S0(pcount_s[19]), + .S1(pcount_s[20]) +); +defparam \pcount_cry_0[19] .INIT0=16'h8000; +defparam \pcount_cry_0[19] .INIT1=16'h8000; +defparam \pcount_cry_0[19] .INJECT1_0="NO"; +defparam \pcount_cry_0[19] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_s_0[21] ( + .A0(N_8), + .B0(pcount[21]), + .C0(VCC), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[20]), + .COUT(pcount_s_0_COUT[21]), + .S0(pcount_s[21]), + .S1(pcount_s_0_S1[21]) +); +defparam \pcount_s_0[21] .INIT0=16'h800a; +defparam \pcount_s_0[21] .INIT1=16'h5003; +defparam \pcount_s_0[21] .INJECT1_0="NO"; +defparam \pcount_s_0[21] .INJECT1_1="NO"; + CCU2C \rcount_cry_0[0] ( + .A0(VCC), + .B0(un1_rcount_1_0_a3), + .C0(VCC), + .D0(VCC), + .A1(un1_rcount_1_0_a3), + .B1(rcount[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_5), + .COUT(rcount_cry[0]), + .S0(rcount_cry_0_S0[0]), + .S1(rcount_s[0]) +); +defparam \rcount_cry_0[0] .INIT0=16'h5003; +defparam \rcount_cry_0[0] .INIT1=16'h4000; +defparam \rcount_cry_0[0] .INJECT1_0="NO"; +defparam \rcount_cry_0[0] .INJECT1_1="NO"; +// @16:1304 + CCU2C \rcount_cry_0[1] ( + .A0(un1_rcount_1_0_a3), + .B0(rcount[1]), + .C0(VCC), + .D0(VCC), + .A1(un1_rcount_1_0_a3), + .B1(rcount[2]), + .C1(VCC), + .D1(VCC), + .CIN(rcount_cry[0]), + .COUT(rcount_cry[2]), + .S0(rcount_s[1]), + .S1(rcount_s[2]) +); +defparam \rcount_cry_0[1] .INIT0=16'h4000; +defparam \rcount_cry_0[1] .INIT1=16'h4000; +defparam \rcount_cry_0[1] .INJECT1_0="NO"; +defparam \rcount_cry_0[1] .INJECT1_1="NO"; +// @16:1304 + CCU2C \rcount_cry_0[3] ( + .A0(un1_rcount_1_0_a3), + .B0(rcount[3]), + .C0(VCC), + .D0(VCC), + .A1(un1_rcount_1_0_a3), + .B1(rcount[4]), + .C1(VCC), + .D1(VCC), + .CIN(rcount_cry[2]), + .COUT(rcount_cry[4]), + .S0(rcount_s[3]), + .S1(rcount_s[4]) +); +defparam \rcount_cry_0[3] .INIT0=16'h4000; +defparam \rcount_cry_0[3] .INIT1=16'h4000; +defparam \rcount_cry_0[3] .INJECT1_0="NO"; +defparam \rcount_cry_0[3] .INJECT1_1="NO"; +// @16:1304 + CCU2C \rcount_cry_0[5] ( + .A0(un1_rcount_1_0_a3), + .B0(rcount[5]), + .C0(VCC), + .D0(VCC), + .A1(un1_rcount_1_0_a3), + .B1(rcount[6]), + .C1(VCC), + .D1(VCC), + .CIN(rcount_cry[4]), + .COUT(rcount_cry[6]), + .S0(rcount_s[5]), + .S1(rcount_s[6]) +); +defparam \rcount_cry_0[5] .INIT0=16'h4000; +defparam \rcount_cry_0[5] .INIT1=16'h4000; +defparam \rcount_cry_0[5] .INJECT1_0="NO"; +defparam \rcount_cry_0[5] .INJECT1_1="NO"; +// @16:1304 + CCU2C \rcount_cry_0[7] ( + .A0(un1_rcount_1_0_a3), + .B0(rcount[7]), + .C0(VCC), + .D0(VCC), + .A1(un1_rcount_1_0_a3), + .B1(rcount[8]), + .C1(VCC), + .D1(VCC), + .CIN(rcount_cry[6]), + .COUT(rcount_cry[8]), + .S0(rcount_s[7]), + .S1(rcount_s[8]) +); +defparam \rcount_cry_0[7] .INIT0=16'h4000; +defparam \rcount_cry_0[7] .INIT1=16'h4000; +defparam \rcount_cry_0[7] .INJECT1_0="NO"; +defparam \rcount_cry_0[7] .INJECT1_1="NO"; +// @16:1304 + CCU2C \rcount_cry_0[9] ( + .A0(un1_rcount_1_0_a3), + .B0(rcount[9]), + .C0(VCC), + .D0(VCC), + .A1(un1_rcount_1_0_a3), + .B1(rcount[10]), + .C1(VCC), + .D1(VCC), + .CIN(rcount_cry[8]), + .COUT(rcount_cry[10]), + .S0(rcount_s[9]), + .S1(rcount_s[10]) +); +defparam \rcount_cry_0[9] .INIT0=16'h4000; +defparam \rcount_cry_0[9] .INIT1=16'h4000; +defparam \rcount_cry_0[9] .INJECT1_0="NO"; +defparam \rcount_cry_0[9] .INJECT1_1="NO"; +// @16:1304 + CCU2C \rcount_cry_0[11] ( + .A0(un1_rcount_1_0_a3), + .B0(rcount[11]), + .C0(VCC), + .D0(VCC), + .A1(un1_rcount_1_0_a3), + .B1(rcount[12]), + .C1(VCC), + .D1(VCC), + .CIN(rcount_cry[10]), + .COUT(rcount_cry[12]), + .S0(rcount_s[11]), + .S1(rcount_s[12]) +); +defparam \rcount_cry_0[11] .INIT0=16'h4000; +defparam \rcount_cry_0[11] .INIT1=16'h4000; +defparam \rcount_cry_0[11] .INJECT1_0="NO"; +defparam \rcount_cry_0[11] .INJECT1_1="NO"; +// @16:1304 + CCU2C \rcount_cry_0[13] ( + .A0(un1_rcount_1_0_a3), + .B0(rcount[13]), + .C0(VCC), + .D0(VCC), + .A1(un1_rcount_1_0_a3), + .B1(rcount[14]), + .C1(VCC), + .D1(VCC), + .CIN(rcount_cry[12]), + .COUT(rcount_cry[14]), + .S0(rcount_s[13]), + .S1(rcount_s[14]) +); +defparam \rcount_cry_0[13] .INIT0=16'h4000; +defparam \rcount_cry_0[13] .INIT1=16'h4000; +defparam \rcount_cry_0[13] .INJECT1_0="NO"; +defparam \rcount_cry_0[13] .INJECT1_1="NO"; +// @16:1304 + CCU2C \rcount_s_0[15] ( + .A0(un1_rcount_1_0_a3), + .B0(rcount[15]), + .C0(VCC), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(rcount_cry[14]), + .COUT(rcount_s_0_COUT[15]), + .S0(rcount_s[15]), + .S1(rcount_s_0_S1[15]) +); +defparam \rcount_s_0[15] .INIT0=16'h4005; +defparam \rcount_s_0[15] .INIT1=16'h5003; +defparam \rcount_s_0[15] .INJECT1_0="NO"; +defparam \rcount_s_0[15] .INJECT1_1="NO"; + CCU2C \rhb_wait_cnt_cry_0[0] ( + .A0(VCC), + .B0(rhb_wait_cnt_scalar), + .C0(VCC), + .D0(VCC), + .A1(rhb_wait_cnt_scalar), + .B1(rhb_wait_cnt[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_4), + .COUT(rhb_wait_cnt_cry[0]), + .S0(rhb_wait_cnt_cry_0_S0[0]), + .S1(rhb_wait_cnt_s[0]) +); +defparam \rhb_wait_cnt_cry_0[0] .INIT0=16'h500c; +defparam \rhb_wait_cnt_cry_0[0] .INIT1=16'h8000; +defparam \rhb_wait_cnt_cry_0[0] .INJECT1_0="NO"; +defparam \rhb_wait_cnt_cry_0[0] .INJECT1_1="NO"; +// @16:1350 + CCU2C \rhb_wait_cnt_cry_0[1] ( + .A0(rhb_wait_cnt_scalar), + .B0(rhb_wait_cnt[1]), + .C0(VCC), + .D0(VCC), + .A1(rhb_wait_cnt_scalar), + .B1(rhb_wait_cnt[2]), + .C1(VCC), + .D1(VCC), + .CIN(rhb_wait_cnt_cry[0]), + .COUT(rhb_wait_cnt_cry[2]), + .S0(rhb_wait_cnt_s[1]), + .S1(rhb_wait_cnt_s[2]) +); +defparam \rhb_wait_cnt_cry_0[1] .INIT0=16'h8000; +defparam \rhb_wait_cnt_cry_0[1] .INIT1=16'h8000; +defparam \rhb_wait_cnt_cry_0[1] .INJECT1_0="NO"; +defparam \rhb_wait_cnt_cry_0[1] .INJECT1_1="NO"; +// @16:1350 + CCU2C \rhb_wait_cnt_cry_0[3] ( + .A0(rhb_wait_cnt_scalar), + .B0(rhb_wait_cnt[3]), + .C0(VCC), + .D0(VCC), + .A1(rhb_wait_cnt_scalar), + .B1(rhb_wait_cnt[4]), + .C1(VCC), + .D1(VCC), + .CIN(rhb_wait_cnt_cry[2]), + .COUT(rhb_wait_cnt_cry[4]), + .S0(rhb_wait_cnt_s[3]), + .S1(rhb_wait_cnt_s[4]) +); +defparam \rhb_wait_cnt_cry_0[3] .INIT0=16'h8000; +defparam \rhb_wait_cnt_cry_0[3] .INIT1=16'h8000; +defparam \rhb_wait_cnt_cry_0[3] .INJECT1_0="NO"; +defparam \rhb_wait_cnt_cry_0[3] .INJECT1_1="NO"; +// @16:1350 + CCU2C \rhb_wait_cnt_cry_0[5] ( + .A0(rhb_wait_cnt_scalar), + .B0(rhb_wait_cnt[5]), + .C0(VCC), + .D0(VCC), + .A1(rhb_wait_cnt_scalar), + .B1(rhb_wait_cnt[6]), + .C1(VCC), + .D1(VCC), + .CIN(rhb_wait_cnt_cry[4]), + .COUT(rhb_wait_cnt_cry[6]), + .S0(rhb_wait_cnt_s[5]), + .S1(rhb_wait_cnt_s[6]) +); +defparam \rhb_wait_cnt_cry_0[5] .INIT0=16'h8000; +defparam \rhb_wait_cnt_cry_0[5] .INIT1=16'h8000; +defparam \rhb_wait_cnt_cry_0[5] .INJECT1_0="NO"; +defparam \rhb_wait_cnt_cry_0[5] .INJECT1_1="NO"; +// @16:1350 + CCU2C \rhb_wait_cnt_s_0[7] ( + .A0(rhb_wait_cnt_scalar), + .B0(rhb_wait_cnt[7]), + .C0(VCC), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(rhb_wait_cnt_cry[6]), + .COUT(rhb_wait_cnt_s_0_COUT[7]), + .S0(rhb_wait_cnt_s[7]), + .S1(rhb_wait_cnt_s_0_S1[7]) +); +defparam \rhb_wait_cnt_s_0[7] .INIT0=16'h800a; +defparam \rhb_wait_cnt_s_0[7] .INIT1=16'h5003; +defparam \rhb_wait_cnt_s_0[7] .INJECT1_0="NO"; +defparam \rhb_wait_cnt_s_0[7] .INJECT1_1="NO"; + CCU2C un1_pcount_diff_1_cry_0_0 ( + .A0(VCC), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un1_pcount_diff[0]), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(N_3), + .COUT(un1_pcount_diff_1_cry_0), + .S0(un1_pcount_diff_1_cry_0_0_S0), + .S1(un1_pcount_diff_1_cry_0_0_S1) +); +defparam un1_pcount_diff_1_cry_0_0.INIT0=16'h5003; +defparam un1_pcount_diff_1_cry_0_0.INIT1=16'h500f; +defparam un1_pcount_diff_1_cry_0_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_0_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_cry_1_0 ( + .A0(un1_pcount_diff_1_axb_1), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un1_pcount_diff_1_axb_2), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_0), + .COUT(un1_pcount_diff_1_cry_2), + .S0(un1_pcount_diff_1_cry_1_0_S0), + .S1(un1_pcount_diff_1_cry_1_0_S1) +); +defparam un1_pcount_diff_1_cry_1_0.INIT0=16'ha003; +defparam un1_pcount_diff_1_cry_1_0.INIT1=16'ha003; +defparam un1_pcount_diff_1_cry_1_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_1_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_cry_3_0 ( + .A0(un1_pcount_diff_1_axb_3), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un1_pcount_diff_1_axb_4), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_2), + .COUT(un1_pcount_diff_1_cry_4), + .S0(un1_pcount_diff_1_cry_3_0_S0), + .S1(un1_pcount_diff_1_cry_3_0_S1) +); +defparam un1_pcount_diff_1_cry_3_0.INIT0=16'ha003; +defparam un1_pcount_diff_1_cry_3_0.INIT1=16'ha003; +defparam un1_pcount_diff_1_cry_3_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_3_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_cry_5_0 ( + .A0(un1_pcount_diff_1_axb_5), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un1_pcount_diff_1_axb_6), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_4), + .COUT(un1_pcount_diff_1_cry_6), + .S0(un1_pcount_diff_1_cry_5_0_S0), + .S1(un1_pcount_diff_1_cry_5_0_S1) +); +defparam un1_pcount_diff_1_cry_5_0.INIT0=16'ha003; +defparam un1_pcount_diff_1_cry_5_0.INIT1=16'ha003; +defparam un1_pcount_diff_1_cry_5_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_5_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_cry_7_0 ( + .A0(un1_pcount_diff_1_axb_7), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un1_pcount_diff_1_axb_8), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_6), + .COUT(un1_pcount_diff_1_cry_8), + .S0(un1_pcount_diff_1_cry_7_0_S0), + .S1(un1_pcount_diff_1_cry_7_0_S1) +); +defparam un1_pcount_diff_1_cry_7_0.INIT0=16'ha003; +defparam un1_pcount_diff_1_cry_7_0.INIT1=16'ha003; +defparam un1_pcount_diff_1_cry_7_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_7_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_cry_9_0 ( + .A0(un1_pcount_diff_1_axb_9), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un1_pcount_diff_1_axb_10), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_8), + .COUT(un1_pcount_diff_1_cry_10), + .S0(un1_pcount_diff_1_cry_9_0_S0), + .S1(un1_pcount_diff_1_cry_9_0_S1) +); +defparam un1_pcount_diff_1_cry_9_0.INIT0=16'ha003; +defparam un1_pcount_diff_1_cry_9_0.INIT1=16'ha003; +defparam un1_pcount_diff_1_cry_9_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_9_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_cry_11_0 ( + .A0(un1_pcount_diff_1_axb_11), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un1_pcount_diff_1_axb_12), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_10), + .COUT(un1_pcount_diff_1_cry_12), + .S0(un1_pcount_diff_1_cry_11_0_S0), + .S1(un1_pcount_diff_1_cry_11_0_S1) +); +defparam un1_pcount_diff_1_cry_11_0.INIT0=16'ha003; +defparam un1_pcount_diff_1_cry_11_0.INIT1=16'ha003; +defparam un1_pcount_diff_1_cry_11_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_11_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_cry_13_0 ( + .A0(un1_pcount_diff_1_axb_13), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un1_pcount_diff_1_axb_14), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_12), + .COUT(un1_pcount_diff_1_cry_14), + .S0(un1_pcount_diff_1_cry_13_0_S0), + .S1(un1_pcount_diff_1_cry_13_0_S1) +); +defparam un1_pcount_diff_1_cry_13_0.INIT0=16'ha003; +defparam un1_pcount_diff_1_cry_13_0.INIT1=16'ha003; +defparam un1_pcount_diff_1_cry_13_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_13_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_cry_15_0 ( + .A0(un1_pcount_diff_1_axb_15), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un1_pcount_diff_1_axb_16), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_14), + .COUT(un1_pcount_diff_1_cry_16), + .S0(un1_pcount_diff_1_cry_15_0_S0), + .S1(un1_pcount_diff_1_cry_15_0_S1) +); +defparam un1_pcount_diff_1_cry_15_0.INIT0=16'ha003; +defparam un1_pcount_diff_1_cry_15_0.INIT1=16'ha003; +defparam un1_pcount_diff_1_cry_15_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_15_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_cry_17_0 ( + .A0(N_8), + .B0(rdiff_comp_lock[2]), + .C0(un1_pcount_diff_1_cry_17_0_RNO), + .D0(VCC), + .A1(un1_pcount_diff_1_axb_18), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_16), + .COUT(un1_pcount_diff_1_cry_18), + .S0(un1_pcount_diff_1_cry_17_0_S0), + .S1(un1_pcount_diff_1_cry_17_0_S1) +); +defparam un1_pcount_diff_1_cry_17_0.INIT0=16'hb404; +defparam un1_pcount_diff_1_cry_17_0.INIT1=16'ha003; +defparam un1_pcount_diff_1_cry_17_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_17_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_cry_19_0 ( + .A0(un1_pcount_diff_1_axb_19), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un1_pcount_diff_1_axb_20), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_18), + .COUT(un1_pcount_diff_1_cry_20), + .S0(un1_pcount_diff_1_cry_19_0_S0), + .S1(un1_pcount_diff_1_cry_19_0_S1) +); +defparam un1_pcount_diff_1_cry_19_0.INIT0=16'ha003; +defparam un1_pcount_diff_1_cry_19_0.INIT1=16'ha003; +defparam un1_pcount_diff_1_cry_19_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_19_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_s_21_0 ( + .A0(pcount[21]), + .B0(un13_lock_21), + .C0(N_8), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_20), + .COUT(un1_pcount_diff_1_s_21_0_COUT), + .S0(un1_pcount_diff_1_s_21_0_S0), + .S1(un1_pcount_diff_1_s_21_0_S1) +); +defparam un1_pcount_diff_1_s_21_0.INIT0=16'h350a; +defparam un1_pcount_diff_1_s_21_0.INIT1=16'h5003; +defparam un1_pcount_diff_1_s_21_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_s_21_0.INJECT1_1="NO"; + CCU2C un13_lock_cry_0_0 ( + .A0(VCC), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_0), + .B1(rdiff_comp_lock[2]), + .C1(VCC), + .D1(VCC), + .CIN(N_2), + .COUT(un13_lock_cry_0), + .S0(un13_lock_cry_0_0_S0), + .S1(un13_lock_cry_0_0_S1) +); +defparam un13_lock_cry_0_0.INIT0=16'h5003; +defparam un13_lock_cry_0_0.INIT1=16'h900a; +defparam un13_lock_cry_0_0.INJECT1_0="NO"; +defparam un13_lock_cry_0_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_1_0 ( + .A0(un13_lock_1), + .B0(rdiff_comp_lock[2]), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_2), + .B1(rdiff_comp_lock[2]), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_0), + .COUT(un13_lock_cry_2), + .S0(un13_lock_cry_1_0_S0), + .S1(un13_lock_cry_1_0_S1) +); +defparam un13_lock_cry_1_0.INIT0=16'h900a; +defparam un13_lock_cry_1_0.INIT1=16'h900a; +defparam un13_lock_cry_1_0.INJECT1_0="NO"; +defparam un13_lock_cry_1_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_3_0 ( + .A0(un13_lock_3), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_4), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_2), + .COUT(un13_lock_cry_4), + .S0(un13_lock_cry_3_0_S0), + .S1(un13_lock_cry_3_0_S1) +); +defparam un13_lock_cry_3_0.INIT0=16'h500a; +defparam un13_lock_cry_3_0.INIT1=16'h500a; +defparam un13_lock_cry_3_0.INJECT1_0="NO"; +defparam un13_lock_cry_3_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_5_0 ( + .A0(un13_lock_5), + .B0(rdiff_comp_lock[2]), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_6), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_4), + .COUT(un13_lock_cry_6), + .S0(un13_lock_cry_5_0_S0), + .S1(un13_lock_cry_5_0_S1) +); +defparam un13_lock_cry_5_0.INIT0=16'h900a; +defparam un13_lock_cry_5_0.INIT1=16'h500a; +defparam un13_lock_cry_5_0.INJECT1_0="NO"; +defparam un13_lock_cry_5_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_7_0 ( + .A0(un13_lock_7), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_8), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_6), + .COUT(un13_lock_cry_8), + .S0(un13_lock_cry_7_0_S0), + .S1(un13_lock_cry_7_0_S1) +); +defparam un13_lock_cry_7_0.INIT0=16'h500a; +defparam un13_lock_cry_7_0.INIT1=16'h500a; +defparam un13_lock_cry_7_0.INJECT1_0="NO"; +defparam un13_lock_cry_7_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_9_0 ( + .A0(un13_lock_9), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_10), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_8), + .COUT(un13_lock_cry_10), + .S0(un13_lock_cry_9_0_S0), + .S1(un13_lock_cry_9_0_S1) +); +defparam un13_lock_cry_9_0.INIT0=16'h500a; +defparam un13_lock_cry_9_0.INIT1=16'h500a; +defparam un13_lock_cry_9_0.INJECT1_0="NO"; +defparam un13_lock_cry_9_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_11_0 ( + .A0(un13_lock_11), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_12), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_10), + .COUT(un13_lock_cry_12), + .S0(un13_lock_cry_11_0_S0), + .S1(un13_lock_cry_11_0_S1) +); +defparam un13_lock_cry_11_0.INIT0=16'h500a; +defparam un13_lock_cry_11_0.INIT1=16'h500a; +defparam un13_lock_cry_11_0.INJECT1_0="NO"; +defparam un13_lock_cry_11_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_13_0 ( + .A0(un13_lock_13), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_14), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_12), + .COUT(un13_lock_cry_14), + .S0(un13_lock_cry_13_0_S0), + .S1(un13_lock_cry_13_0_S1) +); +defparam un13_lock_cry_13_0.INIT0=16'h500a; +defparam un13_lock_cry_13_0.INIT1=16'h500a; +defparam un13_lock_cry_13_0.INJECT1_0="NO"; +defparam un13_lock_cry_13_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_15_0 ( + .A0(un13_lock_15), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_16), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_14), + .COUT(un13_lock_cry_16), + .S0(un13_lock_cry_15_0_S0), + .S1(un13_lock_cry_15_0_S1) +); +defparam un13_lock_cry_15_0.INIT0=16'h500a; +defparam un13_lock_cry_15_0.INIT1=16'h500a; +defparam un13_lock_cry_15_0.INJECT1_0="NO"; +defparam un13_lock_cry_15_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_17_0 ( + .A0(un13_lock_17), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_18), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_16), + .COUT(un13_lock_cry_18), + .S0(un13_lock_cry_17_0_S0), + .S1(un13_lock_cry_17_0_S1) +); +defparam un13_lock_cry_17_0.INIT0=16'h500a; +defparam un13_lock_cry_17_0.INIT1=16'h500a; +defparam un13_lock_cry_17_0.INJECT1_0="NO"; +defparam un13_lock_cry_17_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_19_0 ( + .A0(un13_lock_19), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_20), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_18), + .COUT(un13_lock_cry_20), + .S0(un13_lock_cry_19_0_S0), + .S1(un13_lock_cry_19_0_S1) +); +defparam un13_lock_cry_19_0.INIT0=16'h500a; +defparam un13_lock_cry_19_0.INIT1=16'h500a; +defparam un13_lock_cry_19_0.INJECT1_0="NO"; +defparam un13_lock_cry_19_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_21_0 ( + .A0(un13_lock_21), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_20), + .COUT(un13_lock_cry_21_0_COUT), + .S0(un13_lock_cry_21_0_S0), + .S1(un13_lock_cry_21_i) +); +defparam un13_lock_cry_21_0.INIT0=16'h500f; +defparam un13_lock_cry_21_0.INIT1=16'ha003; +defparam un13_lock_cry_21_0.INJECT1_0="NO"; +defparam un13_lock_cry_21_0.INJECT1_1="NO"; + CCU2C un13_unlock_cry_0_0 ( + .A0(VCC), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_0), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(N_1), + .COUT(un13_unlock_cry_0), + .S0(un13_unlock_cry_0_0_S0), + .S1(un13_unlock_cry_0_0_S1) +); +defparam un13_unlock_cry_0_0.INIT0=16'h5003; +defparam un13_unlock_cry_0_0.INIT1=16'h500a; +defparam un13_unlock_cry_0_0.INJECT1_0="NO"; +defparam un13_unlock_cry_0_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_1_0 ( + .A0(un13_lock_1), + .B0(rdiff_comp_lock[2]), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_2), + .B1(rdiff_comp_lock[2]), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_0), + .COUT(un13_unlock_cry_2), + .S0(un13_unlock_cry_1_0_S0), + .S1(un13_unlock_cry_1_0_S1) +); +defparam un13_unlock_cry_1_0.INIT0=16'h900a; +defparam un13_unlock_cry_1_0.INIT1=16'h900a; +defparam un13_unlock_cry_1_0.INJECT1_0="NO"; +defparam un13_unlock_cry_1_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_3_0 ( + .A0(un13_lock_3), + .B0(rdiff_comp_lock[2]), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_4), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_2), + .COUT(un13_unlock_cry_4), + .S0(un13_unlock_cry_3_0_S0), + .S1(un13_unlock_cry_3_0_S1) +); +defparam un13_unlock_cry_3_0.INIT0=16'h900a; +defparam un13_unlock_cry_3_0.INIT1=16'h500a; +defparam un13_unlock_cry_3_0.INJECT1_0="NO"; +defparam un13_unlock_cry_3_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_5_0 ( + .A0(un13_lock_5), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_6), + .B1(rdiff_comp_lock[2]), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_4), + .COUT(un13_unlock_cry_6), + .S0(un13_unlock_cry_5_0_S0), + .S1(un13_unlock_cry_5_0_S1) +); +defparam un13_unlock_cry_5_0.INIT0=16'h500a; +defparam un13_unlock_cry_5_0.INIT1=16'h900a; +defparam un13_unlock_cry_5_0.INJECT1_0="NO"; +defparam un13_unlock_cry_5_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_7_0 ( + .A0(un13_lock_7), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_8), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_6), + .COUT(un13_unlock_cry_8), + .S0(un13_unlock_cry_7_0_S0), + .S1(un13_unlock_cry_7_0_S1) +); +defparam un13_unlock_cry_7_0.INIT0=16'h500a; +defparam un13_unlock_cry_7_0.INIT1=16'h500a; +defparam un13_unlock_cry_7_0.INJECT1_0="NO"; +defparam un13_unlock_cry_7_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_9_0 ( + .A0(un13_lock_9), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_10), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_8), + .COUT(un13_unlock_cry_10), + .S0(un13_unlock_cry_9_0_S0), + .S1(un13_unlock_cry_9_0_S1) +); +defparam un13_unlock_cry_9_0.INIT0=16'h500a; +defparam un13_unlock_cry_9_0.INIT1=16'h500a; +defparam un13_unlock_cry_9_0.INJECT1_0="NO"; +defparam un13_unlock_cry_9_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_11_0 ( + .A0(un13_lock_11), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_12), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_10), + .COUT(un13_unlock_cry_12), + .S0(un13_unlock_cry_11_0_S0), + .S1(un13_unlock_cry_11_0_S1) +); +defparam un13_unlock_cry_11_0.INIT0=16'h500a; +defparam un13_unlock_cry_11_0.INIT1=16'h500a; +defparam un13_unlock_cry_11_0.INJECT1_0="NO"; +defparam un13_unlock_cry_11_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_13_0 ( + .A0(un13_lock_13), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_14), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_12), + .COUT(un13_unlock_cry_14), + .S0(un13_unlock_cry_13_0_S0), + .S1(un13_unlock_cry_13_0_S1) +); +defparam un13_unlock_cry_13_0.INIT0=16'h500a; +defparam un13_unlock_cry_13_0.INIT1=16'h500a; +defparam un13_unlock_cry_13_0.INJECT1_0="NO"; +defparam un13_unlock_cry_13_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_15_0 ( + .A0(un13_lock_15), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_16), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_14), + .COUT(un13_unlock_cry_16), + .S0(un13_unlock_cry_15_0_S0), + .S1(un13_unlock_cry_15_0_S1) +); +defparam un13_unlock_cry_15_0.INIT0=16'h500a; +defparam un13_unlock_cry_15_0.INIT1=16'h500a; +defparam un13_unlock_cry_15_0.INJECT1_0="NO"; +defparam un13_unlock_cry_15_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_17_0 ( + .A0(un13_lock_17), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_18), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_16), + .COUT(un13_unlock_cry_18), + .S0(un13_unlock_cry_17_0_S0), + .S1(un13_unlock_cry_17_0_S1) +); +defparam un13_unlock_cry_17_0.INIT0=16'h500a; +defparam un13_unlock_cry_17_0.INIT1=16'h500a; +defparam un13_unlock_cry_17_0.INJECT1_0="NO"; +defparam un13_unlock_cry_17_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_19_0 ( + .A0(un13_lock_19), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_20), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_18), + .COUT(un13_unlock_cry_20), + .S0(un13_unlock_cry_19_0_S0), + .S1(un13_unlock_cry_19_0_S1) +); +defparam un13_unlock_cry_19_0.INIT0=16'h500a; +defparam un13_unlock_cry_19_0.INIT1=16'h500a; +defparam un13_unlock_cry_19_0.INJECT1_0="NO"; +defparam un13_unlock_cry_19_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_21_0 ( + .A0(un13_lock_21), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_20), + .COUT(un13_unlock_cry_21_0_COUT), + .S0(un13_unlock_cry_21_0_S0), + .S1(un13_unlock_cry_21) +); +defparam un13_unlock_cry_21_0.INIT0=16'h500f; +defparam un13_unlock_cry_21_0.INIT1=16'h5003; +defparam un13_unlock_cry_21_0.INJECT1_0="NO"; +defparam un13_unlock_cry_21_0.INJECT1_1="NO"; +//@16:1801 +//@8:424 +// @16:1211 + sync_0s phb_sync_inst ( + .phb(phb), + .rhb_sync(rhb_sync), + .sli_rst(sli_rst), + .pll_refclki(pll_refclki) +); +// @16:1220 + sync_0s_6 rtc_sync_inst ( + .rtc_pul(rtc_pul), + .ppul_sync(ppul_sync), + .sli_rst(sli_rst), + .tx_pclk(tx_pclk) +); +// @16:1228 + sync_0s_0 pdiff_sync_inst ( + .ppul_sync(ppul_sync), + .pdiff_sync(pdiff_sync), + .sli_rst(sli_rst), + .pll_refclki(pll_refclki) +); + VHI VCC_0 ( + .Z(VCC) +); +// @16:865 + VLO GND_cZ ( + .Z(GND) +); +endmodule /* sgmii_ecp5sll_core_Z1_layer1 */ + +module sgmii_ecp5rsl_core_Z2_layer1 ( + rx_pcs_rst_c, + tx_pcs_rst_c, + tx_serdes_rst_c, + serdes_rst_dual_c, + rsl_tx_pcs_rst_c, + rsl_rx_serdes_rst_c, + rsl_serdes_rst_dual_c, + rsl_tx_serdes_rst_c, + rsl_tx_rdy, + pll_lock_i, + pll_refclki, + rsl_rx_rdy, + rsl_rst, + rxrefclk, + rsl_disable, + rx_serdes_rst_c, + rsl_rx_pcs_rst_c, + rst_dual_c, + rx_cdr_lol_s, + rx_los_low_s +) +; +input rx_pcs_rst_c ; +input tx_pcs_rst_c ; +input tx_serdes_rst_c ; +input serdes_rst_dual_c ; +output rsl_tx_pcs_rst_c ; +output rsl_rx_serdes_rst_c ; +output rsl_serdes_rst_dual_c ; +output rsl_tx_serdes_rst_c ; +output rsl_tx_rdy ; +input pll_lock_i ; +input pll_refclki ; +output rsl_rx_rdy ; +input rsl_rst ; +input rxrefclk ; +input rsl_disable ; +input rx_serdes_rst_c ; +output rsl_rx_pcs_rst_c ; +input rst_dual_c ; +input rx_cdr_lol_s ; +input rx_los_low_s ; +wire rx_pcs_rst_c ; +wire tx_pcs_rst_c ; +wire tx_serdes_rst_c ; +wire serdes_rst_dual_c ; +wire rsl_tx_pcs_rst_c ; +wire rsl_rx_serdes_rst_c ; +wire rsl_serdes_rst_dual_c ; +wire rsl_tx_serdes_rst_c ; +wire rsl_tx_rdy ; +wire pll_lock_i ; +wire pll_refclki ; +wire rsl_rx_rdy ; +wire rsl_rst ; +wire rxrefclk ; +wire rsl_disable ; +wire rx_serdes_rst_c ; +wire rsl_rx_pcs_rst_c ; +wire rst_dual_c ; +wire rx_cdr_lol_s ; +wire rx_los_low_s ; +wire [1:0] rxs_cnt; +wire [1:0] rxs_cnt_3; +wire [0:0] rxpr_appd_RNO; +wire [2:0] plol0_cnt; +wire [2:0] plol0_cnt_3; +wire [0:0] rxsr_appd; +wire [1:0] rxs_cnt_QN; +wire [3:0] rlos_db_cnt; +wire [3:0] rlos_db_cnt_QN; +wire [17:0] rlols0_cnt_s; +wire [17:0] rlols0_cnt; +wire [17:0] rlols0_cnt_QN; +wire [3:0] rlol_db_cnt; +wire [3:0] rlol_db_cnt_QN; +wire [18:0] rlol1_cnt_s; +wire [18:0] rlol1_cnt; +wire [18:0] rlol1_cnt_QN; +wire [11:0] rxr_wt_cnt_s; +wire [11:0] rxr_wt_cnt; +wire [11:0] rxr_wt_cnt_QN; +wire [0:0] rxsr_appd_QN; +wire [0:0] rxpr_appd; +wire [0:0] rxpr_appd_QN; +wire [1:0] txs_cnt; +wire [1:0] txs_cnt_QN; +wire [1:1] txs_cnt_RNO; +wire [1:0] txp_cnt; +wire [1:0] txp_cnt_QN; +wire [1:1] txp_cnt_RNO; +wire [19:0] plol_cnt_s; +wire [19:0] plol_cnt; +wire [19:0] plol_cnt_QN; +wire [2:0] plol0_cnt_QN; +wire [11:0] txr_wt_cnt_s; +wire [11:0] txr_wt_cnt; +wire [11:0] txr_wt_cnt_QN; +wire [0:0] txpr_appd; +wire [0:0] txpr_appd_QN; +wire [0:0] un1_rlol_db_cnt_zero; +wire [0:0] un1_rlos_db_cnt_zero; +wire [0:0] un1_rlol_db_cnt_zero_bm; +wire [0:0] un1_rlol_db_cnt_zero_am; +wire [0:0] un1_rlos_db_cnt_zero_bm; +wire [0:0] un1_rlos_db_cnt_zero_am; +wire [16:0] rlol1_cnt_cry; +wire [0:0] rlol1_cnt_cry_0_S0; +wire [17:17] rlol1_cnt_cry_0_COUT; +wire [16:0] rlols0_cnt_cry; +wire [0:0] rlols0_cnt_cry_0_S0; +wire [17:17] rlols0_cnt_s_0_COUT; +wire [17:17] rlols0_cnt_s_0_S1; +wire [10:0] txr_wt_cnt_cry; +wire [0:0] txr_wt_cnt_cry_0_S0; +wire [11:11] txr_wt_cnt_s_0_COUT; +wire [11:11] txr_wt_cnt_s_0_S1; +wire [10:0] rxr_wt_cnt_cry; +wire [0:0] rxr_wt_cnt_cry_0_S0; +wire [11:11] rxr_wt_cnt_s_0_COUT; +wire [11:11] rxr_wt_cnt_s_0_S1; +wire [18:0] plol_cnt_cry; +wire [0:0] plol_cnt_cry_0_S0; +wire [19:19] plol_cnt_s_0_COUT; +wire [19:19] plol_cnt_s_0_S1; +wire rxs_rst ; +wire VCC ; +wire dual_or_rserd_rst ; +wire plol0_cnt9 ; +wire waita_plol0 ; +wire rlos_db_p1 ; +wire rlos_db ; +wire rxp_rst25 ; +wire rlol_db ; +wire un1_rui_rst_dual_c_1_1 ; +wire rx_all_well ; +wire un3_rx_all_well_2 ; +wire un17_rxr_wt_tc ; +wire un3_rx_all_well_1 ; +wire rx_any_rst ; +wire rxr_wt_cnt9 ; +wire un1_rui_rst_dual_c_1_i ; +wire rlol1_cnt_tc_1 ; +wire rlol1_cnt_scalar ; +wire rxr_wt_en ; +wire rxr_wt_cnte ; +wire rlols0_cnt_tc_1 ; +wire un2_rlos_redge_1_i ; +wire un18_txr_wt_tc ; +wire tx_any_rst ; +wire pll_lol_p2 ; +wire un2_plol_fedge_5_i ; +wire N_2124_0 ; +wire waita_rlols06 ; +wire un1_rlols0_cnt_tc ; +wire waita_rlols0 ; +wire waita_rlols0_QN ; +wire wait_calib_RNO ; +wire un1_rlos_fedge_1 ; +wire wait_calib ; +wire wait_calib_QN ; +wire rxs_rst6 ; +wire un1_rxs_cnt_tc ; +wire rxs_rst_QN ; +wire rxp_rst2 ; +wire rxp_rst2_QN ; +wire rlos_p1 ; +wire rlos_p2 ; +wire rlos_p2_QN ; +wire rlos_p1_QN ; +wire rlos_db_p1_QN ; +wire rlos_db_cnt_axb_0 ; +wire rlos_db_cnt_cry_1_0_S0 ; +wire rlos_db_cnt_cry_1_0_S1 ; +wire rlos_db_cnt_s_3_0_S0 ; +wire un1_rlos_db_cnt_max ; +wire rlos_db_QN ; +wire rlols0_cnte ; +wire rlol_p1 ; +wire rlol_p2 ; +wire rlol_p2_QN ; +wire rlol_p1_QN ; +wire rlol_db_p1 ; +wire rlol_db_p1_QN ; +wire rlol_db_cnt_axb_0 ; +wire rlol_db_cnt_cry_1_0_S0 ; +wire rlol_db_cnt_cry_1_0_S1 ; +wire rlol_db_cnt_s_3_0_S0 ; +wire un1_rlol_db_cnt_max ; +wire rlol_db_QN ; +wire rlol1_cnte ; +wire rxsdr_appd_2 ; +wire rxsdr_appd_4 ; +wire rxsdr_appd_QN ; +wire un1_dual_or_rserd_rst_2_i ; +wire rxr_wt_en_QN ; +wire rxdpr_appd ; +wire rxdpr_appd_QN ; +wire ruo_rx_rdyr_QN ; +wire un2_rdo_serdes_rst_dual_c_2_i ; +wire plol_fedge ; +wire un1_plol0_cnt_tc_1_i ; +wire waita_plol0_QN ; +wire un1_plol_cnt_tc ; +wire un2_plol_cnt_tc ; +wire txs_rst ; +wire txs_rst_QN ; +wire N_10_i ; +wire un9_plol0_cnt_tc ; +wire un1_plol0_cnt_tc_1 ; +wire txp_rst ; +wire txp_rst_QN ; +wire N_11_i ; +wire pll_lol_p3 ; +wire pll_lol_p3_QN ; +wire pll_lol_p1 ; +wire pll_lol_p2_QN ; +wire pll_lol_p1_QN ; +wire txsr_appd_2 ; +wire txsr_appd_4 ; +wire txsr_appd_QN ; +wire un1_dual_or_serd_rst_1_1 ; +wire un1_dual_or_serd_rst_1_i ; +wire txr_wt_en ; +wire txr_wt_en_QN ; +wire txr_wt_cnte ; +wire un2_plol_fedge_2 ; +wire un2_plol_fedge_3_i ; +wire txdpr_appd ; +wire txdpr_appd_QN ; +wire un2_plol_fedge_5_1 ; +wire ruo_tx_rdyr_QN ; +wire un2_plol_fedge_8_i ; +wire rlos_redge ; +wire rlols0_cnt11_0 ; +wire plol_cnt_scalar ; +wire rlols0_cnt_scalar ; +wire un8_rxs_cnt_tc ; +wire un1_txsr_appd ; +wire un3_rx_all_well_2_1 ; +wire un1_rxsdr_or_sr_appd ; +wire un2_rdo_serdes_rst_dual_c_1_1 ; +wire rlols0_cnt_tc_1_10 ; +wire rlols0_cnt_tc_1_11 ; +wire rlols0_cnt_tc_1_12 ; +wire rlols0_cnt_tc_1_13 ; +wire un1_plol_cnt_tc_11 ; +wire un1_plol_cnt_tc_12 ; +wire un1_plol_cnt_tc_13 ; +wire un1_plol_cnt_tc_14 ; +wire rlol1_cnt_tc_1_11 ; +wire rlol1_cnt_tc_1_12 ; +wire rlol1_cnt_tc_1_13 ; +wire rlol1_cnt_tc_1_14 ; +wire CO0_2 ; +wire un18_txr_wt_tc_6 ; +wire un18_txr_wt_tc_7 ; +wire un18_txr_wt_tc_8 ; +wire un17_rxr_wt_tc_6 ; +wire un17_rxr_wt_tc_7 ; +wire un17_rxr_wt_tc_8 ; +wire rlols0_cnt_tc_1_9 ; +wire un1_plol_cnt_tc_10 ; +wire rlol1_cnt_tc_1_10 ; +wire txr_wt_cnt_scalar ; +wire rlos_db_cnt_cry_0 ; +wire rlos_db_cnt_cry_0_0_S0 ; +wire rlos_db_cnt_cry_0_0_S1 ; +wire rlos_db_cnt_cry_2 ; +wire rlos_db_cnt_s_3_0_COUT ; +wire rlos_db_cnt_s_3_0_S1 ; +wire rlol_db_cnt_cry_0 ; +wire rlol_db_cnt_cry_0_0_S0 ; +wire rlol_db_cnt_cry_0_0_S1 ; +wire rlol_db_cnt_cry_2 ; +wire rlol_db_cnt_s_3_0_COUT ; +wire rlol_db_cnt_s_3_0_S1 ; +wire GND ; +wire N_1 ; +wire N_2 ; +wire N_3 ; +wire N_4 ; +wire N_5 ; +wire N_6 ; +wire N_7 ; + LUT4 \genblk2.rxs_cnt_RNO[0] ( + .A(rxs_rst), + .B(rxs_cnt[0]), + .C(rxs_cnt[1]), + .D(VCC), + .Z(rxs_cnt_3[0]) +); +defparam \genblk2.rxs_cnt_RNO[0] .init=16'h2626; + LUT4 \genblk2.genblk3.lfor[0].rxpr_appd_RNO[0] ( + .A(dual_or_rserd_rst), + .B(rx_los_low_s), + .C(rx_cdr_lol_s), + .D(VCC), + .Z(rxpr_appd_RNO[0]) +); +defparam \genblk2.genblk3.lfor[0].rxpr_appd_RNO[0] .init=16'h0101; + LUT4 \genblk1.plol0_cnt_RNO[1] ( + .A(plol0_cnt[1]), + .B(plol0_cnt9), + .C(waita_plol0), + .D(plol0_cnt[0]), + .Z(plol0_cnt_3[1]) +); +defparam \genblk1.plol0_cnt_RNO[1] .init=16'h1222; + LUT4 \genblk2.rxp_rst2_RNO ( + .A(dual_or_rserd_rst), + .B(rlos_db_p1), + .C(rlos_db), + .D(VCC), + .Z(rxp_rst25) +); +defparam \genblk2.rxp_rst2_RNO .init=16'hBABA; + LUT4 \genblk2.genblk3.rxdpr_appd_RNO ( + .A(dual_or_rserd_rst), + .B(rlos_db), + .C(rlol_db), + .D(VCC), + .Z(un1_rui_rst_dual_c_1_1) +); +defparam \genblk2.genblk3.rxdpr_appd_RNO .init=16'h0101; + LUT4 \genblk2.genblk3.ruo_rx_rdyr_RNO ( + .A(rx_all_well), + .B(rst_dual_c), + .C(rsl_rx_pcs_rst_c), + .D(dual_or_rserd_rst), + .Z(un3_rx_all_well_2) +); +defparam \genblk2.genblk3.ruo_rx_rdyr_RNO .init=16'h0002; + LUT4 \genblk2.genblk3.rxr_wt_en_RNO ( + .A(un17_rxr_wt_tc), + .B(rx_all_well), + .C(dual_or_rserd_rst), + .D(VCC), + .Z(un3_rx_all_well_1) +); +defparam \genblk2.genblk3.rxr_wt_en_RNO .init=16'h0404; + LUT4 rx_any_rst_RNIFD021 ( + .A(rx_any_rst), + .B(un17_rxr_wt_tc), + .C(rlos_db), + .D(rlol_db), + .Z(rxr_wt_cnt9) +); +defparam rx_any_rst_RNIFD021.init=16'hFFFE; + LUT4 \genblk2.genblk3.rxdpr_appd_RNO_0 ( + .A(rst_dual_c), + .B(rx_all_well), + .C(dual_or_rserd_rst), + .D(VCC), + .Z(un1_rui_rst_dual_c_1_i) +); +defparam \genblk2.genblk3.rxdpr_appd_RNO_0 .init=16'hFBFB; + LUT4 \genblk2.rxs_rst_RNIS0OP ( + .A(rlol1_cnt_tc_1), + .B(rxs_rst), + .C(rlos_db_p1), + .D(rlos_db), + .Z(rlol1_cnt_scalar) +); +defparam \genblk2.rxs_rst_RNIS0OP .init=16'h1011; + LUT4 \genblk2.genblk3.rxr_wt_en_RNIQF0H1 ( + .A(rxr_wt_en), + .B(rx_any_rst), + .C(rx_all_well), + .D(un17_rxr_wt_tc), + .Z(rxr_wt_cnte) +); +defparam \genblk2.genblk3.rxr_wt_en_RNIQF0H1 .init=16'hFFEF; + LUT4 \genblk2.rxp_rst2_RNO_0 ( + .A(rlols0_cnt_tc_1), + .B(dual_or_rserd_rst), + .C(rlos_db_p1), + .D(rlos_db), + .Z(un2_rlos_redge_1_i) +); +defparam \genblk2.rxp_rst2_RNO_0 .init=16'hEFEE; + LUT4 \genblk1.genblk2.ruo_tx_rdyr_RNO ( + .A(un18_txr_wt_tc), + .B(tx_any_rst), + .C(pll_lol_p2), + .D(VCC), + .Z(un2_plol_fedge_5_i) +); +defparam \genblk1.genblk2.ruo_tx_rdyr_RNO .init=16'hFEFE; + LUT4 \genblk2.genblk3.lfor[0].rxsr_appd_RNO[0] ( + .A(rxsr_appd[0]), + .B(rx_serdes_rst_c), + .C(rxs_rst), + .D(rsl_disable), + .Z(N_2124_0) +); +defparam \genblk2.genblk3.lfor[0].rxsr_appd_RNO[0] .init=16'hEEFE; +// @16:759 + FD1P3DX \genblk2.waita_rlols0 ( + .D(waita_rlols06), + .SP(un1_rlols0_cnt_tc), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(waita_rlols0) +); +// @16:656 + FD1P3BX \genblk2.wait_calib ( + .D(wait_calib_RNO), + .SP(un1_rlos_fedge_1), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(wait_calib) +); +// @16:694 + FD1P3DX \genblk2.rxs_rst ( + .D(rxs_rst6), + .SP(un1_rxs_cnt_tc), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxs_rst) +); +// @16:694 + FD1S3DX \genblk2.rxs_cnt[0] ( + .D(rxs_cnt_3[0]), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxs_cnt[0]) +); +// @16:694 + FD1S3DX \genblk2.rxs_cnt[1] ( + .D(rxs_cnt_3[1]), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxs_cnt[1]) +); +// @16:806 + FD1P3BX \genblk2.rxp_rst2 ( + .D(rxp_rst25), + .SP(un2_rlos_redge_1_i), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rxp_rst2) +); +// @16:567 + FD1S3DX \genblk2.rlos_p2 ( + .D(rlos_p1), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlos_p2) +); +// @16:567 + FD1S3DX \genblk2.rlos_p1 ( + .D(rx_los_low_s), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlos_p1) +); +// @16:567 + FD1S3BX \genblk2.rlos_db_p1 ( + .D(rlos_db), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlos_db_p1) +); +// @16:640 + FD1S3BX \genblk2.rlos_db_cnt[0] ( + .D(rlos_db_cnt_axb_0), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlos_db_cnt[0]) +); +// @16:640 + FD1S3BX \genblk2.rlos_db_cnt[1] ( + .D(rlos_db_cnt_cry_1_0_S0), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlos_db_cnt[1]) +); +// @16:640 + FD1S3BX \genblk2.rlos_db_cnt[2] ( + .D(rlos_db_cnt_cry_1_0_S1), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlos_db_cnt[2]) +); +// @16:640 + FD1S3BX \genblk2.rlos_db_cnt[3] ( + .D(rlos_db_cnt_s_3_0_S0), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlos_db_cnt[3]) +); +// @16:649 + FD1P3BX \genblk2.rlos_db ( + .D(rlos_db_cnt[1]), + .SP(un1_rlos_db_cnt_max), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlos_db) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[0] ( + .D(rlols0_cnt_s[0]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[0]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[1] ( + .D(rlols0_cnt_s[1]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[1]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[2] ( + .D(rlols0_cnt_s[2]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[2]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[3] ( + .D(rlols0_cnt_s[3]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[3]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[4] ( + .D(rlols0_cnt_s[4]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[4]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[5] ( + .D(rlols0_cnt_s[5]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[5]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[6] ( + .D(rlols0_cnt_s[6]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[6]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[7] ( + .D(rlols0_cnt_s[7]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[7]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[8] ( + .D(rlols0_cnt_s[8]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[8]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[9] ( + .D(rlols0_cnt_s[9]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[9]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[10] ( + .D(rlols0_cnt_s[10]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[10]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[11] ( + .D(rlols0_cnt_s[11]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[11]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[12] ( + .D(rlols0_cnt_s[12]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[12]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[13] ( + .D(rlols0_cnt_s[13]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[13]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[14] ( + .D(rlols0_cnt_s[14]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[14]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[15] ( + .D(rlols0_cnt_s[15]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[15]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[16] ( + .D(rlols0_cnt_s[16]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[16]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[17] ( + .D(rlols0_cnt_s[17]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[17]) +); +// @16:567 + FD1S3DX \genblk2.rlol_p2 ( + .D(rlol_p1), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol_p2) +); +// @16:567 + FD1S3DX \genblk2.rlol_p1 ( + .D(rx_cdr_lol_s), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol_p1) +); +// @16:567 + FD1S3BX \genblk2.rlol_db_p1 ( + .D(rlol_db), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlol_db_p1) +); +// @16:624 + FD1S3BX \genblk2.rlol_db_cnt[0] ( + .D(rlol_db_cnt_axb_0), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlol_db_cnt[0]) +); +// @16:624 + FD1S3BX \genblk2.rlol_db_cnt[1] ( + .D(rlol_db_cnt_cry_1_0_S0), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlol_db_cnt[1]) +); +// @16:624 + FD1S3BX \genblk2.rlol_db_cnt[2] ( + .D(rlol_db_cnt_cry_1_0_S1), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlol_db_cnt[2]) +); +// @16:624 + FD1S3BX \genblk2.rlol_db_cnt[3] ( + .D(rlol_db_cnt_s_3_0_S0), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlol_db_cnt[3]) +); +// @16:633 + FD1P3BX \genblk2.rlol_db ( + .D(rlol_db_cnt[1]), + .SP(un1_rlol_db_cnt_max), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlol_db) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[0] ( + .D(rlol1_cnt_s[0]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[0]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[1] ( + .D(rlol1_cnt_s[1]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[1]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[2] ( + .D(rlol1_cnt_s[2]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[2]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[3] ( + .D(rlol1_cnt_s[3]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[3]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[4] ( + .D(rlol1_cnt_s[4]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[4]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[5] ( + .D(rlol1_cnt_s[5]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[5]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[6] ( + .D(rlol1_cnt_s[6]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[6]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[7] ( + .D(rlol1_cnt_s[7]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[7]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[8] ( + .D(rlol1_cnt_s[8]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[8]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[9] ( + .D(rlol1_cnt_s[9]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[9]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[10] ( + .D(rlol1_cnt_s[10]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[10]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[11] ( + .D(rlol1_cnt_s[11]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[11]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[12] ( + .D(rlol1_cnt_s[12]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[12]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[13] ( + .D(rlol1_cnt_s[13]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[13]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[14] ( + .D(rlol1_cnt_s[14]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[14]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[15] ( + .D(rlol1_cnt_s[15]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[15]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[16] ( + .D(rlol1_cnt_s[16]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[16]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[17] ( + .D(rlol1_cnt_s[17]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[17]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[18] ( + .D(rlol1_cnt_s[18]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[18]) +); +// @16:865 + FD1S3BX \genblk2.genblk3.rxsdr_appd ( + .D(rxsdr_appd_2), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rxsdr_appd_4) +); +// @16:900 + FD1P3DX \genblk2.genblk3.rxr_wt_en ( + .D(un3_rx_all_well_1), + .SP(un1_dual_or_rserd_rst_2_i), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_en) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[0] ( + .D(rxr_wt_cnt_s[0]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[0]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[1] ( + .D(rxr_wt_cnt_s[1]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[1]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[2] ( + .D(rxr_wt_cnt_s[2]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[2]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[3] ( + .D(rxr_wt_cnt_s[3]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[3]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[4] ( + .D(rxr_wt_cnt_s[4]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[4]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[5] ( + .D(rxr_wt_cnt_s[5]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[5]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[6] ( + .D(rxr_wt_cnt_s[6]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[6]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[7] ( + .D(rxr_wt_cnt_s[7]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[7]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[8] ( + .D(rxr_wt_cnt_s[8]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[8]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[9] ( + .D(rxr_wt_cnt_s[9]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[9]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[10] ( + .D(rxr_wt_cnt_s[10]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[10]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[11] ( + .D(rxr_wt_cnt_s[11]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[11]) +); +// @16:871 + FD1P3DX \genblk2.genblk3.rxdpr_appd ( + .D(un1_rui_rst_dual_c_1_1), + .SP(un1_rui_rst_dual_c_1_i), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxdpr_appd) +); +// @16:920 + FD1P3DX \genblk2.genblk3.ruo_rx_rdyr ( + .D(un3_rx_all_well_2), + .SP(rxr_wt_cnt9), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rsl_rx_rdy) +); +// @16:882 + FD1S3DX \genblk2.genblk3.lfor[0].rxsr_appd[0] ( + .D(N_2124_0), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxsr_appd[0]) +); +// @16:888 + FD1P3DX \genblk2.genblk3.lfor[0].rxpr_appd[0] ( + .D(rxpr_appd_RNO[0]), + .SP(un2_rdo_serdes_rst_dual_c_2_i), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxpr_appd[0]) +); +// @16:443 + FD1P3DX \genblk1.waita_plol0 ( + .D(plol_fedge), + .SP(un1_plol0_cnt_tc_1_i), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(waita_plol0) +); +// @16:422 + FD1P3DX \genblk1.txs_rst ( + .D(un1_plol_cnt_tc), + .SP(un2_plol_cnt_tc), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txs_rst) +); +// @16:422 + FD1S3DX \genblk1.txs_cnt[0] ( + .D(N_10_i), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txs_cnt[0]) +); +// @16:422 + FD1S3DX \genblk1.txs_cnt[1] ( + .D(txs_cnt_RNO[1]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txs_cnt[1]) +); +// @16:461 + FD1P3DX \genblk1.txp_rst ( + .D(un9_plol0_cnt_tc), + .SP(un1_plol0_cnt_tc_1), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txp_rst) +); +// @16:461 + FD1S3DX \genblk1.txp_cnt[0] ( + .D(N_11_i), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txp_cnt[0]) +); +// @16:461 + FD1S3DX \genblk1.txp_cnt[1] ( + .D(txp_cnt_RNO[1]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txp_cnt[1]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[0] ( + .D(plol_cnt_s[0]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[0]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[1] ( + .D(plol_cnt_s[1]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[1]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[2] ( + .D(plol_cnt_s[2]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[2]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[3] ( + .D(plol_cnt_s[3]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[3]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[4] ( + .D(plol_cnt_s[4]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[4]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[5] ( + .D(plol_cnt_s[5]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[5]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[6] ( + .D(plol_cnt_s[6]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[6]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[7] ( + .D(plol_cnt_s[7]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[7]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[8] ( + .D(plol_cnt_s[8]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[8]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[9] ( + .D(plol_cnt_s[9]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[9]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[10] ( + .D(plol_cnt_s[10]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[10]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[11] ( + .D(plol_cnt_s[11]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[11]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[12] ( + .D(plol_cnt_s[12]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[12]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[13] ( + .D(plol_cnt_s[13]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[13]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[14] ( + .D(plol_cnt_s[14]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[14]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[15] ( + .D(plol_cnt_s[15]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[15]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[16] ( + .D(plol_cnt_s[16]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[16]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[17] ( + .D(plol_cnt_s[17]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[17]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[18] ( + .D(plol_cnt_s[18]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[18]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[19] ( + .D(plol_cnt_s[19]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[19]) +); +// @16:451 + FD1S3DX \genblk1.plol0_cnt[0] ( + .D(plol0_cnt_3[0]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol0_cnt[0]) +); +// @16:451 + FD1S3DX \genblk1.plol0_cnt[1] ( + .D(plol0_cnt_3[1]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol0_cnt[1]) +); +// @16:451 + FD1S3DX \genblk1.plol0_cnt[2] ( + .D(plol0_cnt_3[2]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol0_cnt[2]) +); +// @16:398 + FD1S3DX \genblk1.pll_lol_p3 ( + .D(pll_lol_p2), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(pll_lol_p3) +); +// @16:398 + FD1S3DX \genblk1.pll_lol_p2 ( + .D(pll_lol_p1), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(pll_lol_p2) +); +// @16:398 + FD1S3DX \genblk1.pll_lol_p1 ( + .D(pll_lock_i), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(pll_lol_p1) +); +// @16:492 + FD1S3BX \genblk1.genblk2.txsr_appd ( + .D(txsr_appd_2), + .CK(pll_refclki), + .PD(rsl_rst), + .Q(txsr_appd_4) +); +// @16:519 + FD1P3DX \genblk1.genblk2.txr_wt_en ( + .D(un1_dual_or_serd_rst_1_1), + .SP(un1_dual_or_serd_rst_1_i), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_en) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[0] ( + .D(txr_wt_cnt_s[0]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[0]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[1] ( + .D(txr_wt_cnt_s[1]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[1]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[2] ( + .D(txr_wt_cnt_s[2]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[2]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[3] ( + .D(txr_wt_cnt_s[3]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[3]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[4] ( + .D(txr_wt_cnt_s[4]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[4]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[5] ( + .D(txr_wt_cnt_s[5]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[5]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[6] ( + .D(txr_wt_cnt_s[6]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[6]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[7] ( + .D(txr_wt_cnt_s[7]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[7]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[8] ( + .D(txr_wt_cnt_s[8]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[8]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[9] ( + .D(txr_wt_cnt_s[9]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[9]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[10] ( + .D(txr_wt_cnt_s[10]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[10]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[11] ( + .D(txr_wt_cnt_s[11]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[11]) +); +// @16:498 + FD1P3DX \genblk1.genblk2.txdpr_appd ( + .D(un2_plol_fedge_2), + .SP(un2_plol_fedge_3_i), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txdpr_appd) +); +// @16:537 + FD1P3DX \genblk1.genblk2.ruo_tx_rdyr ( + .D(un2_plol_fedge_5_1), + .SP(un2_plol_fedge_5_i), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(rsl_tx_rdy) +); +// @16:509 + FD1P3DX \genblk1.genblk2.mfor[0].txpr_appd[0] ( + .D(un2_plol_fedge_2), + .SP(un2_plol_fedge_8_i), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txpr_appd[0]) +); +// @16:422 + LUT4 \genblk1.txs_cnt_RNO[0] ( + .A(txs_cnt[0]), + .B(txs_rst), + .C(un1_plol_cnt_tc), + .D(VCC), + .Z(N_10_i) +); +defparam \genblk1.txs_cnt_RNO[0] .init=16'hA6A6; +// @16:434 + LUT4 \genblk1.txs_cnt_RNO[1] ( + .A(txs_cnt[0]), + .B(txs_cnt[1]), + .C(txs_rst), + .D(un1_plol_cnt_tc), + .Z(txs_cnt_RNO[1]) +); +defparam \genblk1.txs_cnt_RNO[1] .init=16'hCC6C; +// @16:519 + LUT4 \genblk1.genblk2.txr_wt_en_RNO ( + .A(txpr_appd[0]), + .B(pll_lol_p2), + .C(un1_dual_or_serd_rst_1_1), + .D(rsl_tx_rdy), + .Z(un1_dual_or_serd_rst_1_i) +); +defparam \genblk1.genblk2.txr_wt_en_RNO .init=16'h0F2F; +// @16:317 + LUT4 \genblk2.rxs_rst6 ( + .A(rlol_db), + .B(rlos_db), + .C(rlol1_cnt_tc_1), + .D(VCC), + .Z(rxs_rst6) +); +defparam \genblk2.rxs_rst6 .init=16'h2020; +// @8:394 + LUT4 \genblk2.wait_calib_RNIKRP81 ( + .A(rxs_rst), + .B(wait_calib), + .C(rlol1_cnt_tc_1), + .D(rlos_redge), + .Z(rlol1_cnte) +); +defparam \genblk2.wait_calib_RNIKRP81 .init=16'hFFFE; +// @8:394 + LUT4 \genblk2.waita_rlols0_RNI266C ( + .A(rlols0_cnt11_0), + .B(waita_rlols0), + .C(rlols0_cnt_tc_1), + .D(VCC), + .Z(rlols0_cnte) +); +defparam \genblk2.waita_rlols0_RNI266C .init=16'hFEFE; +// @16:412 + LUT4 \genblk1.plol_cnt11_i ( + .A(pll_lol_p2), + .B(un1_plol_cnt_tc), + .C(rsl_tx_serdes_rst_c), + .D(VCC), + .Z(plol_cnt_scalar) +); +defparam \genblk1.plol_cnt11_i .init=16'h0202; +// @16:778 + LUT4 \genblk2.rlols0_cnt11_i ( + .A(rlols0_cnt11_0), + .B(rlols0_cnt_tc_1), + .C(VCC), + .D(VCC), + .Z(rlols0_cnt_scalar) +); +defparam \genblk2.rlols0_cnt11_i .init=16'h1111; +// @16:317 + LUT4 \genblk2.un1_rxs_cnt_tc ( + .A(rlol_db), + .B(rlos_db), + .C(un8_rxs_cnt_tc), + .D(rlol1_cnt_tc_1), + .Z(un1_rxs_cnt_tc) +); +defparam \genblk2.un1_rxs_cnt_tc .init=16'hFEFC; +// @8:394 + LUT4 \genblk2.wait_calib_RNO ( + .A(rlol_db), + .B(rlos_db), + .C(rlol1_cnt_tc_1), + .D(VCC), + .Z(wait_calib_RNO) +); +defparam \genblk2.wait_calib_RNO .init=16'hA3A3; +// @16:509 + LUT4 \genblk1.genblk2.mfor[0].txpr_appd_RNO[0] ( + .A(un1_txsr_appd), + .B(pll_lol_p2), + .C(rsl_serdes_rst_dual_c), + .D(rsl_tx_serdes_rst_c), + .Z(un2_plol_fedge_8_i) +); +defparam \genblk1.genblk2.mfor[0].txpr_appd_RNO[0] .init=16'hFFFE; +// @16:900 + LUT4 \genblk2.genblk3.rxr_wt_en_RNO_0 ( + .A(dual_or_rserd_rst), + .B(un3_rx_all_well_2_1), + .C(un17_rxr_wt_tc), + .D(rx_all_well), + .Z(un1_dual_or_rserd_rst_2_i) +); +defparam \genblk2.genblk3.rxr_wt_en_RNO_0 .init=16'hFEFF; +// @16:888 + LUT4 \genblk2.genblk3.lfor[0].rxpr_appd_RNO_0[0] ( + .A(un1_rxsdr_or_sr_appd), + .B(un2_rdo_serdes_rst_dual_c_1_1), + .C(rsl_rx_serdes_rst_c), + .D(rsl_serdes_rst_dual_c), + .Z(un2_rdo_serdes_rst_dual_c_2_i) +); +defparam \genblk2.genblk3.lfor[0].rxpr_appd_RNO_0[0] .init=16'hFFFB; +// @16:259 + LUT4 \genblk1.un2_plol_cnt_tc ( + .A(txs_cnt[0]), + .B(txs_cnt[1]), + .C(un1_plol_cnt_tc), + .D(VCC), + .Z(un2_plol_cnt_tc) +); +defparam \genblk1.un2_plol_cnt_tc .init=16'hF8F8; +// @8:394 + LUT4 \genblk1.genblk2.txr_wt_en_RNICEBT ( + .A(txr_wt_en), + .B(un18_txr_wt_tc), + .C(tx_any_rst), + .D(VCC), + .Z(txr_wt_cnte) +); +defparam \genblk1.genblk2.txr_wt_en_RNICEBT .init=16'hFEFE; +// @16:322 + LUT4 \genblk2.un1_rlos_fedge_1 ( + .A(rlos_db), + .B(rlos_db_p1), + .C(rlol1_cnt_tc_1), + .D(VCC), + .Z(un1_rlos_fedge_1) +); +defparam \genblk2.un1_rlos_fedge_1 .init=16'hF6F6; +// @16:340 + LUT4 \genblk2.un1_rlols0_cnt_tc ( + .A(rlols0_cnt11_0), + .B(waita_rlols06), + .C(rlols0_cnt_tc_1), + .D(VCC), + .Z(un1_rlols0_cnt_tc) +); +defparam \genblk2.un1_rlols0_cnt_tc .init=16'hFEFE; +// @16:498 + LUT4 \genblk1.genblk2.txdpr_appd_RNO ( + .A(pll_lol_p2), + .B(rsl_serdes_rst_dual_c), + .C(rsl_tx_serdes_rst_c), + .D(rst_dual_c), + .Z(un2_plol_fedge_3_i) +); +defparam \genblk1.genblk2.txdpr_appd_RNO .init=16'hFFFE; +// @16:461 + LUT4 \genblk1.txp_cnt_RNO[0] ( + .A(txp_cnt[0]), + .B(txp_rst), + .C(un9_plol0_cnt_tc), + .D(VCC), + .Z(N_11_i) +); +defparam \genblk1.txp_cnt_RNO[0] .init=16'hA6A6; +// @16:282 + LUT4 un2_plol_fedge_5_1_cZ ( + .A(pll_lol_p2), + .B(tx_any_rst), + .C(VCC), + .D(VCC), + .Z(un2_plol_fedge_5_1) +); +defparam un2_plol_fedge_5_1_cZ.init=16'h1111; +// @16:522 + LUT4 un1_dual_or_serd_rst_1_1_cZ ( + .A(un18_txr_wt_tc), + .B(rsl_serdes_rst_dual_c), + .C(rsl_tx_serdes_rst_c), + .D(VCC), + .Z(un1_dual_or_serd_rst_1_1) +); +defparam un1_dual_or_serd_rst_1_1_cZ.init=16'h0101; +// @16:473 + LUT4 \genblk1.txp_cnt_RNO[1] ( + .A(txp_cnt[0]), + .B(txp_cnt[1]), + .C(txp_rst), + .D(un9_plol0_cnt_tc), + .Z(txp_cnt_RNO[1]) +); +defparam \genblk1.txp_cnt_RNO[1] .init=16'hCC6C; +// @16:388 + LUT4 rlols0_cnt_tc_1_cZ ( + .A(rlols0_cnt_tc_1_10), + .B(rlols0_cnt_tc_1_11), + .C(rlols0_cnt_tc_1_12), + .D(rlols0_cnt_tc_1_13), + .Z(rlols0_cnt_tc_1) +); +defparam rlols0_cnt_tc_1_cZ.init=16'h8000; +// @16:386 + LUT4 \genblk1.un1_plol_cnt_tc ( + .A(un1_plol_cnt_tc_11), + .B(un1_plol_cnt_tc_12), + .C(un1_plol_cnt_tc_13), + .D(un1_plol_cnt_tc_14), + .Z(un1_plol_cnt_tc) +); +defparam \genblk1.un1_plol_cnt_tc .init=16'h8000; +// @16:387 + LUT4 rlol1_cnt_tc_1_cZ ( + .A(rlol1_cnt_tc_1_11), + .B(rlol1_cnt_tc_1_12), + .C(rlol1_cnt_tc_1_13), + .D(rlol1_cnt_tc_1_14), + .Z(rlol1_cnt_tc_1) +); +defparam rlol1_cnt_tc_1_cZ.init=16'h8000; +// @16:625 + LUT4 \un1_genblk2.rlol_db_cnt_axb_0 ( + .A(rlol_db_cnt[0]), + .B(un1_rlol_db_cnt_zero[0]), + .C(VCC), + .D(VCC), + .Z(rlol_db_cnt_axb_0) +); +defparam \un1_genblk2.rlol_db_cnt_axb_0 .init=16'h9999; +// @16:641 + LUT4 \un1_genblk2.rlos_db_cnt_axb_0 ( + .A(rlos_db_cnt[0]), + .B(un1_rlos_db_cnt_zero[0]), + .C(VCC), + .D(VCC), + .Z(rlos_db_cnt_axb_0) +); +defparam \un1_genblk2.rlos_db_cnt_axb_0 .init=16'h9999; +// @16:443 + LUT4 \genblk1.waita_plol0_RNO ( + .A(pll_lol_p2), + .B(pll_lol_p3), + .C(un9_plol0_cnt_tc), + .D(VCC), + .Z(un1_plol0_cnt_tc_1_i) +); +defparam \genblk1.waita_plol0_RNO .init=16'hF6F6; +// @16:514 + LUT4 \genblk1.genblk2.mfor[0].un1_txsr_appd ( + .A(txdpr_appd), + .B(txsr_appd_4), + .C(rsl_tx_pcs_rst_c), + .D(VCC), + .Z(un1_txsr_appd) +); +defparam \genblk1.genblk2.mfor[0].un1_txsr_appd .init=16'hC8C8; +// @16:493 + LUT4 \genblk1.genblk2.txsr_appd_2 ( + .A(txsr_appd_4), + .B(rsl_serdes_rst_dual_c), + .C(rsl_tx_serdes_rst_c), + .D(VCC), + .Z(txsr_appd_2) +); +defparam \genblk1.genblk2.txsr_appd_2 .init=16'hFEFE; +// @16:452 + LUT4 \genblk1.plol0_cnt_3[0] ( + .A(plol0_cnt9), + .B(plol0_cnt[0]), + .C(waita_plol0), + .D(VCC), + .Z(plol0_cnt_3[0]) +); +defparam \genblk1.plol0_cnt_3[0] .init=16'h1414; +// @16:452 + LUT4 \genblk1.plol0_cnt_3[2] ( + .A(CO0_2), + .B(plol0_cnt9), + .C(plol0_cnt[1]), + .D(plol0_cnt[2]), + .Z(plol0_cnt_3[2]) +); +defparam \genblk1.plol0_cnt_3[2] .init=16'h1320; +// @16:535 + LUT4 \genblk1.genblk2.un18_txr_wt_tc ( + .A(un18_txr_wt_tc_6), + .B(un18_txr_wt_tc_7), + .C(un18_txr_wt_tc_8), + .D(VCC), + .Z(un18_txr_wt_tc) +); +defparam \genblk1.genblk2.un18_txr_wt_tc .init=16'h8080; +// @16:211 + LUT4 un2_plol_fedge_2_cZ ( + .A(pll_lol_p2), + .B(rsl_serdes_rst_dual_c), + .C(rsl_tx_serdes_rst_c), + .D(VCC), + .Z(un2_plol_fedge_2) +); +defparam un2_plol_fedge_2_cZ.init=16'h0101; +// @16:490 + LUT4 tx_any_rst_cZ ( + .A(rsl_serdes_rst_dual_c), + .B(rsl_tx_pcs_rst_c), + .C(rsl_tx_serdes_rst_c), + .D(rst_dual_c), + .Z(tx_any_rst) +); +defparam tx_any_rst_cZ.init=16'hFFFE; +// @16:863 + LUT4 rx_any_rst_cZ ( + .A(dual_or_rserd_rst), + .B(rsl_rx_pcs_rst_c), + .C(rst_dual_c), + .D(VCC), + .Z(rx_any_rst) +); +defparam rx_any_rst_cZ.init=16'hFEFE; +// @16:535 + LUT4 \genblk2.genblk3.un17_rxr_wt_tc ( + .A(un17_rxr_wt_tc_6), + .B(un17_rxr_wt_tc_7), + .C(un17_rxr_wt_tc_8), + .D(VCC), + .Z(un17_rxr_wt_tc) +); +defparam \genblk2.genblk3.un17_rxr_wt_tc .init=16'h8080; +// @16:219 + LUT4 \un1_rlol_db_cnt_zero_bm_cZ[0] ( + .A(rlol_db_cnt[0]), + .B(rlol_db_cnt[1]), + .C(rlol_db_cnt[2]), + .D(rlol_db_cnt[3]), + .Z(un1_rlol_db_cnt_zero_bm[0]) +); +defparam \un1_rlol_db_cnt_zero_bm_cZ[0] .init=16'h8000; +// @16:219 + PFUMX \un1_rlol_db_cnt_zero_cZ[0] ( + .ALUT(un1_rlol_db_cnt_zero_bm[0]), + .BLUT(un1_rlol_db_cnt_zero_am[0]), + .C0(rlol_p2), + .Z(un1_rlol_db_cnt_zero[0]) +); +// @16:219 + LUT4 \un1_rlos_db_cnt_zero_bm_cZ[0] ( + .A(rlos_db_cnt[0]), + .B(rlos_db_cnt[1]), + .C(rlos_db_cnt[2]), + .D(rlos_db_cnt[3]), + .Z(un1_rlos_db_cnt_zero_bm[0]) +); +defparam \un1_rlos_db_cnt_zero_bm_cZ[0] .init=16'h8000; +// @16:219 + PFUMX \un1_rlos_db_cnt_zero_cZ[0] ( + .ALUT(un1_rlos_db_cnt_zero_bm[0]), + .BLUT(un1_rlos_db_cnt_zero_am[0]), + .C0(rlos_p2), + .Z(un1_rlos_db_cnt_zero[0]) +); +// @16:309 + LUT4 \genblk2.un1_rlol_db_cnt_max ( + .A(rlol_db_cnt[0]), + .B(rlol_db_cnt[1]), + .C(rlol_db_cnt[2]), + .D(rlol_db_cnt[3]), + .Z(un1_rlol_db_cnt_max) +); +defparam \genblk2.un1_rlol_db_cnt_max .init=16'h8001; +// @16:315 + LUT4 \genblk2.un1_rlos_db_cnt_max ( + .A(rlos_db_cnt[0]), + .B(rlos_db_cnt[1]), + .C(rlos_db_cnt[2]), + .D(rlos_db_cnt[3]), + .Z(un1_rlos_db_cnt_max) +); +defparam \genblk2.un1_rlos_db_cnt_max .init=16'h8001; +// @16:269 + LUT4 \genblk1.un1_plol0_cnt_tc_1 ( + .A(txp_cnt[0]), + .B(txp_cnt[1]), + .C(un9_plol0_cnt_tc), + .D(VCC), + .Z(un1_plol0_cnt_tc_1) +); +defparam \genblk1.un1_plol0_cnt_tc_1 .init=16'hF8F8; +// @16:764 + LUT4 \genblk2.waita_rlols06 ( + .A(rlol_db), + .B(rlol_db_p1), + .C(rlos_db), + .D(rlos_db_p1), + .Z(waita_rlols06) +); +defparam \genblk2.waita_rlols06 .init=16'h0504; +// @16:708 + LUT4 \rxs_cnt_3_cZ[1] ( + .A(rxs_cnt[0]), + .B(rxs_cnt[1]), + .C(rxs_rst), + .D(VCC), + .Z(rxs_cnt_3[1]) +); +defparam \rxs_cnt_3_cZ[1] .init=16'h6464; +// @16:893 + LUT4 \genblk2.genblk3.lfor[0].un1_rxsdr_or_sr_appd ( + .A(rxsr_appd[0]), + .B(rx_all_well), + .C(rxsdr_appd_4), + .D(rsl_rx_pcs_rst_c), + .Z(un1_rxsdr_or_sr_appd) +); +defparam \genblk2.genblk3.lfor[0].un1_rxsdr_or_sr_appd .init=16'h3200; +// @16:388 + LUT4 rlols0_cnt_tc_1_13_cZ ( + .A(rlols0_cnt[16]), + .B(rlols0_cnt[17]), + .C(rlols0_cnt_tc_1_9), + .D(VCC), + .Z(rlols0_cnt_tc_1_13) +); +defparam rlols0_cnt_tc_1_13_cZ.init=16'h1010; +// @16:386 + LUT4 \genblk1.un1_plol_cnt_tc_14 ( + .A(plol_cnt[4]), + .B(plol_cnt[5]), + .C(plol_cnt[18]), + .D(un1_plol_cnt_tc_10), + .Z(un1_plol_cnt_tc_14) +); +defparam \genblk1.un1_plol_cnt_tc_14 .init=16'h0100; +// @16:387 + LUT4 rlol1_cnt_tc_1_14_cZ ( + .A(rlol1_cnt[11]), + .B(rlol1_cnt[12]), + .C(rlol1_cnt[18]), + .D(rlol1_cnt_tc_1_10), + .Z(rlol1_cnt_tc_1_14) +); +defparam rlol1_cnt_tc_1_14_cZ.init=16'h0100; +// @16:906 + LUT4 \genblk2.genblk3.un3_rx_all_well_2_1 ( + .A(rxpr_appd[0]), + .B(rxdpr_appd), + .C(rsl_rx_rdy), + .D(VCC), + .Z(un3_rx_all_well_2_1) +); +defparam \genblk2.genblk3.un3_rx_all_well_2_1 .init=16'h0E0E; +// @16:375 + LUT4 rdo_serdes_rst_dual_c ( + .A(rsl_disable), + .B(rsl_rst), + .C(serdes_rst_dual_c), + .D(VCC), + .Z(rsl_serdes_rst_dual_c) +); +defparam rdo_serdes_rst_dual_c.init=16'hF4F4; +// @16:438 + LUT4 rdo_tx_serdes_rst_c ( + .A(rsl_disable), + .B(txs_rst), + .C(tx_serdes_rst_c), + .D(VCC), + .Z(rsl_tx_serdes_rst_c) +); +defparam rdo_tx_serdes_rst_c.init=16'hF4F4; +// @16:479 + LUT4 \rdo_tx_pcs_rst_c_1[0] ( + .A(rsl_disable), + .B(txp_rst), + .C(tx_pcs_rst_c), + .D(VCC), + .Z(rsl_tx_pcs_rst_c) +); +defparam \rdo_tx_pcs_rst_c_1[0] .init=16'hF4F4; +// @16:743 + LUT4 \rdo_rx_serdes_rst_c_1[0] ( + .A(rsl_disable), + .B(rxs_rst), + .C(rx_serdes_rst_c), + .D(VCC), + .Z(rsl_rx_serdes_rst_c) +); +defparam \rdo_rx_serdes_rst_c_1[0] .init=16'hF4F4; +// @16:852 + LUT4 \rdo_rx_pcs_rst_c_1[0] ( + .A(rsl_disable), + .B(rxp_rst2), + .C(rx_pcs_rst_c), + .D(VCC), + .Z(rsl_rx_pcs_rst_c) +); +defparam \rdo_rx_pcs_rst_c_1[0] .init=16'hF4F4; +// @16:459 + LUT4 \genblk1.un9_plol0_cnt_tc ( + .A(plol0_cnt[0]), + .B(plol0_cnt[1]), + .C(plol0_cnt[2]), + .D(VCC), + .Z(un9_plol0_cnt_tc) +); +defparam \genblk1.un9_plol0_cnt_tc .init=16'h1010; +// @16:535 + LUT4 \genblk2.genblk3.un17_rxr_wt_tc_6 ( + .A(rxr_wt_cnt[0]), + .B(rxr_wt_cnt[8]), + .C(rxr_wt_cnt[9]), + .D(rxr_wt_cnt[11]), + .Z(un17_rxr_wt_tc_6) +); +defparam \genblk2.genblk3.un17_rxr_wt_tc_6 .init=16'h4000; +// @16:535 + LUT4 \genblk2.genblk3.un17_rxr_wt_tc_7 ( + .A(rxr_wt_cnt[3]), + .B(rxr_wt_cnt[4]), + .C(rxr_wt_cnt[5]), + .D(rxr_wt_cnt[7]), + .Z(un17_rxr_wt_tc_7) +); +defparam \genblk2.genblk3.un17_rxr_wt_tc_7 .init=16'h8000; +// @16:535 + LUT4 \genblk2.genblk3.un17_rxr_wt_tc_8 ( + .A(rxr_wt_cnt[1]), + .B(rxr_wt_cnt[2]), + .C(rxr_wt_cnt[6]), + .D(rxr_wt_cnt[10]), + .Z(un17_rxr_wt_tc_8) +); +defparam \genblk2.genblk3.un17_rxr_wt_tc_8 .init=16'h0001; +// @16:535 + LUT4 \genblk1.genblk2.un18_txr_wt_tc_6 ( + .A(txr_wt_cnt[0]), + .B(txr_wt_cnt[8]), + .C(txr_wt_cnt[9]), + .D(txr_wt_cnt[11]), + .Z(un18_txr_wt_tc_6) +); +defparam \genblk1.genblk2.un18_txr_wt_tc_6 .init=16'h4000; +// @16:535 + LUT4 \genblk1.genblk2.un18_txr_wt_tc_7 ( + .A(txr_wt_cnt[3]), + .B(txr_wt_cnt[4]), + .C(txr_wt_cnt[5]), + .D(txr_wt_cnt[7]), + .Z(un18_txr_wt_tc_7) +); +defparam \genblk1.genblk2.un18_txr_wt_tc_7 .init=16'h8000; +// @16:535 + LUT4 \genblk1.genblk2.un18_txr_wt_tc_8 ( + .A(txr_wt_cnt[1]), + .B(txr_wt_cnt[2]), + .C(txr_wt_cnt[6]), + .D(txr_wt_cnt[10]), + .Z(un18_txr_wt_tc_8) +); +defparam \genblk1.genblk2.un18_txr_wt_tc_8 .init=16'h0001; +// @16:388 + LUT4 rlols0_cnt_tc_1_9_cZ ( + .A(rlols0_cnt[1]), + .B(rlols0_cnt[2]), + .C(rlols0_cnt[3]), + .D(rlols0_cnt[4]), + .Z(rlols0_cnt_tc_1_9) +); +defparam rlols0_cnt_tc_1_9_cZ.init=16'h0001; +// @16:388 + LUT4 rlols0_cnt_tc_1_10_cZ ( + .A(rlols0_cnt[0]), + .B(rlols0_cnt[10]), + .C(rlols0_cnt[14]), + .D(rlols0_cnt[15]), + .Z(rlols0_cnt_tc_1_10) +); +defparam rlols0_cnt_tc_1_10_cZ.init=16'h4000; +// @16:388 + LUT4 rlols0_cnt_tc_1_11_cZ ( + .A(rlols0_cnt[9]), + .B(rlols0_cnt[11]), + .C(rlols0_cnt[12]), + .D(rlols0_cnt[13]), + .Z(rlols0_cnt_tc_1_11) +); +defparam rlols0_cnt_tc_1_11_cZ.init=16'h0001; +// @16:388 + LUT4 rlols0_cnt_tc_1_12_cZ ( + .A(rlols0_cnt[5]), + .B(rlols0_cnt[6]), + .C(rlols0_cnt[7]), + .D(rlols0_cnt[8]), + .Z(rlols0_cnt_tc_1_12) +); +defparam rlols0_cnt_tc_1_12_cZ.init=16'h0001; +// @16:386 + LUT4 \genblk1.un1_plol_cnt_tc_10 ( + .A(plol_cnt[2]), + .B(plol_cnt[3]), + .C(plol_cnt[17]), + .D(plol_cnt[19]), + .Z(un1_plol_cnt_tc_10) +); +defparam \genblk1.un1_plol_cnt_tc_10 .init=16'h1000; +// @16:386 + LUT4 \genblk1.un1_plol_cnt_tc_11 ( + .A(plol_cnt[13]), + .B(plol_cnt[14]), + .C(plol_cnt[15]), + .D(plol_cnt[16]), + .Z(un1_plol_cnt_tc_11) +); +defparam \genblk1.un1_plol_cnt_tc_11 .init=16'h8000; +// @16:386 + LUT4 \genblk1.un1_plol_cnt_tc_12 ( + .A(plol_cnt[7]), + .B(plol_cnt[8]), + .C(plol_cnt[9]), + .D(plol_cnt[11]), + .Z(un1_plol_cnt_tc_12) +); +defparam \genblk1.un1_plol_cnt_tc_12 .init=16'h8000; +// @16:386 + LUT4 \genblk1.un1_plol_cnt_tc_13 ( + .A(plol_cnt[1]), + .B(plol_cnt[6]), + .C(plol_cnt[10]), + .D(plol_cnt[12]), + .Z(un1_plol_cnt_tc_13) +); +defparam \genblk1.un1_plol_cnt_tc_13 .init=16'h0008; +// @16:387 + LUT4 rlol1_cnt_tc_1_10_cZ ( + .A(rlol1_cnt[7]), + .B(rlol1_cnt[8]), + .C(rlol1_cnt[9]), + .D(rlol1_cnt[10]), + .Z(rlol1_cnt_tc_1_10) +); +defparam rlol1_cnt_tc_1_10_cZ.init=16'h0001; +// @16:387 + LUT4 rlol1_cnt_tc_1_11_cZ ( + .A(rlol1_cnt[3]), + .B(rlol1_cnt[4]), + .C(rlol1_cnt[5]), + .D(rlol1_cnt[6]), + .Z(rlol1_cnt_tc_1_11) +); +defparam rlol1_cnt_tc_1_11_cZ.init=16'h0001; +// @16:387 + LUT4 rlol1_cnt_tc_1_12_cZ ( + .A(rlol1_cnt[0]), + .B(rlol1_cnt[1]), + .C(rlol1_cnt[2]), + .D(rlol1_cnt[17]), + .Z(rlol1_cnt_tc_1_12) +); +defparam rlol1_cnt_tc_1_12_cZ.init=16'h0100; +// @16:387 + LUT4 rlol1_cnt_tc_1_13_cZ ( + .A(rlol1_cnt[13]), + .B(rlol1_cnt[14]), + .C(rlol1_cnt[15]), + .D(rlol1_cnt[16]), + .Z(rlol1_cnt_tc_1_13) +); +defparam rlol1_cnt_tc_1_13_cZ.init=16'h0040; +// @16:866 + LUT4 \genblk2.genblk3.rxsdr_appd_2 ( + .A(rxsdr_appd_4), + .B(serdes_rst_dual_c), + .C(VCC), + .D(VCC), + .Z(rxsdr_appd_2) +); +defparam \genblk2.genblk3.rxsdr_appd_2 .init=16'hEEEE; +// @16:601 + LUT4 rx_all_well_cZ ( + .A(rlol_db), + .B(rlos_db), + .C(VCC), + .D(VCC), + .Z(rx_all_well) +); +defparam rx_all_well_cZ.init=16'h1111; +// @16:436 + LUT4 \genblk2.un8_rxs_cnt_tc ( + .A(rxs_cnt[0]), + .B(rxs_cnt[1]), + .C(VCC), + .D(VCC), + .Z(un8_rxs_cnt_tc) +); +defparam \genblk2.un8_rxs_cnt_tc .init=16'h8888; +// @16:441 + LUT4 plol_fedge_cZ ( + .A(pll_lol_p2), + .B(pll_lol_p3), + .C(VCC), + .D(VCC), + .Z(plol_fedge) +); +defparam plol_fedge_cZ.init=16'h4444; +// @16:757 + LUT4 rlos_redge_cZ ( + .A(rlos_db), + .B(rlos_db_p1), + .C(VCC), + .D(VCC), + .Z(rlos_redge) +); +defparam rlos_redge_cZ.init=16'h2222; +// @16:457 + LUT4 \genblk1.plol0_cnt_3_RNO[2] ( + .A(plol0_cnt[0]), + .B(waita_plol0), + .C(VCC), + .D(VCC), + .Z(CO0_2) +); +defparam \genblk1.plol0_cnt_3_RNO[2] .init=16'h8888; +// @16:891 + LUT4 un2_rdo_serdes_rst_dual_c_1_1_cZ ( + .A(rx_cdr_lol_s), + .B(rx_los_low_s), + .C(VCC), + .D(VCC), + .Z(un2_rdo_serdes_rst_dual_c_1_1) +); +defparam un2_rdo_serdes_rst_dual_c_1_1_cZ.init=16'h1111; +// @16:219 + LUT4 \un1_rlos_db_cnt_zero_am_cZ[0] ( + .A(rlos_db_cnt[0]), + .B(rlos_db_cnt[1]), + .C(rlos_db_cnt[2]), + .D(rlos_db_cnt[3]), + .Z(un1_rlos_db_cnt_zero_am[0]) +); +defparam \un1_rlos_db_cnt_zero_am_cZ[0] .init=16'h0001; +// @16:219 + LUT4 \un1_rlol_db_cnt_zero_am_cZ[0] ( + .A(rlol_db_cnt[0]), + .B(rlol_db_cnt[1]), + .C(rlol_db_cnt[2]), + .D(rlol_db_cnt[3]), + .Z(un1_rlol_db_cnt_zero_am[0]) +); +defparam \un1_rlol_db_cnt_zero_am_cZ[0] .init=16'h0001; +// @16:861 + LUT4 dual_or_rserd_rst_cZ ( + .A(rsl_rx_serdes_rst_c), + .B(serdes_rst_dual_c), + .C(rsl_rst), + .D(rsl_disable), + .Z(dual_or_rserd_rst) +); +defparam dual_or_rserd_rst_cZ.init=16'hEEFE; +// @16:454 + LUT4 \genblk1.plol0_cnt9 ( + .A(pll_lol_p2), + .B(plol0_cnt[2]), + .C(plol0_cnt[1]), + .D(plol0_cnt[0]), + .Z(plol0_cnt9) +); +defparam \genblk1.plol0_cnt9 .init=16'hAAAE; +// @16:783 + LUT4 \genblk2.rlols0_cnt11_0 ( + .A(rlol_db_p1), + .B(rlol_db), + .C(rlos_db_p1), + .D(rlos_db), + .Z(rlols0_cnt11_0) +); +defparam \genblk2.rlols0_cnt11_0 .init=16'h4F44; +// @16:527 + LUT4 \genblk1.genblk2.txr_wt_cnt9_i ( + .A(tx_any_rst), + .B(un18_txr_wt_tc_8), + .C(un18_txr_wt_tc_7), + .D(un18_txr_wt_tc_6), + .Z(txr_wt_cnt_scalar) +); +defparam \genblk1.genblk2.txr_wt_cnt9_i .init=16'h1555; + CCU2C \genblk2.rlol1_cnt_cry_0[0] ( + .A0(VCC), + .B0(rlol1_cnt_scalar), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_7), + .COUT(rlol1_cnt_cry[0]), + .S0(rlol1_cnt_cry_0_S0[0]), + .S1(rlol1_cnt_s[0]) +); +defparam \genblk2.rlol1_cnt_cry_0[0] .INIT0=16'h500c; +defparam \genblk2.rlol1_cnt_cry_0[0] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[0] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[0] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[1] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[1]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[2]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[0]), + .COUT(rlol1_cnt_cry[2]), + .S0(rlol1_cnt_s[1]), + .S1(rlol1_cnt_s[2]) +); +defparam \genblk2.rlol1_cnt_cry_0[1] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[1] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[1] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[1] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[3] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[3]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[4]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[2]), + .COUT(rlol1_cnt_cry[4]), + .S0(rlol1_cnt_s[3]), + .S1(rlol1_cnt_s[4]) +); +defparam \genblk2.rlol1_cnt_cry_0[3] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[3] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[3] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[3] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[5] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[5]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[6]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[4]), + .COUT(rlol1_cnt_cry[6]), + .S0(rlol1_cnt_s[5]), + .S1(rlol1_cnt_s[6]) +); +defparam \genblk2.rlol1_cnt_cry_0[5] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[5] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[5] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[5] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[7] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[7]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[8]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[6]), + .COUT(rlol1_cnt_cry[8]), + .S0(rlol1_cnt_s[7]), + .S1(rlol1_cnt_s[8]) +); +defparam \genblk2.rlol1_cnt_cry_0[7] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[7] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[7] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[7] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[9] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[9]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[10]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[8]), + .COUT(rlol1_cnt_cry[10]), + .S0(rlol1_cnt_s[9]), + .S1(rlol1_cnt_s[10]) +); +defparam \genblk2.rlol1_cnt_cry_0[9] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[9] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[9] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[9] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[11] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[11]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[12]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[10]), + .COUT(rlol1_cnt_cry[12]), + .S0(rlol1_cnt_s[11]), + .S1(rlol1_cnt_s[12]) +); +defparam \genblk2.rlol1_cnt_cry_0[11] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[11] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[11] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[11] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[13] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[13]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[14]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[12]), + .COUT(rlol1_cnt_cry[14]), + .S0(rlol1_cnt_s[13]), + .S1(rlol1_cnt_s[14]) +); +defparam \genblk2.rlol1_cnt_cry_0[13] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[13] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[13] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[13] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[15] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[15]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[16]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[14]), + .COUT(rlol1_cnt_cry[16]), + .S0(rlol1_cnt_s[15]), + .S1(rlol1_cnt_s[16]) +); +defparam \genblk2.rlol1_cnt_cry_0[15] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[15] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[15] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[15] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[17] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[17]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[18]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[16]), + .COUT(rlol1_cnt_cry_0_COUT[17]), + .S0(rlol1_cnt_s[17]), + .S1(rlol1_cnt_s[18]) +); +defparam \genblk2.rlol1_cnt_cry_0[17] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[17] .INIT1=16'h800a; +defparam \genblk2.rlol1_cnt_cry_0[17] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[17] .INJECT1_1="NO"; + CCU2C \genblk2.rlols0_cnt_cry_0[0] ( + .A0(VCC), + .B0(rlols0_cnt_scalar), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_6), + .COUT(rlols0_cnt_cry[0]), + .S0(rlols0_cnt_cry_0_S0[0]), + .S1(rlols0_cnt_s[0]) +); +defparam \genblk2.rlols0_cnt_cry_0[0] .INIT0=16'h500c; +defparam \genblk2.rlols0_cnt_cry_0[0] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[0] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[0] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_cry_0[1] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[1]), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[2]), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[0]), + .COUT(rlols0_cnt_cry[2]), + .S0(rlols0_cnt_s[1]), + .S1(rlols0_cnt_s[2]) +); +defparam \genblk2.rlols0_cnt_cry_0[1] .INIT0=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[1] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[1] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[1] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_cry_0[3] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[3]), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[4]), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[2]), + .COUT(rlols0_cnt_cry[4]), + .S0(rlols0_cnt_s[3]), + .S1(rlols0_cnt_s[4]) +); +defparam \genblk2.rlols0_cnt_cry_0[3] .INIT0=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[3] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[3] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[3] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_cry_0[5] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[5]), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[6]), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[4]), + .COUT(rlols0_cnt_cry[6]), + .S0(rlols0_cnt_s[5]), + .S1(rlols0_cnt_s[6]) +); +defparam \genblk2.rlols0_cnt_cry_0[5] .INIT0=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[5] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[5] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[5] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_cry_0[7] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[7]), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[8]), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[6]), + .COUT(rlols0_cnt_cry[8]), + .S0(rlols0_cnt_s[7]), + .S1(rlols0_cnt_s[8]) +); +defparam \genblk2.rlols0_cnt_cry_0[7] .INIT0=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[7] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[7] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[7] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_cry_0[9] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[9]), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[10]), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[8]), + .COUT(rlols0_cnt_cry[10]), + .S0(rlols0_cnt_s[9]), + .S1(rlols0_cnt_s[10]) +); +defparam \genblk2.rlols0_cnt_cry_0[9] .INIT0=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[9] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[9] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[9] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_cry_0[11] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[11]), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[12]), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[10]), + .COUT(rlols0_cnt_cry[12]), + .S0(rlols0_cnt_s[11]), + .S1(rlols0_cnt_s[12]) +); +defparam \genblk2.rlols0_cnt_cry_0[11] .INIT0=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[11] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[11] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[11] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_cry_0[13] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[13]), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[14]), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[12]), + .COUT(rlols0_cnt_cry[14]), + .S0(rlols0_cnt_s[13]), + .S1(rlols0_cnt_s[14]) +); +defparam \genblk2.rlols0_cnt_cry_0[13] .INIT0=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[13] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[13] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[13] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_cry_0[15] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[15]), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[16]), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[14]), + .COUT(rlols0_cnt_cry[16]), + .S0(rlols0_cnt_s[15]), + .S1(rlols0_cnt_s[16]) +); +defparam \genblk2.rlols0_cnt_cry_0[15] .INIT0=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[15] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[15] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[15] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_s_0[17] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[17]), + .C0(VCC), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[16]), + .COUT(rlols0_cnt_s_0_COUT[17]), + .S0(rlols0_cnt_s[17]), + .S1(rlols0_cnt_s_0_S1[17]) +); +defparam \genblk2.rlols0_cnt_s_0[17] .INIT0=16'h800a; +defparam \genblk2.rlols0_cnt_s_0[17] .INIT1=16'h5003; +defparam \genblk2.rlols0_cnt_s_0[17] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_s_0[17] .INJECT1_1="NO"; + CCU2C \genblk1.genblk2.txr_wt_cnt_cry_0[0] ( + .A0(VCC), + .B0(txr_wt_cnt_scalar), + .C0(VCC), + .D0(VCC), + .A1(txr_wt_cnt_scalar), + .B1(txr_wt_cnt[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_5), + .COUT(txr_wt_cnt_cry[0]), + .S0(txr_wt_cnt_cry_0_S0[0]), + .S1(txr_wt_cnt_s[0]) +); +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[0] .INIT0=16'h500c; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[0] .INIT1=16'h8000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[0] .INJECT1_0="NO"; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[0] .INJECT1_1="NO"; +// @16:527 + CCU2C \genblk1.genblk2.txr_wt_cnt_cry_0[1] ( + .A0(txr_wt_cnt_scalar), + .B0(txr_wt_cnt[1]), + .C0(VCC), + .D0(VCC), + .A1(txr_wt_cnt_scalar), + .B1(txr_wt_cnt[2]), + .C1(VCC), + .D1(VCC), + .CIN(txr_wt_cnt_cry[0]), + .COUT(txr_wt_cnt_cry[2]), + .S0(txr_wt_cnt_s[1]), + .S1(txr_wt_cnt_s[2]) +); +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[1] .INIT0=16'h8000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[1] .INIT1=16'h8000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[1] .INJECT1_0="NO"; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[1] .INJECT1_1="NO"; +// @16:527 + CCU2C \genblk1.genblk2.txr_wt_cnt_cry_0[3] ( + .A0(txr_wt_cnt_scalar), + .B0(txr_wt_cnt[3]), + .C0(VCC), + .D0(VCC), + .A1(txr_wt_cnt_scalar), + .B1(txr_wt_cnt[4]), + .C1(VCC), + .D1(VCC), + .CIN(txr_wt_cnt_cry[2]), + .COUT(txr_wt_cnt_cry[4]), + .S0(txr_wt_cnt_s[3]), + .S1(txr_wt_cnt_s[4]) +); +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[3] .INIT0=16'h8000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[3] .INIT1=16'h8000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[3] .INJECT1_0="NO"; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[3] .INJECT1_1="NO"; +// @16:527 + CCU2C \genblk1.genblk2.txr_wt_cnt_cry_0[5] ( + .A0(txr_wt_cnt_scalar), + .B0(txr_wt_cnt[5]), + .C0(VCC), + .D0(VCC), + .A1(txr_wt_cnt_scalar), + .B1(txr_wt_cnt[6]), + .C1(VCC), + .D1(VCC), + .CIN(txr_wt_cnt_cry[4]), + .COUT(txr_wt_cnt_cry[6]), + .S0(txr_wt_cnt_s[5]), + .S1(txr_wt_cnt_s[6]) +); +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[5] .INIT0=16'h8000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[5] .INIT1=16'h8000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[5] .INJECT1_0="NO"; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[5] .INJECT1_1="NO"; +// @16:527 + CCU2C \genblk1.genblk2.txr_wt_cnt_cry_0[7] ( + .A0(txr_wt_cnt_scalar), + .B0(txr_wt_cnt[7]), + .C0(VCC), + .D0(VCC), + .A1(txr_wt_cnt_scalar), + .B1(txr_wt_cnt[8]), + .C1(VCC), + .D1(VCC), + .CIN(txr_wt_cnt_cry[6]), + .COUT(txr_wt_cnt_cry[8]), + .S0(txr_wt_cnt_s[7]), + .S1(txr_wt_cnt_s[8]) +); +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[7] .INIT0=16'h8000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[7] .INIT1=16'h8000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[7] .INJECT1_0="NO"; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[7] .INJECT1_1="NO"; +// @16:527 + CCU2C \genblk1.genblk2.txr_wt_cnt_cry_0[9] ( + .A0(txr_wt_cnt_scalar), + .B0(txr_wt_cnt[9]), + .C0(VCC), + .D0(VCC), + .A1(txr_wt_cnt_scalar), + .B1(txr_wt_cnt[10]), + .C1(VCC), + .D1(VCC), + .CIN(txr_wt_cnt_cry[8]), + .COUT(txr_wt_cnt_cry[10]), + .S0(txr_wt_cnt_s[9]), + .S1(txr_wt_cnt_s[10]) +); +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[9] .INIT0=16'h8000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[9] .INIT1=16'h8000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[9] .INJECT1_0="NO"; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[9] .INJECT1_1="NO"; +// @16:527 + CCU2C \genblk1.genblk2.txr_wt_cnt_s_0[11] ( + .A0(txr_wt_cnt_scalar), + .B0(txr_wt_cnt[11]), + .C0(VCC), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(txr_wt_cnt_cry[10]), + .COUT(txr_wt_cnt_s_0_COUT[11]), + .S0(txr_wt_cnt_s[11]), + .S1(txr_wt_cnt_s_0_S1[11]) +); +defparam \genblk1.genblk2.txr_wt_cnt_s_0[11] .INIT0=16'h800a; +defparam \genblk1.genblk2.txr_wt_cnt_s_0[11] .INIT1=16'h5003; +defparam \genblk1.genblk2.txr_wt_cnt_s_0[11] .INJECT1_0="NO"; +defparam \genblk1.genblk2.txr_wt_cnt_s_0[11] .INJECT1_1="NO"; + CCU2C \genblk2.genblk3.rxr_wt_cnt_cry_0[0] ( + .A0(VCC), + .B0(rxr_wt_cnt9), + .C0(VCC), + .D0(VCC), + .A1(rxr_wt_cnt9), + .B1(rxr_wt_cnt[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_4), + .COUT(rxr_wt_cnt_cry[0]), + .S0(rxr_wt_cnt_cry_0_S0[0]), + .S1(rxr_wt_cnt_s[0]) +); +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[0] .INIT0=16'h5003; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[0] .INIT1=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[0] .INJECT1_0="NO"; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[0] .INJECT1_1="NO"; +// @16:909 + CCU2C \genblk2.genblk3.rxr_wt_cnt_cry_0[1] ( + .A0(rxr_wt_cnt9), + .B0(rxr_wt_cnt[1]), + .C0(VCC), + .D0(VCC), + .A1(rxr_wt_cnt9), + .B1(rxr_wt_cnt[2]), + .C1(VCC), + .D1(VCC), + .CIN(rxr_wt_cnt_cry[0]), + .COUT(rxr_wt_cnt_cry[2]), + .S0(rxr_wt_cnt_s[1]), + .S1(rxr_wt_cnt_s[2]) +); +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[1] .INIT0=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[1] .INIT1=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[1] .INJECT1_0="NO"; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[1] .INJECT1_1="NO"; +// @16:909 + CCU2C \genblk2.genblk3.rxr_wt_cnt_cry_0[3] ( + .A0(rxr_wt_cnt9), + .B0(rxr_wt_cnt[3]), + .C0(VCC), + .D0(VCC), + .A1(rxr_wt_cnt9), + .B1(rxr_wt_cnt[4]), + .C1(VCC), + .D1(VCC), + .CIN(rxr_wt_cnt_cry[2]), + .COUT(rxr_wt_cnt_cry[4]), + .S0(rxr_wt_cnt_s[3]), + .S1(rxr_wt_cnt_s[4]) +); +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[3] .INIT0=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[3] .INIT1=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[3] .INJECT1_0="NO"; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[3] .INJECT1_1="NO"; +// @16:909 + CCU2C \genblk2.genblk3.rxr_wt_cnt_cry_0[5] ( + .A0(rxr_wt_cnt9), + .B0(rxr_wt_cnt[5]), + .C0(VCC), + .D0(VCC), + .A1(rxr_wt_cnt9), + .B1(rxr_wt_cnt[6]), + .C1(VCC), + .D1(VCC), + .CIN(rxr_wt_cnt_cry[4]), + .COUT(rxr_wt_cnt_cry[6]), + .S0(rxr_wt_cnt_s[5]), + .S1(rxr_wt_cnt_s[6]) +); +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[5] .INIT0=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[5] .INIT1=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[5] .INJECT1_0="NO"; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[5] .INJECT1_1="NO"; +// @16:909 + CCU2C \genblk2.genblk3.rxr_wt_cnt_cry_0[7] ( + .A0(rxr_wt_cnt9), + .B0(rxr_wt_cnt[7]), + .C0(VCC), + .D0(VCC), + .A1(rxr_wt_cnt9), + .B1(rxr_wt_cnt[8]), + .C1(VCC), + .D1(VCC), + .CIN(rxr_wt_cnt_cry[6]), + .COUT(rxr_wt_cnt_cry[8]), + .S0(rxr_wt_cnt_s[7]), + .S1(rxr_wt_cnt_s[8]) +); +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[7] .INIT0=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[7] .INIT1=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[7] .INJECT1_0="NO"; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[7] .INJECT1_1="NO"; +// @16:909 + CCU2C \genblk2.genblk3.rxr_wt_cnt_cry_0[9] ( + .A0(rxr_wt_cnt9), + .B0(rxr_wt_cnt[9]), + .C0(VCC), + .D0(VCC), + .A1(rxr_wt_cnt9), + .B1(rxr_wt_cnt[10]), + .C1(VCC), + .D1(VCC), + .CIN(rxr_wt_cnt_cry[8]), + .COUT(rxr_wt_cnt_cry[10]), + .S0(rxr_wt_cnt_s[9]), + .S1(rxr_wt_cnt_s[10]) +); +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[9] .INIT0=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[9] .INIT1=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[9] .INJECT1_0="NO"; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[9] .INJECT1_1="NO"; +// @16:909 + CCU2C \genblk2.genblk3.rxr_wt_cnt_s_0[11] ( + .A0(rxr_wt_cnt9), + .B0(rxr_wt_cnt[11]), + .C0(VCC), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(rxr_wt_cnt_cry[10]), + .COUT(rxr_wt_cnt_s_0_COUT[11]), + .S0(rxr_wt_cnt_s[11]), + .S1(rxr_wt_cnt_s_0_S1[11]) +); +defparam \genblk2.genblk3.rxr_wt_cnt_s_0[11] .INIT0=16'h4005; +defparam \genblk2.genblk3.rxr_wt_cnt_s_0[11] .INIT1=16'h5003; +defparam \genblk2.genblk3.rxr_wt_cnt_s_0[11] .INJECT1_0="NO"; +defparam \genblk2.genblk3.rxr_wt_cnt_s_0[11] .INJECT1_1="NO"; + CCU2C \genblk1.plol_cnt_cry_0[0] ( + .A0(VCC), + .B0(plol_cnt_scalar), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_3), + .COUT(plol_cnt_cry[0]), + .S0(plol_cnt_cry_0_S0[0]), + .S1(plol_cnt_s[0]) +); +defparam \genblk1.plol_cnt_cry_0[0] .INIT0=16'h500c; +defparam \genblk1.plol_cnt_cry_0[0] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[0] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[0] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[1] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[1]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[2]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[0]), + .COUT(plol_cnt_cry[2]), + .S0(plol_cnt_s[1]), + .S1(plol_cnt_s[2]) +); +defparam \genblk1.plol_cnt_cry_0[1] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[1] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[1] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[1] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[3] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[3]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[4]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[2]), + .COUT(plol_cnt_cry[4]), + .S0(plol_cnt_s[3]), + .S1(plol_cnt_s[4]) +); +defparam \genblk1.plol_cnt_cry_0[3] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[3] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[3] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[3] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[5] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[5]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[6]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[4]), + .COUT(plol_cnt_cry[6]), + .S0(plol_cnt_s[5]), + .S1(plol_cnt_s[6]) +); +defparam \genblk1.plol_cnt_cry_0[5] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[5] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[5] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[5] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[7] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[7]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[8]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[6]), + .COUT(plol_cnt_cry[8]), + .S0(plol_cnt_s[7]), + .S1(plol_cnt_s[8]) +); +defparam \genblk1.plol_cnt_cry_0[7] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[7] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[7] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[7] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[9] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[9]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[10]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[8]), + .COUT(plol_cnt_cry[10]), + .S0(plol_cnt_s[9]), + .S1(plol_cnt_s[10]) +); +defparam \genblk1.plol_cnt_cry_0[9] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[9] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[9] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[9] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[11] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[11]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[12]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[10]), + .COUT(plol_cnt_cry[12]), + .S0(plol_cnt_s[11]), + .S1(plol_cnt_s[12]) +); +defparam \genblk1.plol_cnt_cry_0[11] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[11] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[11] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[11] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[13] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[13]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[14]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[12]), + .COUT(plol_cnt_cry[14]), + .S0(plol_cnt_s[13]), + .S1(plol_cnt_s[14]) +); +defparam \genblk1.plol_cnt_cry_0[13] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[13] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[13] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[13] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[15] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[15]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[16]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[14]), + .COUT(plol_cnt_cry[16]), + .S0(plol_cnt_s[15]), + .S1(plol_cnt_s[16]) +); +defparam \genblk1.plol_cnt_cry_0[15] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[15] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[15] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[15] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[17] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[17]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[18]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[16]), + .COUT(plol_cnt_cry[18]), + .S0(plol_cnt_s[17]), + .S1(plol_cnt_s[18]) +); +defparam \genblk1.plol_cnt_cry_0[17] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[17] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[17] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[17] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_s_0[19] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[19]), + .C0(VCC), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[18]), + .COUT(plol_cnt_s_0_COUT[19]), + .S0(plol_cnt_s[19]), + .S1(plol_cnt_s_0_S1[19]) +); +defparam \genblk1.plol_cnt_s_0[19] .INIT0=16'h800a; +defparam \genblk1.plol_cnt_s_0[19] .INIT1=16'h5003; +defparam \genblk1.plol_cnt_s_0[19] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_s_0[19] .INJECT1_1="NO"; + CCU2C \un1_genblk2.rlos_db_cnt_cry_0_0 ( + .A0(VCC), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(rlos_db_cnt[0]), + .B1(un1_rlos_db_cnt_zero[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_2), + .COUT(rlos_db_cnt_cry_0), + .S0(rlos_db_cnt_cry_0_0_S0), + .S1(rlos_db_cnt_cry_0_0_S1) +); +defparam \un1_genblk2.rlos_db_cnt_cry_0_0 .INIT0=16'h5003; +defparam \un1_genblk2.rlos_db_cnt_cry_0_0 .INIT1=16'h900a; +defparam \un1_genblk2.rlos_db_cnt_cry_0_0 .INJECT1_0="NO"; +defparam \un1_genblk2.rlos_db_cnt_cry_0_0 .INJECT1_1="NO"; +// @16:641 + CCU2C \un1_genblk2.rlos_db_cnt_cry_1_0 ( + .A0(un1_rlos_db_cnt_zero[0]), + .B0(rlos_p2), + .C0(rlos_db_cnt[1]), + .D0(VCC), + .A1(un1_rlos_db_cnt_zero[0]), + .B1(rlos_p2), + .C1(rlos_db_cnt[2]), + .D1(VCC), + .CIN(rlos_db_cnt_cry_0), + .COUT(rlos_db_cnt_cry_2), + .S0(rlos_db_cnt_cry_1_0_S0), + .S1(rlos_db_cnt_cry_1_0_S1) +); +defparam \un1_genblk2.rlos_db_cnt_cry_1_0 .INIT0=16'he101; +defparam \un1_genblk2.rlos_db_cnt_cry_1_0 .INIT1=16'he101; +defparam \un1_genblk2.rlos_db_cnt_cry_1_0 .INJECT1_0="NO"; +defparam \un1_genblk2.rlos_db_cnt_cry_1_0 .INJECT1_1="NO"; +// @16:641 + CCU2C \un1_genblk2.rlos_db_cnt_s_3_0 ( + .A0(rlos_db_cnt[3]), + .B0(rlos_p2), + .C0(un1_rlos_db_cnt_zero[0]), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(rlos_db_cnt_cry_2), + .COUT(rlos_db_cnt_s_3_0_COUT), + .S0(rlos_db_cnt_s_3_0_S0), + .S1(rlos_db_cnt_s_3_0_S1) +); +defparam \un1_genblk2.rlos_db_cnt_s_3_0 .INIT0=16'ha90a; +defparam \un1_genblk2.rlos_db_cnt_s_3_0 .INIT1=16'h5003; +defparam \un1_genblk2.rlos_db_cnt_s_3_0 .INJECT1_0="NO"; +defparam \un1_genblk2.rlos_db_cnt_s_3_0 .INJECT1_1="NO"; + CCU2C \un1_genblk2.rlol_db_cnt_cry_0_0 ( + .A0(VCC), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(rlol_db_cnt[0]), + .B1(un1_rlol_db_cnt_zero[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_1), + .COUT(rlol_db_cnt_cry_0), + .S0(rlol_db_cnt_cry_0_0_S0), + .S1(rlol_db_cnt_cry_0_0_S1) +); +defparam \un1_genblk2.rlol_db_cnt_cry_0_0 .INIT0=16'h5003; +defparam \un1_genblk2.rlol_db_cnt_cry_0_0 .INIT1=16'h900a; +defparam \un1_genblk2.rlol_db_cnt_cry_0_0 .INJECT1_0="NO"; +defparam \un1_genblk2.rlol_db_cnt_cry_0_0 .INJECT1_1="NO"; +// @16:625 + CCU2C \un1_genblk2.rlol_db_cnt_cry_1_0 ( + .A0(un1_rlol_db_cnt_zero[0]), + .B0(rlol_p2), + .C0(rlol_db_cnt[1]), + .D0(VCC), + .A1(un1_rlol_db_cnt_zero[0]), + .B1(rlol_p2), + .C1(rlol_db_cnt[2]), + .D1(VCC), + .CIN(rlol_db_cnt_cry_0), + .COUT(rlol_db_cnt_cry_2), + .S0(rlol_db_cnt_cry_1_0_S0), + .S1(rlol_db_cnt_cry_1_0_S1) +); +defparam \un1_genblk2.rlol_db_cnt_cry_1_0 .INIT0=16'he101; +defparam \un1_genblk2.rlol_db_cnt_cry_1_0 .INIT1=16'he101; +defparam \un1_genblk2.rlol_db_cnt_cry_1_0 .INJECT1_0="NO"; +defparam \un1_genblk2.rlol_db_cnt_cry_1_0 .INJECT1_1="NO"; +// @16:625 + CCU2C \un1_genblk2.rlol_db_cnt_s_3_0 ( + .A0(rlol_db_cnt[3]), + .B0(rlol_p2), + .C0(un1_rlol_db_cnt_zero[0]), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(rlol_db_cnt_cry_2), + .COUT(rlol_db_cnt_s_3_0_COUT), + .S0(rlol_db_cnt_s_3_0_S0), + .S1(rlol_db_cnt_s_3_0_S1) +); +defparam \un1_genblk2.rlol_db_cnt_s_3_0 .INIT0=16'ha90a; +defparam \un1_genblk2.rlol_db_cnt_s_3_0 .INIT1=16'h5003; +defparam \un1_genblk2.rlol_db_cnt_s_3_0 .INJECT1_0="NO"; +defparam \un1_genblk2.rlol_db_cnt_s_3_0 .INJECT1_1="NO"; +//@16:865 +//@16:492 + VHI VCC_0 ( + .Z(VCC) +); +// @16:865 + VLO GND_cZ ( + .Z(GND) +); +endmodule /* sgmii_ecp5rsl_core_Z2_layer1 */ + +module sgmii_ecp5 ( + hdoutp, + hdoutn, + hdinp, + hdinn, + rxrefclk, + tx_pclk, + txi_clk, + txdata, + tx_k, + xmit, + tx_disp_correct, + rxdata, + rx_k, + rx_disp_err, + rx_cv_err, + signal_detect_c, + rx_los_low_s, + lsm_status_s, + ctc_urun_s, + ctc_orun_s, + rx_cdr_lol_s, + ctc_ins_s, + ctc_del_s, + sli_rst, + tx_pwrup_c, + rx_pwrup_c, + sci_wrdata, + sci_addr, + sci_rddata, + sci_en_dual, + sci_sel_dual, + sci_en, + sci_sel, + sci_rd, + sci_wrn, + sci_int, + cyawstn, + serdes_pdb, + pll_refclki, + rsl_disable, + rsl_rst, + serdes_rst_dual_c, + rst_dual_c, + tx_serdes_rst_c, + tx_pcs_rst_c, + pll_lol, + rsl_tx_rdy, + rx_serdes_rst_c, + rx_pcs_rst_c, + rsl_rx_rdy +) +; +output hdoutp ; +output hdoutn ; +input hdinp ; +input hdinn ; +input rxrefclk ; +output tx_pclk ; +input txi_clk ; +input [7:0] txdata ; +input [0:0] tx_k ; +input [0:0] xmit ; +input [0:0] tx_disp_correct ; +output [7:0] rxdata ; +output [0:0] rx_k ; +output [0:0] rx_disp_err ; +output [0:0] rx_cv_err ; +input signal_detect_c ; +output rx_los_low_s ; +output lsm_status_s ; +output ctc_urun_s ; +output ctc_orun_s ; +output rx_cdr_lol_s ; +output ctc_ins_s ; +output ctc_del_s ; +input sli_rst ; +input tx_pwrup_c ; +input rx_pwrup_c ; +input [7:0] sci_wrdata ; +input [5:0] sci_addr ; +output [7:0] sci_rddata ; +input sci_en_dual ; +input sci_sel_dual ; +input sci_en ; +input sci_sel ; +input sci_rd ; +input sci_wrn ; +output sci_int ; +input cyawstn ; +input serdes_pdb ; +input pll_refclki ; +input rsl_disable ; +input rsl_rst ; +input serdes_rst_dual_c ; +input rst_dual_c ; +input tx_serdes_rst_c ; +input tx_pcs_rst_c ; +output pll_lol ; +output rsl_tx_rdy ; +input rx_serdes_rst_c ; +input rx_pcs_rst_c ; +output rsl_rx_rdy ; +wire hdoutp ; +wire hdoutn ; +wire hdinp ; +wire hdinn ; +wire rxrefclk ; +wire tx_pclk ; +wire txi_clk ; +wire signal_detect_c ; +wire rx_los_low_s ; +wire lsm_status_s ; +wire ctc_urun_s ; +wire ctc_orun_s ; +wire rx_cdr_lol_s ; +wire ctc_ins_s ; +wire ctc_del_s ; +wire sli_rst ; +wire tx_pwrup_c ; +wire rx_pwrup_c ; +wire sci_en_dual ; +wire sci_sel_dual ; +wire sci_en ; +wire sci_sel ; +wire sci_rd ; +wire sci_wrn ; +wire sci_int ; +wire cyawstn ; +wire serdes_pdb ; +wire pll_refclki ; +wire rsl_disable ; +wire rsl_rst ; +wire serdes_rst_dual_c ; +wire rst_dual_c ; +wire tx_serdes_rst_c ; +wire tx_pcs_rst_c ; +wire pll_lol ; +wire rsl_tx_rdy ; +wire rx_serdes_rst_c ; +wire rx_pcs_rst_c ; +wire rsl_rx_rdy ; +wire rsl_tx_pcs_rst_c ; +wire rsl_rx_pcs_rst_c ; +wire rsl_rx_serdes_rst_c ; +wire rsl_serdes_rst_dual_c ; +wire rsl_tx_serdes_rst_c ; +wire n47_1 ; +wire n48_1 ; +wire n1_1 ; +wire n2_1 ; +wire n3_1 ; +wire n4_1 ; +wire n5_1 ; +wire n49_1 ; +wire n6_1 ; +wire n50_1 ; +wire n7_1 ; +wire n51_1 ; +wire n8_1 ; +wire n52_1 ; +wire n9_1 ; +wire n53_1 ; +wire n54_1 ; +wire n55_1 ; +wire n56_1 ; +wire n57_1 ; +wire n58_1 ; +wire n59_1 ; +wire n60_1 ; +wire n61_1 ; +wire n62_1 ; +wire n63_1 ; +wire n64_1 ; +wire n65_1 ; +wire n10_1 ; +wire n66_1 ; +wire n67_1 ; +wire n68_1 ; +wire n69_1 ; +wire n70_1 ; +wire n71_1 ; +wire n72_1 ; +wire n73_1 ; +wire n74_1 ; +wire n75_1 ; +wire n76_1 ; +wire n77_1 ; +wire n78_1 ; +wire n79_1 ; +wire n80_1 ; +wire n81_1 ; +wire n82_1 ; +wire n83_1 ; +wire n84_1 ; +wire n85_1 ; +wire n86_1 ; +wire n87_1 ; +wire n88_1 ; +wire n11_1 ; +wire n89_1 ; +wire n12_1 ; +wire n90_1 ; +wire n13_1 ; +wire n91_1 ; +wire n92_1 ; +wire n93_1 ; +wire n94_1 ; +wire n95_1 ; +wire n14_1 ; +wire n96_1 ; +wire n15_1 ; +wire n97_1 ; +wire n98_1 ; +wire n99_1 ; +wire n100_1 ; +wire n101_1 ; +wire n112_1 ; +wire n16_1 ; +wire n17_1 ; +wire n18_1 ; +wire n19_1 ; +wire n20_1 ; +wire n21_1 ; +wire n22_1 ; +wire n23_1 ; +wire n24_1 ; +wire n25_1 ; +wire n26_1 ; +wire n27_1 ; +wire n28_1 ; +wire n29_1 ; +wire n30_1 ; +wire n31_1 ; +wire n32_1 ; +wire n33_1 ; +wire n34_1 ; +wire n35_1 ; +wire n36_1 ; +wire n37_1 ; +wire n38_1 ; +wire n39_1 ; +wire n40_1 ; +wire n41_1 ; +wire n42_1 ; +wire n43_1 ; +wire n46_1 ; +wire GND ; +wire VCC ; + VHI VCC_0 ( + .Z(VCC) +); + VLO GND_0 ( + .Z(GND) +); +// @16:865 + PUR PUR_INST ( + .PUR(VCC) +); +// @16:865 + GSR GSR_INST ( + .GSR(VCC) +); +// @8:162 +(* CHAN="CH0" *) DCUA DCU0_inst ( + .CH0_HDINP(hdinp), + .CH1_HDINP(GND), + .CH0_HDINN(hdinn), + .CH1_HDINN(GND), + .D_TXBIT_CLKP_FROM_ND(GND), + .D_TXBIT_CLKN_FROM_ND(GND), + .D_SYNC_ND(GND), + .D_TXPLL_LOL_FROM_ND(GND), + .CH0_RX_REFCLK(rxrefclk), + .CH1_RX_REFCLK(GND), + .CH0_FF_RXI_CLK(tx_pclk), + .CH1_FF_RXI_CLK(VCC), + .CH0_FF_TXI_CLK(txi_clk), + .CH1_FF_TXI_CLK(VCC), + .CH0_FF_EBRD_CLK(tx_pclk), + .CH1_FF_EBRD_CLK(VCC), + .CH0_FF_TX_D_0(txdata[0]), + .CH1_FF_TX_D_0(GND), + .CH0_FF_TX_D_1(txdata[1]), + .CH1_FF_TX_D_1(GND), + .CH0_FF_TX_D_2(txdata[2]), + .CH1_FF_TX_D_2(GND), + .CH0_FF_TX_D_3(txdata[3]), + .CH1_FF_TX_D_3(GND), + .CH0_FF_TX_D_4(txdata[4]), + .CH1_FF_TX_D_4(GND), + .CH0_FF_TX_D_5(txdata[5]), + .CH1_FF_TX_D_5(GND), + .CH0_FF_TX_D_6(txdata[6]), + .CH1_FF_TX_D_6(GND), + .CH0_FF_TX_D_7(txdata[7]), + .CH1_FF_TX_D_7(GND), + .CH0_FF_TX_D_8(tx_k[0]), + .CH1_FF_TX_D_8(GND), + .CH0_FF_TX_D_9(GND), + .CH1_FF_TX_D_9(GND), + .CH0_FF_TX_D_10(xmit[0]), + .CH1_FF_TX_D_10(GND), + .CH0_FF_TX_D_11(tx_disp_correct[0]), + .CH1_FF_TX_D_11(GND), + .CH0_FF_TX_D_12(GND), + .CH1_FF_TX_D_12(GND), + .CH0_FF_TX_D_13(GND), + .CH1_FF_TX_D_13(GND), + .CH0_FF_TX_D_14(GND), + .CH1_FF_TX_D_14(GND), + .CH0_FF_TX_D_15(GND), + .CH1_FF_TX_D_15(GND), + .CH0_FF_TX_D_16(GND), + .CH1_FF_TX_D_16(GND), + .CH0_FF_TX_D_17(GND), + .CH1_FF_TX_D_17(GND), + .CH0_FF_TX_D_18(GND), + .CH1_FF_TX_D_18(GND), + .CH0_FF_TX_D_19(GND), + .CH1_FF_TX_D_19(GND), + .CH0_FF_TX_D_20(GND), + .CH1_FF_TX_D_20(GND), + .CH0_FF_TX_D_21(GND), + .CH1_FF_TX_D_21(GND), + .CH0_FF_TX_D_22(GND), + .CH1_FF_TX_D_22(GND), + .CH0_FF_TX_D_23(GND), + .CH1_FF_TX_D_23(GND), + .CH0_FFC_EI_EN(GND), + .CH1_FFC_EI_EN(GND), + .CH0_FFC_PCIE_DET_EN(GND), + .CH1_FFC_PCIE_DET_EN(GND), + .CH0_FFC_PCIE_CT(GND), + .CH1_FFC_PCIE_CT(GND), + .CH0_FFC_SB_INV_RX(GND), + .CH1_FFC_SB_INV_RX(GND), + .CH0_FFC_ENABLE_CGALIGN(GND), + .CH1_FFC_ENABLE_CGALIGN(GND), + .CH0_FFC_SIGNAL_DETECT(signal_detect_c), + .CH1_FFC_SIGNAL_DETECT(GND), + .CH0_FFC_FB_LOOPBACK(GND), + .CH1_FFC_FB_LOOPBACK(GND), + .CH0_FFC_SB_PFIFO_LP(GND), + .CH1_FFC_SB_PFIFO_LP(GND), + .CH0_FFC_PFIFO_CLR(GND), + .CH1_FFC_PFIFO_CLR(GND), + .CH0_FFC_RATE_MODE_RX(GND), + .CH1_FFC_RATE_MODE_RX(GND), + .CH0_FFC_RATE_MODE_TX(GND), + .CH1_FFC_RATE_MODE_TX(GND), + .CH0_FFC_DIV11_MODE_RX(GND), + .CH1_FFC_DIV11_MODE_RX(GND), + .CH0_FFC_RX_GEAR_MODE(GND), + .CH1_FFC_RX_GEAR_MODE(GND), + .CH0_FFC_TX_GEAR_MODE(GND), + .CH1_FFC_TX_GEAR_MODE(GND), + .CH0_FFC_DIV11_MODE_TX(GND), + .CH1_FFC_DIV11_MODE_TX(GND), + .CH0_FFC_LDR_CORE2TX_EN(GND), + .CH1_FFC_LDR_CORE2TX_EN(GND), + .CH0_FFC_LANE_TX_RST(rsl_tx_pcs_rst_c), + .CH1_FFC_LANE_TX_RST(GND), + .CH0_FFC_LANE_RX_RST(rsl_rx_pcs_rst_c), + .CH1_FFC_LANE_RX_RST(GND), + .CH0_FFC_RRST(rsl_rx_serdes_rst_c), + .CH1_FFC_RRST(GND), + .CH0_FFC_TXPWDNB(tx_pwrup_c), + .CH1_FFC_TXPWDNB(GND), + .CH0_FFC_RXPWDNB(rx_pwrup_c), + .CH1_FFC_RXPWDNB(GND), + .CH0_LDR_CORE2TX(GND), + .CH1_LDR_CORE2TX(GND), + .D_SCIWDATA0(sci_wrdata[0]), + .D_SCIWDATA1(sci_wrdata[1]), + .D_SCIWDATA2(sci_wrdata[2]), + .D_SCIWDATA3(sci_wrdata[3]), + .D_SCIWDATA4(sci_wrdata[4]), + .D_SCIWDATA5(sci_wrdata[5]), + .D_SCIWDATA6(sci_wrdata[6]), + .D_SCIWDATA7(sci_wrdata[7]), + .D_SCIADDR0(sci_addr[0]), + .D_SCIADDR1(sci_addr[1]), + .D_SCIADDR2(sci_addr[2]), + .D_SCIADDR3(sci_addr[3]), + .D_SCIADDR4(sci_addr[4]), + .D_SCIADDR5(sci_addr[5]), + .D_SCIENAUX(sci_en_dual), + .D_SCISELAUX(sci_sel_dual), + .CH0_SCIEN(sci_en), + .CH1_SCIEN(GND), + .CH0_SCISEL(sci_sel), + .CH1_SCISEL(GND), + .D_SCIRD(sci_rd), + .D_SCIWSTN(sci_wrn), + .D_CYAWSTN(cyawstn), + .D_FFC_SYNC_TOGGLE(GND), + .D_FFC_DUAL_RST(rst_dual_c), + .D_FFC_MACRO_RST(rsl_serdes_rst_dual_c), + .D_FFC_MACROPDB(serdes_pdb), + .D_FFC_TRST(rsl_tx_serdes_rst_c), + .CH0_FFC_CDR_EN_BITSLIP(GND), + .CH1_FFC_CDR_EN_BITSLIP(GND), + .D_SCAN_ENABLE(GND), + .D_SCAN_IN_0(GND), + .D_SCAN_IN_1(GND), + .D_SCAN_IN_2(GND), + .D_SCAN_IN_3(GND), + .D_SCAN_IN_4(GND), + .D_SCAN_IN_5(GND), + .D_SCAN_IN_6(GND), + .D_SCAN_IN_7(GND), + .D_SCAN_MODE(GND), + .D_SCAN_RESET(GND), + .D_CIN0(GND), + .D_CIN1(GND), + .D_CIN2(GND), + .D_CIN3(GND), + .D_CIN4(GND), + .D_CIN5(GND), + .D_CIN6(GND), + .D_CIN7(GND), + .D_CIN8(GND), + .D_CIN9(GND), + .D_CIN10(GND), + .D_CIN11(GND), + .CH0_HDOUTP(hdoutp), + .CH1_HDOUTP(n47_1), + .CH0_HDOUTN(hdoutn), + .CH1_HDOUTN(n48_1), + .D_TXBIT_CLKP_TO_ND(n1_1), + .D_TXBIT_CLKN_TO_ND(n2_1), + .D_SYNC_PULSE2ND(n3_1), + .D_TXPLL_LOL_TO_ND(n4_1), + .CH0_FF_RX_F_CLK(n5_1), + .CH1_FF_RX_F_CLK(n49_1), + .CH0_FF_RX_H_CLK(n6_1), + .CH1_FF_RX_H_CLK(n50_1), + .CH0_FF_TX_F_CLK(n7_1), + .CH1_FF_TX_F_CLK(n51_1), + .CH0_FF_TX_H_CLK(n8_1), + .CH1_FF_TX_H_CLK(n52_1), + .CH0_FF_RX_PCLK(n9_1), + .CH1_FF_RX_PCLK(n53_1), + .CH0_FF_TX_PCLK(tx_pclk), + .CH1_FF_TX_PCLK(n54_1), + .CH0_FF_RX_D_0(rxdata[0]), + .CH1_FF_RX_D_0(n55_1), + .CH0_FF_RX_D_1(rxdata[1]), + .CH1_FF_RX_D_1(n56_1), + .CH0_FF_RX_D_2(rxdata[2]), + .CH1_FF_RX_D_2(n57_1), + .CH0_FF_RX_D_3(rxdata[3]), + .CH1_FF_RX_D_3(n58_1), + .CH0_FF_RX_D_4(rxdata[4]), + .CH1_FF_RX_D_4(n59_1), + .CH0_FF_RX_D_5(rxdata[5]), + .CH1_FF_RX_D_5(n60_1), + .CH0_FF_RX_D_6(rxdata[6]), + .CH1_FF_RX_D_6(n61_1), + .CH0_FF_RX_D_7(rxdata[7]), + .CH1_FF_RX_D_7(n62_1), + .CH0_FF_RX_D_8(rx_k[0]), + .CH1_FF_RX_D_8(n63_1), + .CH0_FF_RX_D_9(rx_disp_err[0]), + .CH1_FF_RX_D_9(n64_1), + .CH0_FF_RX_D_10(rx_cv_err[0]), + .CH1_FF_RX_D_10(n65_1), + .CH0_FF_RX_D_11(n10_1), + .CH1_FF_RX_D_11(n66_1), + .CH0_FF_RX_D_12(n67_1), + .CH1_FF_RX_D_12(n68_1), + .CH0_FF_RX_D_13(n69_1), + .CH1_FF_RX_D_13(n70_1), + .CH0_FF_RX_D_14(n71_1), + .CH1_FF_RX_D_14(n72_1), + .CH0_FF_RX_D_15(n73_1), + .CH1_FF_RX_D_15(n74_1), + .CH0_FF_RX_D_16(n75_1), + .CH1_FF_RX_D_16(n76_1), + .CH0_FF_RX_D_17(n77_1), + .CH1_FF_RX_D_17(n78_1), + .CH0_FF_RX_D_18(n79_1), + .CH1_FF_RX_D_18(n80_1), + .CH0_FF_RX_D_19(n81_1), + .CH1_FF_RX_D_19(n82_1), + .CH0_FF_RX_D_20(n83_1), + .CH1_FF_RX_D_20(n84_1), + .CH0_FF_RX_D_21(n85_1), + .CH1_FF_RX_D_21(n86_1), + .CH0_FF_RX_D_22(n87_1), + .CH1_FF_RX_D_22(n88_1), + .CH0_FF_RX_D_23(n11_1), + .CH1_FF_RX_D_23(n89_1), + .CH0_FFS_PCIE_DONE(n12_1), + .CH1_FFS_PCIE_DONE(n90_1), + .CH0_FFS_PCIE_CON(n13_1), + .CH1_FFS_PCIE_CON(n91_1), + .CH0_FFS_RLOS(rx_los_low_s), + .CH1_FFS_RLOS(n92_1), + .CH0_FFS_LS_SYNC_STATUS(lsm_status_s), + .CH1_FFS_LS_SYNC_STATUS(n93_1), + .CH0_FFS_CC_UNDERRUN(ctc_urun_s), + .CH1_FFS_CC_UNDERRUN(n94_1), + .CH0_FFS_CC_OVERRUN(ctc_orun_s), + .CH1_FFS_CC_OVERRUN(n95_1), + .CH0_FFS_RXFBFIFO_ERROR(n14_1), + .CH1_FFS_RXFBFIFO_ERROR(n96_1), + .CH0_FFS_TXFBFIFO_ERROR(n15_1), + .CH1_FFS_TXFBFIFO_ERROR(n97_1), + .CH0_FFS_RLOL(rx_cdr_lol_s), + .CH1_FFS_RLOL(n98_1), + .CH0_FFS_SKP_ADDED(ctc_ins_s), + .CH1_FFS_SKP_ADDED(n99_1), + .CH0_FFS_SKP_DELETED(ctc_del_s), + .CH1_FFS_SKP_DELETED(n100_1), + .CH0_LDR_RX2CORE(n101_1), + .CH1_LDR_RX2CORE(n112_1), + .D_SCIRDATA0(sci_rddata[0]), + .D_SCIRDATA1(sci_rddata[1]), + .D_SCIRDATA2(sci_rddata[2]), + .D_SCIRDATA3(sci_rddata[3]), + .D_SCIRDATA4(sci_rddata[4]), + .D_SCIRDATA5(sci_rddata[5]), + .D_SCIRDATA6(sci_rddata[6]), + .D_SCIRDATA7(sci_rddata[7]), + .D_SCIINT(sci_int), + .D_SCAN_OUT_0(n16_1), + .D_SCAN_OUT_1(n17_1), + .D_SCAN_OUT_2(n18_1), + .D_SCAN_OUT_3(n19_1), + .D_SCAN_OUT_4(n20_1), + .D_SCAN_OUT_5(n21_1), + .D_SCAN_OUT_6(n22_1), + .D_SCAN_OUT_7(n23_1), + .D_COUT0(n24_1), + .D_COUT1(n25_1), + .D_COUT2(n26_1), + .D_COUT3(n27_1), + .D_COUT4(n28_1), + .D_COUT5(n29_1), + .D_COUT6(n30_1), + .D_COUT7(n31_1), + .D_COUT8(n32_1), + .D_COUT9(n33_1), + .D_COUT10(n34_1), + .D_COUT11(n35_1), + .D_COUT12(n36_1), + .D_COUT13(n37_1), + .D_COUT14(n38_1), + .D_COUT15(n39_1), + .D_COUT16(n40_1), + .D_COUT17(n41_1), + .D_COUT18(n42_1), + .D_COUT19(n43_1), + .D_REFCLKI(pll_refclki), + .D_FFS_PLOL(n46_1) +); +defparam DCU0_inst.D_MACROPDB = "0b1"; +defparam DCU0_inst.D_IB_PWDNB = "0b1"; +defparam DCU0_inst.D_XGE_MODE = "0b0"; +defparam DCU0_inst.D_LOW_MARK = "0d4"; +defparam DCU0_inst.D_HIGH_MARK = "0d12"; +defparam DCU0_inst.D_BUS8BIT_SEL = "0b0"; +defparam DCU0_inst.D_CDR_LOL_SET = "0b00"; +defparam DCU0_inst.D_BITCLK_LOCAL_EN = "0b1"; +defparam DCU0_inst.D_BITCLK_ND_EN = "0b0"; +defparam DCU0_inst.D_BITCLK_FROM_ND_EN = "0b0"; +defparam DCU0_inst.D_SYNC_LOCAL_EN = "0b1"; +defparam DCU0_inst.D_SYNC_ND_EN = "0b0"; +defparam DCU0_inst.CH0_UC_MODE = "0b0"; +defparam DCU0_inst.CH0_PCIE_MODE = "0b0"; +defparam DCU0_inst.CH0_RIO_MODE = "0b0"; +defparam DCU0_inst.CH0_WA_MODE = "0b0"; +defparam DCU0_inst.CH0_INVERT_RX = "0b0"; +defparam DCU0_inst.CH0_INVERT_TX = "0b0"; +defparam DCU0_inst.CH0_PRBS_SELECTION = "0b0"; +defparam DCU0_inst.CH0_GE_AN_ENABLE = "0b0"; +defparam DCU0_inst.CH0_PRBS_LOCK = "0b0"; +defparam DCU0_inst.CH0_PRBS_ENABLE = "0b0"; +defparam DCU0_inst.CH0_ENABLE_CG_ALIGN = "0b1"; +defparam DCU0_inst.CH0_TX_GEAR_MODE = "0b0"; +defparam DCU0_inst.CH0_RX_GEAR_MODE = "0b0"; +defparam DCU0_inst.CH0_PCS_DET_TIME_SEL = "0b00"; +defparam DCU0_inst.CH0_PCIE_EI_EN = "0b0"; +defparam DCU0_inst.CH0_TX_GEAR_BYPASS = "0b0"; +defparam DCU0_inst.CH0_ENC_BYPASS = "0b0"; +defparam DCU0_inst.CH0_SB_BYPASS = "0b0"; +defparam DCU0_inst.CH0_RX_SB_BYPASS = "0b0"; +defparam DCU0_inst.CH0_WA_BYPASS = "0b0"; +defparam DCU0_inst.CH0_DEC_BYPASS = "0b0"; +defparam DCU0_inst.CH0_CTC_BYPASS = "0b0"; +defparam DCU0_inst.CH0_RX_GEAR_BYPASS = "0b0"; +defparam DCU0_inst.CH0_LSM_DISABLE = "0b0"; +defparam DCU0_inst.CH0_MATCH_2_ENABLE = "0b1"; +defparam DCU0_inst.CH0_MATCH_4_ENABLE = "0b0"; +defparam DCU0_inst.CH0_MIN_IPG_CNT = "0b11"; +defparam DCU0_inst.CH0_CC_MATCH_1 = "0x000"; +defparam DCU0_inst.CH0_CC_MATCH_2 = "0x000"; +defparam DCU0_inst.CH0_CC_MATCH_3 = "0x1BC"; +defparam DCU0_inst.CH0_CC_MATCH_4 = "0x050"; +defparam DCU0_inst.CH0_UDF_COMMA_MASK = "0x3ff"; +defparam DCU0_inst.CH0_UDF_COMMA_A = "0x283"; +defparam DCU0_inst.CH0_UDF_COMMA_B = "0x17C"; +defparam DCU0_inst.CH0_RX_DCO_CK_DIV = "0b010"; +defparam DCU0_inst.CH0_RCV_DCC_EN = "0b0"; +defparam DCU0_inst.CH0_REQ_LVL_SET = "0b00"; +defparam DCU0_inst.CH0_REQ_EN = "0b1"; +defparam DCU0_inst.CH0_RTERM_RX = "0d22"; +defparam DCU0_inst.CH0_PDEN_SEL = "0b1"; +defparam DCU0_inst.CH0_LDR_RX2CORE_SEL = "0b0"; +defparam DCU0_inst.CH0_LDR_CORE2TX_SEL = "0b0"; +defparam DCU0_inst.CH0_TPWDNB = "0b1"; +defparam DCU0_inst.CH0_RATE_MODE_TX = "0b0"; +defparam DCU0_inst.CH0_RTERM_TX = "0d19"; +defparam DCU0_inst.CH0_TX_CM_SEL = "0b00"; +defparam DCU0_inst.CH0_TDRV_PRE_EN = "0b0"; +defparam DCU0_inst.CH0_TDRV_SLICE0_SEL = "0b01"; +defparam DCU0_inst.CH0_TDRV_SLICE1_SEL = "0b00"; +defparam DCU0_inst.CH0_TDRV_SLICE2_SEL = "0b01"; +defparam DCU0_inst.CH0_TDRV_SLICE3_SEL = "0b01"; +defparam DCU0_inst.CH0_TDRV_SLICE4_SEL = "0b01"; +defparam DCU0_inst.CH0_TDRV_SLICE5_SEL = "0b01"; +defparam DCU0_inst.CH0_TDRV_SLICE0_CUR = "0b101"; +defparam DCU0_inst.CH0_TDRV_SLICE1_CUR = "0b000"; +defparam DCU0_inst.CH0_TDRV_SLICE2_CUR = "0b11"; +defparam DCU0_inst.CH0_TDRV_SLICE3_CUR = "0b11"; +defparam DCU0_inst.CH0_TDRV_SLICE4_CUR = "0b11"; +defparam DCU0_inst.CH0_TDRV_SLICE5_CUR = "0b00"; +defparam DCU0_inst.CH0_TDRV_DAT_SEL = "0b00"; +defparam DCU0_inst.CH0_TX_DIV11_SEL = "0b0"; +defparam DCU0_inst.CH0_RPWDNB = "0b1"; +defparam DCU0_inst.CH0_RATE_MODE_RX = "0b0"; +defparam DCU0_inst.CH0_RLOS_SEL = "0b1"; +defparam DCU0_inst.CH0_RX_LOS_LVL = "0b010"; +defparam DCU0_inst.CH0_RX_LOS_CEQ = "0b11"; +defparam DCU0_inst.CH0_RX_LOS_HYST_EN = "0b0"; +defparam DCU0_inst.CH0_RX_LOS_EN = "0b1"; +defparam DCU0_inst.CH0_RX_DIV11_SEL = "0b0"; +defparam DCU0_inst.CH0_SEL_SD_RX_CLK = "0b0"; +defparam DCU0_inst.CH0_FF_RX_H_CLK_EN = "0b0"; +defparam DCU0_inst.CH0_FF_RX_F_CLK_DIS = "0b0"; +defparam DCU0_inst.CH0_FF_TX_H_CLK_EN = "0b0"; +defparam DCU0_inst.CH0_FF_TX_F_CLK_DIS = "0b0"; +defparam DCU0_inst.CH0_RX_RATE_SEL = "0d8"; +defparam DCU0_inst.CH0_TDRV_POST_EN = "0b0"; +defparam DCU0_inst.CH0_TX_POST_SIGN = "0b0"; +defparam DCU0_inst.CH0_TX_PRE_SIGN = "0b0"; +defparam DCU0_inst.CH0_RXTERM_CM = "0b11"; +defparam DCU0_inst.CH0_RXIN_CM = "0b11"; +defparam DCU0_inst.CH0_LEQ_OFFSET_SEL = "0b0"; +defparam DCU0_inst.CH0_LEQ_OFFSET_TRIM = "0b000"; +defparam DCU0_inst.D_TX_MAX_RATE = "1.25"; +defparam DCU0_inst.CH0_CDR_MAX_RATE = "1.25"; +defparam DCU0_inst.CH0_TXAMPLITUDE = "0d1100"; +defparam DCU0_inst.CH0_TXDEPRE = "DISABLED"; +defparam DCU0_inst.CH0_TXDEPOST = "DISABLED"; +defparam DCU0_inst.CH0_PROTOCOL = "GBE"; +defparam DCU0_inst.D_ISETLOS = "0d0"; +defparam DCU0_inst.D_SETIRPOLY_AUX = "0b00"; +defparam DCU0_inst.D_SETICONST_AUX = "0b00"; +defparam DCU0_inst.D_SETIRPOLY_CH = "0b00"; +defparam DCU0_inst.D_SETICONST_CH = "0b00"; +defparam DCU0_inst.D_REQ_ISET = "0b000"; +defparam DCU0_inst.D_PD_ISET = "0b00"; +defparam DCU0_inst.D_DCO_CALIB_TIME_SEL = "0b00"; +defparam DCU0_inst.CH0_DCOCTLGI = "0b010"; +defparam DCU0_inst.CH0_DCOATDDLY = "0b00"; +defparam DCU0_inst.CH0_DCOATDCFG = "0b00"; +defparam DCU0_inst.CH0_DCOBYPSATD = "0b1"; +defparam DCU0_inst.CH0_DCOSCALEI = "0b00"; +defparam DCU0_inst.CH0_DCOITUNE4LSB = "0b111"; +defparam DCU0_inst.CH0_DCOIOSTUNE = "0b000"; +defparam DCU0_inst.CH0_DCODISBDAVOID = "0b0"; +defparam DCU0_inst.CH0_DCOCALDIV = "0b001"; +defparam DCU0_inst.CH0_DCONUOFLSB = "0b101"; +defparam DCU0_inst.CH0_DCOIUPDNX2 = "0b1"; +defparam DCU0_inst.CH0_DCOSTEP = "0b00"; +defparam DCU0_inst.CH0_DCOSTARTVAL = "0b000"; +defparam DCU0_inst.CH0_DCOFLTDAC = "0b01"; +defparam DCU0_inst.CH0_DCOITUNE = "0b00"; +defparam DCU0_inst.CH0_DCOFTNRG = "0b110"; +defparam DCU0_inst.CH0_CDR_CNT4SEL = "0b00"; +defparam DCU0_inst.CH0_CDR_CNT8SEL = "0b00"; +defparam DCU0_inst.CH0_BAND_THRESHOLD = "0d0"; +defparam DCU0_inst.CH0_AUTO_FACQ_EN = "0b1"; +defparam DCU0_inst.CH0_AUTO_CALIB_EN = "0b1"; +defparam DCU0_inst.CH0_CALIB_CK_MODE = "0b0"; +defparam DCU0_inst.CH0_REG_BAND_OFFSET = "0d0"; +defparam DCU0_inst.CH0_REG_BAND_SEL = "0d0"; +defparam DCU0_inst.CH0_REG_IDAC_SEL = "0d0"; +defparam DCU0_inst.CH0_REG_IDAC_EN = "0b0"; +defparam DCU0_inst.D_TXPLL_PWDNB = "0b1"; +defparam DCU0_inst.D_SETPLLRC = "0d1"; +defparam DCU0_inst.D_REFCK_MODE = "0b001"; +defparam DCU0_inst.D_TX_VCO_CK_DIV = "0b010"; +defparam DCU0_inst.D_PLL_LOL_SET = "0b00"; +defparam DCU0_inst.D_RG_EN = "0b0"; +defparam DCU0_inst.D_RG_SET = "0b00"; +defparam DCU0_inst.D_CMUSETISCL4VCO = "0b000"; +defparam DCU0_inst.D_CMUSETI4VCO = "0b00"; +defparam DCU0_inst.D_CMUSETINITVCT = "0b00"; +defparam DCU0_inst.D_CMUSETZGM = "0b000"; +defparam DCU0_inst.D_CMUSETP2AGM = "0b000"; +defparam DCU0_inst.D_CMUSETP1GM = "0b000"; +defparam DCU0_inst.D_CMUSETI4CPZ = "0d3"; +defparam DCU0_inst.D_CMUSETI4CPP = "0d3"; +defparam DCU0_inst.D_CMUSETICP4Z = "0b101"; +defparam DCU0_inst.D_CMUSETICP4P = "0b01"; +defparam DCU0_inst.D_CMUSETBIASI = "0b00"; +// @8:424 + sgmii_ecp5sll_core_Z1_layer1 sll_inst ( + .tx_pclk(tx_pclk), + .sli_rst(sli_rst), + .pll_refclki(pll_refclki), + .pll_lock_i(pll_lol) +); +// @8:394 + sgmii_ecp5rsl_core_Z2_layer1 rsl_inst ( + .rx_pcs_rst_c(rx_pcs_rst_c), + .tx_pcs_rst_c(tx_pcs_rst_c), + .tx_serdes_rst_c(tx_serdes_rst_c), + .serdes_rst_dual_c(serdes_rst_dual_c), + .rsl_tx_pcs_rst_c(rsl_tx_pcs_rst_c), + .rsl_rx_serdes_rst_c(rsl_rx_serdes_rst_c), + .rsl_serdes_rst_dual_c(rsl_serdes_rst_dual_c), + .rsl_tx_serdes_rst_c(rsl_tx_serdes_rst_c), + .rsl_tx_rdy(rsl_tx_rdy), + .pll_lock_i(pll_lol), + .pll_refclki(pll_refclki), + .rsl_rx_rdy(rsl_rx_rdy), + .rsl_rst(rsl_rst), + .rxrefclk(rxrefclk), + .rsl_disable(rsl_disable), + .rx_serdes_rst_c(rx_serdes_rst_c), + .rsl_rx_pcs_rst_c(rsl_rx_pcs_rst_c), + .rst_dual_c(rst_dual_c), + .rx_cdr_lol_s(rx_cdr_lol_s), + .rx_los_low_s(rx_los_low_s) +); +endmodule /* sgmii_ecp5 */ + diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5_cck.rpt.db b/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5_cck.rpt.db new file mode 100644 index 0000000000000000000000000000000000000000..029fa7a6cf9014af50ee9d4aa843536a1f7b5c42 GIT binary patch literal 8192 zcmeI#JqyA>3DEQgKL*xDXO@ z%d=&(imfwzIG4G0Jf%J073BwWN1`{~f``Krs^Nta{J wY>_tId!-qqw)j}S$WL3iQGJ`s(T{)t1Rwwb2tWV=5P$##AOHafK;VZ3UKAiP82|tP literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5_scck.rpt.db b/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5_scck.rpt.db new file mode 100644 index 0000000000000000000000000000000000000000..029fa7a6cf9014af50ee9d4aa843536a1f7b5c42 GIT binary patch literal 8192 zcmeI#JqyA>3DEQgKL*xDXO@ z%d=&(imfwzIG4G0Jf%J073BwWN1`{~f``Krs^Nta{J wY>_tId!-qqw)j}S$WL3iQGJ`s(T{)t1Rwwb2tWV=5P$##AOHafK;VZ3UKAiP82|tP literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5_synplify.lpf b/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5_synplify.lpf new file mode 100644 index 0000000..9cbac38 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5_synplify.lpf @@ -0,0 +1,29 @@ +# +# Logical Preferences generated for Lattice by Synplify maplat, Build 1796R. +# + +# Period Constraints +#FREQUENCY PORT "pll_refclki" 100.0 MHz; +#FREQUENCY PORT "rxrefclk" 100.0 MHz; +#FREQUENCY NET "tx_pclk" 100.0 MHz; + + +# Output Constraints + +# Input Constraints + +# Point-to-point Delay Constraints + + + +# Block Path Constraints +#BLOCK PATH FROM CLKNET "tx_pclk" TO CLKNET "rxrefclk"; +#BLOCK PATH FROM CLKNET "tx_pclk" TO CLKNET "pll_refclki"; +#BLOCK PATH FROM CLKNET "rxrefclk" TO CLKNET "tx_pclk"; +#BLOCK PATH FROM CLKNET "rxrefclk" TO CLKNET "pll_refclki"; +#BLOCK PATH FROM CLKNET "pll_refclki" TO CLKNET "tx_pclk"; +#BLOCK PATH FROM CLKNET "pll_refclki" TO CLKNET "rxrefclk"; + +BLOCK ASYNCPATHS; + +# End of generated Logical Preferences. diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5_synplify_tmp2.lpf b/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5_synplify_tmp2.lpf new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5_synplify_tmp4.lpf b/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5_synplify_tmp4.lpf new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5_synplify_tmp8.lpf b/gbe/cores/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5_synplify_tmp8.lpf new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/layer0.tlg.rptmap b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/layer0.tlg.rptmap new file mode 100644 index 0000000..3910cac --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/layer0.tlg.rptmap @@ -0,0 +1 @@ +./synwork/layer0.tlg,layer0.tlg,An incremental, partial HDL compilation log file that may allow early access to errors or other messages. diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/layer1.tlg.rptmap b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/layer1.tlg.rptmap new file mode 100644 index 0000000..af92e0b --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/layer1.tlg.rptmap @@ -0,0 +1 @@ +./synwork/layer1.tlg,layer1.tlg,An incremental, partial HDL compilation log file that may allow early access to errors or other messages. diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/linker.rpt.rptmap b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/linker.rpt.rptmap new file mode 100644 index 0000000..3793ead --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/linker.rpt.rptmap @@ -0,0 +1 @@ +./synwork/sgmii_ecp5_comp.linkerlog,linker.rpt,Summary of linker messages for components that did not bind diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/metrics.db b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/metrics.db new file mode 100644 index 0000000000000000000000000000000000000000..f26fd6af62093a2882e7d380ad36bb0ae93eb77f GIT binary patch literal 20480 zcmeI3&uL&#F;;$SB{+9Kcc<#*ngrI)aU)-AF27(OBDJ>UhmB8d*6BcdG_IX$4?$@3B_64 z3tUUFiuSdp>)I{GG);RA#~C=%HU*vjkv2W;eBk_AEB*b7fWZ{GrP1x|FXS)iU_$~( z00|%gB!C2v01`j~NB{|(KmrGsr>1kWv-)9PSxtv4;R@M_-_P86ys^Hs!FJYfZ*8z* zJXyTvHD7RBv7Qy!yH;?6xm*Rp9*%pK)8)fqR|*vlhcCS5aA13`%jJlc9|+e9UT(*d zP0w?`%b5CX-Lq*fb z?DQv@?7B@JFt5$--Q8kB`d!5$!&=TDMN0BNB;Kyq>VkjueeTKi^=}MP0=Ml9Oo+DN zt;Q#MvP8M1ZC)_Q0%$xRYD6KG-?#RW&<9HW`u{6>R-=E=H}n;4(iIqBLjp(u2_OL^ zfCP{L5u)mipWW{FnV_B&R?wS1ok z*9!*8N2UR{oY=NnU#YB?|7|;eC6b*T$SyCMQA%k&T zCT{#k$9^!Z6^I^}tof2jPnJ5C;;p5q$0ZN?qhu8oa2~EMz|(C?W;Zj!?lhpx^m@Ey z#`WglM%YhxHko57dzXhSv3X`1V_u69f2_OL^fCP{L55z1j%Dvv7tLy= KW}0$zC&NFq`p7*1 literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_notes.txt b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_notes.txt new file mode 100644 index 0000000..cf05fac --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_notes.txt @@ -0,0 +1,16 @@ +@N|Running in 64-bit mode +@N|Running in 64-bit mode +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd":30:7:30:16|Top entity is set to sgmii_ecp5. +@N|Running in 64-bit mode +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd":30:7:30:16|Top entity is set to sgmii_ecp5. +@N: CD630 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd":30:7:30:16|Synthesizing work.sgmii_ecp5.v1. +@N: CG364 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1968:7:1968:10|Synthesizing module sync in library work. +@N: CG364 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1051:7:1051:24|Synthesizing module sgmii_ecp5sll_core in library work. +@N: CG179 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1287:54:1287:59|Removing redundant assignment. +@N: CG179 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1293:52:1293:55|Removing redundant assignment. +@N: CG364 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":92:7:92:24|Synthesizing module sgmii_ecp5rsl_core in library work. +@N: CL201 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1801:0:1801:5|Trying to extract state machine for register sll_state. +@N|Running in 64-bit mode + diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_runstatus.xml b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_runstatus.xml new file mode 100644 index 0000000..797309b --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_runstatus.xml @@ -0,0 +1,41 @@ + + + + + + /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_compiler.srr + Synopsys HDL Compiler + + + Completed + + + + 15 + /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_notes.txt + + + 76 + /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_warnings.txt + + + 0 + /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_errors.txt + + + - + + + 00h:00m:02s + + + - + + + 1557471731 + + + \ No newline at end of file diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_warnings.txt b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_warnings.txt new file mode 100644 index 0000000..d386b26 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_warnings.txt @@ -0,0 +1,77 @@ +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1350:0:1350:5|Pruning unused register rcpri_mod_ch_st. Make sure that there are no unused intermediate registers. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 0 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 0 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 1 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 2 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 16 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 18 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 19 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 20 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 21 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":326:33:326:40|Object rrst_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":327:33:327:43|Removing wire rrst_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":328:33:328:41|Object rrst_wait is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":341:33:341:39|Object rxp_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":342:33:342:39|Object rxp_rst is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":343:33:343:42|Removing wire rxp_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":346:33:346:42|Object rlolsz_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":347:33:347:45|Removing wire rlolsz_cnt_tc, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":350:33:350:43|Removing wire rxp_cnt2_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":351:33:351:47|Object data_loop_b_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":352:33:352:43|Object data_loop_b is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":353:33:353:46|Removing wire data_loop_b_tc, as there is no assignment to it. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":806:3:806:8|Pruning unused register genblk2.rxp_cnt2[2:0]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlol_p3. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlos_p3. Make sure that there are no unused intermediate registers. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":694:3:694:8|Optimizing register bit genblk2.rxs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":461:3:461:8|Optimizing register bit genblk1.txp_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":422:3:422:8|Optimizing register bit genblk1.txs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":422:3:422:8|Pruning register bit 2 of genblk1.txs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":461:3:461:8|Pruning register bit 2 of genblk1.txp_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":694:3:694:8|Pruning register bit 2 of genblk2.rxs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":200:33:200:48|Input port bits 3 to 1 of rui_tx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":204:33:204:51|Input port bits 3 to 1 of rui_rx_serdes_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":205:33:205:48|Input port bits 3 to 1 of rui_rx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":206:33:206:48|Input port bits 3 to 1 of rdi_rx_los_low_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":207:33:207:48|Input port bits 3 to 1 of rdi_rx_cdr_lol_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning register bits 6 to 4 of genblk5.rdiff_comp_unlock[6:3]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning register bits 5 to 3 of genblk5.rdiff_comp_lock[5:2]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rdiff_comp_unlock[3]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rcount_tc[17]. Make sure that there are no unused intermediate registers. + diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_area_report.xml b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_area_report.xml new file mode 100644 index 0000000..8733c9b --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_area_report.xml @@ -0,0 +1,26 @@ + + + + +/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_resourceusage.rpt +Resource Usage + + +221 + + +0 + + +0 + + +0 + + +154 + + diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_errors.txt b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_errors.txt new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_notes.txt b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_notes.txt new file mode 100644 index 0000000..d8e3e2c --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_notes.txt @@ -0,0 +1,22 @@ +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) +@N: MO225 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1801:0:1801:5|There are no possible illegal states for state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)); safe FSM implementation is not required. +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1350:0:1350:5|Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance rhb_wait_cnt[7:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1304:0:1304:5|Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance rcount[15:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1759:0:1759:5|Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance pcount[21:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":412:3:412:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk1\.plol_cnt[19:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":909:3:909:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.genblk3\.rxr_wt_cnt[11:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":527:3:527:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk1\.genblk2\.txr_wt_cnt[11:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":778:3:778:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.rlols0_cnt[17:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":680:3:680:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.rlol1_cnt[18:0] +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX164 |The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute. +@N: FX1056 |Writing EDF file: /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.edn +@N: BW106 |Synplicity Constraint File capacitance units using default value of 1pF +@N: MT320 |This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. +@N: MT322 |Clock constraints include only register-to-register paths associated with each individual clock. diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_opt_report.xml b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_opt_report.xml new file mode 100644 index 0000000..c6da126 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_opt_report.xml @@ -0,0 +1,14 @@ + + + + +3 / 0 + +/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_combined_clk.rpt +START OF CLOCK OPTIMIZATION REPORT + + + diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_runstatus.xml b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_runstatus.xml new file mode 100644 index 0000000..05527dc --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_runstatus.xml @@ -0,0 +1,46 @@ + + + + +/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.srr +Synopsys Lattice Technology Mapper + + +Completed + + + +22 + +/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_notes.txt + + + +4 + +/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_warnings.txt + + + +0 + +/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_errors.txt + + + +0h:00m:03s + + +0h:00m:03s + + +153MB + + +1557471736 + + + diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_timing_report.xml b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_timing_report.xml new file mode 100644 index 0000000..8f866cb --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_timing_report.xml @@ -0,0 +1,41 @@ + + + + +/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.srr +START OF TIMING REPORT + + +Clock Name +Req Freq +Est Freq +Slack + + +sgmii_ecp5|pll_refclki +100.0 MHz +168.9 MHz +4.079 + + +sgmii_ecp5|rxrefclk +100.0 MHz +167.9 MHz +4.043 + + +sgmii_ecp5|tx_pclk_inferred_clock +100.0 MHz +237.5 MHz +5.789 + + +System +100.0 MHz +840.7 MHz +8.810 + + diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_warnings.txt b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_warnings.txt new file mode 100644 index 0000000..6170ebf --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_warnings.txt @@ -0,0 +1,4 @@ +@W: MT246 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd":162:4:162:12|Blackbox DCUA is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) +@W: MT420 |Found inferred clock sgmii_ecp5|rxrefclk with period 10.00ns. Please declare a user-defined clock on object "p:rxrefclk" +@W: MT420 |Found inferred clock sgmii_ecp5|pll_refclki with period 10.00ns. Please declare a user-defined clock on object "p:pll_refclki" +@W: MT420 |Found inferred clock sgmii_ecp5|tx_pclk_inferred_clock with period 10.00ns. Please declare a user-defined clock on object "n:tx_pclk" diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_errors.txt b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_errors.txt new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_notes.txt b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_notes.txt new file mode 100644 index 0000000..bd89dbb --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_notes.txt @@ -0,0 +1,9 @@ +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) +@N: BN362 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1408:0:1408:5|Removing sequential instance pcpri_mod_ch (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:PrimLib.dffre(prim) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1244:27:1244:40|Removing instance div2_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_3(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1252:27:1252:41|Removing instance div11_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_2(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1236:27:1236:40|Removing instance gear_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_4(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1268:27:1268:44|Removing instance pcie_mod_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_0(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1260:27:1260:44|Removing instance cpri_mod_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_1(verilog) because it does not drive other instances. +@N: MO225 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1801:0:1801:5|There are no possible illegal states for state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)); safe FSM implementation is not required. diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_runstatus.xml b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_runstatus.xml new file mode 100644 index 0000000..3878c1e --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_runstatus.xml @@ -0,0 +1,46 @@ + + + + +/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_premap.srr +Synopsys Lattice Technology Pre-mapping + + +Completed + + + +9 + +/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_notes.txt + + + +3 + +/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_warnings.txt + + + +0 + +/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_errors.txt + + + +0h:00m:00s + + +0h:00m:00s + + +144MB + + +1557471733 + + + diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_warnings.txt b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_warnings.txt new file mode 100644 index 0000000..3044eef --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_warnings.txt @@ -0,0 +1,3 @@ +@W: MT529 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Found inferred clock sgmii_ecp5|pll_refclki which controls 93 sequential elements including sll_inst.phb_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":567:3:567:8|Found inferred clock sgmii_ecp5|rxrefclk which controls 77 sequential elements including rsl_inst.genblk2\.rlos_db_p1. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Found inferred clock sgmii_ecp5|tx_pclk_inferred_clock which controls 53 sequential elements including sll_inst.rtc_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_compiler.srr b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_compiler.srr new file mode 100644 index 0000000..5d31417 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_compiler.srr @@ -0,0 +1,357 @@ +Synopsys HDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Synopsys VHDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd":30:7:30:16|Top entity is set to sgmii_ecp5. +VHDL syntax check successful! +File /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd changed - recompiling + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB) + + +Process completed successfully. +# Fri May 10 09:02:09 2019 + +###########################################################] +Synopsys Verilog Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps) +@I::"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v" (library work) +Verilog syntax check successful! + +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB) + + +Process completed successfully. +# Fri May 10 09:02:10 2019 + +###########################################################] +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd":30:7:30:16|Top entity is set to sgmii_ecp5. +File /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd changed - recompiling +File /home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd changed - recompiling +VHDL syntax check successful! +File /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd changed - recompiling +@N: CD630 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd":30:7:30:16|Synthesizing work.sgmii_ecp5.v1. +Post processing for work.sgmii_ecp5.v1 + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 74MB peak: 76MB) + + +Process completed successfully. +# Fri May 10 09:02:10 2019 + +###########################################################] +Running on host :lxhadeb07 +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps) +@I::"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v" (library work) +Verilog syntax check successful! +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +@N: CG364 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1968:7:1968:10|Synthesizing module sync in library work. + + PDATA_RST_VAL=32'b00000000000000000000000000000000 + Generated name = sync_0s +@N: CG364 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1051:7:1051:24|Synthesizing module sgmii_ecp5sll_core in library work. + + PPROTOCOL=24'b010001110100001001000101 + PLOL_SETTING=32'b00000000000000000000000000000000 + PDYN_RATE_CTRL=64'b0100010001001001010100110100000101000010010011000100010101000100 + PPCIE_MAX_RATE=24'b001100100010111000110101 + PDIFF_VAL_LOCK=32'b00000000000000000000000000100111 + PDIFF_VAL_UNLOCK=32'b00000000000000000000000001001110 + PPCLK_TC=32'b00000000000000100000000000000000 + PDIFF_DIV11_VAL_LOCK=32'b00000000000000000000000000000000 + PDIFF_DIV11_VAL_UNLOCK=32'b00000000000000000000000000000000 + PPCLK_DIV11_TC=32'b00000000000000000000000000000000 + LPLL_LOSS_ST=2'b00 + LPLL_PRELOSS_ST=2'b01 + LPLL_PRELOCK_ST=2'b10 + LPLL_LOCK_ST=2'b11 + LRCLK_TC=16'b1111111111111111 + LRCLK_TC_PUL_WIDTH=16'b0000000000110010 + LHB_WAIT_CNT=8'b11111111 + LPCLK_TC_0=32'b00000000000000001000000000000000 + LPCLK_TC_1=32'b00000000000000010000000000000000 + LPCLK_TC_2=32'b00000000000000100000000000000000 + LPCLK_TC_3=32'b00000000000000101000000000000000 + LPCLK_TC_4=32'b00000000000000010000000000000000 + LPDIFF_LOCK_00=32'b00000000000000000000000000001001 + LPDIFF_LOCK_10=32'b00000000000000000000000000010011 + LPDIFF_LOCK_20=32'b00000000000000000000000000100111 + LPDIFF_LOCK_30=32'b00000000000000000000000000110001 + LPDIFF_LOCK_40=32'b00000000000000000000000000010011 + LPDIFF_LOCK_01=32'b00000000000000000000000000001001 + LPDIFF_LOCK_11=32'b00000000000000000000000000010011 + LPDIFF_LOCK_21=32'b00000000000000000000000000100111 + LPDIFF_LOCK_31=32'b00000000000000000000000000110001 + LPDIFF_LOCK_41=32'b00000000000000000000000000010011 + LPDIFF_LOCK_02=32'b00000000000000000000000000110001 + LPDIFF_LOCK_12=32'b00000000000000000000000001100010 + LPDIFF_LOCK_22=32'b00000000000000000000000011000100 + LPDIFF_LOCK_32=32'b00000000000000000000000011110101 + LPDIFF_LOCK_42=32'b00000000000000000000000001100010 + LPDIFF_LOCK_03=32'b00000000000000000000000010000011 + LPDIFF_LOCK_13=32'b00000000000000000000000100000110 + LPDIFF_LOCK_23=32'b00000000000000000000001000001100 + LPDIFF_LOCK_33=32'b00000000000000000000001010001111 + LPDIFF_LOCK_43=32'b00000000000000000000000100000110 + LPDIFF_UNLOCK_00=32'b00000000000000000000000000010011 + LPDIFF_UNLOCK_10=32'b00000000000000000000000000100111 + LPDIFF_UNLOCK_20=32'b00000000000000000000000001001110 + LPDIFF_UNLOCK_30=32'b00000000000000000000000001100010 + LPDIFF_UNLOCK_40=32'b00000000000000000000000000100111 + LPDIFF_UNLOCK_01=32'b00000000000000000000000001000001 + LPDIFF_UNLOCK_11=32'b00000000000000000000000010000011 + LPDIFF_UNLOCK_21=32'b00000000000000000000000100000110 + LPDIFF_UNLOCK_31=32'b00000000000000000000000101000111 + LPDIFF_UNLOCK_41=32'b00000000000000000000000010000011 + LPDIFF_UNLOCK_02=32'b00000000000000000000000001001000 + LPDIFF_UNLOCK_12=32'b00000000000000000000000010010000 + LPDIFF_UNLOCK_22=32'b00000000000000000000000100100000 + LPDIFF_UNLOCK_32=32'b00000000000000000000000101101000 + LPDIFF_UNLOCK_42=32'b00000000000000000000000010010000 + LPDIFF_UNLOCK_03=32'b00000000000000000000000011000100 + LPDIFF_UNLOCK_13=32'b00000000000000000000000110001001 + LPDIFF_UNLOCK_23=32'b00000000000000000000001100010010 + LPDIFF_UNLOCK_33=32'b00000000000000000000001111010111 + LPDIFF_UNLOCK_43=32'b00000000000000000000000110001001 + Generated name = sgmii_ecp5sll_core_Z1_layer1 +@N: CG179 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1287:54:1287:59|Removing redundant assignment. +@N: CG179 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1293:52:1293:55|Removing redundant assignment. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1350:0:1350:5|Pruning unused register rcpri_mod_ch_st. Make sure that there are no unused intermediate registers. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 0 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 0 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 1 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 2 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 16 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 18 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 19 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 20 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 21 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +@N: CG364 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":92:7:92:24|Synthesizing module sgmii_ecp5rsl_core in library work. + + pnum_channels=32'b00000000000000000000000000000001 + pprotocol=24'b010001110100001001000101 + pserdes_mode=72'b010100100101100000100000010000010100111001000100001000000101010001011000 + pport_tx_rdy=56'b01000101010011100100000101000010010011000100010101000100 + pwait_tx_rdy=32'b00000000000000000000101110111000 + pport_rx_rdy=56'b01000101010011100100000101000010010011000100010101000100 + pwait_rx_rdy=32'b00000000000000000000101110111000 + wa_num_cycles=32'b00000000000000000000010000000000 + dac_num_cycles=32'b00000000000000000000000000000011 + lreset_pwidth=32'b00000000000000000000000000000011 + lwait_b4_trst=32'b00000000000010111110101111000010 + lwait_b4_trst_s=32'b00000000000000000000001100001101 + lplol_cnt_width=32'b00000000000000000000000000010100 + lwait_after_plol0=32'b00000000000000000000000000000100 + lwait_b4_rrst=32'b00000000000000101100000000000000 + lrrst_wait_width=32'b00000000000000000000000000010100 + lwait_after_rrst=32'b00000000000011000011010100000000 + lwait_b4_rrst_s=32'b00000000000000000000000111001100 + lrlol_cnt_width=32'b00000000000000000000000000010011 + lwait_after_lols=32'b00000000000000001100010000000000 + lwait_after_lols_s=32'b00000000000000000000000010010110 + llols_cnt_width=32'b00000000000000000000000000010010 + lrdb_max=32'b00000000000000000000000000001111 + ltxr_wait_width=32'b00000000000000000000000000001100 + lrxr_wait_width=32'b00000000000000000000000000001100 + Generated name = sgmii_ecp5rsl_core_Z2_layer1 +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":326:33:326:40|Object rrst_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":327:33:327:43|Removing wire rrst_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":328:33:328:41|Object rrst_wait is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":341:33:341:39|Object rxp_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":342:33:342:39|Object rxp_rst is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":343:33:343:42|Removing wire rxp_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":346:33:346:42|Object rlolsz_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":347:33:347:45|Removing wire rlolsz_cnt_tc, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":350:33:350:43|Removing wire rxp_cnt2_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":351:33:351:47|Object data_loop_b_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":352:33:352:43|Object data_loop_b is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":353:33:353:46|Removing wire data_loop_b_tc, as there is no assignment to it. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":806:3:806:8|Pruning unused register genblk2.rxp_cnt2[2:0]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlol_p3. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlos_p3. Make sure that there are no unused intermediate registers. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":694:3:694:8|Optimizing register bit genblk2.rxs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":461:3:461:8|Optimizing register bit genblk1.txp_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":422:3:422:8|Optimizing register bit genblk1.txs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":422:3:422:8|Pruning register bit 2 of genblk1.txs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":461:3:461:8|Pruning register bit 2 of genblk1.txp_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":694:3:694:8|Pruning register bit 2 of genblk2.rxs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":200:33:200:48|Input port bits 3 to 1 of rui_tx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":204:33:204:51|Input port bits 3 to 1 of rui_rx_serdes_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":205:33:205:48|Input port bits 3 to 1 of rui_rx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":206:33:206:48|Input port bits 3 to 1 of rdi_rx_los_low_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":207:33:207:48|Input port bits 3 to 1 of rdi_rx_cdr_lol_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning register bits 6 to 4 of genblk5.rdiff_comp_unlock[6:3]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning register bits 5 to 3 of genblk5.rdiff_comp_lock[5:2]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rdiff_comp_unlock[3]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rcount_tc[17]. Make sure that there are no unused intermediate registers. +@N: CL201 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1801:0:1801:5|Trying to extract state machine for register sll_state. +Extracted state machine for register sll_state +State machine has 4 reachable states with original encodings of: + 00 + 01 + 10 + 11 + +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 75MB peak: 81MB) + + +Process completed successfully. +# Fri May 10 09:02:10 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +File /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/layer0.srs changed - recompiling +File /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/layer1.srs changed - recompiling + +======================================================================================= +For a summary of linker messages for components that did not bind, please see log file: +@L: /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.linkerlog +======================================================================================= + + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 09:02:11 2019 + +###########################################################] +@END + +At c_hdl Exit (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 3MB peak: 4MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 09:02:11 2019 + +###########################################################] diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_compiler.srr.db b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_compiler.srr.db new file mode 100644 index 0000000000000000000000000000000000000000..a986936281551f5f31b97a5f3f9dab68cedc9ff9 GIT binary patch literal 28672 zcmeI5U2G#)6@cy7j`Qy>n`NQxwwI-}yEL`u*RkF1w!7Pqrb$S5leDa&Wi+-Y&LrcR z*_m;EmK1O#1VWXNc;SHuo{)IxGvXD2kPzab4-=oy zZmwXgWUk}i^PO|&-gEAqbFz4IPWLplYB_b)Lt^ZSSUetk4WU>pmV)0j{I+j#xRY%E z0WJRfuv;qj(#PK!g;&Kh-;Kdfbc-|)X&}--q=85Skp?0SL>h=R5NRONK%{|41OMk5 z@Z#z77cRt`FMDd)(CV7&sx{4Rw|zHmOLQB`K&rPBBqnGq5+Eks&n(9m-LpL`% zf3;rHd0;~~yIyR=J9X2$jD!4S<^k4yI`i+$KQbR>9t{6;_{pK{;PrvG)9d|TPklf6 z;bLyhs%ts5>gcMOtLa|ObIP(?$$47c zHdIf`*^afYRlJ;AtLwUdRJ4jMcimN7Yt=KXnqJ9nUM%sGVzI>ejl6r!Fp#6EU?VUq zQe9WCnRU(dT;y4(tb2%;khO|xnprkB&u#4zg@duj}_zPq)nMmg<kwnC6#WT(kTF(@GRFSnRAI7)BGeAIH4$(WTC{9 zR^GjZy;aQTXw`;URZXwU8P1xPr(uV6yq~&Qg~^gEfmpaL9#O1`6o_^6Ygk)iUZT+z zIGHa^mU!F<((dAp31)Tmdsty$`UZp!B>o_ghie!RA%MYk6QaJdqdGfi%W^jMwfIaD zi>pu+x0o+radE?Q4;OdGtn?IcFaZJ<=Rv^N^CB0DKC_!^)r%#O1F_)1=Yv8K^>j3t z-Q-)!+IzPTM0sHvi!v#+MZxi04x&F#uV^_qi|UqH&52o_Q?~O`&fPKXvg&F%P<{@+ zHs^X(|Lb`{Eb*WcXas(DQG*Wv143+u&qCKS8aP11fuHUAJ$~<92>Tz?*F*H){{|dV zG8~f6!69)L@6Dfuz&_K=^o?zf{%-X7k?%$Ee-!^yTkMG9|BzO8qWJ$b*X$_zol*RM ziiVBi|4`PQ^(g*7y$yvZ{tu-ONAds3cEO_f|2TVwQT%_xJ=iGzhn?r+Ez2 zHB3+ODk}p2=v(pX=NV%RZcc~8c#$#2;GT3ijGtqSF&K)5!nlSAW1X4vk?*yCcj7B# z)}CbzwU_&Ta@1#7Lk$kIohzSCj(UML)Zl0vChF6yp#}%tFj1dk4K+CShKO2wlAvxd zGXnRz2~cjQfkh_ z`ZytF=nC;(-tWn;5clK%4`P|8#|ooMBlhrnLq8e(#lZda$LaC@Tp7kQAH&^@{|O zoh>2?zJPj}F-8imfO?5B#^54ID5H-00%MF6ydCv<#uzC$JL(r0V+`Nd@vr~C8p|w? z?T-Fx#9(;e`Zv$7;U+v#Z{W|%l07m_*mFo@Uz_gB%)RlJkFr^bLaW2x9utw(_0bl;1mlLRV>r>aH0{H zMN1ai&@>xoOF>o&ez>AdAl0^w9shNX3Q1E4QacnIQZ+PZQ@a9lH6&|vy`ejSYI~YG zdY;GVa6AgS{TR`|L>oO{lmHzc4?`ES&f~QD?J11jq?i;a=OKZqgpY-uDS>{62Xw=7 z65z$7RXtTPEX!8PaG?|otWe&B}C3TF3hOBl07BWNlZ~sL7l{>Eyws&Z~x&Z z$6?#;ClQlQ=d@0v%(QECYWaj*(BQdjD;FSTJA?mcXmS088i~VZ!a*GvZX?xLT#QA3xtg3I4t-h z8Z@6AhcVzIjAw685~*is+QT2u1Q^e_fIX;ov`cwN>Yt%lE}|$vnFBZ+S}MYE4=xpf zh+xTgBN{Dpd!TlVIFh5lPA&EHU|Y(X!|oDWQume$oPns*oIGZXJqfHlFRFyqBs!`hQgqS?1$w*oUuC7C~{Z~M%!xm4AtW8a;lZ)&nMCvdPdci<@v z*xt56-_(0!v%oyNcZHam${Kk0#?-^6LDY2-Q`goMS>}JFiLb}Jr<(rMhYp_k#@?i@ l5WGFv-lRNCA$W(jwM}_y3Ynp#{U2S literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_compiler.srr.rptmap b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_compiler.srr.rptmap new file mode 100644 index 0000000..14937c8 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_compiler.srr.rptmap @@ -0,0 +1 @@ +./synlog/sgmii_ecp5_compiler.srr,sgmii_ecp5_compiler.srr,Compile Log diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.srr b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.srr new file mode 100644 index 0000000..41be052 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.srr @@ -0,0 +1,673 @@ +# Fri May 10 09:02:13 2019 + +Synopsys Lattice Technology Mapper, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 100MB) + +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 113MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 115MB) + + + +Starting Optimization and Mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 144MB) + + +Available hyper_sources - for debug and ip models + None Found + + +Finished RTL optimizations (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + +Encoding state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) +original code -> new code + 00 -> 00 + 01 -> 01 + 10 -> 10 + 11 -> 11 +@N: MO225 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1801:0:1801:5|There are no possible illegal states for state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)); safe FSM implementation is not required. +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1350:0:1350:5|Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance rhb_wait_cnt[7:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1304:0:1304:5|Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance rcount[15:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1759:0:1759:5|Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance pcount[21:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":412:3:412:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk1\.plol_cnt[19:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":909:3:909:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.genblk3\.rxr_wt_cnt[11:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":527:3:527:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk1\.genblk2\.txr_wt_cnt[11:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":778:3:778:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.rlols0_cnt[17:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":680:3:680:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.rlol1_cnt[18:0] + +Starting factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + + +Finished factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 144MB) + + +Starting gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + + +Finished gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + + +Finished generic timing optimizations - Pass 1 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 145MB) + + +Starting Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 145MB) + + +Finished Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 145MB) + + +Finished generic timing optimizations - Pass 2 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 145MB) + + +Finished preparing to map (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:01s; Memory used current: 145MB peak: 145MB) + +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). + +Finished technology mapping (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 147MB peak: 149MB) + +Pass CPU time Worst Slack Luts / Registers +------------------------------------------------------------ + 1 0h:00m:01s 4.90ns 155 / 221 +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). + +Finished technology timing optimizations and critical path resynthesis (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 147MB peak: 149MB) + +@N: FX164 |The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute. + +Finished restoring hierarchy (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 147MB peak: 149MB) + + + +@S |Clock Optimization Summary + + +#### START OF CLOCK OPTIMIZATION REPORT #####[ + +3 non-gated/non-generated clock tree(s) driving 221 clock pin(s) of sequential element(s) +0 gated/generated clock tree(s) driving 0 clock pin(s) of sequential element(s) +0 instances converted, 0 sequential instances remain driven by gated/generated clocks + +============================================= Non-Gated/Non-Generated Clocks ============================================= +Clock Tree ID Driving Element Drive Element Type Fanout Sample Instance +-------------------------------------------------------------------------------------------------------------------------- +@K:CKID0001 pll_refclki port 91 rsl_inst.genblk1\.genblk2\.mfor\[0\]\.txpr_appd[0] +@K:CKID0002 rxrefclk port 77 rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] +@K:CKID0003 DCU0_inst DCUA 53 sll_inst.pcount[21] +========================================================================================================================== + + +##### END OF CLOCK OPTIMIZATION REPORT ######] + + +Start Writing Netlists (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 111MB peak: 149MB) + +Writing Analyst data base /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_m.srm + +Finished Writing Netlist Databases (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 146MB peak: 149MB) + +Writing EDIF Netlist and constraint files +@N: FX1056 |Writing EDF file: /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.edn +M-2017.03L-SP1-1 +@N: BW106 |Synplicity Constraint File capacitance units using default value of 1pF + +Finished Writing EDIF Netlist and constraint files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 150MB peak: 152MB) + +Writing Verilog Simulation files + +Finished Writing Verilog Simulation files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 151MB peak: 152MB) + +Writing VHDL Simulation files + +Finished Writing VHDL Simulation files (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB) + + +Start final timing analysis (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB) + +@W: MT246 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd":162:4:162:12|Blackbox DCUA is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) +@W: MT420 |Found inferred clock sgmii_ecp5|rxrefclk with period 10.00ns. Please declare a user-defined clock on object "p:rxrefclk" +@W: MT420 |Found inferred clock sgmii_ecp5|pll_refclki with period 10.00ns. Please declare a user-defined clock on object "p:pll_refclki" +@W: MT420 |Found inferred clock sgmii_ecp5|tx_pclk_inferred_clock with period 10.00ns. Please declare a user-defined clock on object "n:tx_pclk" + + +##### START OF TIMING REPORT #####[ +# Timing Report written on Fri May 10 09:02:16 2019 +# + + +Top view: sgmii_ecp5 +Requested Frequency: 100.0 MHz +Wire load mode: top +Paths requested: 5 +Constraint File(s): /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.fdc + +@N: MT320 |This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. + +@N: MT322 |Clock constraints include only register-to-register paths associated with each individual clock. + + + +Performance Summary +******************* + + +Worst slack in design: 4.043 + + Requested Estimated Requested Estimated Clock Clock +Starting Clock Frequency Frequency Period Period Slack Type Group +---------------------------------------------------------------------------------------------------------------------------------------- +sgmii_ecp5|pll_refclki 100.0 MHz 168.9 MHz 10.000 5.921 4.079 inferred Inferred_clkgroup_0 +sgmii_ecp5|rxrefclk 100.0 MHz 167.9 MHz 10.000 5.957 4.043 inferred Inferred_clkgroup_1 +sgmii_ecp5|tx_pclk_inferred_clock 100.0 MHz 237.5 MHz 10.000 4.211 5.789 inferred Inferred_clkgroup_2 +System 100.0 MHz 840.7 MHz 10.000 1.190 8.810 system system_clkgroup +======================================================================================================================================== + + + + + +Clock Relationships +******************* + +Clocks | rise to rise | fall to fall | rise to fall | fall to rise +------------------------------------------------------------------------------------------------------------------------------------------------------------ +Starting Ending | constraint slack | constraint slack | constraint slack | constraint slack +------------------------------------------------------------------------------------------------------------------------------------------------------------ +System sgmii_ecp5|rxrefclk | 10.000 8.811 | No paths - | No paths - | No paths - +sgmii_ecp5|pll_refclki System | 10.000 8.253 | No paths - | No paths - | No paths - +sgmii_ecp5|pll_refclki sgmii_ecp5|pll_refclki | 10.000 4.079 | No paths - | No paths - | No paths - +sgmii_ecp5|pll_refclki sgmii_ecp5|tx_pclk_inferred_clock | Diff grp - | No paths - | No paths - | No paths - +sgmii_ecp5|rxrefclk System | 10.000 8.277 | No paths - | No paths - | No paths - +sgmii_ecp5|rxrefclk sgmii_ecp5|rxrefclk | 10.000 4.043 | No paths - | No paths - | No paths - +sgmii_ecp5|tx_pclk_inferred_clock sgmii_ecp5|pll_refclki | Diff grp - | No paths - | No paths - | No paths - +sgmii_ecp5|tx_pclk_inferred_clock sgmii_ecp5|tx_pclk_inferred_clock | 10.000 5.789 | No paths - | No paths - | No paths - +============================================================================================================================================================ + Note: 'No paths' indicates there are no paths in the design for that pair of clock edges. + 'Diff grp' indicates that paths exist but the starting clock and ending clock are in different clock groups. + + + +Interface Information +********************* + +No IO constraint found + + + +==================================== +Detailed Report for Clock: sgmii_ecp5|pll_refclki +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +-------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[2] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[2] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[3] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[3] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[17] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[17] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[19] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[19] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[1] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[1] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[4] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[4] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[5] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[5] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[6] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[6] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[7] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[7] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[8] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[8] 0.907 4.684 +==================================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +----------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[19] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[19] 9.946 4.079 +rsl_inst.genblk1\.plol_cnt[17] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[17] 9.946 4.139 +rsl_inst.genblk1\.plol_cnt[18] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[18] 9.946 4.139 +rsl_inst.genblk1\.plol_cnt[15] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[15] 9.946 4.200 +rsl_inst.genblk1\.plol_cnt[16] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[16] 9.946 4.200 +rsl_inst.genblk1\.plol_cnt[13] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[13] 9.946 4.261 +rsl_inst.genblk1\.plol_cnt[14] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[14] 9.946 4.261 +rsl_inst.genblk1\.plol_cnt[11] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[11] 9.946 4.322 +rsl_inst.genblk1\.plol_cnt[12] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[12] 9.946 4.322 +rsl_inst.genblk1\.plol_cnt[9] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[9] 9.946 4.383 +======================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 5.867 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : 4.079 + + Number of logic level(s): 15 + Starting point: rsl_inst.genblk1\.plol_cnt[2] / Q + Ending point: rsl_inst.genblk1\.plol_cnt[19] / D + The start point is clocked by sgmii_ecp5|pll_refclki [rising] on pin CK + The end point is clocked by sgmii_ecp5|pll_refclki [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[2] FD1S3DX Q Out 0.907 0.907 - +plol_cnt[2] Net - - - - 2 +rsl_inst.genblk1\.un1_plol_cnt_tc_10 ORCALUT4 A In 0.000 0.907 - +rsl_inst.genblk1\.un1_plol_cnt_tc_10 ORCALUT4 Z Out 0.606 1.513 - +un1_plol_cnt_tc_10 Net - - - - 1 +rsl_inst.genblk1\.un1_plol_cnt_tc_14 ORCALUT4 D In 0.000 1.513 - +rsl_inst.genblk1\.un1_plol_cnt_tc_14 ORCALUT4 Z Out 0.606 2.119 - +un1_plol_cnt_tc_14 Net - - - - 1 +rsl_inst.genblk1\.un1_plol_cnt_tc ORCALUT4 D In 0.000 2.119 - +rsl_inst.genblk1\.un1_plol_cnt_tc ORCALUT4 Z Out 0.762 2.881 - +un1_plol_cnt_tc Net - - - - 5 +rsl_inst.genblk1\.plol_cnt11_i ORCALUT4 B In 0.000 2.881 - +rsl_inst.genblk1\.plol_cnt11_i ORCALUT4 Z Out 0.840 3.721 - +plol_cnt Net - - - - 21 +rsl_inst.genblk1\.plol_cnt_cry_0[0] CCU2C A1 In 0.000 3.721 - +rsl_inst.genblk1\.plol_cnt_cry_0[0] CCU2C COUT Out 0.900 4.621 - +plol_cnt_cry[0] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[1] CCU2C CIN In 0.000 4.621 - +rsl_inst.genblk1\.plol_cnt_cry_0[1] CCU2C COUT Out 0.061 4.682 - +plol_cnt_cry[2] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[3] CCU2C CIN In 0.000 4.682 - +rsl_inst.genblk1\.plol_cnt_cry_0[3] CCU2C COUT Out 0.061 4.743 - +plol_cnt_cry[4] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[5] CCU2C CIN In 0.000 4.743 - +rsl_inst.genblk1\.plol_cnt_cry_0[5] CCU2C COUT Out 0.061 4.804 - +plol_cnt_cry[6] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[7] CCU2C CIN In 0.000 4.804 - +rsl_inst.genblk1\.plol_cnt_cry_0[7] CCU2C COUT Out 0.061 4.865 - +plol_cnt_cry[8] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[9] CCU2C CIN In 0.000 4.865 - +rsl_inst.genblk1\.plol_cnt_cry_0[9] CCU2C COUT Out 0.061 4.926 - +plol_cnt_cry[10] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[11] CCU2C CIN In 0.000 4.926 - +rsl_inst.genblk1\.plol_cnt_cry_0[11] CCU2C COUT Out 0.061 4.987 - +plol_cnt_cry[12] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[13] CCU2C CIN In 0.000 4.987 - +rsl_inst.genblk1\.plol_cnt_cry_0[13] CCU2C COUT Out 0.061 5.048 - +plol_cnt_cry[14] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[15] CCU2C CIN In 0.000 5.048 - +rsl_inst.genblk1\.plol_cnt_cry_0[15] CCU2C COUT Out 0.061 5.109 - +plol_cnt_cry[16] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[17] CCU2C CIN In 0.000 5.109 - +rsl_inst.genblk1\.plol_cnt_cry_0[17] CCU2C COUT Out 0.061 5.170 - +plol_cnt_cry[18] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_s_0[19] CCU2C CIN In 0.000 5.170 - +rsl_inst.genblk1\.plol_cnt_s_0[19] CCU2C S0 Out 0.698 5.867 - +plol_cnt_s[19] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt[19] FD1S3DX D In 0.000 5.867 - +======================================================================================================= + + + + +==================================== +Detailed Report for Clock: sgmii_ecp5|rxrefclk +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rxs_rst sgmii_ecp5|rxrefclk FD1P3DX Q rxs_rst 1.015 4.043 +rsl_inst.genblk2\.rlol1_cnt[7] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[7] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[8] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[8] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[9] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[9] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[10] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[10] 0.907 4.136 +rsl_inst.genblk2\.rlols0_cnt[1] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[1] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[2] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[2] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[3] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[3] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[4] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[4] 0.907 4.170 +rsl_inst.genblk2\.rlol1_cnt[0] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[0] 0.907 4.742 +=================================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[11] sgmii_ecp5|rxrefclk FD1P3DX D rxr_wt_cnt_s[11] 9.946 4.043 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[9] sgmii_ecp5|rxrefclk FD1P3DX D rxr_wt_cnt_s[9] 9.946 4.104 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[10] sgmii_ecp5|rxrefclk FD1P3DX D rxr_wt_cnt_s[10] 9.946 4.104 +rsl_inst.genblk2\.rlol1_cnt[17] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[17] 9.946 4.136 +rsl_inst.genblk2\.rlol1_cnt[18] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[18] 9.946 4.136 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[7] sgmii_ecp5|rxrefclk FD1P3DX D rxr_wt_cnt_s[7] 9.946 4.165 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[8] sgmii_ecp5|rxrefclk FD1P3DX D rxr_wt_cnt_s[8] 9.946 4.165 +rsl_inst.genblk2\.rlols0_cnt[17] sgmii_ecp5|rxrefclk FD1P3DX D rlols0_cnt_s[17] 9.946 4.170 +rsl_inst.genblk2\.rlol1_cnt[15] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[15] 9.946 4.197 +rsl_inst.genblk2\.rlol1_cnt[16] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[16] 9.946 4.197 +================================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 5.902 + - Clock delay at starting point: 0.000 (ideal) + = Slack (critical) : 4.043 + + Number of logic level(s): 11 + Starting point: rsl_inst.genblk2\.rxs_rst / Q + Ending point: rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[11] / D + The start point is clocked by sgmii_ecp5|rxrefclk [rising] on pin CK + The end point is clocked by sgmii_ecp5|rxrefclk [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +----------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rxs_rst FD1P3DX Q Out 1.015 1.015 - +rxs_rst Net - - - - 6 +rsl_inst.rdo_rx_serdes_rst_c_1[0] ORCALUT4 B In 0.000 1.015 - +rsl_inst.rdo_rx_serdes_rst_c_1[0] ORCALUT4 Z Out 0.708 1.723 - +rsl_rx_serdes_rst_c Net - - - - 3 +rsl_inst.dual_or_rserd_rst ORCALUT4 A In 0.000 1.723 - +rsl_inst.dual_or_rserd_rst ORCALUT4 Z Out 0.798 2.521 - +dual_or_rserd_rst Net - - - - 9 +rsl_inst.rx_any_rst ORCALUT4 A In 0.000 2.521 - +rsl_inst.rx_any_rst ORCALUT4 Z Out 0.660 3.181 - +rx_any_rst Net - - - - 2 +rsl_inst.rx_any_rst_RNIFD021 ORCALUT4 A In 0.000 3.181 - +rsl_inst.rx_any_rst_RNIFD021 ORCALUT4 Z Out 0.819 4.000 - +rxr_wt_cnt9 Net - - - - 14 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[0] CCU2C A1 In 0.000 4.000 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[0] CCU2C COUT Out 0.900 4.900 - +rxr_wt_cnt_cry[0] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[1] CCU2C CIN In 0.000 4.900 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[1] CCU2C COUT Out 0.061 4.961 - +rxr_wt_cnt_cry[2] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[3] CCU2C CIN In 0.000 4.961 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[3] CCU2C COUT Out 0.061 5.022 - +rxr_wt_cnt_cry[4] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[5] CCU2C CIN In 0.000 5.022 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[5] CCU2C COUT Out 0.061 5.083 - +rxr_wt_cnt_cry[6] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[7] CCU2C CIN In 0.000 5.083 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[7] CCU2C COUT Out 0.061 5.144 - +rxr_wt_cnt_cry[8] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[9] CCU2C CIN In 0.000 5.144 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[9] CCU2C COUT Out 0.061 5.205 - +rxr_wt_cnt_cry[10] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_s_0[11] CCU2C CIN In 0.000 5.205 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_s_0[11] CCU2C S0 Out 0.698 5.902 - +rxr_wt_cnt_s[11] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[11] FD1P3DX D In 0.000 5.902 - +================================================================================================================= + + + + +==================================== +Detailed Report for Clock: sgmii_ecp5|tx_pclk_inferred_clock +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------------------------------------------ +sll_inst.ppul_sync_p1 sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q ppul_sync_p1 1.098 5.789 +sll_inst.ppul_sync_p2 sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q ppul_sync_p2 1.098 5.789 +sll_inst.pcount_diff[0] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_0 0.985 6.147 +sll_inst.pcount[0] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q pcount[0] 0.955 6.178 +sll_inst.pcount_diff[1] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_1 0.955 6.239 +sll_inst.pcount_diff[2] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_2 0.955 6.239 +sll_inst.pcount[1] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q pcount[1] 0.907 6.287 +sll_inst.pcount[2] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q pcount[2] 0.907 6.287 +sll_inst.pcount_diff[3] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_3 0.955 6.300 +sll_inst.pcount_diff[4] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_4 0.955 6.300 +======================================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +----------------------------------------------------------------------------------------------------------------------------------------- +sll_inst.pcount[21] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[21] 9.946 5.789 +sll_inst.pcount[19] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[19] 9.946 5.850 +sll_inst.pcount[20] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[20] 9.946 5.850 +sll_inst.pcount[17] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[17] 9.946 5.911 +sll_inst.pcount[18] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[18] 9.946 5.911 +sll_inst.pcount[15] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[15] 9.946 5.972 +sll_inst.pcount[16] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[16] 9.946 5.972 +sll_inst.pcount[13] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[13] 9.946 6.033 +sll_inst.pcount[14] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[14] 9.946 6.033 +sll_inst.pcount_diff[21] sgmii_ecp5|tx_pclk_inferred_clock FD1P3DX D un1_pcount_diff_1_s_21_0_S0 9.946 6.034 +========================================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 4.157 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : 5.789 + + Number of logic level(s): 13 + Starting point: sll_inst.ppul_sync_p1 / Q + Ending point: sll_inst.pcount[21] / D + The start point is clocked by sgmii_ecp5|tx_pclk_inferred_clock [rising] on pin CK + The end point is clocked by sgmii_ecp5|tx_pclk_inferred_clock [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +-------------------------------------------------------------------------------------------- +sll_inst.ppul_sync_p1 FD1S3DX Q Out 1.098 1.098 - +ppul_sync_p1 Net - - - - 25 +sll_inst.pcount10_0_o3 ORCALUT4 A In 0.000 1.098 - +sll_inst.pcount10_0_o3 ORCALUT4 Z Out 0.851 1.950 - +N_8 Net - - - - 25 +sll_inst.pcount_cry_0[0] CCU2C A1 In 0.000 1.950 - +sll_inst.pcount_cry_0[0] CCU2C COUT Out 0.900 2.850 - +pcount_cry[0] Net - - - - 1 +sll_inst.pcount_cry_0[1] CCU2C CIN In 0.000 2.850 - +sll_inst.pcount_cry_0[1] CCU2C COUT Out 0.061 2.911 - +pcount_cry[2] Net - - - - 1 +sll_inst.pcount_cry_0[3] CCU2C CIN In 0.000 2.911 - +sll_inst.pcount_cry_0[3] CCU2C COUT Out 0.061 2.972 - +pcount_cry[4] Net - - - - 1 +sll_inst.pcount_cry_0[5] CCU2C CIN In 0.000 2.972 - +sll_inst.pcount_cry_0[5] CCU2C COUT Out 0.061 3.033 - +pcount_cry[6] Net - - - - 1 +sll_inst.pcount_cry_0[7] CCU2C CIN In 0.000 3.033 - +sll_inst.pcount_cry_0[7] CCU2C COUT Out 0.061 3.094 - +pcount_cry[8] Net - - - - 1 +sll_inst.pcount_cry_0[9] CCU2C CIN In 0.000 3.094 - +sll_inst.pcount_cry_0[9] CCU2C COUT Out 0.061 3.155 - +pcount_cry[10] Net - - - - 1 +sll_inst.pcount_cry_0[11] CCU2C CIN In 0.000 3.155 - +sll_inst.pcount_cry_0[11] CCU2C COUT Out 0.061 3.216 - +pcount_cry[12] Net - - - - 1 +sll_inst.pcount_cry_0[13] CCU2C CIN In 0.000 3.216 - +sll_inst.pcount_cry_0[13] CCU2C COUT Out 0.061 3.277 - +pcount_cry[14] Net - - - - 1 +sll_inst.pcount_cry_0[15] CCU2C CIN In 0.000 3.277 - +sll_inst.pcount_cry_0[15] CCU2C COUT Out 0.061 3.338 - +pcount_cry[16] Net - - - - 1 +sll_inst.pcount_cry_0[17] CCU2C CIN In 0.000 3.338 - +sll_inst.pcount_cry_0[17] CCU2C COUT Out 0.061 3.399 - +pcount_cry[18] Net - - - - 1 +sll_inst.pcount_cry_0[19] CCU2C CIN In 0.000 3.399 - +sll_inst.pcount_cry_0[19] CCU2C COUT Out 0.061 3.460 - +pcount_cry[20] Net - - - - 1 +sll_inst.pcount_s_0[21] CCU2C CIN In 0.000 3.460 - +sll_inst.pcount_s_0[21] CCU2C S0 Out 0.698 4.157 - +pcount_s[21] Net - - - - 1 +sll_inst.pcount[21] FD1S3DX D In 0.000 4.157 - +============================================================================================ + + + + +==================================== +Detailed Report for Clock: System +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +---------------------------------------------------------------------------------------- +DCU0_inst System DCUA CH0_FFS_RLOL rx_cdr_lol_s 0.000 8.810 +DCU0_inst System DCUA CH0_FFS_RLOS rx_los_low_s 0.000 8.810 +======================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] System FD1P3DX SP un2_rdo_serdes_rst_dual_c_2_i 9.806 8.810 +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] System FD1P3DX D rxpr_appd_RNO[0] 9.946 9.556 +rsl_inst.genblk2\.rlol_p1 System FD1S3DX D rx_cdr_lol_s 9.946 9.946 +rsl_inst.genblk2\.rlos_p1 System FD1S3DX D rx_los_low_s 9.946 9.946 +============================================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.194 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.806 + + - Propagation time: 0.996 + - Clock delay at starting point: 0.000 (ideal) + - Estimated clock delay at start point: -0.000 + = Slack (non-critical) : 8.810 + + Number of logic level(s): 2 + Starting point: DCU0_inst / CH0_FFS_RLOL + Ending point: rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] / SP + The start point is clocked by System [rising] + The end point is clocked by sgmii_ecp5|rxrefclk [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +----------------------------------------------------------------------------------------------------------------------------------- +DCU0_inst DCUA CH0_FFS_RLOL Out 0.000 0.000 - +rx_cdr_lol_s Net - - - - 4 +rsl_inst.un2_rdo_serdes_rst_dual_c_1_1 ORCALUT4 A In 0.000 0.000 - +rsl_inst.un2_rdo_serdes_rst_dual_c_1_1 ORCALUT4 Z Out 0.606 0.606 - +un2_rdo_serdes_rst_dual_c_1_1 Net - - - - 1 +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd_RNO_0[0] ORCALUT4 B In 0.000 0.606 - +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd_RNO_0[0] ORCALUT4 Z Out 0.390 0.996 - +un2_rdo_serdes_rst_dual_c_2_i Net - - - - 1 +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] FD1P3DX SP In 0.000 0.996 - +=================================================================================================================================== + + + +##### END OF TIMING REPORT #####] + +Timing exceptions that could not be applied +None + +Finished final timing analysis (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB) + + +Finished timing report (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB) + +--------------------------------------- +Resource Usage Report +Part: lfe5um_25f-6 + +Register bits: 221 of 24288 (1%) +PIC Latch: 0 +I/O cells: 0 + + +Details: +CCU2C: 113 +DCUA: 1 +FD1P3BX: 20 +FD1P3DX: 92 +FD1S3BX: 12 +FD1S3DX: 97 +GSR: 1 +INV: 3 +ORCALUT4: 154 +PFUMX: 2 +PUR: 1 +VHI: 6 +VLO: 6 +Mapper successful! + +At Mapper Exit (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 35MB peak: 153MB) + +Process took 0h:00m:03s realtime, 0h:00m:03s cputime +# Fri May 10 09:02:16 2019 + +###########################################################] diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.srr.db b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.srr.db new file mode 100644 index 0000000000000000000000000000000000000000..35caf2e00832daa5e01ba9cd59c326447837f281 GIT binary patch literal 16384 zcmeHN-A)@v6t;l?Nid`hl+q~Dh$}1w+v`7!QKbUGQIygoK$<3`T8(#S?FsAI&CJ-~ zs8waIsz~j1FM8DnsMJ^J1N5#{pQ5)_6{+f(UE4U3Xh^WtqKswFdcC_d=ljmtS$}iR z_T7)EB*^i24NH`XT#7`ak&h6HL?T1*8G%pd6@@P^?{|(Jw;hTs{`GYXjz*`RMc}Pp zngPv#WJiOVjj5g~Aeh|YFseQRTN zX9Ml5u6?|LI=?PZ8#OSus+eCxE@gX1d+k$>e%Pa|=VTwQq)f)o0qfDJ=ZgE0spqlB z6W?F_<-(sAX3l5EAC4W4es}K2k)MZuANpfxDEcfq8Tsiychc_k*letIb!K?&zLCmr zH<|BJi^?Wi_n43z11MCYE=xb8|I#;p_NImqx!h%q)$=`$mh%irfzs!KMmmyiQ}7E!Y5)kqTCoMM)&P??mxoD)`3lA7;g zNs>PI9urF@MWse**qX%hb4k%;CMN<$7Ck>Fh|St#H{Mmiwu7rC7YfBxxXG>Bwjye8oB{qEnEdVDCO7@Fr z-{X6Ufd0Ucg@zH2C)ymhDwhJRPtF8ZF0E4_ojOBE{c8Emk!zCdH*cpi#sH?@d?8iL6jfU&d3E?3U_lE{67?VnCe4@TOfFp0@;EUc zrcD<&2{#rRgj1N#<403+g|M=_mwuGsuIC!2#pJF5ll4<58mPIeEa%eHkJ&UO+fLXoSnDWk9Ifz9WQ? z3=w7^HjhKNGZrAcJ2)R^jWi%sZQl`s4}G}lLdPxlI_}mez}jrB3=WpDl!FnA!6tX2 z*+l(!3uhDK_}Rn{rlj5U3t@Qc+`!RfQdxyYZTg6YhiHskuW#;*1ZXw}=$lL~6`+Al zKheOyvwcj%iK2HVJe(U=kPhz$kkYvUJi3fR3PPe7Y;quqI6)Xb3^b7^1O=sxsOypn zb`eMgNrXyehhI?*TUE+H1VI1>2X`~dAID0Ce+kt13KG~MsIku!wy;%aEYwmcpIt0d ziE5rrz)Xes0UlOJmRul2vy|0i6~8TeYq>GYG<|8KBJH*lYxcKu50 z|No^|PqTid_5Ul^&X2h*wf=9fw!g-Ljn@Av(bLlU|5f>_W9~Vv|4*=*q4oc3r$>(q zH?98%rT>GBx6=Qk6N{0_zb9+4-(rP{A7DqnGy|Fe&46Y=GoTsJ3}^;41DXNNfcQY= zG&do!xRXhzyE)Bv*{!NewcNT5g{#bMcFR>4rMK8AU4=qcSrrHi;aOBAG|@hlRYV|B z3m4n8LG3zZa)T^qCz0B^JO`s5#==okJ5@-yN?KDXO-_7|OO=7ekWm%zEA**KdSPt? zs(w{gm3vU^id2$>`(>+bgvKUaj!vTFbOJZOLuOpq6T3$ocVGe;b2{>uDq|T zn!N&CWYejz5P~v?aL56N0MJnp>KF3B^euM}YF5KD%m8AD9%^5yXCot(NTrzQmhRfb za#gAuE9>|olr2LpyVEsfkiD`hG)D8R*zSCOA9I!IRm)q`v&y>jC$!Fo1UV-T7)bkK zl3(oUvDd80_f!CVc|xow@B87N>_IZP^x(%F1p3K$ZNstqO2`E)TG zv_^Uj!f~(c9iZ#$_f}Q7)+p32KmdonMWXIQ6+1Y$9hWLW?NVViBJYNZ0|sRd ylEPQwILh@91nmnj1a(sc_kkUhjo0YYpgKXIg}ZP^srq=hEw;k?^Ef(+lz#vU99<9q literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.szr b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.szr new file mode 100644 index 0000000000000000000000000000000000000000..10f80e0055da4ba1754e8d2a03343443e7751ccb GIT binary patch literal 12878 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.xck b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.xck new file mode 100644 index 0000000..eb3488c --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.xck @@ -0,0 +1,3 @@ +CKID0001:@|S:pll_refclki@|E:rsl_inst.genblk1\.genblk2\.mfor\[0\]\.txpr_appd[0]@|F:@syn_sample_clock_path==CKID0001@|M:ClockId0001 +CKID0002:@|S:rxrefclk@|E:rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0]@|F:@syn_sample_clock_path==CKID0002@|M:ClockId0002 +CKID0003:@|S:DCU0_inst@|E:sll_inst.pcount[21]@|F:@syn_sample_clock_path==CKID0003@|M:ClockId0003 diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_multi_srs_gen.srr b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_multi_srs_gen.srr new file mode 100644 index 0000000..8337c2b --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_multi_srs_gen.srr @@ -0,0 +1,12 @@ +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +File /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.srs changed - recompiling + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 09:02:12 2019 + +###########################################################] diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_multi_srs_gen.srr.db b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_multi_srs_gen.srr.db new file mode 100644 index 0000000000000000000000000000000000000000..029fa7a6cf9014af50ee9d4aa843536a1f7b5c42 GIT binary patch literal 8192 zcmeI#JqyA>3DEQgKL*xDXO@ z%d=&(imfwzIG4G0Jf%J073BwWN1`{~f``Krs^Nta{J wY>_tId!-qqw)j}S$WL3iQGJ`s(T{)t1Rwwb2tWV=5P$##AOHafK;VZ3UKAiP82|tP literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_premap.srr b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_premap.srr new file mode 100644 index 0000000..0a65ebd --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_premap.srr @@ -0,0 +1,86 @@ +# Fri May 10 09:02:12 2019 + +Synopsys Lattice Technology Pre-mapping, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 100MB) + +Reading constraint file: /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.fdc +@L: /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5_scck.rpt +Printing clock summary report in "/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5_scck.rpt" file +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 102MB peak: 104MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 102MB peak: 104MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 114MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 116MB) + +@N: BN362 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1408:0:1408:5|Removing sequential instance pcpri_mod_ch (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:PrimLib.dffre(prim) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1244:27:1244:40|Removing instance div2_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_3(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1252:27:1252:41|Removing instance div11_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_2(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1236:27:1236:40|Removing instance gear_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_4(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1268:27:1268:44|Removing instance pcie_mod_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_0(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1260:27:1260:44|Removing instance cpri_mod_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_1(verilog) because it does not drive other instances. +ICG Latch Removal Summary: +Number of ICG latches removed: 0 +Number of ICG latches not removed: 0 +syn_allowed_resources : blockrams=56 set on top level netlist sgmii_ecp5 + +Finished netlist restructuring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + + + +Clock Summary +****************** + + Start Requested Requested Clock Clock Clock +Level Clock Frequency Period Type Group Load +---------------------------------------------------------------------------------------------------------------------- +0 - System 100.0 MHz 10.000 system system_clkgroup 0 + +0 - sgmii_ecp5|pll_refclki 100.0 MHz 10.000 inferred Inferred_clkgroup_0 93 + +0 - sgmii_ecp5|rxrefclk 100.0 MHz 10.000 inferred Inferred_clkgroup_1 77 + +0 - sgmii_ecp5|tx_pclk_inferred_clock 100.0 MHz 10.000 inferred Inferred_clkgroup_2 53 +====================================================================================================================== + +@W: MT529 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Found inferred clock sgmii_ecp5|pll_refclki which controls 93 sequential elements including sll_inst.phb_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":567:3:567:8|Found inferred clock sgmii_ecp5|rxrefclk which controls 77 sequential elements including rsl_inst.genblk2\.rlos_db_p1. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Found inferred clock sgmii_ecp5|tx_pclk_inferred_clock which controls 53 sequential elements including sll_inst.rtc_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. + +Finished Pre Mapping Phase. + +Starting constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + +Encoding state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) +original code -> new code + 00 -> 00 + 01 -> 01 + 10 -> 10 + 11 -> 11 +@N: MO225 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1801:0:1801:5|There are no possible illegal states for state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)); safe FSM implementation is not required. + +Finished constraint checker preprocessing (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + +None +None + +Finished constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + +Pre-mapping successful! + +At Mapper Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 58MB peak: 144MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime +# Fri May 10 09:02:13 2019 + +###########################################################] diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_premap.srr.db b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_premap.srr.db new file mode 100644 index 0000000000000000000000000000000000000000..283b4fd58c60829fbb4237a79fc42d01e8a283c6 GIT binary patch literal 8192 zcmeI0-EQMV6vvZxcia6aMMA5B*ovb{NR333*m2S{yOY|v@f-hCIGdIiV+ctSjc-{NBvZrNv(spS`iZ@b=x`@BDiE zr}-b}=5LPMVsXBWMsdEwGkBG94ebFVsD=~(T$)v0Huxj#UOz~~zbNQ6?H zwlDB7#6Al_Y3f0l|JSlhh?qCvF@g$1H@*41(W!p{t2~Ag$HNXB3OTH%LrDi=>Ulz< z`=>oBIzq{5ES1V8C>9{>Jm~_bxsYhY)EyTwa7ClhAn~gMF43=20ZTtP-@bL% zusPj+cecCVv^Vl#v(auFHpVn}!~uy8j{}r63h+YV4dHxl-{>PZ@xq~dR>RF|91gfQ z08hkPicmqb0g5ImeT-42g|ux2 zj3#TIW4@`5;jwWG^ECLVct3^&W%@^J>|qrSnT)At0W^29E=$Lc+ zGM~sJi2*rf!eQ!#_4P}o?}Pc<>CUL-=Yw=hyz0(K zXxnFg;D2|-#w%}!WYBvJx5F6b$rX>s?EdVdk1Z<~0k>QAj=kQojCGtnjKs*OfRPPG zyA!-bayJtGIlikYw9yNFoM5KynY0^ysw?+g$DxNFJ5UrfNGSwG3nSeWu0{w#Q*@aQ zOP%TX80P*3MC}Qp_Dc~Z9><&!)u*BE3Wy%uN)bKFa}_mO86vVy{l!((M<#PzLC$sX zEZ)?5Bmhg1P zo>@MPmYqi;>D1Fi(wOFS@mxp*r(&H<)ta)#D<#r@mFZ6IZ?uRf+^r<)7=% z*E4fV3n#R_x;w2_Yb(usFXWLJo40(w3aeWpicI3TqENdcNz?bWfFHSOp6SvpcbaHs z`LP0Pg<=9wY@if1eRqL?hghvl()>#K*3!bJ>DqSMdk3+}GtC1nXRSvuhTU literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_premap.szr b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_premap.szr new file mode 100644 index 0000000000000000000000000000000000000000..81e5490875c218296599f459bc9ba1d747278675 GIT binary patch literal 3942 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 AA^-pY literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/syntax_constraint_check.rpt.rptmap b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/syntax_constraint_check.rpt.rptmap new file mode 100644 index 0000000..fe7eb22 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synlog/syntax_constraint_check.rpt.rptmap @@ -0,0 +1 @@ +./sgmii_ecp5_scck.rpt,syntax_constraint_check.rpt,Syntax Constraint Check Report diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/syntmp/closed.png b/gbe/cores/sgmii/sgmii_ecp5/syn_results/syntmp/closed.png new file mode 100644 index 0000000000000000000000000000000000000000..0d78634f322a904e7bd0c9466498c0a42777589f GIT binary patch literal 3672 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 + + + + + + + + + + + + + + + + diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/syntmp/sgmii_ecp5.plg b/gbe/cores/sgmii/sgmii_ecp5/syn_results/syntmp/sgmii_ecp5.plg new file mode 100644 index 0000000..bab41a3 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/syntmp/sgmii_ecp5.plg @@ -0,0 +1,28 @@ +@P: Worst Slack : 4.043 +@P: sgmii_ecp5|pll_refclki - Estimated Frequency : 168.9 MHz +@P: sgmii_ecp5|pll_refclki - Requested Frequency : 100.0 MHz +@P: sgmii_ecp5|pll_refclki - Estimated Period : 5.921 +@P: sgmii_ecp5|pll_refclki - Requested Period : 10.000 +@P: sgmii_ecp5|pll_refclki - Slack : 4.079 +@P: sgmii_ecp5|rxrefclk - Estimated Frequency : 167.9 MHz +@P: sgmii_ecp5|rxrefclk - Requested Frequency : 100.0 MHz +@P: sgmii_ecp5|rxrefclk - Estimated Period : 5.957 +@P: sgmii_ecp5|rxrefclk - Requested Period : 10.000 +@P: sgmii_ecp5|rxrefclk - Slack : 4.043 +@P: sgmii_ecp5|tx_pclk_inferred_clock - Estimated Frequency : 237.5 MHz +@P: sgmii_ecp5|tx_pclk_inferred_clock - Requested Frequency : 100.0 MHz +@P: sgmii_ecp5|tx_pclk_inferred_clock - Estimated Period : 4.211 +@P: sgmii_ecp5|tx_pclk_inferred_clock - Requested Period : 10.000 +@P: sgmii_ecp5|tx_pclk_inferred_clock - Slack : 5.789 +@P: System - Estimated Frequency : 840.7 MHz +@P: System - Requested Frequency : 100.0 MHz +@P: System - Estimated Period : 1.190 +@P: System - Requested Period : 10.000 +@P: System - Slack : 8.810 +@P: Total Area : 157.0 +@P: Total Area : 0.0 +@P: Total Area : 0.0 +@P: Total Area : 0.0 +@P: Total Area : 0.0 +@P: Total Area : 0.0 +@P: CPU Time : 0h:00m:03s diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/syntmp/sgmii_ecp5_srr.htm b/gbe/cores/sgmii/sgmii_ecp5/syn_results/syntmp/sgmii_ecp5_srr.htm new file mode 100644 index 0000000..a9d2ee2 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/syntmp/sgmii_ecp5_srr.htm @@ -0,0 +1,1157 @@ + +
    +
    +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug  4 2017
    +@N: :  | Running in 64-bit mode 
    +File /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.srs changed - recompiling
    +
    +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB)
    +
    +Process took 0h:00m:01s realtime, 0h:00m:01s cputime
    +
    +Process completed successfully.
    +# Fri May 10 09:02:12 2019
    +
    +###########################################################]
    +
    +
    +
    +
    +# Fri May 10 09:02:12 2019
    +
    +Synopsys Lattice Technology Pre-mapping, Version maplat, Build 1796R, Built Aug  4 2017 09:36:35
    +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited.
    +Product Version M-2017.03L-SP1-1
    +
    +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 100MB)
    +
    +Reading constraint file: /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.fdc
    +Linked File: sgmii_ecp5_scck.rpt
    +Printing clock  summary report in "/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5_scck.rpt" file 
    +@N:MF248 :  | Running in 64-bit mode. 
    +@N:MF666 :  | Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) 
    +
    +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 102MB peak: 104MB)
    +
    +
    +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 102MB peak: 104MB)
    +
    +
    +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 114MB)
    +
    +
    +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 116MB)
    +
    +@N:BN362 : sgmii_ecp5_softlogic.v(1408) | Removing sequential instance pcpri_mod_ch (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:PrimLib.dffre(prim) because it does not drive other instances.
    +@N:BN115 : sgmii_ecp5_softlogic.v(1244) | Removing instance div2_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_3(verilog) because it does not drive other instances.
    +@N:BN115 : sgmii_ecp5_softlogic.v(1252) | Removing instance div11_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_2(verilog) because it does not drive other instances.
    +@N:BN115 : sgmii_ecp5_softlogic.v(1236) | Removing instance gear_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_4(verilog) because it does not drive other instances.
    +@N:BN115 : sgmii_ecp5_softlogic.v(1268) | Removing instance pcie_mod_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_0(verilog) because it does not drive other instances.
    +@N:BN115 : sgmii_ecp5_softlogic.v(1260) | Removing instance cpri_mod_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_1(verilog) because it does not drive other instances.
    +ICG Latch Removal Summary:
    +Number of ICG latches removed:	0
    +Number of ICG latches not removed:	0
    +syn_allowed_resources : blockrams=56  set on top level netlist sgmii_ecp5
    +
    +Finished netlist restructuring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB)
    +
    +
    +
    +Clock Summary
    +******************
    +
    +          Start                                 Requested     Requested     Clock        Clock                   Clock
    +Level     Clock                                 Frequency     Period        Type         Group                   Load 
    +----------------------------------------------------------------------------------------------------------------------
    +0 -       System                                100.0 MHz     10.000        system       system_clkgroup         0    
    +                                                                                                                      
    +0 -       sgmii_ecp5|pll_refclki                100.0 MHz     10.000        inferred     Inferred_clkgroup_0     93   
    +                                                                                                                      
    +0 -       sgmii_ecp5|rxrefclk                   100.0 MHz     10.000        inferred     Inferred_clkgroup_1     77   
    +                                                                                                                      
    +0 -       sgmii_ecp5|tx_pclk_inferred_clock     100.0 MHz     10.000        inferred     Inferred_clkgroup_2     53   
    +======================================================================================================================
    +
    +@W:MT529 : sgmii_ecp5_softlogic.v(1988) | Found inferred clock sgmii_ecp5|pll_refclki which controls 93 sequential elements including sll_inst.phb_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. 
    +@W:MT529 : sgmii_ecp5_softlogic.v(567) | Found inferred clock sgmii_ecp5|rxrefclk which controls 77 sequential elements including rsl_inst.genblk2\.rlos_db_p1. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. 
    +@W:MT529 : sgmii_ecp5_softlogic.v(1988) | Found inferred clock sgmii_ecp5|tx_pclk_inferred_clock which controls 53 sequential elements including sll_inst.rtc_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. 
    +
    +Finished Pre Mapping Phase.
    +
    +Starting constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB)
    +
    +Encoding state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog))
    +original code -> new code
    +   00 -> 00
    +   01 -> 01
    +   10 -> 10
    +   11 -> 11
    +@N:MO225 : sgmii_ecp5_softlogic.v(1801) | There are no possible illegal states for state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)); safe FSM implementation is not required.
    +
    +Finished constraint checker preprocessing (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB)
    +
    +None
    +None
    +
    +Finished constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB)
    +
    +Pre-mapping successful!
    +
    +At Mapper Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 58MB peak: 144MB)
    +
    +Process took 0h:00m:01s realtime, 0h:00m:01s cputime
    +# Fri May 10 09:02:13 2019
    +
    +###########################################################]
    +
    +
    +
    +
    +# Fri May 10 09:02:13 2019
    +
    +Synopsys Lattice Technology Mapper, Version maplat, Build 1796R, Built Aug  4 2017 09:36:35
    +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited.
    +Product Version M-2017.03L-SP1-1
    +
    +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 100MB)
    +
    +@N:MF248 :  | Running in 64-bit mode. 
    +@N:MF666 :  | Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) 
    +
    +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB)
    +
    +
    +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB)
    +
    +
    +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 113MB)
    +
    +
    +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 115MB)
    +
    +
    +
    +Starting Optimization and Mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 144MB)
    +
    +
    +Available hyper_sources - for debug and ip models
    +	None Found
    +
    +
    +Finished RTL optimizations (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB)
    +
    +Encoding state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog))
    +original code -> new code
    +   00 -> 00
    +   01 -> 01
    +   10 -> 10
    +   11 -> 11
    +@N:MO225 : sgmii_ecp5_softlogic.v(1801) | There are no possible illegal states for state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)); safe FSM implementation is not required.
    +@N:MO231 : sgmii_ecp5_softlogic.v(1350) | Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance rhb_wait_cnt[7:0] 
    +@N:MO231 : sgmii_ecp5_softlogic.v(1304) | Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance rcount[15:0] 
    +@N:MO231 : sgmii_ecp5_softlogic.v(1759) | Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance pcount[21:0] 
    +@N:MO231 : sgmii_ecp5_softlogic.v(412) | Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk1\.plol_cnt[19:0] 
    +@N:MO231 : sgmii_ecp5_softlogic.v(909) | Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.genblk3\.rxr_wt_cnt[11:0] 
    +@N:MO231 : sgmii_ecp5_softlogic.v(527) | Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk1\.genblk2\.txr_wt_cnt[11:0] 
    +@N:MO231 : sgmii_ecp5_softlogic.v(778) | Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.rlols0_cnt[17:0] 
    +@N:MO231 : sgmii_ecp5_softlogic.v(680) | Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.rlol1_cnt[18:0] 
    +
    +Starting factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB)
    +
    +
    +Finished factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 144MB)
    +
    +
    +Starting gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB)
    +
    +
    +Finished gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB)
    +
    +
    +Finished generic timing optimizations - Pass 1 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 145MB)
    +
    +
    +Starting Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 145MB)
    +
    +
    +Finished Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 145MB)
    +
    +
    +Finished generic timing optimizations - Pass 2 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 145MB)
    +
    +
    +Finished preparing to map (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:01s; Memory used current: 145MB peak: 145MB)
    +
    +@N:FX1019 : sgmii_ecp5_softlogic.v(1988) | Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)).
    +@N:FX1019 : sgmii_ecp5_softlogic.v(1988) | Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)).
    +@N:FX1019 : sgmii_ecp5_softlogic.v(1988) | Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)).
    +
    +Finished technology mapping (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 147MB peak: 149MB)
    +
    +Pass		 CPU time		Worst Slack		Luts / Registers
    +------------------------------------------------------------
    +   1		0h:00m:01s		     4.90ns		 155 /       221
    +@N:FX1019 : sgmii_ecp5_softlogic.v(1988) | Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)).
    +@N:FX1019 : sgmii_ecp5_softlogic.v(1988) | Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)).
    +@N:FX1019 : sgmii_ecp5_softlogic.v(1988) | Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)).
    +
    +Finished technology timing optimizations and critical path resynthesis (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 147MB peak: 149MB)
    +
    +@N:FX164 :  | The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute.   
    +
    +Finished restoring hierarchy (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 147MB peak: 149MB)
    +
    +
    +
    +@S |Clock Optimization Summary
    +
    +
    +#### START OF CLOCK OPTIMIZATION REPORT #####[
    +
    +3 non-gated/non-generated clock tree(s) driving 221 clock pin(s) of sequential element(s)
    +0 gated/generated clock tree(s) driving 0 clock pin(s) of sequential element(s)
    +0 instances converted, 0 sequential instances remain driven by gated/generated clocks
    +
    +============================================= Non-Gated/Non-Generated Clocks =============================================
    +Clock Tree ID     Driving Element     Drive Element Type     Fanout     Sample Instance                                   
    +--------------------------------------------------------------------------------------------------------------------------
    +ClockId0001        pll_refclki         port                   91         rsl_inst.genblk1\.genblk2\.mfor\[0\]\.txpr_appd[0]
    +ClockId0002        rxrefclk            port                   77         rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0]
    +ClockId0003        DCU0_inst           DCUA                   53         sll_inst.pcount[21]                               
    +==========================================================================================================================
    +
    +
    +##### END OF CLOCK OPTIMIZATION REPORT ######]
    +
    +
    +Start Writing Netlists (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 111MB peak: 149MB)
    +
    +Writing Analyst data base /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_m.srm
    +
    +Finished Writing Netlist Databases (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 146MB peak: 149MB)
    +
    +Writing EDIF Netlist and constraint files
    +@N:FX1056 :  | Writing EDF file: /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/sgmii_ecp5.edn 
    +M-2017.03L-SP1-1
    +@N:BW106 :  | Synplicity Constraint File capacitance units using default value of 1pF  
    +
    +Finished Writing EDIF Netlist and constraint files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 150MB peak: 152MB)
    +
    +Writing Verilog Simulation files
    +
    +Finished Writing Verilog Simulation files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 151MB peak: 152MB)
    +
    +Writing VHDL Simulation files
    +
    +Finished Writing VHDL Simulation files (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB)
    +
    +
    +Start final timing analysis (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB)
    +
    +@W:MT246 : sgmii_ecp5.vhd(162) | Blackbox DCUA is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) 
    +@W:MT420 :  | Found inferred clock sgmii_ecp5|rxrefclk with period 10.00ns. Please declare a user-defined clock on object "p:rxrefclk" 
    +@W:MT420 :  | Found inferred clock sgmii_ecp5|pll_refclki with period 10.00ns. Please declare a user-defined clock on object "p:pll_refclki" 
    +@W:MT420 :  | Found inferred clock sgmii_ecp5|tx_pclk_inferred_clock with period 10.00ns. Please declare a user-defined clock on object "n:tx_pclk" 
    +
    +
    +##### START OF TIMING REPORT #####[
    +# Timing Report written on Fri May 10 09:02:16 2019
    +#
    +
    +
    +Top view:               sgmii_ecp5
    +Requested Frequency:    100.0 MHz
    +Wire load mode:         top
    +Paths requested:        5
    +Constraint File(s):    /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.fdc
    +                       
    +@N:MT320 :  | This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. 
    +
    +@N:MT322 :  | Clock constraints include only register-to-register paths associated with each individual clock. 
    +
    +
    +
    +Performance Summary
    +*******************
    +
    +
    +Worst slack in design: 4.043
    +
    +                                      Requested     Estimated     Requested     Estimated               Clock        Clock              
    +Starting Clock                        Frequency     Frequency     Period        Period        Slack     Type         Group              
    +----------------------------------------------------------------------------------------------------------------------------------------
    +sgmii_ecp5|pll_refclki                100.0 MHz     168.9 MHz     10.000        5.921         4.079     inferred     Inferred_clkgroup_0
    +sgmii_ecp5|rxrefclk                   100.0 MHz     167.9 MHz     10.000        5.957         4.043     inferred     Inferred_clkgroup_1
    +sgmii_ecp5|tx_pclk_inferred_clock     100.0 MHz     237.5 MHz     10.000        4.211         5.789     inferred     Inferred_clkgroup_2
    +System                                100.0 MHz     840.7 MHz     10.000        1.190         8.810     system       system_clkgroup    
    +========================================================================================================================================
    +
    +
    +
    +
    +
    +Clock Relationships
    +*******************
    +
    +Clocks                                                                |    rise  to  rise   |    fall  to  fall   |    rise  to  fall   |    fall  to  rise 
    +------------------------------------------------------------------------------------------------------------------------------------------------------------
    +Starting                           Ending                             |  constraint  slack  |  constraint  slack  |  constraint  slack  |  constraint  slack
    +------------------------------------------------------------------------------------------------------------------------------------------------------------
    +System                             sgmii_ecp5|rxrefclk                |  10.000      8.811  |  No paths    -      |  No paths    -      |  No paths    -    
    +sgmii_ecp5|pll_refclki             System                             |  10.000      8.253  |  No paths    -      |  No paths    -      |  No paths    -    
    +sgmii_ecp5|pll_refclki             sgmii_ecp5|pll_refclki             |  10.000      4.079  |  No paths    -      |  No paths    -      |  No paths    -    
    +sgmii_ecp5|pll_refclki             sgmii_ecp5|tx_pclk_inferred_clock  |  Diff grp    -      |  No paths    -      |  No paths    -      |  No paths    -    
    +sgmii_ecp5|rxrefclk                System                             |  10.000      8.277  |  No paths    -      |  No paths    -      |  No paths    -    
    +sgmii_ecp5|rxrefclk                sgmii_ecp5|rxrefclk                |  10.000      4.043  |  No paths    -      |  No paths    -      |  No paths    -    
    +sgmii_ecp5|tx_pclk_inferred_clock  sgmii_ecp5|pll_refclki             |  Diff grp    -      |  No paths    -      |  No paths    -      |  No paths    -    
    +sgmii_ecp5|tx_pclk_inferred_clock  sgmii_ecp5|tx_pclk_inferred_clock  |  10.000      5.789  |  No paths    -      |  No paths    -      |  No paths    -    
    +============================================================================================================================================================
    + Note: 'No paths' indicates there are no paths in the design for that pair of clock edges.
    +       'Diff grp' indicates that paths exist but the starting clock and ending clock are in different clock groups.
    +
    +
    +
    +Interface Information 
    +*********************
    +
    +No IO constraint found
    +
    +
    +
    +====================================
    +Detailed Report for Clock: sgmii_ecp5|pll_refclki
    +====================================
    +
    +
    +
    +Starting Points with Worst Slack
    +********************************
    +
    +                                   Starting                                                        Arrival          
    +Instance                           Reference                  Type        Pin     Net              Time        Slack
    +                                   Clock                                                                            
    +--------------------------------------------------------------------------------------------------------------------
    +rsl_inst.genblk1\.plol_cnt[2]      sgmii_ecp5|pll_refclki     FD1S3DX     Q       plol_cnt[2]      0.907       4.079
    +rsl_inst.genblk1\.plol_cnt[3]      sgmii_ecp5|pll_refclki     FD1S3DX     Q       plol_cnt[3]      0.907       4.079
    +rsl_inst.genblk1\.plol_cnt[17]     sgmii_ecp5|pll_refclki     FD1S3DX     Q       plol_cnt[17]     0.907       4.079
    +rsl_inst.genblk1\.plol_cnt[19]     sgmii_ecp5|pll_refclki     FD1S3DX     Q       plol_cnt[19]     0.907       4.079
    +rsl_inst.genblk1\.plol_cnt[1]      sgmii_ecp5|pll_refclki     FD1S3DX     Q       plol_cnt[1]      0.907       4.684
    +rsl_inst.genblk1\.plol_cnt[4]      sgmii_ecp5|pll_refclki     FD1S3DX     Q       plol_cnt[4]      0.907       4.684
    +rsl_inst.genblk1\.plol_cnt[5]      sgmii_ecp5|pll_refclki     FD1S3DX     Q       plol_cnt[5]      0.907       4.684
    +rsl_inst.genblk1\.plol_cnt[6]      sgmii_ecp5|pll_refclki     FD1S3DX     Q       plol_cnt[6]      0.907       4.684
    +rsl_inst.genblk1\.plol_cnt[7]      sgmii_ecp5|pll_refclki     FD1S3DX     Q       plol_cnt[7]      0.907       4.684
    +rsl_inst.genblk1\.plol_cnt[8]      sgmii_ecp5|pll_refclki     FD1S3DX     Q       plol_cnt[8]      0.907       4.684
    +====================================================================================================================
    +
    +
    +Ending Points with Worst Slack
    +******************************
    +
    +                                   Starting                                                          Required          
    +Instance                           Reference                  Type        Pin     Net                Time         Slack
    +                                   Clock                                                                               
    +-----------------------------------------------------------------------------------------------------------------------
    +rsl_inst.genblk1\.plol_cnt[19]     sgmii_ecp5|pll_refclki     FD1S3DX     D       plol_cnt_s[19]     9.946        4.079
    +rsl_inst.genblk1\.plol_cnt[17]     sgmii_ecp5|pll_refclki     FD1S3DX     D       plol_cnt_s[17]     9.946        4.139
    +rsl_inst.genblk1\.plol_cnt[18]     sgmii_ecp5|pll_refclki     FD1S3DX     D       plol_cnt_s[18]     9.946        4.139
    +rsl_inst.genblk1\.plol_cnt[15]     sgmii_ecp5|pll_refclki     FD1S3DX     D       plol_cnt_s[15]     9.946        4.200
    +rsl_inst.genblk1\.plol_cnt[16]     sgmii_ecp5|pll_refclki     FD1S3DX     D       plol_cnt_s[16]     9.946        4.200
    +rsl_inst.genblk1\.plol_cnt[13]     sgmii_ecp5|pll_refclki     FD1S3DX     D       plol_cnt_s[13]     9.946        4.261
    +rsl_inst.genblk1\.plol_cnt[14]     sgmii_ecp5|pll_refclki     FD1S3DX     D       plol_cnt_s[14]     9.946        4.261
    +rsl_inst.genblk1\.plol_cnt[11]     sgmii_ecp5|pll_refclki     FD1S3DX     D       plol_cnt_s[11]     9.946        4.322
    +rsl_inst.genblk1\.plol_cnt[12]     sgmii_ecp5|pll_refclki     FD1S3DX     D       plol_cnt_s[12]     9.946        4.322
    +rsl_inst.genblk1\.plol_cnt[9]      sgmii_ecp5|pll_refclki     FD1S3DX     D       plol_cnt_s[9]      9.946        4.383
    +=======================================================================================================================
    +
    +
    +
    +Worst Path Information
    +View Worst Path in Analyst
    +***********************
    +
    +
    +Path information for path number 1: 
    +      Requested Period:                      10.000
    +    - Setup time:                            0.054
    +    + Clock delay at ending point:           0.000 (ideal)
    +    = Required time:                         9.946
    +
    +    - Propagation time:                      5.867
    +    - Clock delay at starting point:         0.000 (ideal)
    +    = Slack (non-critical) :                 4.079
    +
    +    Number of logic level(s):                15
    +    Starting point:                          rsl_inst.genblk1\.plol_cnt[2] / Q
    +    Ending point:                            rsl_inst.genblk1\.plol_cnt[19] / D
    +    The start point is clocked by            sgmii_ecp5|pll_refclki [rising] on pin CK
    +    The end   point is clocked by            sgmii_ecp5|pll_refclki [rising] on pin CK
    +
    +Instance / Net                                        Pin      Pin               Arrival     No. of    
    +Name                                     Type         Name     Dir     Delay     Time        Fan Out(s)
    +-------------------------------------------------------------------------------------------------------
    +rsl_inst.genblk1\.plol_cnt[2]            FD1S3DX      Q        Out     0.907     0.907       -         
    +plol_cnt[2]                              Net          -        -       -         -           2         
    +rsl_inst.genblk1\.un1_plol_cnt_tc_10     ORCALUT4     A        In      0.000     0.907       -         
    +rsl_inst.genblk1\.un1_plol_cnt_tc_10     ORCALUT4     Z        Out     0.606     1.513       -         
    +un1_plol_cnt_tc_10                       Net          -        -       -         -           1         
    +rsl_inst.genblk1\.un1_plol_cnt_tc_14     ORCALUT4     D        In      0.000     1.513       -         
    +rsl_inst.genblk1\.un1_plol_cnt_tc_14     ORCALUT4     Z        Out     0.606     2.119       -         
    +un1_plol_cnt_tc_14                       Net          -        -       -         -           1         
    +rsl_inst.genblk1\.un1_plol_cnt_tc        ORCALUT4     D        In      0.000     2.119       -         
    +rsl_inst.genblk1\.un1_plol_cnt_tc        ORCALUT4     Z        Out     0.762     2.881       -         
    +un1_plol_cnt_tc                          Net          -        -       -         -           5         
    +rsl_inst.genblk1\.plol_cnt11_i           ORCALUT4     B        In      0.000     2.881       -         
    +rsl_inst.genblk1\.plol_cnt11_i           ORCALUT4     Z        Out     0.840     3.721       -         
    +plol_cnt                                 Net          -        -       -         -           21        
    +rsl_inst.genblk1\.plol_cnt_cry_0[0]      CCU2C        A1       In      0.000     3.721       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[0]      CCU2C        COUT     Out     0.900     4.621       -         
    +plol_cnt_cry[0]                          Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[1]      CCU2C        CIN      In      0.000     4.621       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[1]      CCU2C        COUT     Out     0.061     4.682       -         
    +plol_cnt_cry[2]                          Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[3]      CCU2C        CIN      In      0.000     4.682       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[3]      CCU2C        COUT     Out     0.061     4.743       -         
    +plol_cnt_cry[4]                          Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[5]      CCU2C        CIN      In      0.000     4.743       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[5]      CCU2C        COUT     Out     0.061     4.804       -         
    +plol_cnt_cry[6]                          Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[7]      CCU2C        CIN      In      0.000     4.804       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[7]      CCU2C        COUT     Out     0.061     4.865       -         
    +plol_cnt_cry[8]                          Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[9]      CCU2C        CIN      In      0.000     4.865       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[9]      CCU2C        COUT     Out     0.061     4.926       -         
    +plol_cnt_cry[10]                         Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[11]     CCU2C        CIN      In      0.000     4.926       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[11]     CCU2C        COUT     Out     0.061     4.987       -         
    +plol_cnt_cry[12]                         Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[13]     CCU2C        CIN      In      0.000     4.987       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[13]     CCU2C        COUT     Out     0.061     5.048       -         
    +plol_cnt_cry[14]                         Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[15]     CCU2C        CIN      In      0.000     5.048       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[15]     CCU2C        COUT     Out     0.061     5.109       -         
    +plol_cnt_cry[16]                         Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[17]     CCU2C        CIN      In      0.000     5.109       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[17]     CCU2C        COUT     Out     0.061     5.170       -         
    +plol_cnt_cry[18]                         Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_s_0[19]       CCU2C        CIN      In      0.000     5.170       -         
    +rsl_inst.genblk1\.plol_cnt_s_0[19]       CCU2C        S0       Out     0.698     5.867       -         
    +plol_cnt_s[19]                           Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt[19]           FD1S3DX      D        In      0.000     5.867       -         
    +=======================================================================================================
    +
    +
    +
    +
    +====================================
    +Detailed Report for Clock: sgmii_ecp5|rxrefclk
    +====================================
    +
    +
    +
    +Starting Points with Worst Slack
    +********************************
    +
    +                                    Starting                                                      Arrival          
    +Instance                            Reference               Type        Pin     Net               Time        Slack
    +                                    Clock                                                                          
    +-------------------------------------------------------------------------------------------------------------------
    +rsl_inst.genblk2\.rxs_rst           sgmii_ecp5|rxrefclk     FD1P3DX     Q       rxs_rst           1.015       4.043
    +rsl_inst.genblk2\.rlol1_cnt[7]      sgmii_ecp5|rxrefclk     FD1P3DX     Q       rlol1_cnt[7]      0.907       4.136
    +rsl_inst.genblk2\.rlol1_cnt[8]      sgmii_ecp5|rxrefclk     FD1P3DX     Q       rlol1_cnt[8]      0.907       4.136
    +rsl_inst.genblk2\.rlol1_cnt[9]      sgmii_ecp5|rxrefclk     FD1P3DX     Q       rlol1_cnt[9]      0.907       4.136
    +rsl_inst.genblk2\.rlol1_cnt[10]     sgmii_ecp5|rxrefclk     FD1P3DX     Q       rlol1_cnt[10]     0.907       4.136
    +rsl_inst.genblk2\.rlols0_cnt[1]     sgmii_ecp5|rxrefclk     FD1P3DX     Q       rlols0_cnt[1]     0.907       4.170
    +rsl_inst.genblk2\.rlols0_cnt[2]     sgmii_ecp5|rxrefclk     FD1P3DX     Q       rlols0_cnt[2]     0.907       4.170
    +rsl_inst.genblk2\.rlols0_cnt[3]     sgmii_ecp5|rxrefclk     FD1P3DX     Q       rlols0_cnt[3]     0.907       4.170
    +rsl_inst.genblk2\.rlols0_cnt[4]     sgmii_ecp5|rxrefclk     FD1P3DX     Q       rlols0_cnt[4]     0.907       4.170
    +rsl_inst.genblk2\.rlol1_cnt[0]      sgmii_ecp5|rxrefclk     FD1P3DX     Q       rlol1_cnt[0]      0.907       4.742
    +===================================================================================================================
    +
    +
    +Ending Points with Worst Slack
    +******************************
    +
    +                                              Starting                                                         Required          
    +Instance                                      Reference               Type        Pin     Net                  Time         Slack
    +                                              Clock                                                                              
    +---------------------------------------------------------------------------------------------------------------------------------
    +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[11]     sgmii_ecp5|rxrefclk     FD1P3DX     D       rxr_wt_cnt_s[11]     9.946        4.043
    +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[9]      sgmii_ecp5|rxrefclk     FD1P3DX     D       rxr_wt_cnt_s[9]      9.946        4.104
    +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[10]     sgmii_ecp5|rxrefclk     FD1P3DX     D       rxr_wt_cnt_s[10]     9.946        4.104
    +rsl_inst.genblk2\.rlol1_cnt[17]               sgmii_ecp5|rxrefclk     FD1P3DX     D       rlol1_cnt_s[17]      9.946        4.136
    +rsl_inst.genblk2\.rlol1_cnt[18]               sgmii_ecp5|rxrefclk     FD1P3DX     D       rlol1_cnt_s[18]      9.946        4.136
    +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[7]      sgmii_ecp5|rxrefclk     FD1P3DX     D       rxr_wt_cnt_s[7]      9.946        4.165
    +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[8]      sgmii_ecp5|rxrefclk     FD1P3DX     D       rxr_wt_cnt_s[8]      9.946        4.165
    +rsl_inst.genblk2\.rlols0_cnt[17]              sgmii_ecp5|rxrefclk     FD1P3DX     D       rlols0_cnt_s[17]     9.946        4.170
    +rsl_inst.genblk2\.rlol1_cnt[15]               sgmii_ecp5|rxrefclk     FD1P3DX     D       rlol1_cnt_s[15]      9.946        4.197
    +rsl_inst.genblk2\.rlol1_cnt[16]               sgmii_ecp5|rxrefclk     FD1P3DX     D       rlol1_cnt_s[16]      9.946        4.197
    +=================================================================================================================================
    +
    +
    +
    +Worst Path Information
    +View Worst Path in Analyst
    +***********************
    +
    +
    +Path information for path number 1: 
    +      Requested Period:                      10.000
    +    - Setup time:                            0.054
    +    + Clock delay at ending point:           0.000 (ideal)
    +    = Required time:                         9.946
    +
    +    - Propagation time:                      5.902
    +    - Clock delay at starting point:         0.000 (ideal)
    +    = Slack (critical) :                     4.043
    +
    +    Number of logic level(s):                11
    +    Starting point:                          rsl_inst.genblk2\.rxs_rst / Q
    +    Ending point:                            rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[11] / D
    +    The start point is clocked by            sgmii_ecp5|rxrefclk [rising] on pin CK
    +    The end   point is clocked by            sgmii_ecp5|rxrefclk [rising] on pin CK
    +
    +Instance / Net                                                  Pin      Pin               Arrival     No. of    
    +Name                                               Type         Name     Dir     Delay     Time        Fan Out(s)
    +-----------------------------------------------------------------------------------------------------------------
    +rsl_inst.genblk2\.rxs_rst                          FD1P3DX      Q        Out     1.015     1.015       -         
    +rxs_rst                                            Net          -        -       -         -           6         
    +rsl_inst.rdo_rx_serdes_rst_c_1[0]                  ORCALUT4     B        In      0.000     1.015       -         
    +rsl_inst.rdo_rx_serdes_rst_c_1[0]                  ORCALUT4     Z        Out     0.708     1.723       -         
    +rsl_rx_serdes_rst_c                                Net          -        -       -         -           3         
    +rsl_inst.dual_or_rserd_rst                         ORCALUT4     A        In      0.000     1.723       -         
    +rsl_inst.dual_or_rserd_rst                         ORCALUT4     Z        Out     0.798     2.521       -         
    +dual_or_rserd_rst                                  Net          -        -       -         -           9         
    +rsl_inst.rx_any_rst                                ORCALUT4     A        In      0.000     2.521       -         
    +rsl_inst.rx_any_rst                                ORCALUT4     Z        Out     0.660     3.181       -         
    +rx_any_rst                                         Net          -        -       -         -           2         
    +rsl_inst.rx_any_rst_RNIFD021                       ORCALUT4     A        In      0.000     3.181       -         
    +rsl_inst.rx_any_rst_RNIFD021                       ORCALUT4     Z        Out     0.819     4.000       -         
    +rxr_wt_cnt9                                        Net          -        -       -         -           14        
    +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[0]     CCU2C        A1       In      0.000     4.000       -         
    +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[0]     CCU2C        COUT     Out     0.900     4.900       -         
    +rxr_wt_cnt_cry[0]                                  Net          -        -       -         -           1         
    +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[1]     CCU2C        CIN      In      0.000     4.900       -         
    +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[1]     CCU2C        COUT     Out     0.061     4.961       -         
    +rxr_wt_cnt_cry[2]                                  Net          -        -       -         -           1         
    +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[3]     CCU2C        CIN      In      0.000     4.961       -         
    +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[3]     CCU2C        COUT     Out     0.061     5.022       -         
    +rxr_wt_cnt_cry[4]                                  Net          -        -       -         -           1         
    +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[5]     CCU2C        CIN      In      0.000     5.022       -         
    +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[5]     CCU2C        COUT     Out     0.061     5.083       -         
    +rxr_wt_cnt_cry[6]                                  Net          -        -       -         -           1         
    +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[7]     CCU2C        CIN      In      0.000     5.083       -         
    +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[7]     CCU2C        COUT     Out     0.061     5.144       -         
    +rxr_wt_cnt_cry[8]                                  Net          -        -       -         -           1         
    +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[9]     CCU2C        CIN      In      0.000     5.144       -         
    +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[9]     CCU2C        COUT     Out     0.061     5.205       -         
    +rxr_wt_cnt_cry[10]                                 Net          -        -       -         -           1         
    +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_s_0[11]      CCU2C        CIN      In      0.000     5.205       -         
    +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_s_0[11]      CCU2C        S0       Out     0.698     5.902       -         
    +rxr_wt_cnt_s[11]                                   Net          -        -       -         -           1         
    +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[11]          FD1P3DX      D        In      0.000     5.902       -         
    +=================================================================================================================
    +
    +
    +
    +
    +====================================
    +Detailed Report for Clock: sgmii_ecp5|tx_pclk_inferred_clock
    +====================================
    +
    +
    +
    +Starting Points with Worst Slack
    +********************************
    +
    +                            Starting                                                                   Arrival          
    +Instance                    Reference                             Type        Pin     Net              Time        Slack
    +                            Clock                                                                                       
    +------------------------------------------------------------------------------------------------------------------------
    +sll_inst.ppul_sync_p1       sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     Q       ppul_sync_p1     1.098       5.789
    +sll_inst.ppul_sync_p2       sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     Q       ppul_sync_p2     1.098       5.789
    +sll_inst.pcount_diff[0]     sgmii_ecp5|tx_pclk_inferred_clock     FD1P3BX     Q       un13_lock_0      0.985       6.147
    +sll_inst.pcount[0]          sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     Q       pcount[0]        0.955       6.178
    +sll_inst.pcount_diff[1]     sgmii_ecp5|tx_pclk_inferred_clock     FD1P3BX     Q       un13_lock_1      0.955       6.239
    +sll_inst.pcount_diff[2]     sgmii_ecp5|tx_pclk_inferred_clock     FD1P3BX     Q       un13_lock_2      0.955       6.239
    +sll_inst.pcount[1]          sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     Q       pcount[1]        0.907       6.287
    +sll_inst.pcount[2]          sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     Q       pcount[2]        0.907       6.287
    +sll_inst.pcount_diff[3]     sgmii_ecp5|tx_pclk_inferred_clock     FD1P3BX     Q       un13_lock_3      0.955       6.300
    +sll_inst.pcount_diff[4]     sgmii_ecp5|tx_pclk_inferred_clock     FD1P3BX     Q       un13_lock_4      0.955       6.300
    +========================================================================================================================
    +
    +
    +Ending Points with Worst Slack
    +******************************
    +
    +                             Starting                                                                                  Required          
    +Instance                     Reference                             Type        Pin     Net                             Time         Slack
    +                             Clock                                                                                                       
    +-----------------------------------------------------------------------------------------------------------------------------------------
    +sll_inst.pcount[21]          sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     D       pcount_s[21]                    9.946        5.789
    +sll_inst.pcount[19]          sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     D       pcount_s[19]                    9.946        5.850
    +sll_inst.pcount[20]          sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     D       pcount_s[20]                    9.946        5.850
    +sll_inst.pcount[17]          sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     D       pcount_s[17]                    9.946        5.911
    +sll_inst.pcount[18]          sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     D       pcount_s[18]                    9.946        5.911
    +sll_inst.pcount[15]          sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     D       pcount_s[15]                    9.946        5.972
    +sll_inst.pcount[16]          sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     D       pcount_s[16]                    9.946        5.972
    +sll_inst.pcount[13]          sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     D       pcount_s[13]                    9.946        6.033
    +sll_inst.pcount[14]          sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     D       pcount_s[14]                    9.946        6.033
    +sll_inst.pcount_diff[21]     sgmii_ecp5|tx_pclk_inferred_clock     FD1P3DX     D       un1_pcount_diff_1_s_21_0_S0     9.946        6.034
    +=========================================================================================================================================
    +
    +
    +
    +Worst Path Information
    +View Worst Path in Analyst
    +***********************
    +
    +
    +Path information for path number 1: 
    +      Requested Period:                      10.000
    +    - Setup time:                            0.054
    +    + Clock delay at ending point:           0.000 (ideal)
    +    = Required time:                         9.946
    +
    +    - Propagation time:                      4.157
    +    - Clock delay at starting point:         0.000 (ideal)
    +    = Slack (non-critical) :                 5.789
    +
    +    Number of logic level(s):                13
    +    Starting point:                          sll_inst.ppul_sync_p1 / Q
    +    Ending point:                            sll_inst.pcount[21] / D
    +    The start point is clocked by            sgmii_ecp5|tx_pclk_inferred_clock [rising] on pin CK
    +    The end   point is clocked by            sgmii_ecp5|tx_pclk_inferred_clock [rising] on pin CK
    +
    +Instance / Net                             Pin      Pin               Arrival     No. of    
    +Name                          Type         Name     Dir     Delay     Time        Fan Out(s)
    +--------------------------------------------------------------------------------------------
    +sll_inst.ppul_sync_p1         FD1S3DX      Q        Out     1.098     1.098       -         
    +ppul_sync_p1                  Net          -        -       -         -           25        
    +sll_inst.pcount10_0_o3        ORCALUT4     A        In      0.000     1.098       -         
    +sll_inst.pcount10_0_o3        ORCALUT4     Z        Out     0.851     1.950       -         
    +N_8                           Net          -        -       -         -           25        
    +sll_inst.pcount_cry_0[0]      CCU2C        A1       In      0.000     1.950       -         
    +sll_inst.pcount_cry_0[0]      CCU2C        COUT     Out     0.900     2.850       -         
    +pcount_cry[0]                 Net          -        -       -         -           1         
    +sll_inst.pcount_cry_0[1]      CCU2C        CIN      In      0.000     2.850       -         
    +sll_inst.pcount_cry_0[1]      CCU2C        COUT     Out     0.061     2.911       -         
    +pcount_cry[2]                 Net          -        -       -         -           1         
    +sll_inst.pcount_cry_0[3]      CCU2C        CIN      In      0.000     2.911       -         
    +sll_inst.pcount_cry_0[3]      CCU2C        COUT     Out     0.061     2.972       -         
    +pcount_cry[4]                 Net          -        -       -         -           1         
    +sll_inst.pcount_cry_0[5]      CCU2C        CIN      In      0.000     2.972       -         
    +sll_inst.pcount_cry_0[5]      CCU2C        COUT     Out     0.061     3.033       -         
    +pcount_cry[6]                 Net          -        -       -         -           1         
    +sll_inst.pcount_cry_0[7]      CCU2C        CIN      In      0.000     3.033       -         
    +sll_inst.pcount_cry_0[7]      CCU2C        COUT     Out     0.061     3.094       -         
    +pcount_cry[8]                 Net          -        -       -         -           1         
    +sll_inst.pcount_cry_0[9]      CCU2C        CIN      In      0.000     3.094       -         
    +sll_inst.pcount_cry_0[9]      CCU2C        COUT     Out     0.061     3.155       -         
    +pcount_cry[10]                Net          -        -       -         -           1         
    +sll_inst.pcount_cry_0[11]     CCU2C        CIN      In      0.000     3.155       -         
    +sll_inst.pcount_cry_0[11]     CCU2C        COUT     Out     0.061     3.216       -         
    +pcount_cry[12]                Net          -        -       -         -           1         
    +sll_inst.pcount_cry_0[13]     CCU2C        CIN      In      0.000     3.216       -         
    +sll_inst.pcount_cry_0[13]     CCU2C        COUT     Out     0.061     3.277       -         
    +pcount_cry[14]                Net          -        -       -         -           1         
    +sll_inst.pcount_cry_0[15]     CCU2C        CIN      In      0.000     3.277       -         
    +sll_inst.pcount_cry_0[15]     CCU2C        COUT     Out     0.061     3.338       -         
    +pcount_cry[16]                Net          -        -       -         -           1         
    +sll_inst.pcount_cry_0[17]     CCU2C        CIN      In      0.000     3.338       -         
    +sll_inst.pcount_cry_0[17]     CCU2C        COUT     Out     0.061     3.399       -         
    +pcount_cry[18]                Net          -        -       -         -           1         
    +sll_inst.pcount_cry_0[19]     CCU2C        CIN      In      0.000     3.399       -         
    +sll_inst.pcount_cry_0[19]     CCU2C        COUT     Out     0.061     3.460       -         
    +pcount_cry[20]                Net          -        -       -         -           1         
    +sll_inst.pcount_s_0[21]       CCU2C        CIN      In      0.000     3.460       -         
    +sll_inst.pcount_s_0[21]       CCU2C        S0       Out     0.698     4.157       -         
    +pcount_s[21]                  Net          -        -       -         -           1         
    +sll_inst.pcount[21]           FD1S3DX      D        In      0.000     4.157       -         
    +============================================================================================
    +
    +
    +
    +
    +====================================
    +Detailed Report for Clock: System
    +====================================
    +
    +
    +
    +Starting Points with Worst Slack
    +********************************
    +
    +              Starting                                                 Arrival          
    +Instance      Reference     Type     Pin              Net              Time        Slack
    +              Clock                                                                     
    +----------------------------------------------------------------------------------------
    +DCU0_inst     System        DCUA     CH0_FFS_RLOL     rx_cdr_lol_s     0.000       8.810
    +DCU0_inst     System        DCUA     CH0_FFS_RLOS     rx_los_low_s     0.000       8.810
    +========================================================================================
    +
    +
    +Ending Points with Worst Slack
    +******************************
    +
    +                                                       Starting                                                            Required          
    +Instance                                               Reference     Type        Pin     Net                               Time         Slack
    +                                                       Clock                                                                                 
    +---------------------------------------------------------------------------------------------------------------------------------------------
    +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0]     System        FD1P3DX     SP      un2_rdo_serdes_rst_dual_c_2_i     9.806        8.810
    +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0]     System        FD1P3DX     D       rxpr_appd_RNO[0]                  9.946        9.556
    +rsl_inst.genblk2\.rlol_p1                              System        FD1S3DX     D       rx_cdr_lol_s                      9.946        9.946
    +rsl_inst.genblk2\.rlos_p1                              System        FD1S3DX     D       rx_los_low_s                      9.946        9.946
    +=============================================================================================================================================
    +
    +
    +
    +Worst Path Information
    +View Worst Path in Analyst
    +***********************
    +
    +
    +Path information for path number 1: 
    +      Requested Period:                      10.000
    +    - Setup time:                            0.194
    +    + Clock delay at ending point:           0.000 (ideal)
    +    = Required time:                         9.806
    +
    +    - Propagation time:                      0.996
    +    - Clock delay at starting point:         0.000 (ideal)
    +    - Estimated clock delay at start point:  -0.000
    +    = Slack (non-critical) :                 8.810
    +
    +    Number of logic level(s):                2
    +    Starting point:                          DCU0_inst / CH0_FFS_RLOL
    +    Ending point:                            rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] / SP
    +    The start point is clocked by            System [rising]
    +    The end   point is clocked by            sgmii_ecp5|rxrefclk [rising] on pin CK
    +
    +Instance / Net                                                            Pin              Pin               Arrival     No. of    
    +Name                                                         Type         Name             Dir     Delay     Time        Fan Out(s)
    +-----------------------------------------------------------------------------------------------------------------------------------
    +DCU0_inst                                                    DCUA         CH0_FFS_RLOL     Out     0.000     0.000       -         
    +rx_cdr_lol_s                                                 Net          -                -       -         -           4         
    +rsl_inst.un2_rdo_serdes_rst_dual_c_1_1                       ORCALUT4     A                In      0.000     0.000       -         
    +rsl_inst.un2_rdo_serdes_rst_dual_c_1_1                       ORCALUT4     Z                Out     0.606     0.606       -         
    +un2_rdo_serdes_rst_dual_c_1_1                                Net          -                -       -         -           1         
    +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd_RNO_0[0]     ORCALUT4     B                In      0.000     0.606       -         
    +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd_RNO_0[0]     ORCALUT4     Z                Out     0.390     0.996       -         
    +un2_rdo_serdes_rst_dual_c_2_i                                Net          -                -       -         -           1         
    +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0]           FD1P3DX      SP               In      0.000     0.996       -         
    +===================================================================================================================================
    +
    +
    +
    +##### END OF TIMING REPORT #####]
    +
    +Timing exceptions that could not be applied
    +None
    +
    +Finished final timing analysis (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB)
    +
    +
    +Finished timing report (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB)
    +
    +---------------------------------------
    +Resource Usage Report
    +Part: lfe5um_25f-6
    +
    +Register bits: 221 of 24288 (1%)
    +PIC Latch:       0
    +I/O cells:       0
    +
    +
    +Details:
    +CCU2C:          113
    +DCUA:           1
    +FD1P3BX:        20
    +FD1P3DX:        92
    +FD1S3BX:        12
    +FD1S3DX:        97
    +GSR:            1
    +INV:            3
    +ORCALUT4:       154
    +PFUMX:          2
    +PUR:            1
    +VHI:            6
    +VLO:            6
    +Mapper successful!
    +
    +At Mapper Exit (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 35MB peak: 153MB)
    +
    +Process took 0h:00m:03s realtime, 0h:00m:03s cputime
    +# Fri May 10 09:02:16 2019
    +
    +###########################################################]
    +
    +
    diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/syntmp/sgmii_ecp5_toc.htm b/gbe/cores/sgmii/sgmii_ecp5/syn_results/syntmp/sgmii_ecp5_toc.htm new file mode 100644 index 0000000..7eb2da0 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/syntmp/sgmii_ecp5_toc.htm @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/syntmp/statusReport.html b/gbe/cores/sgmii/sgmii_ecp5/syn_results/syntmp/statusReport.html new file mode 100644 index 0000000..3cf8cd2 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/syntmp/statusReport.html @@ -0,0 +1,115 @@ + + + Project Status Summary Page + + + + + + +
    + + + + + + + + + + +
    Project Settings
    Project Name sgmii_ecp5 Device Name syn_results: Lattice ECP5UM : LFE5UM_25F
    Implementation Name syn_results Top Module sgmii_ecp5
    Pipelining 0 Retiming 0
    Resource Sharing 1 Fanout Guide 50
    Disable I/O Insertion 1 Disable Sequential Optimizations 0
    Clock Conversion 1 FSM Compiler 1

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Run Status
    Job NameStatusCPU TimeReal TimeMemoryDate/Time
    (compiler)Complete15760-00m:02s-5/10/19
    9:02 AM
    (premap)Complete9300m:00s0m:00s144MB5/10/19
    9:02 AM
    (fpga_mapper)Complete22400m:03s0m:03s153MB5/10/19
    9:02 AM
    Multi-srs GeneratorComplete5/10/19
    9:02 AM
    +
    + + + + + + + + + + + + + + + + +
    Area Summary
    Register bits 221I/O cells 0
    Block RAMs +(v_ram) 0DSPs +(dsp_used) 0
    ORCA LUTs +(total_luts) 154

    + + + + + + + + + + + +
    Timing Summary
    Clock NameReq FreqEst FreqSlack
    sgmii_ecp5|pll_refclki100.0 MHz168.9 MHz4.079
    sgmii_ecp5|rxrefclk100.0 MHz167.9 MHz4.043
    sgmii_ecp5|tx_pclk_inferred_clock100.0 MHz237.5 MHz5.789
    System100.0 MHz840.7 MHz8.810
    +
    + + + + + + +
    Optimizations Summary
    Combined Clock Conversion 3 / 0

    +
    +
    + \ No newline at end of file diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/.cckTransfer b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/.cckTransfer new file mode 100644 index 0000000000000000000000000000000000000000..b4c45f7568eff1935f2bb86e32cabafe5d0c22e6 GIT binary patch literal 456 zcmV;(0XP01iwFP!0000015#C0RVXORFG)=>pKqQ)N6H;gm~}q>39KS z8E=J0|4m>w&WRXu@FiknLB_ZVh}r0Sk1g}?!GF|X^&pEO=dq)2HRhxpPVMR!ZtGn) zE6sR5KLTji(+bsP8)fuf&$PwoPbaje_2b70?P?>@#t>p{*bm1BJv6-Ua0o(vpSjqi z4!H}+L1lQ$Hzb*DVbV;J4L&m5Wz@{%6d~`~5$b(o15!DPOGYOa89VSC(u~n_n2iY1 zgP1{%C1hAC@}@#+5^wT3{Rz=FrFX6~>tfofs y<#{gtcmZW<0o=o~`0^Q+=)e0ssL2{{sMNLS0y`0ssJEw%q>! literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/_mh_info b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/_mh_info new file mode 100644 index 0000000..1a725a4 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/_mh_info @@ -0,0 +1,2 @@ +|/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/layer1.info| +|2| diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/_verilog_hintfile b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/_verilog_hintfile new file mode 100644 index 0000000..d5a098c --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/_verilog_hintfile @@ -0,0 +1,69 @@ +%%% protect protected_file +#OPTIONS:"|-bldtbl|-prodtype|synplify_pro|-dspmac|-fixsmult|-infer_seqShift|-nram|-sdff_counter|-divnmod|-nostructver|-encrypt|-pro|-lite|-ui|-fid2|-ram|-sharing|on|-ll|2000|-autosm|-ignore_undefined_lib|-lib|work" +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/linux_a_64/c_vhdl":1542167766 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/location.map":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/snps_haps_pkg.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std1164.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/numeric.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/umr_capim.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/arith.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/unsigned.vhd":1542167610 +#CUR:"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd":1557471728 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":1542167599 +@E8lFkRDC#HolHO_CbD6 +HNLssI$RF +s Fbk0kE0R80Fkb +R4Fbk0kE0R80FkM +R4HkMb08REHRMb4M +HbRk0EM8HM +R4HkMb0GRssOCVD4 R +0FkbRk00bG_ORD 4M +HbRk00_GHORD 4M +HbRk00NG80UNR +bHMk00RGR_ 4M +HbRk0G0lHRH4 +M0bkR_0G8bH#_sOFs0CORF4 +kk0b0GRs8NN0RFU +kk0b0GRs_4 R +0FkbRk0s8G_H_#bCRss4k +F00bkR_sGOCP_s4sR +bHMk#0RHNoMDC_800CO_4OR +0FkbRk0sDG_FD#_F#I_RF4 +kk0b0#RDl0_#N#0k_4#R +0FkbRk0O_0OkMsk_4#R +0FkbRk0O_0OFMsk_4#R +0FkbRk0sOG_8Ds_F#D_RF4 +kk0b00ROOM_H#R_#4k +F00bkROO0_D8C_4#R +bHMk#0RDsH_#40R +bHMk00RGI_bs_kbO +R4HkMb0GRs_sbIkOb_RH4 +M0bkRH#O_8IsNR0NUM +HbRk0#_OHNs88RFn +kk0b0OR#H8_s8NN0RHU +M0bkRH#O__CM8DkNRH4 +M0bkRH#O_D#C_N8kD +R4HkMb0OR#HM_CRH4 +M0bkRH#O_D#CRH4 +M0bkRH#O_Rs84M +HbRk0#_OHIRsM4k +F00bkRH#O_0HMRH4 +M0bkRNO$IM#0RH4 +M0bkRs#C8_C#bR8L4M +HbRk0b_DDsOCVDR H4M +HbRk0s_#D8NH#LRDC4M +HbRk0s_#DsR#04M +HbRk0#8CsCs#_#80_k_NDO +R4HkMb0#Rs0k_8NOD_RH4 +M0bkR_0G#8CsCs#_#O0_RH4 +M0bkR_0Gb_O#s_#0O +R4Fbk0kb0RDDD_F4DR +0FkbRk0s_#D0sG_84$R +bHMks0RGC_#s#8C_0s#_4OR +bHMks0RGO_b##_s0R_O4k +F00bkRDs#__sGsR8$4M +C88lFk +DC + +@ diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/layer0.fdep b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/layer0.fdep new file mode 100644 index 0000000..23da417 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/layer0.fdep @@ -0,0 +1,33 @@ +#defaultlanguage:vhdl +#OPTIONS:"|-mixedhdl|-top|sgmii_ecp5|-layerid|0|-orig_srs|/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.srs|-prodtype|synplify_pro|-dspmac|-fixsmult|-infer_seqShift|-nram|-sdff_counter|-divnmod|-nostructver|-encrypt|-pro|-lite|-ui|-fid2|-ram|-sharing|on|-ll|2000|-autosm|-ignore_undefined_lib|-lib|work" +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/linux_a_64/c_vhdl":1542167766 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/location.map":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/snps_haps_pkg.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std1164.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/numeric.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/umr_capim.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/arith.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/unsigned.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/hyperents.vhd":1542167610 +#CUR:"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd":1557471728 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":1542167599 +0 "/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd" vhdl + +# Dependency Lists (Uses list) +0 -1 + +# Dependency Lists (Users Of) +0 -1 + +# Design Unit to File Association +arch work sgmii_ecp5 v1 0 +module work sgmii_ecp5 0 + +# Unbound Instances to File Association +inst work sgmii_ecp5 sgmii_ecp5sll_core 0 +inst work sgmii_ecp5 sgmii_ecp5rsl_core 0 +inst work sgmii_ecp5 dcua 0 + + +# Configuration files used diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/layer0.fdeporig b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/layer0.fdeporig new file mode 100644 index 0000000..7f50852 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/layer0.fdeporig @@ -0,0 +1,29 @@ +#defaultlanguage:vhdl +#OPTIONS:"|-mixedhdl|-top|sgmii_ecp5|-layerid|0|-orig_srs|/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.srs|-prodtype|synplify_pro|-dspmac|-fixsmult|-infer_seqShift|-nram|-sdff_counter|-divnmod|-nostructver|-encrypt|-pro|-lite|-ui|-fid2|-ram|-sharing|on|-ll|2000|-autosm|-ignore_undefined_lib|-lib|work" +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/linux_a_64/c_vhdl":1542167766 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/location.map":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/snps_haps_pkg.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std1164.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/numeric.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/umr_capim.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/arith.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/unsigned.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/hyperents.vhd":1542167610 +#CUR:"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd":1557471728 +0 "/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd" vhdl + +# Dependency Lists (Uses list) +0 -1 + +# Dependency Lists (Users Of) +0 -1 + +# Design Unit to File Association +arch work sgmii_ecp5 v1 0 +module work sgmii_ecp5 0 + +# Unbound Instances to File Association +inst work sgmii_ecp5 sgmii_ecp5sll_core 0 +inst work sgmii_ecp5 sgmii_ecp5rsl_core 0 +inst work sgmii_ecp5 dcua 0 diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/layer0.srs b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/layer0.srs new file mode 100644 index 0000000000000000000000000000000000000000..20f66e09bdf939ee38e1cf242bcd4f0ac6d51cf9 GIT binary patch literal 50502 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/layer0.tlg b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/layer0.tlg new file mode 100644 index 0000000..79092c2 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/layer0.tlg @@ -0,0 +1,2 @@ +@N: CD630 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd":30:7:30:16|Synthesizing work.sgmii_ecp5.v1. +Post processing for work.sgmii_ecp5.v1 diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/layer0.tlg.db b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/layer0.tlg.db new file mode 100644 index 0000000000000000000000000000000000000000..28759a6f603ccd5393c9e9104f67f41926723531 GIT binary patch literal 8192 zcmeI#F;4<96bJAgnivOzi*X`pm^9HVgn$tj5!rB1*iAX=U4`pi+82z*1t(+t!fxKd z5!hVZ_`lq}*Ea7B{cRoG_cba0l-O7jZ?Hq=dF+~V##pKNv$6;;%e%!oFZuqjD6#XO z&x5SXD}S-nHQ>OS;3 z!yX@YZu&jGIz7>2K9e?xq&?$PZ6@no(Xu|6XtU9rW|P{`>GEw(tV~Gmv=`y-P=~9RuxeaD2 G?~h+s=wZ$P literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/layer1.fdep b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/layer1.fdep new file mode 100644 index 0000000..ede843b --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/layer1.fdep @@ -0,0 +1,22 @@ +#OPTIONS:"|-mixedhdl|-modhint|/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/_verilog_hintfile|-top|work.sgmii_ecp5sll_core|-top|work.sgmii_ecp5rsl_core|-mpparams|/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/_mh_params|-layerid|1|-orig_srs|/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.srs|-prodtype|synplify_pro|-dspmac|-fixsmult|-infer_seqShift|-nram|-sdff_counter|-divnmod|-nostructver|-I|/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/|-I|/home/soft/lattice/diamond/3.10_x64/synpbase/lib|-v2001|-devicelib|/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v|-devicelib|/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v|-encrypt|-pro|-ui|-fid2|-ram|-sharing|on|-ll|2000|-autosm|-lib|work" +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/linux_a_64/c_ver":1542167761 +#CUR:"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/_verilog_hintfile":1557471729 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v":1542167595 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v":1542167597 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v":1542167630 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v":1542167630 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v":1542167630 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh":1542167630 +#CUR:"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1557471728 +#numinternalfiles:6 +#defaultlanguage:verilog +0 "/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v" verilog +#Dependency Lists(Uses List) +0 -1 +#Dependency Lists(Users Of) +0 -1 +#Design Unit to File Association +module work sgmii_ecp5rsl_core 0 +module work sync 0 +module work sgmii_ecp5sll_core 0 +#Unbound instances to file Association. diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/layer1.fdepxmr b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/layer1.fdepxmr new file mode 100644 index 0000000..37d628b --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/layer1.fdepxmr @@ -0,0 +1 @@ +#XMR Information diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/layer1.info b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/layer1.info new file mode 100644 index 0000000..ddcec68 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/layer1.info @@ -0,0 +1,2 @@ +|work.sgmii_ecp5rsl_core|parameter pnum_channels 1;,parameter pprotocol "GBE";,parameter pserdes_mode "RX AND TX";,parameter pport_tx_rdy "ENABLED";,parameter pwait_tx_rdy 3000;,parameter pport_rx_rdy "ENABLED";,parameter pwait_rx_rdy 3000;| +|work.sgmii_ecp5sll_core|parameter PPROTOCOL "GBE";,parameter PLOL_SETTING 0;,parameter PDYN_RATE_CTRL "DISABLED";,parameter PPCIE_MAX_RATE "2.5";,parameter PDIFF_VAL_LOCK 39;,parameter PDIFF_VAL_UNLOCK 78;,parameter PPCLK_TC 131072;,parameter PDIFF_DIV11_VAL_LOCK 0;,parameter PDIFF_DIV11_VAL_UNLOCK 0;,parameter PPCLK_DIV11_TC 0;| diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/layer1.srs b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/layer1.srs new file mode 100644 index 0000000000000000000000000000000000000000..5f520093f8206e09c63c08c49528b621fa9d7d89 GIT binary patch literal 21453 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%0AdRLBvW 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/layer1.tlg b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/layer1.tlg new file mode 100644 index 0000000..52a25c2 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/layer1.tlg @@ -0,0 +1,252 @@ +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +@N: CG364 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1968:7:1968:10|Synthesizing module sync in library work. + + PDATA_RST_VAL=32'b00000000000000000000000000000000 + Generated name = sync_0s +@N: CG364 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1051:7:1051:24|Synthesizing module sgmii_ecp5sll_core in library work. + + PPROTOCOL=24'b010001110100001001000101 + PLOL_SETTING=32'b00000000000000000000000000000000 + PDYN_RATE_CTRL=64'b0100010001001001010100110100000101000010010011000100010101000100 + PPCIE_MAX_RATE=24'b001100100010111000110101 + PDIFF_VAL_LOCK=32'b00000000000000000000000000100111 + PDIFF_VAL_UNLOCK=32'b00000000000000000000000001001110 + PPCLK_TC=32'b00000000000000100000000000000000 + PDIFF_DIV11_VAL_LOCK=32'b00000000000000000000000000000000 + PDIFF_DIV11_VAL_UNLOCK=32'b00000000000000000000000000000000 + PPCLK_DIV11_TC=32'b00000000000000000000000000000000 + LPLL_LOSS_ST=2'b00 + LPLL_PRELOSS_ST=2'b01 + LPLL_PRELOCK_ST=2'b10 + LPLL_LOCK_ST=2'b11 + LRCLK_TC=16'b1111111111111111 + LRCLK_TC_PUL_WIDTH=16'b0000000000110010 + LHB_WAIT_CNT=8'b11111111 + LPCLK_TC_0=32'b00000000000000001000000000000000 + LPCLK_TC_1=32'b00000000000000010000000000000000 + LPCLK_TC_2=32'b00000000000000100000000000000000 + LPCLK_TC_3=32'b00000000000000101000000000000000 + LPCLK_TC_4=32'b00000000000000010000000000000000 + LPDIFF_LOCK_00=32'b00000000000000000000000000001001 + LPDIFF_LOCK_10=32'b00000000000000000000000000010011 + LPDIFF_LOCK_20=32'b00000000000000000000000000100111 + LPDIFF_LOCK_30=32'b00000000000000000000000000110001 + LPDIFF_LOCK_40=32'b00000000000000000000000000010011 + LPDIFF_LOCK_01=32'b00000000000000000000000000001001 + LPDIFF_LOCK_11=32'b00000000000000000000000000010011 + LPDIFF_LOCK_21=32'b00000000000000000000000000100111 + LPDIFF_LOCK_31=32'b00000000000000000000000000110001 + LPDIFF_LOCK_41=32'b00000000000000000000000000010011 + LPDIFF_LOCK_02=32'b00000000000000000000000000110001 + LPDIFF_LOCK_12=32'b00000000000000000000000001100010 + LPDIFF_LOCK_22=32'b00000000000000000000000011000100 + LPDIFF_LOCK_32=32'b00000000000000000000000011110101 + LPDIFF_LOCK_42=32'b00000000000000000000000001100010 + LPDIFF_LOCK_03=32'b00000000000000000000000010000011 + LPDIFF_LOCK_13=32'b00000000000000000000000100000110 + LPDIFF_LOCK_23=32'b00000000000000000000001000001100 + LPDIFF_LOCK_33=32'b00000000000000000000001010001111 + LPDIFF_LOCK_43=32'b00000000000000000000000100000110 + LPDIFF_UNLOCK_00=32'b00000000000000000000000000010011 + LPDIFF_UNLOCK_10=32'b00000000000000000000000000100111 + LPDIFF_UNLOCK_20=32'b00000000000000000000000001001110 + LPDIFF_UNLOCK_30=32'b00000000000000000000000001100010 + LPDIFF_UNLOCK_40=32'b00000000000000000000000000100111 + LPDIFF_UNLOCK_01=32'b00000000000000000000000001000001 + LPDIFF_UNLOCK_11=32'b00000000000000000000000010000011 + LPDIFF_UNLOCK_21=32'b00000000000000000000000100000110 + LPDIFF_UNLOCK_31=32'b00000000000000000000000101000111 + LPDIFF_UNLOCK_41=32'b00000000000000000000000010000011 + LPDIFF_UNLOCK_02=32'b00000000000000000000000001001000 + LPDIFF_UNLOCK_12=32'b00000000000000000000000010010000 + LPDIFF_UNLOCK_22=32'b00000000000000000000000100100000 + LPDIFF_UNLOCK_32=32'b00000000000000000000000101101000 + LPDIFF_UNLOCK_42=32'b00000000000000000000000010010000 + LPDIFF_UNLOCK_03=32'b00000000000000000000000011000100 + LPDIFF_UNLOCK_13=32'b00000000000000000000000110001001 + LPDIFF_UNLOCK_23=32'b00000000000000000000001100010010 + LPDIFF_UNLOCK_33=32'b00000000000000000000001111010111 + LPDIFF_UNLOCK_43=32'b00000000000000000000000110001001 + Generated name = sgmii_ecp5sll_core_Z1_layer1 +@N: CG179 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1287:54:1287:59|Removing redundant assignment. +@N: CG179 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1293:52:1293:55|Removing redundant assignment. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1350:0:1350:5|Pruning unused register rcpri_mod_ch_st. Make sure that there are no unused intermediate registers. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 0 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 0 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 1 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 2 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 16 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 18 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 19 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 20 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 21 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +@N: CG364 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":92:7:92:24|Synthesizing module sgmii_ecp5rsl_core in library work. + + pnum_channels=32'b00000000000000000000000000000001 + pprotocol=24'b010001110100001001000101 + pserdes_mode=72'b010100100101100000100000010000010100111001000100001000000101010001011000 + pport_tx_rdy=56'b01000101010011100100000101000010010011000100010101000100 + pwait_tx_rdy=32'b00000000000000000000101110111000 + pport_rx_rdy=56'b01000101010011100100000101000010010011000100010101000100 + pwait_rx_rdy=32'b00000000000000000000101110111000 + wa_num_cycles=32'b00000000000000000000010000000000 + dac_num_cycles=32'b00000000000000000000000000000011 + lreset_pwidth=32'b00000000000000000000000000000011 + lwait_b4_trst=32'b00000000000010111110101111000010 + lwait_b4_trst_s=32'b00000000000000000000001100001101 + lplol_cnt_width=32'b00000000000000000000000000010100 + lwait_after_plol0=32'b00000000000000000000000000000100 + lwait_b4_rrst=32'b00000000000000101100000000000000 + lrrst_wait_width=32'b00000000000000000000000000010100 + lwait_after_rrst=32'b00000000000011000011010100000000 + lwait_b4_rrst_s=32'b00000000000000000000000111001100 + lrlol_cnt_width=32'b00000000000000000000000000010011 + lwait_after_lols=32'b00000000000000001100010000000000 + lwait_after_lols_s=32'b00000000000000000000000010010110 + llols_cnt_width=32'b00000000000000000000000000010010 + lrdb_max=32'b00000000000000000000000000001111 + ltxr_wait_width=32'b00000000000000000000000000001100 + lrxr_wait_width=32'b00000000000000000000000000001100 + Generated name = sgmii_ecp5rsl_core_Z2_layer1 +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":326:33:326:40|Object rrst_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":327:33:327:43|Removing wire rrst_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":328:33:328:41|Object rrst_wait is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":341:33:341:39|Object rxp_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":342:33:342:39|Object rxp_rst is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":343:33:343:42|Removing wire rxp_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":346:33:346:42|Object rlolsz_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":347:33:347:45|Removing wire rlolsz_cnt_tc, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":350:33:350:43|Removing wire rxp_cnt2_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":351:33:351:47|Object data_loop_b_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":352:33:352:43|Object data_loop_b is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":353:33:353:46|Removing wire data_loop_b_tc, as there is no assignment to it. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":806:3:806:8|Pruning unused register genblk2.rxp_cnt2[2:0]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlol_p3. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlos_p3. Make sure that there are no unused intermediate registers. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":694:3:694:8|Optimizing register bit genblk2.rxs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":461:3:461:8|Optimizing register bit genblk1.txp_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":422:3:422:8|Optimizing register bit genblk1.txs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":422:3:422:8|Pruning register bit 2 of genblk1.txs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":461:3:461:8|Pruning register bit 2 of genblk1.txp_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":694:3:694:8|Pruning register bit 2 of genblk2.rxs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":200:33:200:48|Input port bits 3 to 1 of rui_tx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":204:33:204:51|Input port bits 3 to 1 of rui_rx_serdes_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":205:33:205:48|Input port bits 3 to 1 of rui_rx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":206:33:206:48|Input port bits 3 to 1 of rdi_rx_los_low_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":207:33:207:48|Input port bits 3 to 1 of rdi_rx_cdr_lol_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning register bits 6 to 4 of genblk5.rdiff_comp_unlock[6:3]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning register bits 5 to 3 of genblk5.rdiff_comp_lock[5:2]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rdiff_comp_unlock[3]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rcount_tc[17]. Make sure that there are no unused intermediate registers. +@N: CL201 :"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v":1801:0:1801:5|Trying to extract state machine for register sll_state. +Extracted state machine for register sll_state +State machine has 4 reachable states with original encodings of: + 00 + 01 + 10 + 11 diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/layer1.tlg.db b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/layer1.tlg.db new file mode 100644 index 0000000000000000000000000000000000000000..d0d562de367d762a81a4d6c50f92664a96b2d156 GIT binary patch literal 28672 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/modulechange_mixhdl/layer0/modulechange.db b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/modulechange_mixhdl/layer0/modulechange.db new file mode 100644 index 0000000000000000000000000000000000000000..aa7cae8285f00354388b68b5d5fb216ce303ddf4 GIT binary patch literal 20480 zcmeI&y>HV%7zS{=agw%>983{IBv%z`D?&}xkAVRw5Kuo5w6qhI!o|KMNBt%H5(ooQ zHfGlH4=^yZF)?*w04AnRNJxkQsbYe&TSKbS#Y;u?Sjw9_J9+Nz=VUk~_g9v=V0yy~ z94ho_<&2`L$~9eA6eTAgS@}qgqHJhMM?R~4?W3AG<>Jrh1$k8~t}En4@l|o1oImQt zI1d2`KmY;|fB*y_009U<00RG+z^axjjg6^H(7MeW&uZJuVm@=N@IWVfW3@WJR@K+$ zuP;~i1DD3{EZo$&D=PY}y~f1TOujTSqV}%#g>tvy?Y%8(Y5$0e&L>%{$pYOExI=@k zzR9{3-R5<@Lj$u#gNkl4+y2|@aP~OqO>AcKrO{EfSB}SSaGS}uxJ?%JH8TfB@4GO* zzkJFnS(1G)%n2qsO44m8_$pA092* zo1Z%UMj@}sLsBYk7oQcU3p<6a!o5O9p2h(I2tWV=5P$##AOHafK;XCq7KgJ+k7!2A zbC?l&4Pn?+2yQaN;?(h6%b1>=x>S2IH)Did*RRu%8FII0bXu0tc0=BDnKdap55B&< zyfh@U&Zf+Af|^Nv?j&IggEFj;E-Vz*)YRNe5>?I1sBG$}B<5~T#+*wT0f zn@Qk8HvJOaw!;E$CQ*x;j7oVMZO^2Fd+ww|{rEO!WLC=C*y{Q$V6F(0iQOKMVMFQA zXuw4)30hLq&B|_@ay|w#{n>W%;WAd_@A19z{;a4KaOxUOE({UWXG7Bv%<<*dfEj+^ zJz}OX!luLdUadt*ea&co8y`o$NBe)3>?&lJ{2<@R7qUY>lTYM5*(UGE+vEP4V|)le z00Izz00bZa0SG_<0uX=z1mwT!hck-$OB;&oU|jQY&BZkvS1qoYxDLcs&E%DgqHTP* zvK8(B<)8j>KmY;|fB*y_009U<00Izz00ba#f(5YuKfyN_OM?IeAOHafKmY;|fB*y_ K009W>3;YJv58qP& literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/modulechange_mixhdl/layer1/modulechange.db b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/modulechange_mixhdl/layer1/modulechange.db new file mode 100644 index 0000000000000000000000000000000000000000..9ca49625bd399a109b5f0e8bce10e73edad1734e GIT binary patch literal 20480 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_m_srm/1.srm b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_m_srm/1.srm new file mode 100644 index 0000000000000000000000000000000000000000..24e4b25ab3caee4229a7c7c2b1069b76933e0f28 GIT binary patch literal 68623 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_m_srm/fileinfo.srm b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_m_srm/fileinfo.srm new file mode 100644 index 0000000000000000000000000000000000000000..2580c6845f6359b951e12574ebb913b552f095bb GIT binary patch literal 409 zcmV;K0cQRmiwFP!000001I*RUa)Tfc2k?8Jg0YihB{pB}Bt8NR(u$XDyzBox^ zXnW~rynu4p{fY8-Hk&aYx(F)1&7eh%25xFr@V2wSsjDM5GDcLuHA>q#%@<`g7cc82 zr-So5Nx%*6_`cPgqAt^1Y}xHlhs|$f%~**f(yC$A_IR&aG+G#>$cnqFIIVgaz{L;C z;8ZyHL}T;q_hHVHXk{AwbCVIP$q=Kis`WC%-A@JQdJ6$nhFeSp*V`bJ^k_5QawU}oPhQ|DAD>b_a%wE% zaTK8Z>f$m(K1^W`O|Md2KH&QNY&=eoHzxAwuR&2dErVvo{M>X9ryw$2b4LG`!&?*@ z>PtxVzmR>ZcKqmVr|A-Me+9@zs*aGw6(FP_y_#+}9KdW>mRG}g^gt!;+Yz&RkD>jS zF+U3+F+59ZGW@1T*ZO}q$r;r-ilvruG;IDbb!)B0Mh~AfdIbOg|NjF33wuh~=L!G- DXlKD- literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_mult.srs b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_mult.srs new file mode 100644 index 0000000000000000000000000000000000000000..ba6320d6dde96cfc286a1bc7c504affac477b093 GIT binary patch literal 27481 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 HuxtSULWJ~L literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_mult_srs/1.srs b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_mult_srs/1.srs new file mode 100644 index 0000000000000000000000000000000000000000..e13e098b5032be315a3182e37cd37f0c80f6084b GIT binary patch literal 13841 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_mult_srs/fileinfo.srs b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_mult_srs/fileinfo.srs new file mode 100644 index 0000000000000000000000000000000000000000..39e6c21af975753726f6083ae273968625fb7c41 GIT binary patch literal 389 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_prem.fse b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_prem.fse new file mode 100644 index 0000000..cc147f0 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_prem.fse @@ -0,0 +1,12 @@ + +fsm_encoding {61801018011} sequential + +fsm_state_encoding {61801018011} LPLL_LOSS_ST {00} + +fsm_state_encoding {61801018011} LPLL_PRELOSS_ST {01} + +fsm_state_encoding {61801018011} LPLL_PRELOCK_ST {10} + +fsm_state_encoding {61801018011} LPLL_LOCK_ST {11} + +fsm_registers {61801018011} {sll_state[1]} {sll_state[0]} diff --git a/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_prem.srd b/gbe/cores/sgmii/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_prem.srd new file mode 100644 index 0000000000000000000000000000000000000000..d37603c56fc14f81b4574975e4b6a890be8d905c GIT binary patch literal 55856 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 Wa!}v`00030{{sLZ8DpX)%L4$?%7S|U literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/sgmii_tmpl.v b/gbe/cores/sgmii/sgmii_tmpl.v new file mode 100644 index 0000000..f02caf0 --- /dev/null +++ b/gbe/cores/sgmii/sgmii_tmpl.v @@ -0,0 +1,6 @@ +//Verilog instantiation template + +sgmii _inst (.PCSD_hdinn(), .PCSD_hdinp(), .PCSD_hdoutn(), .PCSD_hdoutp(), + .sgmii_ecp5_hdinn(), .sgmii_ecp5_hdinp(), .sgmii_ecp5_hdoutn(), + .sgmii_ecp5_hdoutp(), .pll_in125_out125_out33_CLKI(), .pll_in125_out125_out33_CLKOP(), + .pll_in125_out125_out33_CLKOS(), .pll_in125_out125_out33_LOCK()); \ No newline at end of file diff --git a/gbe/cores/sgmii/tsmac/pmi_ram_dpEbnonessdn208256208256p138702ef.ngo b/gbe/cores/sgmii/tsmac/pmi_ram_dpEbnonessdn208256208256p138702ef.ngo new file mode 100644 index 0000000000000000000000000000000000000000..eb1cb918e4662e3617e075d13f040c5011da43c6 GIT binary patch literal 11424 zcmb7K4|J5(m7h03Kmi>^0bP+j6WIdxr+oz?8IvMwE!Ou~^rgPK6l%A0B}J*CI&X^-0DR`>qyeUo|f zCY@I)*l)^zbhrwB5MUJ? zpr5P0*gs5u&iBr^Jqw3-uIuRNuJ(9mtoMzowH`GzP#9Ggl68KJ)$R?Q9(DYN(5P(z z**1)fs`E*`t=zJP)W6S;S_7nZmaRdLclsL|)-CJrxMf}YKWyr1-`KgOhu~buf^XYc zg3lx^cvBYIaHAZ9Y?X)=PM*#npdc0FI z$^W01Ks)_cT7cfaxOWQw;sko?Sl6?z>y91_&zG_QJmqt=1uUW!a-1i?G+9iHDH)4_ z`J9%r06dJT2@Aj!&nA7eTZ;Vs@7RoBjYkc>VN-$&iF1F*n$-8 z$+r>~h2C8?{I}XhXgM5j$k@nyn#eZ-HWH*(Q?oXLbur6tBjo1$NgJS14c|VBZ0w}I zy)z<(5@lm2X8Y=qvX04K7%1x${cyA800Um)E88*CORe^p=<5n)JH~pprSo*`2$Tst zg)6dUfM#%beyXeo@vcm=ThL<|_SpcMoLjJ((4!kZ?Xv)cwK8o1MDS!S9kcrY>9QVZ zqOe^wCCdQKWY12t7}vTcMtk7DE%TG&ZR@Vv)V2QhNGH+f#z5zHy(b)ib*)DgS25bw z9i~^8w&5EWE(zQ`xB8o8iMv@AkmdPj)9_?`6LW1!^a>vf;bYZ^i)B76YyB>kT3FWP zTr4%P+~8&jz;b8SrA?5%`N=YIbbNDZd<5UI9k9B-q1mJU{h=h}Hk!3N9?UVkB1+rm z0Az2=nx;BZ`ZA;_I!9Wgb=2QHR^uHNBS!Sk|DXV3yo2Z6qaJ@tlkSag*s`IAtSy)i zud&ioQF>2~5aL&O!Yu2n6D}5>)x|Lv3uZ{~achJ5)~Sq38_ba2opZ6s3dp)xc)of4 zOdO5c%&Oj+;s!0PY| zV}N?@_7k)y7Hw)@y1Jz)+=$0AmmtrDtLEa_f%DHgixEuQH`SO@n2j`~YR`StviQ zcbp!0G5s#)@W7AznVbXVC3Vcno{Cv(Ue8OK zAQi^G+aAYOK|dQJ;TBq#dfo_Z_04qb7blVkc`@PJLn2qxd9LqGiBd!7?#EZ8MWKX6 zZ`C5xiCz4YOjk1<*7{z*;MBPIRY2q#G^jD%)xhnxl(Eq1t?$*MR8#N8uS_2`bO`Hd z8AGEZTW>QoG@0o$P0;0;m{Bm2uLDM*z;rkx3NjJB-6+*?_EADC)$n#-$S4$N@oN)6 zHH}z5LC7B!&@6xTo-pq3i{tyFc!>dgEk5# zYjsMLINq>Fb4CeL2>Q{4(eP@#k~9k9Y0MghLMX1*M!}MK(PtElp{b-GgzH1bf|9iO zT*)2p5>lejH1HDoSHEE**y}T;W)#umAt;NMM4Mu(TbDSqb-g=bo5!S`hdG?;z>??YOMo^qRqWv*K%;r=@fOHNpUdJN&!ilS z^kW?T3$emq$fzomU#K7UCr{BXARw{LZZ19N&XXlHMsNt3nEeYNZMXDQXx(@;-d$QiWH>OGB-~i-J*7 ztCl3PD&m|JGBR>xZ&i4O6-{3iUT_FAXFvL%6xe=sYE`N-urAuPDI|5O92gCj_g@Fb zJFgSNrtQEq_F)Ic8?_U|DdNPi2Rks{q#YP<&rS?GyA%7!B^K=F4j%904vdct2gaMX z1LHkh_1{lk<%9Xd?yveg(iX-$y6TVEJl^tE|C|aQHha}Sp@N5_MdeQyEPuS)tNg(V z9*zT*f1!ehgFxlCRq$|zsQf1CNj``f2e!&L(ogvi#s|8}&#Ul<16<`Nhio1Wc-8mY zjE&)NSAB1XER2%{)%Sw7F&x#ZZ)?cH_`p~pFg_pEn_-{T2cM>DU>5ZxAIvF^Yv)|yJa=Gx z;H&;;wP}hCk&g}skB=(VH!*GVaEzz}zaFtM95m{{Py9B9Gf(Y*HD_Ub5~~j)J`3Yx zP8|x72l*ftoP+A{s|6dw38?l>4Oti;o{pILJal3&QjbmyXPyJoI24`OF6vSBYwa-~ zJWJHq4vZ5T)&B-r_8fvZJp{`Ox zwKk6{Dm65%g10?Hyur`4$9xboswg#hB4=YCC4jxAEsP5+HP}Tx$p>vwo2kKq-$0lb zuD8@cZPLPuZ>5RX-;lB}F7njCMFk6!x~l}xZ_LY~fCUI9C7A_-cVM(fF(4MM$sD{x z6pQ@G6yL0}UrAs#Q+;}#Cyp9&U0BKp{>$6{P{TQKpYTCc>UhIU{NSvo}Y zf$CD7YRr^Oh~*HCL!DZXEn{*4G@eqQ%}J!4M%bM&!eO5XlrE~$7gvN(Zbvtlk3IHX zx)q!Bb1VM|$u%1`PxWCa;hlaai7xNVs#8DIavg)9)Tvuja`S?4)T!luxxB%PrG{=y z%Z&?ODK#`REjKcFnbhF7Q*!r$*GRov@XIw2ULZBJFC}*_cy-j!vjMr2!Aqlt?)S-M z3tksB)De(7DZD6ZC=!z^E4(6VXih+`r|@#9p$TO3rDzQFTByO(WSg3R_L^3M2gx># zZCyS!_(D>y#_$rT!CNzO)r94*hW%ul<)?PE@Kyg^1-Z?_l2^HzS-G9S;iBGrkC?cb zz_FsXd=-#y%&`fnf%8)GjXAbG)jtxG8%u0>s{a_Zn~!#Mq^SOvW9sCN0JQtFs{awc z-0C2GQvE$tq)uX6glwzHHXmc4lu7k32+0K$k|otYoouIlWTP}m<-Z`?xdmtkvnoGK zHXpoDYNYb}$c76VBt@Taksfk!*L7ZDkr-lx%CV zaxsLIM)fWB$we*>RMj^lE4REjO4Wfc{Bo;{LsT7jH73`?I6l>Z$H)urba8O1!Fxzs z8z7C2O!a=>h+OdEuvAB{q7fxvqhnI-n?<$4K!G$$l+e2~xdPez`VB`lDVcW<2y!o@@CM z%1dwR-F~`3@>8wF-&s$%=ABPgGR0(WI3eRP&sgU8R~Br(N0^e&fw|W2!aQrrgU5d& zOv&=VTs7jt95-vZ7`9{TACW}18uOu8%^J9bsI>7ov1nk*5$$ICNc?%nfSZ}>W9n%ogS>3e(QQ$K_6 z0(gB+{qm)!moU>*e_(d|T$mTU^!nM0g()>5n0vJg^ZYyXkvoMcl_HpQJutR+-yg>< z{G~9Zeq^617v_1tufFzGVMQXQ>ZoN-hvFXE`g}IG35Nr*6BQbXD=R7ffN=leg!-Dya+svQ6bIz6_ zVKyfCH!)9Ymk~|eIqvcggemndeEu%x!kqBS9p@br=HyVx=QD028vkzZufAl4sg2?D z)3l4vv#yxGU!IYvn87^e*88|Cm-v4rK3~wK-cP#CeAP`OgP#j?YsfHh?KXBky;oiK z&bz|gs0~vOyNyUa*LnGDVMaqGX2C5^&pEx1?-i!h=QJX@ttYTlOA;oR?uw_-kgG3JuH?2^Z$MJx`q8&rDOdfk`*hV|$;n`Sr7&Vy3C)z zQ{xd6H{fG^PP(X5H;GTF{NVFQ!G(Fwf@Mpd6Q?u7FwcHw+|BTH!7t^^qQtnw{87qxJUE>;jZZEKNn3#L|T*kyyG2 zacV<${d!yff9$MD^T9BGzX;(OIM<-VQDT(8kW9^a)za=P|C3MEtD}V zeH$eVOY=~^u=E|2E-d{G$`+OaC|OtvqFiCA8l?(LH7HY9nvW8NrCO9HEGlo~A6 zq0C^Z9wi1#5tJ7!EkkL+(sGm)EUiFE!BQ0E1WVsTDZ$c8lo2d7poCzl5#<9*O(-2$ QYDU?>5|<1ttwOo*e_Hlui2wiq literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/tsmac/pmi_ram_dpEbnonessdn96649664p13506f63.ngo b/gbe/cores/sgmii/tsmac/pmi_ram_dpEbnonessdn96649664p13506f63.ngo new file mode 100644 index 0000000000000000000000000000000000000000..62bb3c470562f6d83ff2784dde192057335e0772 GIT binary patch literal 8956 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/tsmac/ts_mac_eval/models/ecp5um/JTAGG.v b/gbe/cores/sgmii/tsmac/ts_mac_eval/models/ecp5um/JTAGG.v new file mode 100644 index 0000000..100dd98 --- /dev/null +++ b/gbe/cores/sgmii/tsmac/ts_mac_eval/models/ecp5um/JTAGG.v @@ -0,0 +1,8 @@ +module JTAGG ( +input TCK, TMS, TDI, JTDO2, JTDO1, +output TDO, JTDI, JTCK, JRTI2, JRTI1, +output JSHIFT, JUPDATE, JRSTN, JCE2, JCE1 ) +/* synthesis syn_black_box syn_noprune=1 */; //synthesis syn_black_box +parameter ER1 = "ENABLED"; +parameter ER2 = "ENABLED"; +endmodule diff --git a/gbe/cores/sgmii/tsmac/ts_mac_eval/models/ecp5um/JTAG_ECP5UM.v b/gbe/cores/sgmii/tsmac/ts_mac_eval/models/ecp5um/JTAG_ECP5UM.v new file mode 100644 index 0000000..ac5e46d --- /dev/null +++ b/gbe/cores/sgmii/tsmac/ts_mac_eval/models/ecp5um/JTAG_ECP5UM.v @@ -0,0 +1,219 @@ +module JTAG_ECP5UM( + grst_ni, + tck, + tms, + tdi, + tdo, + PC_Clk, + PC_Data_In, + PC_Ready, + PC_Reset, + Cnt, + PC_Data_Out, + PC_Ack, + PC_Error); + + input grst_ni; + input tck; + input tms; + input tdi; + output tdo; + input PC_Data_Out; + input PC_Ack; + input PC_Error; + output PC_Clk; + output PC_Data_In; + output PC_Ready; + output PC_Reset; + output Cnt; + wire JTCK; + wire JTDI; + wire JSHIFT; + wire JRSTN; + wire JCE1; + reg JTDI_x; + reg JSHIFT_x; + reg JRSTN_x; + reg JCE1_x; + reg JTDO1; + reg[5:0] Count; + reg[2:0] State; + reg JTD01_a; + reg JTD01_b; + reg PC_Ready_i; + reg PC_Clk_a; + reg PC_Clk_b; + reg PC_Reset; + reg PC_Data_In; + +JTAGG JTAGG( + + // External Pad Interface + .TCK (tck), + .TMS (tms), + .TDI (tdi), + .TDO (tdo), + + + .JTDO1 (JTDO1), + .JTDO2 (1'b0), + .JTDI (JTDI), + .JTCK (JTCK), + .JRTI1 (), + .JRTI2 (), + .JSHIFT (JSHIFT), + .JUPDATE (), + .JRSTN (JRSTN), + .JCE1 (JCE1), + .JCE2 () + +// Oringal XP I/O List + // .JTDO1 (JTDO1), + // .JTDO2 (0), + // .JTCK (JTCK), + // .JRTI1 (), + // .JRTI2 (), + // .JTDI (JTDI), + // .JSHIFT (JSHIFT), + // .JUPDATE(), + // .JRSTN (JRSTN), + // .JCE1 (JCE1), + // .JCE2 () + + +); + + +initial +begin +// PC_Clk_a = 1'b0; +// State = 3'd0; +// Count = 6'd0; +end + + always @(negedge JTCK or negedge grst_ni) // Delayed Data + begin + if (~grst_ni) begin + JTDI_x <= 1'b0; + JSHIFT_x <= 1'b0; + JRSTN_x <= 1'b0; + JCE1_x <= 1'b0; + end else begin + JTDI_x <= JTDI; + JSHIFT_x <= JSHIFT; + JRSTN_x <= JRSTN; + JCE1_x <= JCE1; + end + end + + always @(posedge JTCK or negedge grst_ni) begin // Count + if (~grst_ni) begin + Count <= 6'b0; + end else begin + if (JCE1_x == 1) begin + if (JSHIFT_x == 0) begin + Count <= 0; + end else begin + Count <= Count + 1; + end + end + end + end + +//* kes (011006): Only states 6, 5, and 1 are actualy used. First +//* three bits of tdi provide opcode and determine selective clock +//* assertion to target below. These are always required. +always @(posedge JTCK or negedge grst_ni) begin + if (~grst_ni) begin + State <= 3'b0; + end else begin + if ((Count == 1) | (Count == 2) | (Count == 3)) begin // 0 1 0 Ph2 of Write + State <= {State[1:0], JTDI_x}; // 0 1 1 (Don't Care) + end // 1 0 0 (Don't Care) + end + end + // 1 0 1 Ph1 of Read + // 1 1 0 Ph1 of Write + // 1 1 1 (Don't Care) + + always @(posedge JTCK or negedge grst_ni) begin + if (~grst_ni) begin + JTDO1 <= 1'b0; + JTD01_b <= 1'b0; + JTD01_a <= 1'b0; + end else begin + if (Count == 4) begin + JTDO1 <= PC_Ack; + JTD01_b <= PC_Error; + end else begin + JTDO1 <= JTD01_b; + JTD01_b <= JTD01_a; + end + JTD01_a <= PC_Data_Out; + end + end + + always @(posedge JTCK or negedge grst_ni) begin + if (~grst_ni) begin + PC_Data_In <= 1'b0; + PC_Reset <= 1'b0; + end else begin + if (Count > 3) begin + PC_Data_In <= JTDI_x; // PC_Data_In + end + PC_Reset <= JRSTN_x; // PC_Reset + end + end + +//* kes (011006): Writes and Phase 1 read operations require the full 55+ +//* (actually ~58) cycles of tdi even though many tdi bits/fields are +//* unused & not passed on to the target. Done to simplify I guess. +//* tdi bits are selectively passed by turning on and off the clock +//* used by the target. Phase 2 reads are shorter - see below. + always @(posedge JTCK or negedge grst_ni) begin + if (~grst_ni) begin + PC_Clk_a <= 1'b0; + end else begin + if (((State == 'b001) & (Count > 3) & (Count <= 12)) | // Read Data (+ extra clock at 12) + ((State == 'b110) & (Count > 16) & (Count <= 24)) | // Write Data + ((State[2] == 1 ) & (Count > 30) & (Count <= 48)) | // Address + ((State == 'b010) & (Count == 12) )) begin // (extra clock at 12 for writes) + if (PC_Clk_a == 1) begin + PC_Clk_a <= 0; + end else begin + PC_Clk_a <= 1; + end + end + end + end + + always @(negedge JTCK or negedge grst_ni) + if (~grst_ni) begin + PC_Clk_b <= 1'b0; + end else begin + PC_Clk_b <= PC_Clk_a; + end + +//* kes (011006): Ready only generted for writes and phase 1 reads. Phase2 +//* reads do not require additional work inside orcastra.v other than to +//* shift data back when this models selectively provides clocks as part +//* of the phase 2 operation. It can be shorter then than write & ph1 write + always @(posedge JTCK or negedge grst_ni) begin + if (~grst_ni) begin + PC_Ready_i <= 1'b0; + end else begin + if ((Count == 55) & (State[2] == 1)) begin + PC_Ready_i <= 1; + end else begin + if (Count == 3) begin + PC_Ready_i <= 0; + end + end + end + end + + assign PC_Ready = PC_Ready_i; + assign PC_Clk = PC_Clk_a ^ PC_Clk_b; + assign Cnt = Count; + +endmodule diff --git a/gbe/cores/sgmii/tsmac/ts_mac_eval/models/ecp5um/rxmac_clk_pll.v b/gbe/cores/sgmii/tsmac/ts_mac_eval/models/ecp5um/rxmac_clk_pll.v new file mode 100644 index 0000000..7d2dfbe --- /dev/null +++ b/gbe/cores/sgmii/tsmac/ts_mac_eval/models/ecp5um/rxmac_clk_pll.v @@ -0,0 +1,87 @@ +/* Verilog netlist generated by SCUBA Diamond_2.2_Beta (60) */ +/* Module Version: 5.3 */ +/* D:\lscc\diamond\2.2\ispfpga\bin\nt\scuba.exe -w -n rxmac_clk_pll -lang verilog -synth synplify -bus_exp 7 -bb -arch sa5p00m -type pll -fin 125 -fclkop 125 -fclkop_tol 0.0 -phasep 0 -fclkos 125 -fclkos_tol 0.0 -phases 0 -fclkos2 62.5 -fclkos2_tol 0.0 -phases2 0 -phase_cntl STATIC -rst -lock -fb_mode 9 -e */ +/* Tue Mar 12 11:17:39 2013 */ + + +`timescale 1 ns / 1 ps +module rxmac_clk_pll (CLK, RESET, CLKFB, CLKOP, CLKOS, CLKOK, LOCK)/* synthesis syn_noprune=1 *//* synthesis NGD_DRC_MASK=1 */;// exemplar attribute rxmac_clk_pll dont_touch true + input wire CLK; + input wire CLKFB; + input wire RESET; + output wire CLKOP; + output wire CLKOS; + output wire CLKOK; + output wire LOCK; + + wire REFCLK; + wire CLKOS2_t; + wire CLKOS_t; + wire CLKOP_t; + wire scuba_vhi; + wire scuba_vlo; + + VHI scuba_vhi_inst (.Z(scuba_vhi)); + + VLO scuba_vlo_inst (.Z(scuba_vlo)); + + defparam PLLInst_0.PLLRST_ENA = "ENABLED" ; + defparam PLLInst_0.INTFB_WAKE = "DISABLED" ; + defparam PLLInst_0.STDBY_ENABLE = "DISABLED" ; + defparam PLLInst_0.DPHASE_SOURCE = "DISABLED" ; + defparam PLLInst_0.CLKOS3_FPHASE = 0 ; + defparam PLLInst_0.CLKOS3_CPHASE = 0 ; + defparam PLLInst_0.CLKOS2_FPHASE = 0 ; + defparam PLLInst_0.CLKOS2_CPHASE = 9 ; + defparam PLLInst_0.CLKOS_FPHASE = 0 ; + defparam PLLInst_0.CLKOS_CPHASE = 4 ; + defparam PLLInst_0.CLKOP_FPHASE = 0 ; + defparam PLLInst_0.CLKOP_CPHASE = 4 ; + defparam PLLInst_0.PLL_LOCK_MODE = 0 ; + defparam PLLInst_0.CLKOS_TRIM_DELAY = 0 ; + defparam PLLInst_0.CLKOS_TRIM_POL = "FALLING" ; + defparam PLLInst_0.CLKOP_TRIM_DELAY = 0 ; + defparam PLLInst_0.CLKOP_TRIM_POL = "FALLING" ; + defparam PLLInst_0.OUTDIVIDER_MUXD = "DIVD" ; + defparam PLLInst_0.CLKOS3_ENABLE = "DISABLED" ; + defparam PLLInst_0.OUTDIVIDER_MUXC = "DIVC" ; + defparam PLLInst_0.CLKOS2_ENABLE = "ENABLED" ; + defparam PLLInst_0.OUTDIVIDER_MUXB = "DIVB" ; + defparam PLLInst_0.CLKOS_ENABLE = "ENABLED" ; + defparam PLLInst_0.OUTDIVIDER_MUXA = "DIVA" ; + defparam PLLInst_0.CLKOP_ENABLE = "ENABLED" ; + defparam PLLInst_0.CLKOS3_DIV = 1 ; + defparam PLLInst_0.CLKOS2_DIV = 10 ; + defparam PLLInst_0.CLKOS_DIV = 5 ; + defparam PLLInst_0.CLKOP_DIV = 5 ; + defparam PLLInst_0.CLKFB_DIV = 1 ; + defparam PLLInst_0.CLKI_DIV = 1 ; + defparam PLLInst_0.FEEDBK_PATH = "USERCLOCK" ; + EHXPLLL PLLInst_0 (.CLKI(CLK), .CLKFB(CLKFB), .PHASESEL1(scuba_vlo), + .PHASESEL0(scuba_vlo), .PHASEDIR(scuba_vlo), .PHASESTEP(scuba_vlo), + .PHASELOADREG(scuba_vlo), .STDBY(scuba_vlo), .PLLWAKESYNC(scuba_vlo), + .RST(RESET), .ENCLKOP(scuba_vlo), .ENCLKOS(scuba_vlo), .ENCLKOS2(scuba_vlo), + .ENCLKOS3(scuba_vlo), .CLKOP(CLKOP_t), .CLKOS(CLKOS_t), .CLKOS2(CLKOS2_t), + .CLKOS3(), .LOCK(LOCK), .INTLOCK(), .REFCLK(REFCLK), .CLKINTFB()) + /* synthesis FREQUENCY_PIN_CLKOS2="62.500000" */ + /* synthesis FREQUENCY_PIN_CLKOS="125.000000" */ + /* synthesis FREQUENCY_PIN_CLKOP="125.000000" */ + /* synthesis FREQUENCY_PIN_CLKI="125.000000" */ + /* synthesis ICP_CURRENT="13" */ + /* synthesis LPF_RESISTOR="24" */; + + assign CLKOK = CLKOS2_t; + assign CLKOS = CLKOS_t; + assign CLKOP = CLKOP_t; + + + // exemplar begin + // exemplar attribute PLLInst_0 FREQUENCY_PIN_CLKOS2 62.500000 + // exemplar attribute PLLInst_0 FREQUENCY_PIN_CLKOS 125.000000 + // exemplar attribute PLLInst_0 FREQUENCY_PIN_CLKOP 125.000000 + // exemplar attribute PLLInst_0 FREQUENCY_PIN_CLKI 125.000000 + // exemplar attribute PLLInst_0 ICP_CURRENT 13 + // exemplar attribute PLLInst_0 LPF_RESISTOR 24 + // exemplar end + +endmodule diff --git a/gbe/cores/sgmii/tsmac/ts_mac_eval/models/ecp5um/txmac_clk_pll.v b/gbe/cores/sgmii/tsmac/ts_mac_eval/models/ecp5um/txmac_clk_pll.v new file mode 100644 index 0000000..845300d --- /dev/null +++ b/gbe/cores/sgmii/tsmac/ts_mac_eval/models/ecp5um/txmac_clk_pll.v @@ -0,0 +1,87 @@ +/* Verilog netlist generated by SCUBA Diamond_2.2_Beta (60) */ +/* Module Version: 5.3 */ +/* D:\lscc\diamond\2.2\ispfpga\bin\nt\scuba.exe -w -n txmac_clk_pll -lang verilog -synth synplify -bus_exp 7 -bb -arch sa5p00m -type pll -fin 125 -fclkop 125 -fclkop_tol 0.0 -phasep 0 -fclkos 125 -fclkos_tol 0.0 -phases 0 -fclkos2 62.5 -fclkos2_tol 0.0 -phases2 0 -phase_cntl STATIC -rst -lock -fb_mode 9 -e */ +/* Tue Mar 12 11:17:39 2013 */ + + +`timescale 1 ns / 1 ps +module txmac_clk_pll (CLK, RESET, CLKFB, CLKOP, CLKOS, LOCK)/* synthesis syn_noprune=1 *//* synthesis NGD_DRC_MASK=1 */;// exemplar attribute txmac_clk_pll dont_touch true + input wire CLK; + input wire CLKFB; + input wire RESET; + output wire CLKOP; + output wire CLKOS; + output wire LOCK; + + wire REFCLK; + wire CLKOS2_t; + wire CLKOS_t; + wire CLKOP_t; + wire CLKOK; + wire scuba_vhi; + wire scuba_vlo; + + VHI scuba_vhi_inst (.Z(scuba_vhi)); + + VLO scuba_vlo_inst (.Z(scuba_vlo)); + + defparam PLLInst_0.PLLRST_ENA = "ENABLED" ; + defparam PLLInst_0.INTFB_WAKE = "DISABLED" ; + defparam PLLInst_0.STDBY_ENABLE = "DISABLED" ; + defparam PLLInst_0.DPHASE_SOURCE = "DISABLED" ; + defparam PLLInst_0.CLKOS3_FPHASE = 0 ; + defparam PLLInst_0.CLKOS3_CPHASE = 0 ; + defparam PLLInst_0.CLKOS2_FPHASE = 0 ; + defparam PLLInst_0.CLKOS2_CPHASE = 9 ; + defparam PLLInst_0.CLKOS_FPHASE = 4 ; + defparam PLLInst_0.CLKOS_CPHASE = 6 ; + defparam PLLInst_0.CLKOP_FPHASE = 0 ; + defparam PLLInst_0.CLKOP_CPHASE = 4 ; + defparam PLLInst_0.PLL_LOCK_MODE = 0 ; + defparam PLLInst_0.CLKOS_TRIM_DELAY = 0 ; + defparam PLLInst_0.CLKOS_TRIM_POL = "FALLING" ; + defparam PLLInst_0.CLKOP_TRIM_DELAY = 0 ; + defparam PLLInst_0.CLKOP_TRIM_POL = "FALLING" ; + defparam PLLInst_0.OUTDIVIDER_MUXD = "DIVD" ; + defparam PLLInst_0.CLKOS3_ENABLE = "DISABLED" ; + defparam PLLInst_0.OUTDIVIDER_MUXC = "DIVC" ; + defparam PLLInst_0.CLKOS2_ENABLE = "ENABLED" ; + defparam PLLInst_0.OUTDIVIDER_MUXB = "DIVB" ; + defparam PLLInst_0.CLKOS_ENABLE = "ENABLED" ; + defparam PLLInst_0.OUTDIVIDER_MUXA = "DIVA" ; + defparam PLLInst_0.CLKOP_ENABLE = "ENABLED" ; + defparam PLLInst_0.CLKOS3_DIV = 1 ; + defparam PLLInst_0.CLKOS2_DIV = 10 ; + defparam PLLInst_0.CLKOS_DIV = 5 ; + defparam PLLInst_0.CLKOP_DIV = 5 ; + defparam PLLInst_0.CLKFB_DIV = 1 ; + defparam PLLInst_0.CLKI_DIV = 1 ; + defparam PLLInst_0.FEEDBK_PATH = "USERCLOCK" ; + EHXPLLL PLLInst_0 (.CLKI(CLK), .CLKFB(CLKFB), .PHASESEL1(scuba_vlo), + .PHASESEL0(scuba_vlo), .PHASEDIR(scuba_vlo), .PHASESTEP(scuba_vlo), + .PHASELOADREG(scuba_vlo), .STDBY(scuba_vlo), .PLLWAKESYNC(scuba_vlo), + .RST(RESET), .ENCLKOP(scuba_vlo), .ENCLKOS(scuba_vlo), .ENCLKOS2(scuba_vlo), + .ENCLKOS3(scuba_vlo), .CLKOP(CLKOP_t), .CLKOS(CLKOS_t), .CLKOS2(CLKOS2_t), + .CLKOS3(), .LOCK(LOCK), .INTLOCK(), .REFCLK(REFCLK), .CLKINTFB()) + /* synthesis FREQUENCY_PIN_CLKOS2="62.500000" */ + /* synthesis FREQUENCY_PIN_CLKOS="125.000000" */ + /* synthesis FREQUENCY_PIN_CLKOP="125.000000" */ + /* synthesis FREQUENCY_PIN_CLKI="125.000000" */ + /* synthesis ICP_CURRENT="13" */ + /* synthesis LPF_RESISTOR="24" */; + + assign CLKOK = CLKOS2_t; + assign CLKOS = CLKOS_t; + assign CLKOP = CLKOP_t; + + + // exemplar begin + // exemplar attribute PLLInst_0 FREQUENCY_PIN_CLKOS2 62.500000 + // exemplar attribute PLLInst_0 FREQUENCY_PIN_CLKOS 125.000000 + // exemplar attribute PLLInst_0 FREQUENCY_PIN_CLKOP 125.000000 + // exemplar attribute PLLInst_0 FREQUENCY_PIN_CLKI 125.000000 + // exemplar attribute PLLInst_0 ICP_CURRENT 13 + // exemplar attribute PLLInst_0 LPF_RESISTOR 24 + // exemplar end + +endmodule diff --git a/gbe/cores/sgmii/tsmac/ts_mac_eval/readme.htm b/gbe/cores/sgmii/tsmac/ts_mac_eval/readme.htm new file mode 100644 index 0000000..b878a81 --- /dev/null +++ b/gbe/cores/sgmii/tsmac/ts_mac_eval/readme.htm @@ -0,0 +1,1355 @@ + + + + + + + + + + + + + +LatticeCORE IP Module Readme + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    + +
    + +

    Tri-Speed Ethernet Media Access Controller ReadMe

    + +

     

    + +

    General Information

    + +
    + +


    +Copyright Notice

    + + + + + +
    +

    Copyright 2000-2016© + Lattice Semiconductor Corporation. ALL RIGHTS RESERVED. This + confidential and proprietary software may be used only as authorized by a licensing + agreement from Lattice Semiconductor Corporation. The entire notice above + must be reproduced on all authorized copies and copies may only be made to + the extent permitted by a licensing agreement from Lattice Semiconductor + Corporation.

    +
    + +
    + +


    +Contacting +Lattice

    + +
    + +

     

    + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Mail:

    +
    +

    Lattice + Semiconductor Corporation
    +5555 NE Moore + Court
    Hillsboro, + OR +  97124
    U.S.A.

    +
    +

    Telephone:

    +
    +

    1-800-Lattice + (USA and Canada)

    +
    +

     

    +
    +

    1-503-268-8001 + (other locations)

    +
    +

    Website:

    +
    +

    http://www.latticesemi.com

    +
    +

    E-mail:

    +
    +

    techsupport@latticesemi.com

    +
    + +

     

    + +
    + +

    IP Module Information

    + +
    + +


    +About this Module

    + + + + + + + + + + + + + + + + + + + +
    +

    IP Name:

    +
    +

    Tri-Speed + Ethernet Media Access Controller

    +
    +

    IP + Version:

    +
    +

    4.1

    +
    +

    IP + Release Date:

    +
    +

    Aug 2016

    +
    +

    Target + Technology:

    +
    +

    LatticeXP2, LatticeECP3, ECP5U, + ECP5UM, ECP5UM5G

    +
    + +


    +Software Requirements

    + + + + + + + + + + + + + + + +
    +

    Synthesis Tools + Supported:

    +
    +

    Synplify Pro for Lattice K-2015.09L-2
    + Lattice LSE Synthesis tool

    +
    +

    Simulation + Tools Supported:

    +
    +

    Active-HD 10.2(Windows + only)
    + ModelSim SE 10

    +
    +

    Lattice + Tool Supported:

    +
    +

    Diamond 3.7 or later

    +
    + +

     

    + +
    + +

    Implementing the IP Module +Using Lattice Diamond SW

    + +
    + +


    +Instantiating the Core

    + + + + + +
    +

    The + generated Tri-Speed_MAC core package includes + black-box (<user_name>_bb.v) and instance (<username>_inst.v) + templates that can be used to instantiate the core in a top-level design.

    +

    An + example RTL top-level reference source file(ts_mac_top.v) that can be used as + an instantiation template for the IP core is provided in <project_dir>\ts_mac_eval\<username>\src\rtl\top. + Users may also use this top-level reference as the starting template for the + top-level for their complete design.

    +
    + +


    +Hardware Evaluation

    + + + + + +
    +

    Lattice's IP hardware evaluation capability makes it + possible to create IP cores that operate in hardware for a limited period of + time (approximately four hours) without requiring the purchase on an IP + license. The hardware evaluation capability is enabled by default. It can be + disabled by Project->Active Strategy->Translate + Design Settings. The setting is + called "Hardware Evaluation" and the options are "Enable" + or "Disable".
    +      
    + When the Hardware Evaluation feature is enabled in the design, it will + generate a programming file that may be downloaded into the device. After initialization, + the IP core will be operational for approximately four hours. After four + hours, the device will stop working and it will be necessary to reprogram the + device to re-enable operation. This hardware evaluation capability is only + enabled if the core has not been licensed. During implementation, a license + check is performed. If the hardware evaluation feature is disabled, a pop-up + window will be displayed indicating a license failure. Click"OK" + in the window and the bitstream will not be generated. If a license is + detected, no pop-up window is displayed and core generation is completed with + no restrictions.

    +
    + +


    +Implementing the core only +design in a Top-Level Design

    + + + + + + + + +
    +

    As + described previously, the top-level file ts_mac_core_only_top.v + and ts_mac_core_only_top.vhd files provided in <project_dir>\ts_mac_eval\<username>\src\rtl\top + support the ability to implement just the Tri-Speed_MAC + IP core.

    +

    Push-button + top-level implementation of this top-level is supported via the Diamond project file <username>_core_only_eval.ldf located in <project_dir>\ts_mac_eval\<username>\impl\<synthesis>. +

    +

    This + design is intended only to provide an accurate indication of the device + utilization associated with the core itself and should not be used as an + actual implementation example.

    +
    +


    + To use the + project file:

    +
      +
    • Select File->Open->Project + in Lattice Diamond.
    • +
    • Browse to \<project_dir>\ts_mac_eval\<username>\impl\<synthesis> in the Open Project + dialog box.
    • +
    • Select and + open <username>_core_only_eval.ldf.At this point, all + of the files needed to support top-level synthesis and implementation + will be imported to the project.
    • +
    • Implement + the complete design via the standard Lattice Diamond GUI flow.
    • +
    +

     

    +
    + +

     

    + +

    Implementing +the reference design in a Top-Level Design

    + + + + + + + + +
    +

    Push-button + top-level implementation of a sample reference design is also supported via + the + Diamond project file <username>_reference_eval.ldf located in <project_dir>\ts_mac_eval\<username>\impl\<synthesis>. +

    +

    Implementation + of the reference evaluation configuration is targeted to a specific device + and package type for each device family. Specifically:

    +

    XP2:            LFXP2-17E-6F484C

    +

    ECP3:         LFE3-95EA-8FN484C

    +

    ECP5U:       LFE5U-85F-8BG756C

    +

    ECP5UM:     LFE5UM-85F-8BG756C

    +

    ECP5UM5G:     LFE5UM5G-85F-8BG756C

    +
    +


    + To use the + project file:

    +
      +
    • Select File->Open->Project + in Lattice Diamond.
    • Browse to \<project_dir>\ts_mac_eval\<username>\impl\<synthesis> in the Open Project + dialog box.
    • +
    • Select and + open <username>_reference_eval.ldf. At this point, all + of the files needed to support top-level synthesis and implementation + will be imported to the project.
    • +
    • Implement + the complete design via the standard Diamond GUI flow.
    • +
    +
    + +


    +Running Functional and Post +Route Timing +Simulation

    + + + + + + + + +
    +

    The + functional simulation includes a configuration-specific behavioral model of + the Tri_Speed MAC, which is + instantiated in an FPGA top level along with some test logic (PLLs, and registers + with Read/Write Interface). This FPGA top is instantiated in an eval + testbench that configures FPGA test logic registers and Tri_Speed + MAC IP core registers. The testbench files can be found in \<project_dir>\ts_mac_eval\testbench.
    +
    + Both Active-HDL and ModelSim are supported for simulation.

    +
    +

    Functional + Simulation
    + The + generated IP core package includes the configuration-specific behavior model + (<username>_beh.v) for functional simulation. ModelSim simulation is + supported via testbench files provided in \<project_dir>\ts_mac_eval\<username>\src\rtl\top\. Models required for simulation are provided + in the \<project_dir>\ts_mac_eval\models + directory.

    +

     

    +

    Users + may run the eval simulation by doing the following with ModelSim SE:

    +
      +
    • Open + ModelSim.
    • +
    • Under the File + tab, select Change Directory
    • Set the + directory to \<project_dir>\ts_mac_eval\<username>\sim\modelsim.
    • Select OK. +
    • Under the + Tools tab, select TCL, then select Execute Macro.
    • Select file + <username>_eval_se.do for ModelSim SE.
    +


    + NOTE1: When the simulation completes, a pop-up window will appear + asking "are you sure you want to finish?" Answer "no" to + analyze the results (answering "yes" closes ModelSim).

    +

    Users + may run the eval simulation by doing the following with Active-HDL(Windows Only):

    +
      +
    • Open Active-HDL.
    • +
    • Under the tools + tab, select Execute Macro...
    • +
    • Select file + \<project_dir>\ts_mac_eval\<username>\sim\aldec\<username>_eval.do
    • +
    • Select + OK.
    • +
    +

     

    +

    Post Route Timing Simulation

    +

    In order to run + the Post + Route + timing simulation, an IP license is required. For post route simulation, you + need to generate the timing simulation file by Selecting "Export Files->Verilog Simulation + File" in Process Window; This IP only supports Verilog TOP timing simulation).Users may run the + timing simulation by doing the following with ModelSim SE:

    +
      +
    • Open + ModelSim.
    • Under the File + tab, select Change Directory
    • Set the + directory to \<project_dir>\ts_mac_eval\<username>\sim\modelsim.
    • Select OK. +
    • Under the + Tools tab, select TCL, then select Execute Macro.
    • Select file + <username>_eval_timing_<lse|synp>_se.do for ModelSim + SE.
    +

    NOTE: When the + simulation completes, a pop-up window may appear asking, "are you sure + you want to finish?" Answer "No" to analyze the results + (answering "Yes" closes ModelSim).

    +

     

    +

    Users may run the + timing simulation by doing the following with Active-HDL(Windows only):

    +
      +
    • Open + Active-HDL.
    • +
    • Under the tools + tab, select Execute Macro...
    • +
    • Select file + \<project_dir>\ts_mac_eval\<username>\sim\aldec\<username>_eval_timing_<lse|synp>.do
    • +
    • Select + OK.
    • +
    +

     

    +
    + +


    +Reference Information
    +
    +The following documents provide more information on implementing this core:

    + +
    +
    + + + + diff --git a/gbe/cores/sgmii/tsmac/ts_mac_eval/testbench/tests/testcase.v b/gbe/cores/sgmii/tsmac/ts_mac_eval/testbench/tests/testcase.v new file mode 100644 index 0000000..529fe15 --- /dev/null +++ b/gbe/cores/sgmii/tsmac/ts_mac_eval/testbench/tests/testcase.v @@ -0,0 +1,121 @@ +// =========================================================================== +// Verilog module generated by IPexpress +// Filename: test_1.v +// Copyright 2005 (c) Lattice Semiconductor Corporation. All rights reserved. +// =========================================================================== + +reg [7:0] dummy_data; + + +initial begin + $display(" .") ; + $display(" ==============================================================") ; + $display(" INFO : EVAL SIMULATION") ; + $display(" ==============================================================") ; + $display(" INFO : NOTE: This simulation includes the TSMAC IP Core,") ; + $display(" INFO : instantiated in an FPGA top level that consists of ") ; + $display(" INFO : test logic (MAC client side loop back logic, PLLs, ") ; + $display(" INFO : and registers with Read/Write Intf). This FPGA top ") ; + $display(" INFO : is instantiated in an eval testbench that configures ") ; + $display(" INFO : FPGA test logic and TSMAC IP core registers and sources") ; + $display(" INFO : ethernet packets (testcase.v)") ; + $display(" ==============================================================") ; + $display(" .") ; + $display(" .") ; + $display(" INFO : testcase STARTING") ; + repeat (10) @(posedge clk_125) ; + reset_n <= 1'b0 ; + repeat (10) @(posedge clk_125) ; + reset_n <= 1'b1 ; + +// delay to wait for initialization + repeat (10) @(posedge clk_125 ); + + // Test logic registers + orc_write(18'h08006, 8'hC1); // fifo AFL + orc_write(18'h08007, 8'h01); // fifo AFH + orc_write(18'h08008, 8'h05); // fifo AEL + orc_write(18'h08001, 8'h07); // tstcntl + orc_read(18'h08000, dummy_data); // verid + orc_read(18'h08006, dummy_data); // fifo AFL + orc_read(18'h08007, dummy_data); // fifo AFH + orc_read(18'h08008, dummy_data); // fifo AEL + + // MDIO registers + `ifdef MIIM_MODULE + orc_write(18'h00016, 8'h00); // to - MDIO DATA reg + orc_write(18'h00017, 8'h80); // to - MDIO DATA reg + orc_write(18'h00014, 8'h00); // to - MDIO ACCESS CTL reg + orc_write(18'h00015, 8'h21); // to - MDIO ACCESS CTL reg + #20000 + orc_read(18'h00014, dummy_data); // to - MDIO ACCESS CTL reg + orc_read(18'h00015, dummy_data); // to - MDIO ACCESS CTL reg + `endif + + // MAC registers + orc_write(18'h0000a, 8'hcd); // MAC Addr reg 0 + orc_write(18'h0000b, 8'haa); // MAC Addr reg 0 + orc_write(18'h0000c, 8'h12); // MAC Addr reg 1 + orc_write(18'h0000d, 8'hef); // MAC Addr reg 1 + orc_write(18'h0000e, 8'h56); // MAC Addr reg 2 + orc_write(18'h0000f, 8'h34); // MAC Addr reg 2 + + orc_write(18'h00002, 8'h9a); // to host bus - TX_RX_CTL reg + orc_read(18'h00002, dummy_data); // to host bus - TX_RX_CTL reg + + orc_write(18'h00008, 8'h48); // to host bus - IPG reg + orc_read(18'h00008, dummy_data); // to host bus - IPG reg + orc_read(18'h00009, dummy_data); // to host bus - IPG reg + + // Default to simulate with 1000M mode + orc_write(18'h00000, 8'h0f); // to host bus - mode reg + // To simulate the 100M mode, use the following mode reg + // orc_write(18'h00000, 8'h0e); // to host bus - mode reg + orc_read(18'h00000, dummy_data); // to host bus - mode reg + + + // FRAME TEMPLATE + // rx_frmgen (gben(1), des_addr(48), frm_len(14), num_premb(4), num_ipg(5), badcrc(1), norm_vlan_paus(2), + // pause_timer(16), bad_pcode(1), len_type(1), len_chkerr(1), badsfd(1), runt_frmid(3), frm_patn(4)); + + rx_frmgen(1'b1, 48'haacdef123456, 14'd75, 4'd7, 5'd26, `RX_GOOD_CRC, `RX_NORM_FRM, 16'h0, `RX_GOOD_OPCODE, + `RX_LEN_FIELD, `RX_LENCHK_NOER, `RX_GOOD_SFD, `RX_RUNT_NOT, `RX_FRMPTN_NOER); + + rx_frmgen(1'b1, 48'haacdef123456, 14'd70, 4'd7, 5'd26, `RX_GOOD_CRC, `RX_NORM_FRM, 16'h0, `RX_GOOD_OPCODE, + `RX_LEN_FIELD, `RX_LENCHK_NOER, `RX_GOOD_SFD, `RX_RUNT_NOT, `RX_FRMPTN_NOER); + + rx_frmgen(1'b1, 48'haacdef123456, 14'd66, 4'd7, 5'd26, `RX_GOOD_CRC, `RX_NORM_FRM, 16'h0, `RX_GOOD_OPCODE, + `RX_LEN_FIELD, `RX_LENCHK_NOER, `RX_GOOD_SFD, `RX_RUNT_NOT, `RX_FRMPTN_NOER); + + rx_frmgen(1'b1, 48'haacdef123456, 14'd64, 4'd7, 5'd26, `RX_GOOD_CRC, `RX_NORM_FRM, 16'h0, `RX_GOOD_OPCODE, + `RX_LEN_FIELD, `RX_LENCHK_NOER, `RX_GOOD_SFD, `RX_RUNT_NOT, `RX_FRMPTN_NOER); + + rx_frmgen(1'b1, 48'haacdef123456, 14'd32, 4'd7, 5'd26, `RX_GOOD_CRC, `RX_NORM_FRM, 16'h0, `RX_GOOD_OPCODE, + `RX_LEN_FIELD, `RX_LENCHK_NOER, `RX_GOOD_SFD, `RX_RUNT_NOT, `RX_FRMPTN_NOER); + + /* For 100M Classic mode, use following rx_frmgen + rx_frmgen(1'b0, 48'haacdef123456, 14'd75, 4'd7, 5'd26, `RX_GOOD_CRC, `RX_NORM_FRM, 16'h0, `RX_GOOD_OPCODE, + `RX_LEN_FIELD, `RX_LENCHK_NOER, `RX_GOOD_SFD, `RX_RUNT_NOT, `RX_FRMPTN_NOER); + + rx_frmgen(1'b0, 48'haacdef123456, 14'd70, 4'd7, 5'd26, `RX_GOOD_CRC, `RX_NORM_FRM, 16'h0, `RX_GOOD_OPCODE, + `RX_LEN_FIELD, `RX_LENCHK_NOER, `RX_GOOD_SFD, `RX_RUNT_NOT, `RX_FRMPTN_NOER); + + rx_frmgen(1'b0, 48'haacdef123456, 14'd66, 4'd7, 5'd26, `RX_GOOD_CRC, `RX_NORM_FRM, 16'h0, `RX_GOOD_OPCODE, + `RX_LEN_FIELD, `RX_LENCHK_NOER, `RX_GOOD_SFD, `RX_RUNT_NOT, `RX_FRMPTN_NOER); + + rx_frmgen(1'b0, 48'haacdef123456, 14'd64, 4'd7, 5'd26, `RX_GOOD_CRC, `RX_NORM_FRM, 16'h0, `RX_GOOD_OPCODE, + `RX_LEN_FIELD, `RX_LENCHK_NOER, `RX_GOOD_SFD, `RX_RUNT_NOT, `RX_FRMPTN_NOER); + + rx_frmgen(1'b0, 48'haacdef123456, 14'd32, 4'd7, 5'd26, `RX_GOOD_CRC, `RX_NORM_FRM, 16'h0, `RX_GOOD_OPCODE, + `RX_LEN_FIELD, `RX_LENCHK_NOER, `RX_GOOD_SFD, `RX_RUNT_NOT, `RX_FRMPTN_NOER); + */ + + repeat (500) @(posedge clk_125 ); + // To simulate the 100M mode, will need long simulation time and should use following one: + //repeat (2000) @(posedge clk_125 ); + + $stop ; +end + +// ============================================================================= + diff --git a/gbe/cores/sgmii/tsmac/ts_mac_eval/testbench/top/env_params.v b/gbe/cores/sgmii/tsmac/ts_mac_eval/testbench/top/env_params.v new file mode 100644 index 0000000..494f6e0 --- /dev/null +++ b/gbe/cores/sgmii/tsmac/ts_mac_eval/testbench/top/env_params.v @@ -0,0 +1,34 @@ +// =========================================================================== +// Verilog module generated by IPexpress +// Filename: env_params.v +// Copyright 2005 (c) Lattice Semiconductor Corporation. All rights reserved. +// =========================================================================== + +parameter K28_5 = 8'hBC , + K28_1 = 8'h3C , + K28_7 = 8'hFC , + D5_6 = 8'hC5 , + D16_2 = 8'h50 , + D21_5 = 8'hB5 , + D2_2 = 8'h42 , + D0_0 = 8'h00 , + K23_7 = 8'hF7 , + K27_7 = 8'hFB , + K29_7 = 8'hFD , + K30_7 = 8'hFE ; + +parameter ZEROS = 0 ; +parameter ONES = 1 ; +parameter INC = 2 ; +parameter DEC = 3 ; +parameter RAND = 4 ; + +parameter NPTI = 3'd0; +parameter NPTR = 3'd1; +parameter PTER = 3'd2; +parameter PTES = 3'd3; +parameter PTEI = 3'd4; +parameter PTEC = 3'd5; + +//============================================================================== + diff --git a/gbe/cores/sgmii/tsmac/ts_mac_eval/testbench/top/orcastra_drv.v b/gbe/cores/sgmii/tsmac/ts_mac_eval/testbench/top/orcastra_drv.v new file mode 100644 index 0000000..e30f810 --- /dev/null +++ b/gbe/cores/sgmii/tsmac/ts_mac_eval/testbench/top/orcastra_drv.v @@ -0,0 +1,210 @@ +// =========================================================================== +// Verilog module generated by IPexpress +// Filename: orcastra_drv.v +// Copyright 2005 (c) Lattice Semiconductor Corporation. All rights reserved. +// =========================================================================== +// +`timescale 1 ns/100 ps + +`define FAIL 1'b1 +`define PASS 1'b0 +`define SYS_DATA 8 // system bus data bus size +`define SYS_ADDR 18 // system bus address bus size +`define SYS_SIZE 2 // system bus transfer size +`define half_period 10 // pc_clk half period = 200 ns + +module orcastra_drv( + pc_clk, + pc_datain, + pc_dataout, + pc_retry, + pc_error, + pc_ready, + pc_ack +); + +output pc_clk; +output pc_datain; +output pc_ready; +input pc_ack; +input pc_dataout; +input pc_retry; +input pc_error; + +reg pc_clk; +reg pc_ready; +reg wr; +reg da; +reg a; + +initial begin + pc_clk = 1'b0; + pc_ready = 1'b0; + wr = 1'b0; +end + +assign pc_datain = (wr) ? da:a; + +task single_write; + +input [`SYS_ADDR-1:0] address; +input [`SYS_DATA-1:0] data; +inout ret_status; + +integer i; + +reg status; +reg ret_status; + +begin + + status = `PASS; + + if (!status) begin + + wr = 1'b1; + + da = 0; + #`half_period + + // serial data phase + for (i=0;i<8;i=i+1) begin + + pc_clk = 1; + da = data[i]; + #`half_period; + pc_clk = 0; + #`half_period; + + end + + #`half_period; + #`half_period; + #`half_period; + #`half_period; + #`half_period; + + + // serial address phase + for (i=17;i>=0;i=i-1) begin + + pc_clk = 1; + da = address[i]; + #`half_period; + pc_clk = 0; + #`half_period; + + end + + da = 0; // WRITE + + pc_ready = 1; + //#`half_period; + //#`half_period; + //#`half_period; + //#`half_period; + //pc_ready = 0; + + // wait for an acknowledge and then wait ten clocks (simulate PC) + @(posedge pc_ack); + + for (i=10;i>=0;i=i-1) begin + #`half_period; + #`half_period; + end + + pc_ready = 0; // bring pc_ready low + + wr = 1'b0; + status = `PASS; + + end + + ret_status = ret_status | status; + +end + +endtask + +task single_read; + +input [`SYS_ADDR-1:0] address; +output [`SYS_DATA-1:0] data; +inout ret_status; + +reg status; +reg ret_status; +reg [7:0] data; + +integer i; + +begin + + status = `PASS; + + if (!status) begin + + a = 0; + #`half_period + + // serial address phase + for (i=17;i>=0;i=i-1) begin + + pc_clk = 1; + a = address[i]; + #`half_period; + pc_clk = 0; + #`half_period; + + end + + a = 1; // READ + + pc_ready = 1; + //#`half_period; + //#`half_period; + //#`half_period; + //#`half_period; + //pc_ready = 0; + + // wait for an acknowledge and then wait ten clocks (simulate PC) + @(posedge pc_ack); + + for (i=10;i>=0;i=i-1) begin + #`half_period; + #`half_period; + end + + pc_ready = 0; // bring pc_ready low + + // extra clock ??????? + pc_clk = 1; + #`half_period; + pc_clk = 0; + #`half_period; + + // serial data phase - read data + for (i=0;i<8;i=i+1) begin + + pc_clk = 1; + #`half_period; + pc_clk = 0; + data[i] = pc_dataout; + #`half_period; + + end + + #`half_period; + #`half_period; + + status = `PASS; + + end + + ret_status = ret_status | status; + +end + +endtask + +endmodule diff --git a/gbe/cores/sgmii/tsmac/ts_mac_eval/testbench/top/pkt_mon.v b/gbe/cores/sgmii/tsmac/ts_mac_eval/testbench/top/pkt_mon.v new file mode 100644 index 0000000..d42b3ed --- /dev/null +++ b/gbe/cores/sgmii/tsmac/ts_mac_eval/testbench/top/pkt_mon.v @@ -0,0 +1,624 @@ +/*================================================================ +-- Copyright (c) 2004 - Lattice Semiconductor Corporation +-- - NetCom IP +-- +-- This program is controlled by a written license agreement. +-- Unauthorized Reproduction or Use is Expressly Prohibited. +-- ================================================================*/ + +// file name: pkt_mon.v +// version: 1.0 +// date: may 13, 2008 +// +// code type: Behavioral Level +// +// Overview: This module monitors ethernet packets, and checks +// their crc and then prints them to a file. +// +// Rev: 0.0 - Initial Ver N.G +/*=================================================================*/ + +`timescale 1ns/100ps + + +// DEFINES + + +module pkt_mon( + reset_n, + gbit_en, + tx_clk, + `ifdef SGMII_TSMAC + tx_clk_en, + `endif + tx_en, + tx_er, + txd + ); + + + + // ethernet ports + input [7:0] txd; + input tx_er; + input tx_en; + + // general ports + input reset_n; // active low global reset + input gbit_en; // GbE mode enable + input tx_clk; // tx clock + + `ifdef SGMII_TSMAC + input tx_clk_en; + `endif + + integer out_file; // pointer to output file - ethernet_pkts_sink + + wire nib_enb; // + wire nib_enb_0; // nib_0 enable select (3:0) + wire nib_enb_1; // nib_0 enable select (7:4) + + // ------------------------------ + // signals related to monitor FSM + // ------------------------------ + reg [1:0] m_st; + reg [11:0] byt_cnt; + reg [15:0] pkt_cnt; + reg [7:0] txd_fe ; + reg [7:0] txd_fe_B ; + reg byte_valid_fe ; + reg tx_en_1d ; + reg tx_er_1d ; + reg tx_en_2d ; + reg tx_er_2d ; + reg [7:0] txd_1d ; + reg nib_cnt; // nibble counter - toggles + + reg [7:0] len_B0 ; + reg [15:0] len_B0B1 ; + reg [31:0] crc_reg; + reg [31:0] crc_reg_latched; + reg [7:0] Rx_CRC_B0 ; + reg [7:0] Rx_CRC_B1 ; + reg [7:0] Rx_CRC_B2 ; + reg [31:0] Rx_CRC ; + reg tx_error_latched ; + reg control_pkt ; + reg pause_pkt ; + reg vlan_pkt ; + reg [7:0] op_code_B0 ; + reg [7:0] vlan_len_B0 ; + + + parameter[1:0] + IDLE = 0, + PREMB = 1, + PKT_BODY = 2; + + parameter CRC_INIT_VALUE = 32'hffff_ffff; + + // ------------------------------ + + + +// Initializations +initial +begin + out_file = $fopen("ethernet_pkts_sink"); + m_st = 0; + byt_cnt = 0; + pkt_cnt = 0; + len_B0 = 0; + len_B0B1 = 0; + Rx_CRC_B0 = 0; + Rx_CRC_B1 = 0; + Rx_CRC_B2 = 0; + Rx_CRC = 0; +end + + + // wire assignments + assign nib_enb = nib_cnt; + assign nib_enb_0 = ( (nib_enb == 1'd0) && (tx_en == 1'b1) ) ? 1:0; + assign nib_enb_1 = ( (nib_enb == 1'd1) && (tx_en == 1'b1) ) ? 1:0; + + + // --------------------------------------------------------------------------------- + // 10/100 nib to bytes + // --------------------------------------------------------------------------------- + always @(posedge tx_clk or negedge reset_n) begin + if (~reset_n) begin + nib_cnt <= 1'b0; + txd_fe[7:0] <= 8'b0; + byte_valid_fe <= 1'b0; + tx_en_1d <= 1'b0; + tx_en_2d <= 1'b0; + tx_er_1d <= 1'b0; + tx_er_2d <= 1'b0; + txd_1d <= 8'b0; + txd_fe_B <= 8'b0; + end + else begin + + txd_1d <= txd; + tx_en_1d <= tx_en; + tx_en_2d <= tx_en_1d; + tx_er_1d <= tx_er; + tx_er_2d <= tx_er_1d; + + byte_valid_fe <= nib_enb_1 & tx_en_1d; + + if (tx_en && nib_cnt == 1'b0) begin + nib_cnt <= 1'b1; + end + else begin + nib_cnt <= 1'b0; + end + + if (nib_enb_0) begin + txd_fe[3:0] <= txd[3:0]; + end + if (nib_enb_1) begin + txd_fe_B[7:0] <= {txd[3:0],txd_fe[3:0]}; + end + end + end // always + + + +// ------------------------------------------------------------------------------------------------------- +// Ethernet PACKETS SINK MONITOR +// ------------------------------------------------------------------------------------------------------- +always@(posedge tx_clk) begin + case (m_st) + + IDLE: + begin + byt_cnt = 0; + crc_reg = 32'hffff_ffff; + crc_reg_latched = 32'hffff_ffff; + tx_error_latched = 1'b0; + control_pkt <= 1'b0; + pause_pkt <= 1'b0; + vlan_pkt <= 1'b0; + op_code_B0 <= 8'd0; + vlan_len_B0 <= 8'd0; + + if (gbit_en) begin + `ifdef SGMII_TSMAC + if (tx_en == 1 && byt_cnt == 0) begin + byt_cnt <= byt_cnt + 1; + pkt_cnt <= pkt_cnt + 1; + $fdisplay(out_file, "-----------------------------------------------"); + $fdisplay(out_file, "PKT %d \t BYTE \t DATA \t TX_EN \t TX_ER", pkt_cnt); + $fdisplay(out_file, "-----------------------------------------------"); + m_st = PREMB; + end + `else // CLASSIC_TSMAC OR GBE_MAC + if (tx_en == 1 && byt_cnt == 0) begin + byt_cnt <= byt_cnt + 1; + pkt_cnt <= pkt_cnt + 1; + $fdisplay(out_file, "-----------------------------------------------"); + $fdisplay(out_file, "PKT %d \t BYTE \t DATA \t TX_EN \t TX_ER", pkt_cnt); + $fdisplay(out_file, "-----------------------------------------------"); + m_st = PREMB; + end + `endif + + end + else begin + + if (tx_en_1d == 1 && byt_cnt == 0) begin + byt_cnt <= byt_cnt + 1; + pkt_cnt <= pkt_cnt + 1; + $fdisplay(out_file, "-----------------------------------------------"); + $fdisplay(out_file, "PKT %d \t BYTE \t DATA \t TX_EN \t TX_ER", pkt_cnt); + $fdisplay(out_file, "-----------------------------------------------"); + m_st = PREMB; + end + + end + end + PREMB: + begin + + if (gbit_en) begin + + `ifdef SGMII_TSMAC + if (tx_en_1d && txd_1d[7:0] != 8'hd5 && tx_clk_en == 1) begin + byt_cnt <= byt_cnt + 1; + $fdisplay(out_file, "preamble \t %d \t %h \t %b \t %b",byt_cnt,txd_1d,tx_en_1d,tx_er_1d); + m_st = PREMB; + end + else if (tx_en_1d && txd_1d[7:0] == 8'hd5 && tx_clk_en == 1) begin + byt_cnt <= 1; + $fdisplay(out_file, "SFD \t \t \t %h \t %b \t %b",txd_1d,tx_en_1d,tx_er_1d); + m_st = PKT_BODY; + end + `else // CLASSIC_TSMAC OR GBE_MAC + if (tx_en_1d && txd_1d[7:0] != 8'hd5) begin + byt_cnt <= byt_cnt + 1; + $fdisplay(out_file, "preamble \t %d \t %h \t %b \t %b",byt_cnt,txd_1d,tx_en_1d,tx_er_1d); + m_st = PREMB; + end + else if (tx_en_1d && txd_1d[7:0] == 8'hd5) begin + byt_cnt <= 1; + $fdisplay(out_file, "SFD \t \t \t %h \t %b \t %b",txd_1d,tx_en_1d,tx_er_1d); + m_st = PKT_BODY; + end + `endif + + end + else begin + + if (tx_en_2d && txd_fe_B[7:0] != 8'hd5) begin + if (byte_valid_fe) begin + byt_cnt <= byt_cnt + 1; + $fdisplay(out_file, "preamble \t %d \t %h \t %b \t %b",byt_cnt,txd_fe_B,tx_en_2d,tx_er_2d); + m_st = PREMB; + end + end + else if (tx_en_2d && txd_fe_B[7:0] == 8'hd5) begin + if (byte_valid_fe) begin + byt_cnt <= 1; + $fdisplay(out_file, "SFD \t \t \t %h \t %b \t %b",txd_fe_B,tx_en_2d,tx_er_2d); + m_st = PKT_BODY; + end + end + + end + + end + PKT_BODY: + begin + + if (gbit_en) begin + + `ifdef SGMII_TSMAC + if (tx_en_1d && tx_clk_en == 1) begin + `else // CLASSIC_TSMAC OR GBE_MAC + if (tx_en_1d) begin + `endif + byt_cnt <= byt_cnt + 1; + m_st = PKT_BODY; + + if (byt_cnt == 12'd1) begin + crc_reg = nextCRC32_D8(txd_1d, CRC_INIT_VALUE); + end + else if (byt_cnt == (len_B0B1 + 12'd15)) begin + crc_reg_latched = crc_rev(crc_reg); + end + else begin + crc_reg = nextCRC32_D8(txd_1d, crc_reg); + end + + if (byt_cnt == 12'd13) begin + len_B0 <= txd_1d; + end + if (byt_cnt == 12'd15 && control_pkt) begin + op_code_B0 <= txd_1d; + end + if (byt_cnt == 12'd17 && vlan_pkt) begin + vlan_len_B0 <= txd_1d; + end + if (byt_cnt == 12'd14) begin + if ({len_B0,txd_1d} < 16'd46) begin // short pkt + len_B0B1 <= 16'd46; + end + else if ({len_B0,txd_1d} == 16'h8808) begin // control pkt + control_pkt <= 1'b1; + end + else if ({len_B0,txd_1d} == 16'h8100) begin // vlan tagged pkt + vlan_pkt <= 1'b1; + end + else begin + len_B0B1 <= {len_B0,txd_1d}; + end + end + else if (byt_cnt == 12'd16 && control_pkt) begin + if ({op_code_B0,txd_1d} == 16'h0001) begin // pause pkt + pause_pkt <= 1'b1; + len_B0B1 <= 16'd46; + end + end + else if (byt_cnt == 12'd18 && vlan_pkt) begin + len_B0B1 <= {vlan_len_B0,txd_1d} + 16'd4; + end + + if (byt_cnt == (len_B0B1 + 12'd15)) begin + Rx_CRC_B0 <= txd_1d; + end + if (byt_cnt == (len_B0B1 + 12'd16)) begin + Rx_CRC_B1 <= txd_1d; + end + if (byt_cnt == (len_B0B1 + 12'd17)) begin + Rx_CRC_B2 <= txd_1d; + end + if (byt_cnt == (len_B0B1 + 12'd18)) begin + Rx_CRC <= {txd_1d,Rx_CRC_B2,Rx_CRC_B1,Rx_CRC_B0}; + end + + if (byt_cnt >= 12'd1 && byt_cnt <= 12'd6 ) begin + $fdisplay(out_file, "DA \t \t %d \t %h \t %b \t %b",byt_cnt,txd_1d,tx_en_1d,tx_er_1d); + end + else if (byt_cnt >= 12'd7 && byt_cnt <= 12'd12 ) begin + $fdisplay(out_file, "SA \t \t %d \t %h \t %b \t %b",byt_cnt,txd_1d,tx_en_1d,tx_er_1d); + end + else if (byt_cnt >= 12'd13 && byt_cnt <= 12'd14 ) begin + if ((byt_cnt == 12'd13 && txd_1d == 8'h81) + || (byt_cnt == 12'd14 && {len_B0,txd_1d} == 16'h8100)) begin + $fdisplay(out_file, "TAG \t \t %d \t %h \t %b \t %b",byt_cnt,txd_1d,tx_en_1d,tx_er_1d); + end + else begin + $fdisplay(out_file, "LT \t \t %d \t %h \t %b \t %b",byt_cnt,txd_1d,tx_en_1d,tx_er_1d); + end + end + else if ((byt_cnt >= 12'd15 && byt_cnt <= 12'd16) && vlan_pkt ) begin + $fdisplay(out_file, "TAGC \t \t %d \t %h \t %b \t %b",byt_cnt,txd_1d,tx_en_1d,tx_er_1d); + end + else if ((byt_cnt >= 12'd17 && byt_cnt <= 12'd18) && vlan_pkt ) begin + $fdisplay(out_file, "LT \t \t %d \t %h \t %b \t %b",byt_cnt,txd_1d,tx_en_1d,tx_er_1d); + end + else if (byt_cnt >= (len_B0B1 + 12'd15) && byt_cnt <= (len_B0B1 + 12'd18) ) begin + $fdisplay(out_file, "CRC \t \t %d \t %h \t %b \t %b",byt_cnt,txd_1d,tx_en_1d,tx_er_1d); + end + else begin + $fdisplay(out_file, "Data \t \t %d \t %h \t %b \t %b",byt_cnt,txd_1d,tx_en_1d,tx_er_1d); + end + + if (tx_er_1d == 1'b1) begin + tx_error_latched <= 1'b1; + end + + end + `ifdef SGMII_TSMAC + else if (tx_en_1d == 0 && tx_clk_en == 1) begin + `else // CLASSIC_TSMAC OR GBE_MAC + else if (tx_en_1d == 0) begin + `endif + byt_cnt <= 0; + $fdisplay(out_file, "-----------------------------------------------"); + $fdisplay(out_file, "RECEIVED CRC \t \t %h ",Rx_CRC); + $fdisplay(out_file, "EXPECTED CRC \t \t %h ",crc_reg_latched); + if ( Rx_CRC == crc_reg_latched && !tx_error_latched) begin + $fdisplay(out_file, "GOOD PKT"); + end + else begin + $fdisplay(out_file, "BAD PKT"); + end + if (pause_pkt) begin + $fdisplay(out_file, "THIS IS A PAUSE PACKET"); + end + else if (vlan_pkt) begin + $fdisplay(out_file, "THIS IS A VLAN TAGGED PACKET"); + end + $fdisplay(out_file, " "); + $fdisplay(out_file, " "); + $fdisplay(out_file, " "); + m_st = IDLE; + end + + end // (gbit_en) + else begin // gbit_en == 0 (10/100 mode) + + if (tx_en_2d) begin + + if (byte_valid_fe) begin + + byt_cnt <= byt_cnt + 1; + m_st = PKT_BODY; + + if (byt_cnt == 12'd1) begin + crc_reg = nextCRC32_D8(txd_fe_B, CRC_INIT_VALUE); + end + else if (byt_cnt == (len_B0B1 + 12'd15)) begin + crc_reg_latched = crc_rev(crc_reg); + end + else begin + crc_reg = nextCRC32_D8(txd_fe_B, crc_reg); + end + + + if (byt_cnt == 12'd13) begin + len_B0 <= txd_fe_B; + end + if (byt_cnt == 12'd15 && control_pkt) begin + op_code_B0 <= txd_1d; + end + if (byt_cnt == 12'd17 && vlan_pkt) begin + vlan_len_B0 <= txd_fe_B; + end + if (byt_cnt == 12'd14) begin + if ({len_B0,txd_fe_B} < 16'd46) begin // short pkt + len_B0B1 <= 16'd46; + end + else if ({len_B0,txd_fe_B} == 16'h8808) begin // control pkt + control_pkt <= 1'b1; + end + else if ({len_B0,txd_fe_B} == 16'h8100) begin // vlan tagged pkt + vlan_pkt <= 1'b1; + end + else begin + len_B0B1 <= {len_B0,txd_fe_B}; + end + end + else if (byt_cnt == 12'd16 && control_pkt) begin + if ({op_code_B0,txd_fe_B} == 16'h0001) begin // pause pkt + pause_pkt <= 1'b1; + len_B0B1 <= 16'd46; + end + end + else if (byt_cnt == 12'd18 && vlan_pkt) begin + len_B0B1 <= {vlan_len_B0,txd_fe_B} + 16'd4; + end + + + if (byt_cnt == (len_B0B1 + 12'd15)) begin + Rx_CRC_B0 <= txd_fe_B; + end + if (byt_cnt == (len_B0B1 + 12'd16)) begin + Rx_CRC_B1 <= txd_fe_B; + end + if (byt_cnt == (len_B0B1 + 12'd17)) begin + Rx_CRC_B2 <= txd_fe_B; + end + if (byt_cnt == (len_B0B1 + 12'd18)) begin + Rx_CRC <= {txd_fe_B,Rx_CRC_B2,Rx_CRC_B1,Rx_CRC_B0}; + end + + if (byt_cnt >= 12'd1 && byt_cnt <= 12'd6 ) begin + $fdisplay(out_file, "DA \t \t %d \t %h \t %b \t %b",byt_cnt,txd_fe_B,tx_en_2d,tx_er_2d); + end + else if (byt_cnt >= 12'd7 && byt_cnt <= 12'd12 ) begin + $fdisplay(out_file, "SA \t \t %d \t %h \t %b \t %b",byt_cnt,txd_fe_B,tx_en_2d,tx_er_2d); + end + else if (byt_cnt >= 12'd13 && byt_cnt <= 12'd14 ) begin + if ((byt_cnt == 12'd13 && txd_fe_B == 8'h81) + || (byt_cnt == 12'd14 && {len_B0,txd_fe_B} == 16'h8100)) begin + $fdisplay(out_file, "TAG \t \t %d \t %h \t %b \t %b",byt_cnt,txd_fe_B,tx_en_2d,tx_er_2d); + end + else begin + $fdisplay(out_file, "LT \t \t %d \t %h \t %b \t %b",byt_cnt,txd_fe_B,tx_en_2d,tx_er_2d); + end + end + else if ((byt_cnt >= 12'd15 && byt_cnt <= 12'd16) && vlan_pkt ) begin + $fdisplay(out_file, "TAGC \t \t %d \t %h \t %b \t %b",byt_cnt,txd_fe_B,tx_en_2d,tx_er_2d); + end + else if ((byt_cnt >= 12'd17 && byt_cnt <= 12'd18) && vlan_pkt ) begin + $fdisplay(out_file, "LT \t \t %d \t %h \t %b \t %b",byt_cnt,txd_fe_B,tx_en_2d,tx_er_2d); + end + else if (byt_cnt >= (len_B0B1 + 12'd15) && byt_cnt <= (len_B0B1 + 12'd18) ) begin + $fdisplay(out_file, "CRC \t \t %d \t %h \t %b \t %b",byt_cnt,txd_fe_B,tx_en_2d,tx_er_2d); + end + else begin + $fdisplay(out_file, "Data \t \t %d \t %h \t %b \t %b",byt_cnt,txd_fe_B,tx_en_2d,tx_er_2d); + end + + if (tx_er_2d == 1'b1) begin + tx_error_latched <= 1'b1; + end + + end // if (byte_valid_fe) + + end // if (tx_en_2d) + else if (tx_en_2d == 0) begin + byt_cnt <= 0; + $fdisplay(out_file, "-----------------------------------------------"); + $fdisplay(out_file, "RECEIVED CRC \t \t %h ",Rx_CRC); + $fdisplay(out_file, "EXPECTED CRC \t \t %h ",crc_reg_latched); + if ( Rx_CRC == crc_reg_latched && !tx_error_latched) begin + $fdisplay(out_file, "GOOD PKT"); + end + else begin + $fdisplay(out_file, "BAD PKT"); + end + if (pause_pkt) begin + $fdisplay(out_file, "THIS IS A PAUSE PACKET"); + end + else if (vlan_pkt) begin + $fdisplay(out_file, "THIS IS A VLAN TAGGED PACKET"); + end + $fdisplay(out_file, " "); + $fdisplay(out_file, " "); + $fdisplay(out_file, " "); + m_st = IDLE; + end // if (tx_en_2d == 0) + + end // gbit_en == 0 (10/100 mode) + + end // PKT_BODY + endcase //case (m_st) + +end //always@( posedge tx_clk) begin + + +function [31:0] nextCRC32_D8; + + input [7:0] Data; + input [31:0] CRC; + + reg [7:0] D; + reg [31:0] C; + reg [31:0] NewCRC; + + begin + D[0] = Data[7]; + D[1] = Data[6]; + D[2] = Data[5]; + D[3] = Data[4]; + D[4] = Data[3]; + D[5] = Data[2]; + D[6] = Data[1]; + D[7] = Data[0]; + C = CRC; + + NewCRC[0] = D[6] ^ D[0] ^ C[24] ^ C[30]; + NewCRC[1] = D[7] ^ D[6] ^ D[1] ^ D[0] ^ C[24] ^ C[25] ^ C[30] ^ + C[31]; + NewCRC[2] = D[7] ^ D[6] ^ D[2] ^ D[1] ^ D[0] ^ C[24] ^ C[25] ^ + C[26] ^ C[30] ^ C[31]; + NewCRC[3] = D[7] ^ D[3] ^ D[2] ^ D[1] ^ C[25] ^ C[26] ^ C[27] ^ + C[31]; + NewCRC[4] = D[6] ^ D[4] ^ D[3] ^ D[2] ^ D[0] ^ C[24] ^ C[26] ^ + C[27] ^ C[28] ^ C[30]; + NewCRC[5] = D[7] ^ D[6] ^ D[5] ^ D[4] ^ D[3] ^ D[1] ^ D[0] ^ C[24] ^ + C[25] ^ C[27] ^ C[28] ^ C[29] ^ C[30] ^ C[31]; + NewCRC[6] = D[7] ^ D[6] ^ D[5] ^ D[4] ^ D[2] ^ D[1] ^ C[25] ^ C[26] ^ + C[28] ^ C[29] ^ C[30] ^ C[31]; + NewCRC[7] = D[7] ^ D[5] ^ D[3] ^ D[2] ^ D[0] ^ C[24] ^ C[26] ^ + C[27] ^ C[29] ^ C[31]; + NewCRC[8] = D[4] ^ D[3] ^ D[1] ^ D[0] ^ C[0] ^ C[24] ^ C[25] ^ + C[27] ^ C[28]; + NewCRC[9] = D[5] ^ D[4] ^ D[2] ^ D[1] ^ C[1] ^ C[25] ^ C[26] ^ + C[28] ^ C[29]; + NewCRC[10] = D[5] ^ D[3] ^ D[2] ^ D[0] ^ C[2] ^ C[24] ^ C[26] ^ + C[27] ^ C[29]; + NewCRC[11] = D[4] ^ D[3] ^ D[1] ^ D[0] ^ C[3] ^ C[24] ^ C[25] ^ + C[27] ^ C[28]; + NewCRC[12] = D[6] ^ D[5] ^ D[4] ^ D[2] ^ D[1] ^ D[0] ^ C[4] ^ C[24] ^ + C[25] ^ C[26] ^ C[28] ^ C[29] ^ C[30]; + NewCRC[13] = D[7] ^ D[6] ^ D[5] ^ D[3] ^ D[2] ^ D[1] ^ C[5] ^ C[25] ^ + C[26] ^ C[27] ^ C[29] ^ C[30] ^ C[31]; + NewCRC[14] = D[7] ^ D[6] ^ D[4] ^ D[3] ^ D[2] ^ C[6] ^ C[26] ^ C[27] ^ + C[28] ^ C[30] ^ C[31]; + NewCRC[15] = D[7] ^ D[5] ^ D[4] ^ D[3] ^ C[7] ^ C[27] ^ C[28] ^ + C[29] ^ C[31]; + NewCRC[16] = D[5] ^ D[4] ^ D[0] ^ C[8] ^ C[24] ^ C[28] ^ C[29]; + NewCRC[17] = D[6] ^ D[5] ^ D[1] ^ C[9] ^ C[25] ^ C[29] ^ C[30]; + NewCRC[18] = D[7] ^ D[6] ^ D[2] ^ C[10] ^ C[26] ^ C[30] ^ C[31]; + NewCRC[19] = D[7] ^ D[3] ^ C[11] ^ C[27] ^ C[31]; + NewCRC[20] = D[4] ^ C[12] ^ C[28]; + NewCRC[21] = D[5] ^ C[13] ^ C[29]; + NewCRC[22] = D[0] ^ C[14] ^ C[24]; + NewCRC[23] = D[6] ^ D[1] ^ D[0] ^ C[15] ^ C[24] ^ C[25] ^ C[30]; + NewCRC[24] = D[7] ^ D[2] ^ D[1] ^ C[16] ^ C[25] ^ C[26] ^ C[31]; + NewCRC[25] = D[3] ^ D[2] ^ C[17] ^ C[26] ^ C[27]; + NewCRC[26] = D[6] ^ D[4] ^ D[3] ^ D[0] ^ C[18] ^ C[24] ^ C[27] ^ + C[28] ^ C[30]; + NewCRC[27] = D[7] ^ D[5] ^ D[4] ^ D[1] ^ C[19] ^ C[25] ^ C[28] ^ + C[29] ^ C[31]; + NewCRC[28] = D[6] ^ D[5] ^ D[2] ^ C[20] ^ C[26] ^ C[29] ^ C[30]; + NewCRC[29] = D[7] ^ D[6] ^ D[3] ^ C[21] ^ C[27] ^ C[30] ^ C[31]; + NewCRC[30] = D[7] ^ D[4] ^ C[22] ^ C[28] ^ C[31]; + NewCRC[31] = D[5] ^ C[23] ^ C[29]; + + nextCRC32_D8 = NewCRC; + + end + +endfunction + + +function [31:0] crc_rev; + + input [31:0] data_in; + integer crc_i; + begin + for (crc_i = 0; crc_i < 32; crc_i = crc_i+1) begin + crc_rev[crc_i] = ~data_in[31 - crc_i]; + end + end +endfunction + +endmodule + diff --git a/gbe/cores/sgmii/tsmac/ts_mac_eval/testbench/top/rdwr_task.v b/gbe/cores/sgmii/tsmac/ts_mac_eval/testbench/top/rdwr_task.v new file mode 100644 index 0000000..f88f46a --- /dev/null +++ b/gbe/cores/sgmii/tsmac/ts_mac_eval/testbench/top/rdwr_task.v @@ -0,0 +1,50 @@ +// =========================================================================== +// Verilog module generated by IPexpress +// Filename: rdwr_task.v +// Copyright 2005 (c) Lattice Semiconductor Corporation. All rights reserved. +// =========================================================================== + +// MPI Write +task orc_write; +input [17:0] address; +input [7:0] data; +reg ret_status; +begin +orcastra_drv.single_write(address,data,ret_status); +end +endtask + +// MPI Read +task orc_read; +input [17:0] address; +output [7:0] data; +reg ret_status; +reg [7:0] read_data; +begin +orcastra_drv.single_read(address,read_data,ret_status); +data = read_data[7:0]; +$display(" READ at address: %h at time: %t data is : %h", address, $time, data ) ; +end +endtask + +// Register Write +task reg_wr; +input [17:0] waddr; +input [7:0] wdata; +begin + orc_write(waddr,wdata); +end +endtask + +// Register Read +task reg_rd; +input [17:0] raddr; +output [7:0] rdata; +reg [7:0] read_data; +begin + orc_read(raddr,read_data); + rdata = read_data; +end +endtask + + diff --git a/gbe/cores/sgmii/tsmac/ts_mac_eval/testbench/top/rx_gen_tasks.v b/gbe/cores/sgmii/tsmac/ts_mac_eval/testbench/top/rx_gen_tasks.v new file mode 100644 index 0000000..de3b30a --- /dev/null +++ b/gbe/cores/sgmii/tsmac/ts_mac_eval/testbench/top/rx_gen_tasks.v @@ -0,0 +1,853 @@ +// =========================================================================== +// Verilog module generated by IPexpress +// Filename: rx_gen_tasks.v +// Copyright 2005 (c) Lattice Semiconductor Corporation. All rights reserved. +// =========================================================================== + + task rx_frmgen; + /*( gben, + des_addr, + frm_len, + num_premb, + num_ipg, + badcrc, //1'b0 is for good crc, 1'b1 is for bad crc + norm_vlan_paus, //2'b00 is for normal frame, 2'b01 is for VLAN tagged frame, + //2'b10 is for pause frame, + //2'b11 is for pause frame with customized des_addr + pause_timer, //valid only when norm_vlan_paus is set to 2'b10 + bad_pcode, //1'b0 is for good pause op-code, 1'b1 is for bad pause op-code + len_type, //1'b0 is for length field, 1'b1 is for type field + len_chkerr, //1'b0 is for no length check error, + //1'b1 is for generating length check error + badsfd, //1'b0 is for good sfd, 1'b1 is for bad sfd + runt_frmid, + frm_patn //4'd0 is a normal frame without any following condition + //4'd1 is for assert one clock long rx_er during frame + //4'd2 is for non-padded frame which is less than 64 bytes + //4'd14 is for non-padded frame which is less than 64 with dribble nibble + //4'd15 is for dribble nibble frame + );*/ + input gben; //bit 0 in frm_info + input [47:0] des_addr; //bit 48:1 in frm_info + input [13:0] frm_len; //bit 62:49 in frm_info + input [3:0] num_premb; //bit 66:63 in frm_info + input [4:0] num_ipg; //bit 71:67 in frm_info + input badcrc; //bit 72 in frm_info + input [1:0] norm_vlan_paus; //bit 74:73 in frm_info + input [15:0] pause_timer; //bit 90:75 in frm_info + input bad_pcode; //bit 91 in frm_info + input len_type; //bit 92 in frm_info + input len_chkerr; //bit 93 in frm_info + input badsfd; //bit 94 in frm_info + input [2:0] runt_frmid; //bit 97:95 in frm_info + input [3:0] frm_patn; //bit 101:98 in frm_info + + integer i; + reg [13:0] reg_i; + reg [13:0] data_len; + + reg [7:0] strt_rxd; + reg [31:0] crc_reg; + reg [101:0] frm_info; + + reg [7:0] rxd_reg; + //reg rxdv; + //reg rxer; + //reg [7:0] rxd; + event frm_data; + + + parameter PREAMBLE_NIB = 4'h5; + parameter SFD_NIB1 = 4'hd; + parameter GOODSFD_NIB2 = 4'h5; + parameter BADSFD_NIB2 = 4'h3; + parameter RNDM_FRM_TYPE1 = 4'h5; + parameter RNDM_FRM_TYPE2 = 4'hd; + parameter CRC_INIT_VALUE = 32'hffff_ffff; + parameter TAG_CTRL_NIB1 = 4'd1; + parameter TAG_CTRL_NIB2 = 4'd2; + parameter TAG_CTRL_NIB3 = 4'd3; + parameter TAG_CTRL_NIB4 = 4'd4; + parameter PAUSE_LENTYPE1 = 4'h8; //length/type field for pause frame is 16'h8808 + parameter PAUSE_LENTYPE2 = 4'h0; //reversed version of it is 16'h1110 + parameter PAUSE_LENTYPE3 = 4'h8; + parameter PAUSE_LENTYPE4 = 4'h8; + + parameter PAUSE_DES_NIB0 = 4'h1; //destination address for pause frame is 48'h0180_c200_0001 + parameter PAUSE_DES_NIB1 = 4'h0; + parameter PAUSE_DES_NIB2 = 4'h0; + parameter PAUSE_DES_NIB3 = 4'h0; + parameter PAUSE_DES_NIB4 = 4'h0; + parameter PAUSE_DES_NIB5 = 4'h0; + parameter PAUSE_DES_NIB6 = 4'h2; + parameter PAUSE_DES_NIB7 = 4'hc; + parameter PAUSE_DES_NIB8 = 4'h0; + parameter PAUSE_DES_NIB9 = 4'h8; + parameter PAUSE_DES_NIB10 = 4'h1; + parameter PAUSE_DES_NIB11 = 4'h0; + +// parameter PAUSE_OP_NIB1 = 4'h0; +// parameter PAUSE_OP_NIB2 = 4'h0; +// parameter PAUSE_OP_NIB3 = 4'h8; +// parameter PAUSE_OP_NIB4 = 4'h0; + + parameter PAUSE_D_NIB1 = 4'h0; + parameter PAUSE_D_NIB2 = 4'h0; + + //runt frame ID + //8'd0 do not generate runt frame + //8'd1 runt frame with preamble only + //8'd2 runt frame with preamble and sfd + //8'd3 runt frame with preamble, sfd and destination address + //8'd4 runt frame with preamble, sfd, destination address and source address +`define PAUSE_OP_NIB4 4'h0 +`define PAUSE_OP_NIB3 4'h0 +`define PAUSE_OP_NIB2 4'h0 +`define PAUSE_OP_NIB1 4'h1 +//`define PAUSE_OP_NIB4 test_ts_mac.U1_ts_mac_top.U1_ts_mac_core.U1_cpu_if.pause_opcode[15:12] +//`define PAUSE_OP_NIB3 test_ts_mac.U1_ts_mac_top.U1_ts_mac_core.U1_cpu_if.pause_opcode[11:8] +//`define PAUSE_OP_NIB2 test_ts_mac.U1_ts_mac_top.U1_ts_mac_core.U1_cpu_if.pause_opcode[7:4] +//`define PAUSE_OP_NIB1 test_ts_mac.U1_ts_mac_top.U1_ts_mac_core.U1_cpu_if.pause_opcode[3:0] + +//`include "rx_gen_tasks.inc.v" + + begin + frm_info = {frm_patn, runt_frmid, badsfd, len_chkerr, len_type, bad_pcode, pause_timer, + norm_vlan_paus, badcrc, num_ipg, num_premb, frm_len, des_addr, gben}; + + if (num_ipg == 0) begin + rxdv = 1'b0; + rxer = 1'b1; + rxd = 8'h0f; // carrier extend + end + else begin + rxdv = 1'b0; + rxer = 1'b0; + rxd = 8'b0; + end + + $display("INFO:%t New Frame is generated:", $time); + if(!norm_vlan_paus[0] && !norm_vlan_paus[1]) + $display("\t\tIt is a normal frame;"); + else if(norm_vlan_paus[0] && !norm_vlan_paus[1]) + $display("\t\tIt is a VLAN tagged frame;"); + else if(norm_vlan_paus[1]) + $display("\t\tIt is a Pause frame;"); + $display("\t\tData length is %d(DEC);", frm_len); + $display("\t\tDestination address is %h(HEX);", des_addr); + $display("\t\t%d bytes of preamble;", num_premb); + if(badsfd) + $display("\t\tBad SFD will be appended;"); + $display("\t\tIPG number is %d(DEC);", num_ipg); + if(len_chkerr) + $display("\t\tLength check err will be generated;"); + if(badcrc) + $display("\t\tBad CRC will be generated.\n"); + else + $display("\t\tGood CRC will be generated.\n"); + + if(num_ipg == 0) + $display("\t\t6 clocks of carrier extension will be generated.\n"); + + //wait for proper IPG or 6 clks of Carrier Extend + if (num_ipg == 0) begin + repeat (6) begin + @(negedge rxmac_clk); + end + end + else begin + repeat (num_ipg-1) begin + @(negedge rxmac_clk); + end + end + + crc_reg = 32'hffff_ffff; + + //Preamble generation + if(num_premb > 4'd0) begin + repeat (num_premb) begin + @(negedge rxmac_clk) + rxdv = 1'b1; + + if (num_ipg == 0) begin // carrier extend + rxer = 1'b0; + end + + rxd_reg = {PREAMBLE_NIB, PREAMBLE_NIB}; + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + //$display ("%t rxd_reg is %h\n", $time, rxd_reg); + end // repeat (num_premb) + end // if (num_premb > 4'd0) + + + //SFD generation + if(runt_frmid !== 8'd1) begin + if(!badsfd) begin + @(negedge rxmac_clk) + rxdv = 1'b1; + rxd_reg = {SFD_NIB1, GOODSFD_NIB2}; + end // if (!badsfd) + else begin + @(negedge rxmac_clk) + rxdv = 1'b1; + rxd_reg = {SFD_NIB1, BADSFD_NIB2}; + end + end + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + + //destination address generation + if (norm_vlan_paus == 2'b10) begin //pause frame + @(negedge rxmac_clk) + rxd_reg = {PAUSE_DES_NIB11, PAUSE_DES_NIB10}; + crc_reg = nextCRC32_D8(rxd_reg, CRC_INIT_VALUE); + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + @(negedge rxmac_clk) + rxd_reg = {PAUSE_DES_NIB9, PAUSE_DES_NIB8}; + crc_reg = nextCRC32_D8(rxd_reg, crc_reg); + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + @(negedge rxmac_clk) + rxd_reg = {PAUSE_DES_NIB7, PAUSE_DES_NIB6}; + crc_reg = nextCRC32_D8(rxd_reg, crc_reg); + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + @(negedge rxmac_clk) + rxd_reg = {PAUSE_DES_NIB5, PAUSE_DES_NIB4}; + crc_reg = nextCRC32_D8(rxd_reg, crc_reg); + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + @(negedge rxmac_clk) + rxd_reg = {PAUSE_DES_NIB3, PAUSE_DES_NIB2}; + crc_reg = nextCRC32_D8(rxd_reg, crc_reg); + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + @(negedge rxmac_clk) + rxd_reg = {PAUSE_DES_NIB1, PAUSE_DES_NIB0}; + crc_reg = nextCRC32_D8(rxd_reg, crc_reg); + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + end // if (norm_vlan_paus == 2'b10) + else begin + if( (runt_frmid !== 8'd1) && (runt_frmid !== 8'd2) ) begin + @(negedge rxmac_clk) + rxd_reg = des_addr[47:40]; + crc_reg = nextCRC32_D8(rxd_reg, CRC_INIT_VALUE); + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + @(negedge rxmac_clk) + rxd_reg = des_addr[39:32]; + crc_reg = nextCRC32_D8(rxd_reg, crc_reg); + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + @(negedge rxmac_clk) + rxd_reg = des_addr[31:24]; + crc_reg = nextCRC32_D8(rxd_reg, crc_reg); + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + @(negedge rxmac_clk) + rxd_reg = des_addr[23:16]; + crc_reg = nextCRC32_D8(rxd_reg, crc_reg); + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + @(negedge rxmac_clk) + rxd_reg = des_addr[15:8]; + crc_reg = nextCRC32_D8(rxd_reg, crc_reg); + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + @(negedge rxmac_clk) + rxd_reg = des_addr[7:0]; + crc_reg = nextCRC32_D8(rxd_reg, crc_reg); + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + end // if ( (runt_frmid !== 8'd1) && (runt_frmid !== 8'd2) ) + end // else: !if(norm_vlan_paus == 2'b10) + + //source address generation + if( (runt_frmid !== 8'd1) && (runt_frmid !== 8'd2) && (runt_frmid !== 8'd3) ) begin + @(negedge rxmac_clk) + rxd_reg = {`SRC_NIB11, `SRC_NIB10}; + crc_reg = nextCRC32_D8(rxd_reg, crc_reg); + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + @(negedge rxmac_clk) + rxd_reg = {`SRC_NIB9, `SRC_NIB8}; + crc_reg = nextCRC32_D8(rxd_reg, crc_reg); + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + @(negedge rxmac_clk) + rxd_reg = {`SRC_NIB7, `SRC_NIB6}; + crc_reg = nextCRC32_D8(rxd_reg, crc_reg); + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + @(negedge rxmac_clk) + rxd_reg = {`SRC_NIB5, `SRC_NIB4}; + crc_reg = nextCRC32_D8(rxd_reg, crc_reg); + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + @(negedge rxmac_clk) + rxd_reg = {`SRC_NIB3, `SRC_NIB2}; + crc_reg = nextCRC32_D8(rxd_reg, crc_reg); + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + @(negedge rxmac_clk) + rxd_reg = {`SRC_NIB1, `SRC_NIB0}; + crc_reg = nextCRC32_D8(rxd_reg, crc_reg); + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + end // if ( (runt_frmid !== 8'd1) && (runt_frmid !== 8'd2) ) + + //VLAN tagged field + if(norm_vlan_paus == 2'b01) begin + @(negedge rxmac_clk) + rxd_reg = 8'b1000_0001; + crc_reg = nextCRC32_D8(rxd_reg, crc_reg); + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + @(negedge rxmac_clk) + rxd_reg = 8'b0000_0000; + crc_reg = nextCRC32_D8(rxd_reg, crc_reg); + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + @(negedge rxmac_clk) + rxd_reg = {TAG_CTRL_NIB4, TAG_CTRL_NIB3}; + crc_reg = nextCRC32_D8(rxd_reg, crc_reg); + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + @(negedge rxmac_clk) + rxd_reg = {TAG_CTRL_NIB2, TAG_CTRL_NIB1}; + crc_reg = nextCRC32_D8(rxd_reg, crc_reg); + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + end // if (norm_vlan_paus == 2'b01) + + //length/type field generation + if((norm_vlan_paus == 2'b10) || (norm_vlan_paus == 2'b11)) begin //pause frame + @(negedge rxmac_clk) + rxd_reg = {PAUSE_LENTYPE4, PAUSE_LENTYPE3}; + crc_reg = nextCRC32_D8(rxd_reg, crc_reg); + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + @(negedge rxmac_clk) + rxd_reg = {PAUSE_LENTYPE2, PAUSE_LENTYPE1}; + crc_reg = nextCRC32_D8(rxd_reg, crc_reg); + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + end // if (norm_vlan_paus[1] == 1'b1) + else begin + if( (runt_frmid != 8'd1) && (runt_frmid != 8'd2) && (runt_frmid != 8'd3) + && (runt_frmid != 8'd4) ) begin + if(!len_type) begin + if(!len_chkerr) begin + @(negedge rxmac_clk) + rxd_reg = {5'b00000,frm_len[10:8]}; + crc_reg = nextCRC32_D8(rxd_reg, crc_reg); + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + @(negedge rxmac_clk) + rxd_reg = frm_len[7:0]; + crc_reg = nextCRC32_D8(rxd_reg, crc_reg); + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + end // if (!len_chkerr) + else begin + @(negedge rxmac_clk) + rxd_reg = {5'b00000, frm_len[10:8]}; + crc_reg = nextCRC32_D8(rxd_reg, crc_reg); + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + @(negedge rxmac_clk) + rxd_reg = frm_len[7:0] + 8'h01; + crc_reg = nextCRC32_D8(rxd_reg, crc_reg); + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + end // else: !if(!len_chkerr) + end // if (!len_type) + else begin + @(negedge rxmac_clk) + rxd_reg = {RNDM_FRM_TYPE2, RNDM_FRM_TYPE1}; + crc_reg = nextCRC32_D8(rxd_reg, crc_reg); + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + @(negedge rxmac_clk) + rxd_reg = 8'h00; + crc_reg = nextCRC32_D8(rxd_reg, crc_reg); + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + end // else: !if(!len_type) + end // if ( (runt_frmid != 8'd1) && (runt_frmid != 8'd2) && (runt_frmid != 8'd3)... + end // else: !if(norm_vlan_paus == 2'b10) + + //MAC control op-code and parameter, frame data for pause frame + if((norm_vlan_paus == 2'b11) || (norm_vlan_paus == 2'b10)) begin //pause frame + @(negedge rxmac_clk) + if(bad_pcode) + rxd_reg = ~{`PAUSE_OP_NIB4, `PAUSE_OP_NIB3}; + else + rxd_reg = {`PAUSE_OP_NIB4, `PAUSE_OP_NIB3}; + crc_reg = nextCRC32_D8(rxd_reg, crc_reg); + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + @(negedge rxmac_clk) + rxer = (frm_patn === 4'd1); //generating rx_er during pause frame + rxd_reg = {`PAUSE_OP_NIB2, `PAUSE_OP_NIB1}; + crc_reg = nextCRC32_D8(rxd_reg, crc_reg); + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + @(negedge rxmac_clk) + rxer = 1'b0; //de-assert rx_er + rxd_reg = pause_timer[15:8]; + crc_reg = nextCRC32_D8(rxd_reg, crc_reg); + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + @(negedge rxmac_clk) + rxd_reg = pause_timer[7:0]; + crc_reg = nextCRC32_D8(rxd_reg, crc_reg); + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + for (i=0; i<42; i=i+1) begin + @(negedge rxmac_clk) + rxd_reg = {PAUSE_D_NIB2, PAUSE_D_NIB1}; + crc_reg = nextCRC32_D8(rxd_reg, crc_reg); + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + end + end // if (norm_vlan_paus[1] == 1'b1) + //else if(runt_frmid == 4'd0) begin + else if(runt_frmid == 4'd0 || (runt_frmid == 4'd2 && frm_patn == 4'd3) ) begin // N.G change + + //frame data generation + strt_rxd = $random; + rxer = (frm_patn === 4'd1); + @(negedge rxmac_clk) + rxd_reg = strt_rxd[7:0]; + crc_reg = nextCRC32_D8(rxd_reg, crc_reg); + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + rxer = 1'b0; + //for (i=(frm_len-18-1);i>=1;i=i-1) begin + if( !norm_vlan_paus[0] && !norm_vlan_paus[1] ) begin + //if ( (frm_len < 14'd46) && ((frm_patn != 4'd2) && (frm_patn != 4'd14)) ) begin + if ( (frm_len < 14'd46) && ((frm_patn != 4'd2) && (frm_patn != 4'd14) && (frm_patn != 4'd3)) ) begin + data_len = 14'd46; + end + else begin + data_len = frm_len; + end + end + else if( norm_vlan_paus[0] && !norm_vlan_paus[1] ) begin + if( (frm_len < 14'd42) && (frm_patn != 4'd2) ) begin + data_len = 14'd42; + end + else begin + //data_len = frm_len - 4; + data_len = frm_len; + end + end + else + data_len = frm_len; + //for (i=(frm_len-1);i>=1;i=i-1) begin + for (i=(data_len-1);i>=1;i=i-1) begin + @(negedge rxmac_clk) + + rxd_reg = rxd_reg+8'd1; + + /* + if (i == 0) begin + rxd_reg = 8'h24; + end else begin + rxd_reg = 8'h55; + end + */ + + crc_reg = nextCRC32_D8(rxd_reg, crc_reg); + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + end // for (i=frm_len-1;i<1;i=i-1) + end // else: !if(norm_vlan_paus[1] == 1'b1) + + //FCS generation + if(runt_frmid === 3'd0) begin + if(!badcrc) begin + crc_reg = crc_rev(crc_reg); + @(negedge rxmac_clk) + rxd_reg = crc_reg[7:0]; + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + @(negedge rxmac_clk) + rxd_reg = crc_reg[15:8]; + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + @(negedge rxmac_clk) + rxd_reg = crc_reg[23:16]; + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + @(negedge rxmac_clk) + rxd_reg = crc_reg[31:24]; + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + end // if (badfcs) + else begin + @(negedge rxmac_clk) + rxd_reg = crc_reg[7:0]; + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + @(negedge rxmac_clk) + rxd_reg = crc_reg[15:8]; + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + @(negedge rxmac_clk) + rxd_reg = crc_reg[23:16]; + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + @(negedge rxmac_clk) + rxd_reg = crc_reg[31:24]; + if (gben == 1) begin + rxd[7:0] = rxd_reg[7:0]; + end else begin + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxd[3:0] = rxd_reg[7:4]; + end + end // else: !if(badfcs) + end // if (runt_frmid === 8'd0) + + if (gben == 1) begin + @(negedge rxmac_clk) + rxdv = 1'b0; + end else begin + if ((frm_patn == 4'd15) || (frm_patn == 4'd14)) begin + @(negedge rxmac_clk) + rxd_reg = $random; + rxd[3:0] = rxd_reg[3:0]; + @(posedge rxmac_clk) + rxdv = 1'b0; + end else begin + @(negedge rxmac_clk) + rxdv = 1'b0; + end + end + end +endtask + +function [31:0] nextCRC32_D8; + + input [7:0] Data; + input [31:0] CRC; + + reg [7:0] D; + reg [31:0] C; + reg [31:0] NewCRC; + + begin + D[0] = Data[7]; + D[1] = Data[6]; + D[2] = Data[5]; + D[3] = Data[4]; + D[4] = Data[3]; + D[5] = Data[2]; + D[6] = Data[1]; + D[7] = Data[0]; + C = CRC; + + NewCRC[0] = D[6] ^ D[0] ^ C[24] ^ C[30]; + NewCRC[1] = D[7] ^ D[6] ^ D[1] ^ D[0] ^ C[24] ^ C[25] ^ C[30] ^ + C[31]; + NewCRC[2] = D[7] ^ D[6] ^ D[2] ^ D[1] ^ D[0] ^ C[24] ^ C[25] ^ + C[26] ^ C[30] ^ C[31]; + NewCRC[3] = D[7] ^ D[3] ^ D[2] ^ D[1] ^ C[25] ^ C[26] ^ C[27] ^ + C[31]; + NewCRC[4] = D[6] ^ D[4] ^ D[3] ^ D[2] ^ D[0] ^ C[24] ^ C[26] ^ + C[27] ^ C[28] ^ C[30]; + NewCRC[5] = D[7] ^ D[6] ^ D[5] ^ D[4] ^ D[3] ^ D[1] ^ D[0] ^ C[24] ^ + C[25] ^ C[27] ^ C[28] ^ C[29] ^ C[30] ^ C[31]; + NewCRC[6] = D[7] ^ D[6] ^ D[5] ^ D[4] ^ D[2] ^ D[1] ^ C[25] ^ C[26] ^ + C[28] ^ C[29] ^ C[30] ^ C[31]; + NewCRC[7] = D[7] ^ D[5] ^ D[3] ^ D[2] ^ D[0] ^ C[24] ^ C[26] ^ + C[27] ^ C[29] ^ C[31]; + NewCRC[8] = D[4] ^ D[3] ^ D[1] ^ D[0] ^ C[0] ^ C[24] ^ C[25] ^ + C[27] ^ C[28]; + NewCRC[9] = D[5] ^ D[4] ^ D[2] ^ D[1] ^ C[1] ^ C[25] ^ C[26] ^ + C[28] ^ C[29]; + NewCRC[10] = D[5] ^ D[3] ^ D[2] ^ D[0] ^ C[2] ^ C[24] ^ C[26] ^ + C[27] ^ C[29]; + NewCRC[11] = D[4] ^ D[3] ^ D[1] ^ D[0] ^ C[3] ^ C[24] ^ C[25] ^ + C[27] ^ C[28]; + NewCRC[12] = D[6] ^ D[5] ^ D[4] ^ D[2] ^ D[1] ^ D[0] ^ C[4] ^ C[24] ^ + C[25] ^ C[26] ^ C[28] ^ C[29] ^ C[30]; + NewCRC[13] = D[7] ^ D[6] ^ D[5] ^ D[3] ^ D[2] ^ D[1] ^ C[5] ^ C[25] ^ + C[26] ^ C[27] ^ C[29] ^ C[30] ^ C[31]; + NewCRC[14] = D[7] ^ D[6] ^ D[4] ^ D[3] ^ D[2] ^ C[6] ^ C[26] ^ C[27] ^ + C[28] ^ C[30] ^ C[31]; + NewCRC[15] = D[7] ^ D[5] ^ D[4] ^ D[3] ^ C[7] ^ C[27] ^ C[28] ^ + C[29] ^ C[31]; + NewCRC[16] = D[5] ^ D[4] ^ D[0] ^ C[8] ^ C[24] ^ C[28] ^ C[29]; + NewCRC[17] = D[6] ^ D[5] ^ D[1] ^ C[9] ^ C[25] ^ C[29] ^ C[30]; + NewCRC[18] = D[7] ^ D[6] ^ D[2] ^ C[10] ^ C[26] ^ C[30] ^ C[31]; + NewCRC[19] = D[7] ^ D[3] ^ C[11] ^ C[27] ^ C[31]; + NewCRC[20] = D[4] ^ C[12] ^ C[28]; + NewCRC[21] = D[5] ^ C[13] ^ C[29]; + NewCRC[22] = D[0] ^ C[14] ^ C[24]; + NewCRC[23] = D[6] ^ D[1] ^ D[0] ^ C[15] ^ C[24] ^ C[25] ^ C[30]; + NewCRC[24] = D[7] ^ D[2] ^ D[1] ^ C[16] ^ C[25] ^ C[26] ^ C[31]; + NewCRC[25] = D[3] ^ D[2] ^ C[17] ^ C[26] ^ C[27]; + NewCRC[26] = D[6] ^ D[4] ^ D[3] ^ D[0] ^ C[18] ^ C[24] ^ C[27] ^ + C[28] ^ C[30]; + NewCRC[27] = D[7] ^ D[5] ^ D[4] ^ D[1] ^ C[19] ^ C[25] ^ C[28] ^ + C[29] ^ C[31]; + NewCRC[28] = D[6] ^ D[5] ^ D[2] ^ C[20] ^ C[26] ^ C[29] ^ C[30]; + NewCRC[29] = D[7] ^ D[6] ^ D[3] ^ C[21] ^ C[27] ^ C[30] ^ C[31]; + NewCRC[30] = D[7] ^ D[4] ^ C[22] ^ C[28] ^ C[31]; + NewCRC[31] = D[5] ^ C[23] ^ C[29]; + + nextCRC32_D8 = NewCRC; + + end + +endfunction + + +function [31:0] crc_rev; + + input [31:0] data_in; + integer crc_i; + begin + for (crc_i = 0; crc_i < 32; crc_i = crc_i+1) begin + crc_rev[crc_i] = ~data_in[31 - crc_i]; + end + end +endfunction + + diff --git a/gbe/cores/sgmii/tsmac/ts_mac_eval/testbench/top/test_ts_mac.v b/gbe/cores/sgmii/tsmac/ts_mac_eval/testbench/top/test_ts_mac.v new file mode 100644 index 0000000..fc85e57 --- /dev/null +++ b/gbe/cores/sgmii/tsmac/ts_mac_eval/testbench/top/test_ts_mac.v @@ -0,0 +1,328 @@ +// =========================================================================== +// Verilog module generated by IPexpress +// Filename: test_ts_mac.v +// Copyright 2005 (c) Lattice Semiconductor Corporation. All rights reserved. +// =========================================================================== + +`timescale 1 ns/100 ps + +module test_ts_mac ; + +`include "env_params.v" +`include "test_tsmac_params.v" + + +reg reset_n ; +reg tx_clk_125 ; +reg rx_clk_125 ; +reg tx_clk_25 ; +reg rx_clk_25 ; +reg clk_125 ; +reg clk_12_5 ; +reg sys_clk ; +reg hclk ; + +wire gtx_clk; +wire tx_en; +wire tx_er; +wire [7:0] txd; + +wire tx_clk; +wire rx_clk; + +`ifdef MIIM_MODULE + tri mdio; +`endif + +reg [7:0] rxd; +reg rxer; +reg rxdv; +reg col; +reg crs; + +reg tdi; +reg tms; +reg tck; + +wire rxmac_clk_wire; +wire txmac_clk_wire; +wire rxmac_clk; +wire txmac_clk; + +// test points +wire [7:0] tx_fifodata; +wire tx_fifoavail; +wire tx_fifoeof; +wire tx_fifoempty; +wire tx_sndpausreq; +wire tx_fifoctrl; +wire tx_fifo_full_ri; +wire tx_macread; +wire tx_discfrm; +wire tx_staten; +wire tx_done; +wire gbit_en; // gbit_en signal + +`ifdef SGMII_TSMAC + wire txmac_clk_en; + wire rxmac_clk_en; + wire clk_en_1000; + reg clk_en_100_tx; + reg clk_en_100_rx; +`endif + +initial begin + reset_n = 1; + #50; + reset_n = 0; + #100; + reset_n = 1; +end + +initial begin + col = 0; + tx_clk_125 = 0; + rx_clk_125 = 0; + tx_clk_25 = 0; + rx_clk_25 = 0; + clk_125 = 0; + clk_12_5 = 0; + hclk = 0; + sys_clk = 0; + rxd = 8'h00; + rxdv = 0; + rxer = 0; + crs = 0; + `ifdef SGMII_TSMAC + clk_en_100_tx = 0; + clk_en_100_rx = 0; + `endif + tdi = 0; + tms = 0; + tck = 0; + + `ifdef GBE_MAC + `else +`ifdef GATE_SIM_VHD + force U1_ts_mac_top.gbit_en_c = 1; + #40; + release U1_ts_mac_top.gbit_en_c; +`else + force U1_ts_mac_top.gbit_en_wire = 1; + #40; + release U1_ts_mac_top.gbit_en_wire; +`endif + `endif + + //force U1_ts_mac_top.U1_ts_mac_core.U1_tx_mac.U1_tx_readfifo.tx_fifodata = 0; + //#300; + //release U1_ts_mac_top.U1_ts_mac_core.U1_tx_mac.U1_tx_readfifo.tx_fifodata; + + //#85000 + //#103000 + //force U1_ts_mac_top.u1_tst_logic.tx_fifo_empty_ri = 1; + //#1000; + //release U1_ts_mac_top.u1_tst_logic.tx_fifo_empty_ri; +end + +GSR GSR_INST (.GSR(reset_n)) /* synthesis syn_noprune = 1 */ ; +PUR PUR_INST (.PUR(1'b1)) /* synthesis syn_noprune = 1 */ ; +//TSALL TSALL_INST (1'b1) /* synthesis syn_noprune = 1 */ ; + +`ifdef CLASSIC_TSMAC + assign tx_clk = (gbit_en) ? tx_clk_125:tx_clk_25; + assign rx_clk = (gbit_en) ? rx_clk_125:rx_clk_25; +`else // SGMII_TSMAC OR GBE_MAC + assign tx_clk = tx_clk_125; + assign rx_clk = rx_clk_125; +`endif + +// rxmac_clk goes to rx_gen_task to drive pkts +`ifdef SGMII_TSMAC + assign rxmac_clk = (gbit_en) ? clk_125:clk_12_5; // +`else // CLASSIC_TSMAC OR GBE_MAC + assign rxmac_clk = rxmac_clk_wire; +`endif + + + ts_mac_top U1_ts_mac_top ( + + // clock and reset + + .gtx_clk (gtx_clk), + .tx_clk (tx_clk), + + `ifdef SGMII_TSMAC + .txmac_clk_en (txmac_clk_en), + .rxmac_clk_en (rxmac_clk_en), + `endif + + `ifdef MIIM_MODULE + .mdc (mdc), + `endif + + .sys_clk (sys_clk), + .hclk (hclk), + .rx_clk (rx_clk), + .rxmac_clk (rxmac_clk_wire), + .txmac_clk (txmac_clk_wire), + .reset_n (reset_n), + + // Input signals to the GMII + .rx_dv (rxdv), + .rx_er (rxer), + .rxd (rxd), + + `ifndef GBE_MAC + .col (col), + .crs (crs), + `endif + + // orcastra interface + .pc_clk (pc_clk), + .pc_datain (pc_datain), + .pc_dataout (pc_dataout), + .pc_retry (pc_retry), + .pc_error (pc_error), + .pc_ready (pc_ready), + .pc_ack (pc_ack), + .jtag_present (), + .jtag_parallel (1'b0), + + // JTAG Signals + .tdi (tdi), + .tms (tms), + .tck (tck), + .tdo (), + + // Input/Output signal from the MII Management Interface + `ifdef MIIM_MODULE + .mdio (mdio), + `endif + + // Output signals from the GMII + .tx_en (tx_en), + .tx_er (tx_er), + .txd (txd), + + // These are test points on the evaluation board + .tx_fifodata (tx_fifodata), + .tx_fifoavail (tx_fifoavail), + .tx_fifoeof (tx_fifoeof), + .tx_fifoempty (tx_fifoempty), + .tx_sndpausreq (tx_sndpausreq), + .tx_fifoctrl (tx_fifoctrl), + .tx_fifo_full_ri (tx_fifo_full_ri), + .tx_macread (tx_macread), + .tx_discfrm (tx_discfrm), + .tx_staten (tx_staten), + .tx_done (tx_done), + .gbit_en (gbit_en), + .phy_reset_n(phy_reset_n) + ); + + + + orcastra_drv orcastra_drv( + .pc_clk (pc_clk), + .pc_datain (pc_datain), + .pc_dataout (pc_dataout), + .pc_retry (pc_retry), + .pc_error (pc_error), + .pc_ready (pc_ready), + .pc_ack (pc_ack) + ); + + + pkt_mon pkt_mon( + .reset_n (reset_n), + + `ifdef SGMII_TSMAC + .gbit_en (1'b1), + .tx_clk_en (txmac_clk_en), + `else + .gbit_en (gbit_en), + `endif + + .tx_clk (tx_clk), + .tx_en (tx_en), + .tx_er (tx_er), + .txd (txd) + ); + + + //jtag_drv jtag_drv ( + // .PTDO ( tdo ), + // .PTCK ( tck ), + // .PTDI ( tdi ), + // .PTMS ( tms ) + // ); + +`define SRC_NIB11 4'hd +`define SRC_NIB10 4'he +`define SRC_NIB9 4'ha +`define SRC_NIB8 4'hd +`define SRC_NIB7 4'hd +`define SRC_NIB6 4'he +`define SRC_NIB5 4'ha +`define SRC_NIB4 4'hd +`define SRC_NIB3 4'hb +`define SRC_NIB2 4'he +`define SRC_NIB1 4'he +`define SRC_NIB0 4'hf +// ============================================================================= +`include "rx_gen_tasks.v" +`include "testcase.v" +`include "rdwr_task.v" +// ============================================================================= + + +// Clocks generation +// 125 Mhz clock +always #4 clk_125 = ~clk_125 ; +always #4 tx_clk_125 = ~tx_clk_125 ; +always #4 rx_clk_125 = ~rx_clk_125 ; +always #20 tx_clk_25 = ~tx_clk_25 ; +always #20 rx_clk_25 = ~rx_clk_25 ; +always #40 clk_12_5 = ~clk_12_5 ; +// 125 Mhz clock +always #4 sys_clk = ~sys_clk ; +// 50 Mhz clock +always #10 hclk = ~hclk; + +// Clock enable generation +`ifdef SGMII_TSMAC + + assign clk_en_1000 = 1'b1; + + always @(posedge clk_125) begin + #72 clk_en_100_tx = 1'b1; + #8 clk_en_100_tx = 1'b0; + end + + always @(posedge clk_125) begin + #72 clk_en_100_rx = 1'b1; + #8 clk_en_100_rx = 1'b0; + end + + assign txmac_clk_en = (gbit_en) ? clk_en_1000:clk_en_100_tx; + assign rxmac_clk_en = (gbit_en) ? clk_en_1000:clk_en_100_rx; + +`endif + +initial begin + $timeformat (-9 ,1 , "ns", 10); +end + +// Timeout generation to finish hung test cases. +initial begin + repeat (10000000) @(posedge clk_125 ); + $display(" INFO : Simulation Time Out, Test case Terminated") ; + $finish ; +end + +endmodule +// ============================================================================= + + + diff --git a/gbe/cores/sgmii/tsmac/ts_mac_eval/testbench/top/test_tsmac_params.v b/gbe/cores/sgmii/tsmac/ts_mac_eval/testbench/top/test_tsmac_params.v new file mode 100644 index 0000000..7e61bcb --- /dev/null +++ b/gbe/cores/sgmii/tsmac/ts_mac_eval/testbench/top/test_tsmac_params.v @@ -0,0 +1,118 @@ +// =========================================================================== +// Verilog module generated by IPexpress +// Filename: test_tsmac_params.v +// Copyright 2005 (c) Lattice Semiconductor Corporation. All rights reserved. +// =========================================================================== + +parameter GETH_GMII_DATA = 8; // GMII data width in 1000 Mbps mode +parameter FETH_GMII_DATA = 4; // MII data width in 10/100 Mbps mode +parameter HADDR_BUS_WIDTH = 8; // CPU I/F address bus width +parameter FIFO_DATA_WIDTH = 16; // FIFO I/F data bus width +parameter FIFO_DATA_BYTEN = 2; // Byte enable signals for FIFO data +parameter PAUSE_TIME_WIDTH = 16; // Pause frame parameter width +parameter TX_STAT_VEC_WIDTH = 31; // Transmit Status Vector Width +parameter VLAN_TAG_WIDTH = 16; // VLAN Tag Information +parameter TX_BYTEN_WIDTH = 2; // Byte enable from Tx MAC to GMII module +parameter TX_IPG_RNG = 16; // IPG register +parameter TX_DATA_WIDTH = 16; // Tx MAC data path + +/////////////////////////////////////////////////////////////////////// +// The following are the text maxros used by the task transmit +// frame generator. + +`ifdef FETH_MODE + `define DATA_SIZE 4 +`else + `define DATA_SIZE 8 +`endif + + +`define TAG_DFL 4'h0 +`define TAG_DTY 4'h1 +`define TAG_VFL 4'h2 +`define TAG_VTY 4'h3 +`define TAG_PCO 4'h4 +`define TAG_PIO 4'h5 +`define TAG_DATA 4'h6 +`define TAG_DAPA 4'h7 +`define TAG_PAD 4'h8 +`define TAG_CRC 4'h9 +`define TAG_DACR 4'ha +`define TAG_DA 4'hb +`define TAG_SA 4'hc +`define TAG_PRE 4'hd +`define TAG_PRS 4'he + +`define NEOF 1'b0 +`define EOF 1'b1 + +`define PRE_FIRST_WORD 16'b 10101010_10101010 +`define PRE_SECOND_WORD 16'b 10101010_10101010 +`define PRE_THIRD_WORD 16'b 10101010_10101010 +`define PRE_AND_SFD 16'b 10101010_10101011 + + +`define TB_CTRL_FRAME 1'b1 +`define TB_DATA_FRAME 1'b0 + +/////////////////////////////////////////////////////////////////////// +// The following are the text maxros used by the task receive +// frame generator. +// parameter PAUSE_OP_NIB1 = 4'h0; +// parameter PAUSE_OP_NIB2 = 4'h0; +// parameter PAUSE_OP_NIB3 = 4'h8; +// parameter PAUSE_OP_NIB4 = 4'h0; +//`define PAUSE_OP_NIB1 4'h0 +//`define PAUSE_OP_NIB2 4'h0 +//`define PAUSE_OP_NIB3 4'h8 +//`define PAUSE_OP_NIB4 4'h0 + +`define RX_GB_EN 1'b1 +`define RX_FE_EN 1'b0 +`define RX_BAD_CRC 1'b1 +`define RX_GOOD_CRC 1'b0 +`define RX_NORM_FRM 2'b00 +`define RX_VLAN_FRM 2'b01 +`define RX_PAUS_FRM 2'b10 +`define RX_PAUS_FRM_CUS 2'b11 +`define RX_BAD_OPCODE 1'b1 +`define RX_GOOD_OPCODE 1'b0 +`define RX_LEN_FIELD 1'b0 +`define RX_TYP_FIELD 1'b1 +`define RX_LENCHK_ER 1'b1 +`define RX_LENCHK_NOER 1'b0 +`define RX_BAD_SFD 1'b1 +`define RX_GOOD_SFD 1'b0 +`define RX_RUNT_NOT 3'd0 +`define RX_RUNT_PREM 3'd1 +`define RX_RUNT_SFD 3'd2 +`define RX_RUNT_DES 3'd3 +`define RX_RUNT_SRC 3'd4 +`define RX_FRMPTN_NOER 4'd0 +`define RX_FRMPTN_ER 4'd1 +`define RX_FRMPTN_NOPAD 4'd2 +`define RX_FRMPTN_DRNOPAD 4'd14 +`define RX_FRMPTN_DRIB 4'd15 + +`ifdef FETH_MODE + `define MIN_IPG 5'd16 + `define STD_IPG 5'd24 + `define ETH_10_100 +`endif +`ifdef GETH_MODE + `define MIN_IPG 5'd8 + `define STD_IPG 5'd12 + `define ETH_GBIT +`endif +`ifdef TSETH_MODE + `ifdef SET_GIGABIT + `define MIN_IPG 5'd8 + `define STD_IPG 5'd12 + `define ETH_GBIT + `else + `define MIN_IPG 5'd16 + `define STD_IPG 5'd24 + `define ETH_10_100 + `endif +`endif + diff --git a/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/impl/synplify/ts_mac_defines.v b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/impl/synplify/ts_mac_defines.v new file mode 100644 index 0000000..d5ac36a --- /dev/null +++ b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/impl/synplify/ts_mac_defines.v @@ -0,0 +1,2 @@ +`define SGMII_TSMAC +`define DEVICE_ECP5UM diff --git a/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/impl/synplify/tsmac_core_only_eval.ldf b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/impl/synplify/tsmac_core_only_eval.ldf new file mode 100644 index 0000000..a364ce2 --- /dev/null +++ b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/impl/synplify/tsmac_core_only_eval.ldf @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/impl/synplify/tsmac_core_only_eval.lpf b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/impl/synplify/tsmac_core_only_eval.lpf new file mode 100644 index 0000000..0a818b6 --- /dev/null +++ b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/impl/synplify/tsmac_core_only_eval.lpf @@ -0,0 +1,29 @@ +COMMERCIAL ; + +# Period Constraints +FREQUENCY NET "hclk_c" 100.0 MHz; +FREQUENCY NET "rxmac_clk_c" 125.0 MHz PAR_ADJ 20; +FREQUENCY NET "txmac_clk_c" 125.0 MHz PAR_ADJ 20; + +BLOCK ASYNCPATHS ; +BLOCK INTERCLOCKDOMAIN PATHS; + +#Begin multicycle path from constraints +MULTICYCLE TO CELL "U1_ts_mac_core_only_core/U1_LSC_ts_mac_core/U1_gmii/sync_rxd_m*" 2X; +#MULTICYCLE TO CELL "U1_ts_mac_core_only_core/U1_LSC_ts_mac_core/U1_gmii/sync_rxer_m*" 2X; +#MULTICYCLE TO CELL "U1_ts_mac_core_only_core/U1_LSC_ts_mac_core/U1_gmii/sync_rxdv_m*" 2X; +#MULTICYCLE TO CELL "U1_ts_mac_core_only_core/U1_LSC_ts_mac_core/U1_gmii/sync_nibdrib_m*" 2X; +MULTICYCLE TO CELL "U1_ts_mac_core_only_core/U1_LSC_ts_mac_core/U1_gmii/ipg_shrink_m*" 2X; +MULTICYCLE TO CELL "U1_ts_mac_core_only_core/U1_LSC_ts_mac_core/U1_gmii/nib_alig*" 2X; +#MULTICYCLE TO CELL "U1_ts_mac_core_only_core/U1_LSC_ts_mac_core/U1_gmii/enable_sfd_alig*" 2X; +MULTICYCLE TO CELL "U1_ts_mac_core_only_core/U1_LSC_ts_mac_core/U1_tx_mac/U1_tx_rfifo/rd_ptr*" 2X; +MULTICYCLE FROM CELL "U1_ts_mac_core_only_core/U1_LSC_ts_mac_core/U1_tx_mac/U1_tx_rfifo/rd_ptr*" 2X; +MULTICYCLE TO CELL "U1_ts_mac_core_only_core/U1_LSC_ts_mac_core/U1_tx_mac/U1_tx_rfifo/wr_ptr*" 2X; +MULTICYCLE FROM CELL "U1_ts_mac_core_only_core/U1_LSC_ts_mac_core/U1_tx_mac/U1_tx_rfifo/wr_ptr*" 2X; +#End multicycle path from constraints + +#Begin false path from constraints +BLOCK PATH FROM CELL "U1_ts_mac_core_only_core/U1_LSC_ts_mac_core/U1_cpu_if*" TO CELL "U1_ts_mac_core_only_core/U1_LSC_ts_mac_core/U1_tx_mac*" ; +BLOCK PATH FROM CELL "U1_ts_mac_core_only_core/U1_LSC_ts_mac_core/U1_cpu_if*" TO CELL "U1_ts_mac_core_only_core/U1_LSC_ts_mac_core/U1_rx_mac*" ; +#End false path from constraints + diff --git a/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/impl/synplify/tsmac_core_only_eval_setting.sty b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/impl/synplify/tsmac_core_only_eval_setting.sty new file mode 100644 index 0000000..e35e905 --- /dev/null +++ b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/impl/synplify/tsmac_core_only_eval_setting.sty @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/impl/synplify/tsmac_reference_eval.ldf b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/impl/synplify/tsmac_reference_eval.ldf new file mode 100644 index 0000000..dedb25d --- /dev/null +++ b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/impl/synplify/tsmac_reference_eval.ldf @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/impl/synplify/tsmac_reference_eval.lpf b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/impl/synplify/tsmac_reference_eval.lpf new file mode 100644 index 0000000..bfe1274 --- /dev/null +++ b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/impl/synplify/tsmac_reference_eval.lpf @@ -0,0 +1,71 @@ +COMMERCIAL ; +# Period Constraints +FREQUENCY NET "hclk_c" 100.00 MHz PAR_ADJ 20; +FREQUENCY NET "txmac_clk_c" 125.00 MHz PAR_ADJ 20; +FREQUENCY NET "rxmac_clk_c" 125.00 MHz PAR_ADJ 20; +FREQUENCY NET "pc_clk_mux" 50.00 MHz ; +USE PRIMARY PURE NET "txmac_clk_c"; + +BLOCK ASYNCPATHS ; +BLOCK INTERCLOCKDOMAIN PATHS ; + +#Begin multicycle path from constraints +MULTICYCLE TO CELL "U1_ts_mac_core*U1_LSC_ts_mac_core/U1_gmii/sync_rxd_m*" 2.000000 X ; +#MULTICYCLE TO CELL "U1_ts_mac_core*U1_LSC_ts_mac_core/U1_gmii/sync_rxer_m*" 2.000000 X ; +#MULTICYCLE TO CELL "U1_ts_mac_core*U1_LSC_ts_mac_core/U1_gmii/sync_rxdv_m*" 2.000000 X ; +#MULTICYCLE TO CELL "U1_ts_mac_core*U1_LSC_ts_mac_core/U1_gmii/sync_nibdrib_m*" 2.000000 X ; +MULTICYCLE TO CELL "U1_ts_mac_core*U1_LSC_ts_mac_core/U1_gmii/ipg_shrink_m*" 2.000000 X ; +MULTICYCLE TO CELL "U1_ts_mac_core*U1_LSC_ts_mac_core/U1_gmii/nib_alig*" 2.000000 X ; +#MULTICYCLE TO CELL "U1_ts_mac_core*U1_LSC_ts_mac_core/U1_gmii/enable_sfd_alig*" 2.000000 X ; +MULTICYCLE TO CELL "U1_ts_mac_core*U1_LSC_ts_mac_core/U1_tx_mac/U1_tx_rfifo/rd_ptr*" 2.000000 X ; +MULTICYCLE FROM CELL "U1_ts_mac_core*U1_LSC_ts_mac_core/U1_tx_mac/U1_tx_rfifo/rd_ptr*" 2.000000 X ; +MULTICYCLE TO CELL "U1_ts_mac_core*U1_LSC_ts_mac_core/U1_tx_mac/U1_tx_rfifo/wr_ptr*" 2.000000 X ; +MULTICYCLE FROM CELL "U1_ts_mac_core*U1_LSC_ts_mac_core/U1_tx_mac/U1_tx_rfifo/wr_ptr*" 2.000000 X ; +#End multicycle path from constraints + +#Begin false path from constraints +BLOCK PATH FROM CELL "U1_ts_mac_core*U1_LSC_ts_mac_core/U1_cpu_if*" TO CELL "U1_ts_mac_core*U1_LSC_ts_mac_core/U1_tx_mac*" ; +BLOCK PATH FROM CELL "U1_ts_mac_core*U1_LSC_ts_mac_core/U1_cpu_if*" TO CELL "U1_ts_mac_core*U1_LSC_ts_mac_core/U1_rx_mac*" ; +#BLOCK NET "pkt_loop_clksel_ri" ; +BLOCK NET "gbit_en_wire" ; +#End false path from constraints + +# GMII input signals +# Input setup and hold +# set these values according to your specific design requirements +#DEFINE PORT GROUP "TSU_GRP" "rx_dv" +# "rx_er" +# "rxd*"; +#INPUT_SETUP GROUP "TSU_GRP" 3.500000 ns HOLD 0.000000 ns CLKPORT "rx_clk" ; +# GMII output signals +# Output Clock to Out +# set these values according to your specific design requirements +#DEFINE PORT GROUP "TCO_GRP" "tx_en" +# "rx_er" +# "txd*"; +#CLOCK_TO_OUT GROUP "TCO_GRP" MAX 5.000000 ns MIN 1.000000 ns CLKNET "txmac_clk_c" CLKOUT PORT "gtx_clk" ; + +# If I/O timing for these pins is a problem add these +#PRIORITIZE NET "rxd_c_0" 100; +#PRIORITIZE NET "rxd_c_1" 100; +#PRIORITIZE NET "rxd_c_2" 100; +#PRIORITIZE NET "rxd_c_3" 100; +#PRIORITIZE NET "rxd_c_4" 100; +#PRIORITIZE NET "rxd_c_5" 100; +#PRIORITIZE NET "rxd_c_6" 100; +#PRIORITIZE NET "rxd_c_7" 100; +#PRIORITIZE NET "rx_dv_c" 100; +#PRIORITIZE NET "rx_er_c" 100; +#PRIORITIZE NET "rx_clk_c" 80; +#PRIORITIZE NET "tx_clk_c" 40; + +#MAXDELAY NET "rxd_c_0" 1.5 ns; +#MAXDELAY NET "rxd_c_1" 1.5 ns; +#MAXDELAY NET "rxd_c_2" 1.5 ns; +#MAXDELAY NET "rxd_c_3" 1.5 ns; +#MAXDELAY NET "rxd_c_4" 1.5 ns; +#MAXDELAY NET "rxd_c_5" 1.5 ns; +#MAXDELAY NET "rxd_c_6" 1.5 ns; +#MAXDELAY NET "rxd_c_7" 1.5 ns; +#MAXDELAY NET "rx_dv_c" 1.5 ns; +#MAXDELAY NET "rx_er_c" 1.5 ns; diff --git a/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/impl/synplify/tsmac_reference_eval_setting.sty b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/impl/synplify/tsmac_reference_eval_setting.sty new file mode 100644 index 0000000..aaaa01e --- /dev/null +++ b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/impl/synplify/tsmac_reference_eval_setting.sty @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/sim/modelsim/tsmac_eval_se.do b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/sim/modelsim/tsmac_eval_se.do new file mode 100644 index 0000000..9f74d40 --- /dev/null +++ b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/sim/modelsim/tsmac_eval_se.do @@ -0,0 +1,27 @@ +if {!0} { + vlib work +} +vmap work work +#==== compile +vlog -novopt -incr \ ++incdir+../../src/params \ ++incdir+../../../testbench/top \ ++incdir+../../../testbench/tests \ +-y /home/soft/lattice/diamond/3.10_x64/cae_library/simulation/verilog/pmi +libext+.v \ +-y /home/soft/lattice/diamond/3.10_x64/cae_library/simulation/verilog/ecp5u +libext+.v \ +-y ../../src/rtl/template +libext+.v \ +-y ../../../models/ecp5um +libext+.v \ +../../src/params/ts_mac_defines.v \ +../../../../tsmac_beh.v \ +../../src/rtl/top/ts_mac_top.v \ +../../../testbench/top/pkt_mon.v \ +../../../testbench/top/orcastra_drv.v \ +../../../testbench/top/test_ts_mac.v + +vcom ../../src/rtl/top/ts_mac_core_only_top.vhd +#==== run the simulation +vsim -novopt -L work work.test_ts_mac -l tsmac_eval.log + +view structure wave +do wave.do +run -all diff --git a/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/sim/modelsim/tsmac_eval_timing_synp_se.do b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/sim/modelsim/tsmac_eval_timing_synp_se.do new file mode 100644 index 0000000..4ac6dc5 --- /dev/null +++ b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/sim/modelsim/tsmac_eval_timing_synp_se.do @@ -0,0 +1,29 @@ +if {!0} { + vlib work +} +vmap work work + +#==== compile +vlog -novopt -incr +define+GATE_SIM_VHD \ ++incdir+../../src/params \ ++incdir+../../../testbench/top \ ++incdir+../../../testbench/tests \ +-y /home/soft/lattice/diamond/3.10_x64/cae_library/simulation/verilog/pmi +libext+.v \ +-y /home/soft/lattice/diamond/3.10_x64/cae_library/simulation/verilog/ecp5u +libext+.v \ +-y ../../../models/ecp5um +libext+.v \ +../../impl/synplify/impl/tsmac_reference_eval_impl_vo.vo \ +../../src/params/ts_mac_defines.v \ +../../../testbench/top/pkt_mon.v \ +../../../testbench/top/orcastra_drv.v \ +../../../testbench/top/test_ts_mac.v + +#==== run the simulation +vsim -novopt -L work \ + +nowarnTFMPC +nowarnPCDPC +notimingchecks \ + -multisource_delay max +transport_int_delays +transport_path_delays -v2k_int_delays \ + work.test_ts_mac \ + -l tsmac_eval.log + +view structure wave +do wave_sdf.do +run -all diff --git a/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/sim/modelsim/wave.do b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/sim/modelsim/wave.do new file mode 100644 index 0000000..4d17855 --- /dev/null +++ b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/sim/modelsim/wave.do @@ -0,0 +1,79 @@ +add wave -noupdate -divider {CORE IO Signals} +add wave -noupdate -divider {Tx MAC Application Interface} +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/U1_ts_mac_top/txmac_clk +add wave -noupdate -format Literal -radix hexadecimal /test_ts_mac/U1_ts_mac_top/tx_fifodata +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/U1_ts_mac_top/tx_fifoeof +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/U1_ts_mac_top/tx_fifoavail +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/U1_ts_mac_top/tx_fifoempty +add wave -noupdate -format Literal -radix hexadecimal /test_ts_mac/U1_ts_mac_top/tx_sndpaustim +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/U1_ts_mac_top/tx_sndpausreq +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/U1_ts_mac_top/tx_fifoctrl +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/U1_ts_mac_top/tx_macread +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/U1_ts_mac_top/tx_discfrm +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/U1_ts_mac_top/tx_done +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/U1_ts_mac_top/tx_staten +add wave -noupdate -format Literal -radix hexadecimal /test_ts_mac/U1_ts_mac_top/tx_statvec +add wave -noupdate -divider {Rx MAC Aplication Interface} +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/U1_ts_mac_top/rxmac_clk +add wave -noupdate -format Literal -radix hexadecimal /test_ts_mac/U1_ts_mac_top/rx_dbout +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/U1_ts_mac_top/rx_eof +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/U1_ts_mac_top/rx_error +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/U1_ts_mac_top/rx_fifo_error +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/U1_ts_mac_top/rx_write +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/U1_ts_mac_top/rx_stat_en +add wave -noupdate -format Literal -radix hexadecimal /test_ts_mac/U1_ts_mac_top/rx_stat_vector +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/U1_ts_mac_top/rx_fifo_full +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/U1_ts_mac_top/ignore_pkt +add wave -noupdate -divider {CPU Interface Signals} +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/U1_ts_mac_top/hclk +add wave -noupdate -format Literal -radix hexadecimal /test_ts_mac/U1_ts_mac_top/haddr +add wave -noupdate -format Literal -radix hexadecimal /test_ts_mac/U1_ts_mac_top/hdatain +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/U1_ts_mac_top/hcs_n +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/U1_ts_mac_top/hwrite_n +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/U1_ts_mac_top/hread_n +add wave -noupdate -format Literal -radix hexadecimal /test_ts_mac/U1_ts_mac_top/hdataout +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/U1_ts_mac_top/hdataout_en_n +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/U1_ts_mac_top/hready_n +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/U1_ts_mac_top/gbit_en +add wave -noupdate -divider {GMII Signals} +add wave -noupdate -format Literal -radix hexadecimal /test_ts_mac/U1_ts_mac_top/txd +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/U1_ts_mac_top/tx_en +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/U1_ts_mac_top/tx_er +add wave -noupdate -format Literal -radix hexadecimal /test_ts_mac/U1_ts_mac_top/rxd +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/U1_ts_mac_top/rx_dv +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/U1_ts_mac_top/rx_er +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/U1_ts_mac_top/col +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/U1_ts_mac_top/crs +add wave -noupdate -divider {FPGA IO Signals} +add wave -noupdate -divider {Clocks and Resets} +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/clk_125 +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/sys_clk +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/rxmac_clk_wire +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/txmac_clk_wire +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/txmac_clk_en +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/rxmac_clk_en +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/hclk +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/reset_n +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/phy_reset_n +add wave -noupdate -divider {GMII Signals} +add wave -noupdate -divider {Transmit} +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/tx_clk +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/gtx_clk +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/tx_en +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/tx_er +add wave -noupdate -format Literal -radix hexadecimal /test_ts_mac/txd +add wave -noupdate -divider {Receive} +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/rx_clk +add wave -noupdate -format Literal -radix hexadecimal /test_ts_mac/rxd +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/rxer +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/rxdv +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/col +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/crs +add wave -noupdate -divider {Register Read Write Interface} +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/pc_clk +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/pc_datain +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/pc_dataout +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/pc_retry +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/pc_error +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/pc_ready +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/pc_ack diff --git a/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/sim/modelsim/wave_sdf.do b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/sim/modelsim/wave_sdf.do new file mode 100644 index 0000000..999382b --- /dev/null +++ b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/sim/modelsim/wave_sdf.do @@ -0,0 +1,32 @@ +add wave -noupdate -divider {Clocks and Resets} +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/clk_125 +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/sys_clk +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/rxmac_clk_wire +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/txmac_clk_wire +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/txmac_clk_en +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/rxmac_clk_en +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/hclk +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/reset_n +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/phy_reset_n +add wave -noupdate -divider {GMII Signals} +add wave -noupdate -divider {Transmit} +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/tx_clk +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/gtx_clk +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/tx_en +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/tx_er +add wave -noupdate -format Literal -radix hexadecimal /test_ts_mac/txd +add wave -noupdate -divider {Receive} +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/rx_clk +add wave -noupdate -format Literal -radix hexadecimal /test_ts_mac/rxd +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/rxer +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/rxdv +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/col +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/crs +add wave -noupdate -divider {Register Read Write Interface} +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/pc_clk +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/pc_datain +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/pc_dataout +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/pc_retry +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/pc_error +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/pc_ready +add wave -noupdate -format Logic -radix hexadecimal /test_ts_mac/pc_ack \ No newline at end of file diff --git a/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/params/ts_mac_defines.v b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/params/ts_mac_defines.v new file mode 100644 index 0000000..d5ac36a --- /dev/null +++ b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/params/ts_mac_defines.v @@ -0,0 +1,2 @@ +`define SGMII_TSMAC +`define DEVICE_ECP5UM diff --git a/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/rtl/template/fifo_2048x9.v b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/rtl/template/fifo_2048x9.v new file mode 100644 index 0000000..3400eca --- /dev/null +++ b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/rtl/template/fifo_2048x9.v @@ -0,0 +1,345 @@ +// =========================================================================== +// Verilog module generated by IPexpress +// Filename: fifo_2048x9.v +// Copyright 2012 (c) Lattice Semiconductor Corporation. All rights reserved. +// =========================================================================== + +module fifo_2048x9 ( +// INPUTS + wclk, // write clock for fifo + wren, // write select for fifo + datain, // 8 data + control for fifo + reset, // clear fifo active high + rclk, // read clock for fifo + rden, // read select for fifo + aff_thrhd, // 9 bit almost full flag threshold value for fifo + afe_thrhd, // 9 bit almost full flag threshold value for fifo + wclk_en, // RAM write clock enable + rclk_en, // RAM read clock enable + +// OUTPUTS + daout, // 8 data + control for outputs + empty, // empty flag + almost_full, // almost full flag + almost_empty, // almost empty flag + full // full flag + ); +parameter pdevice_family = "ECP"; + +input wclk; // write clock for fifo +input wren; // write select for fifo +input reset; // clear fifo - active low +input rclk; // read clock for fifo +input rden; // read select for fifo +input [8:0] datain; // 8 data + control for fifo +input [8:0] aff_thrhd; // 9 bit almost full flag threshold value +input [8:0] afe_thrhd; // 9 bit almost empty flag threshold value for output fifo +input wclk_en; +input rclk_en; + +output almost_full, almost_empty, full, empty; +output [8:0] daout; // 8 data + control for fifo + +// DECLARATIONS +wire [8:0] wr_addr_a; +wire [8:0] wr_addr_b; +wire [8:0] wr_addr_c; +wire [8:0] wr_addr_d; +wire [8:0] rd_addr_a; +wire [8:0] rd_addr_b; +wire [8:0] rd_addr_c; +wire [8:0] rd_addr_d; +wire wr_en_a_clk_en; // fifo write enable +wire wr_en_b_clk_en; // fifo write enable +wire wr_en_c_clk_en; // fifo write enable +wire wr_en_d_clk_en; // fifo write enable +wire wr_en_a, rd_en_a; // fifo write enable +wire wr_en_b, rd_en_b; // fifo write enable +wire wr_en_c, rd_en_c; // fifo write enable +wire wr_en_d, rd_en_d; // fifo write enable +wire [8:0] aff_thrhd; +wire [8:0] afe_thrhd; +wire [8:0] ram_da_out_a; // ram_512x9 data output +reg [8:0] ram_da_out_a_d; // ram_512x9 data output +wire [8:0] ram_da_out_b; // ram_512x9 data output +reg [8:0] ram_da_out_b_d; // ram_512x9 data output +wire [8:0] ram_da_out_c; // ram_512x9 data output +reg [8:0] ram_da_out_c_d; // ram_512x9 data output +wire [8:0] ram_da_out_d; // ram_512x9 data output +wire rd_a; // fifo read/write +wire rd_b; // fifo read/write +wire rd_c; // fifo read/write +reg wr_b; // fifo read/write +reg wr_b_d; // fifo read/write +reg wr_c; // fifo read/write +reg wr_c_d; // fifo read/write +reg wr_d; // fifo read/write +reg wr_d_d; // fifo read/write +wire empty_a; // fifo empty +wire empty_b; // fifo empty +wire empty_c; // fifo empty +wire almost_full_b; // fifo full +wire almost_full_c; // fifo full +wire almost_full_d; // fifo full +assign rd_a = ~empty_a & ~almost_full_b; +assign rd_b = ~empty_b & ~almost_full_c; +assign rd_c = ~empty_c & ~almost_full_d; +assign wr_en_a_clk_en = wr_en_a & wclk_en; +assign wr_en_b_clk_en = wr_en_b & rclk_en; +assign wr_en_c_clk_en = wr_en_c & rclk_en; +assign wr_en_d_clk_en = wr_en_d & rclk_en; + +wire [8:0] daout; // 8 data + control for fifo +assign #1 daout[8:0] = ram_da_out_d[8:0]; +/* + * params SYNC_MODE and RAM_MODE set in level above + * and passed through. + */ +//parameter SYNC_MODE = "SYNC";// rd/wr clocks same +//parameter RAM_MODE = "REG"; //input reg +parameter SYNC_MODE = "ASYNC"; +parameter RAM_MODE = "NOREG"; +defparam ff_ctl_a.SYNC_MODE = SYNC_MODE; +defparam ff_ctl_a.RAM_MODE = RAM_MODE; +defparam ff_ctl_b.RAM_MODE = RAM_MODE; +defparam ff_ctl_c.RAM_MODE = RAM_MODE; +defparam ff_ctl_d.RAM_MODE = RAM_MODE; + + always @(posedge rclk or negedge reset) begin + if (~reset) begin + wr_b <= 1'b0; + wr_b_d <= 1'b0; + wr_c <= 1'b0; + wr_c_d <= 1'b0; + wr_d <= 1'b0; + wr_d_d <= 1'b0; + ram_da_out_a_d <= 9'b000000000; + ram_da_out_b_d <= 9'b000000000; + ram_da_out_c_d <= 9'b000000000; + end + else begin + if(rclk_en == 1) begin + wr_b <= rd_a; + wr_b_d <= wr_b; + wr_c <= rd_b; + wr_c_d <= wr_c; + wr_d <= rd_c; + wr_d_d <= wr_d; + ram_da_out_a_d <= ram_da_out_a; + ram_da_out_b_d <= ram_da_out_b; + ram_da_out_c_d <= ram_da_out_c; + end // if + end // else + end // always + +fifo_512_ctl ff_ctl_a( + // Inputs + .ckw(wclk), + .ckw_en(wclk_en), + .csw(wren), + .rst_wr(reset), + .rst_rd(reset), + .ckr(rclk), + .ckr_en(rclk_en), + .csr(rd_a), + .aff_thrhd(aff_thrhd[8:0]), + .afe_thrhd(9'b000110000), + // Outputs + .wr_adr(wr_addr_a[8:0]), + .rd_adr(rd_addr_a[8:0]), + .ff(full), + .aff(almost_full), + .afe(almost_empty_a), + .ef(empty_a), + .wr_en(wr_en_a), + .rd_en(rd_en_a), + .ram_rd_en() + ); + +pmi_ram_dp + #(.pmi_wr_addr_depth(512), + .pmi_wr_addr_width(9), + .pmi_wr_data_width(9), + .pmi_rd_addr_depth(512), + .pmi_rd_addr_width(9), + .pmi_rd_data_width(9), + .pmi_regmode("noreg"), + .pmi_gsr("enable"), + .pmi_resetmode("sync"), + .pmi_init_file("none"), + .pmi_init_file_format("binary"), + .pmi_family(pdevice_family), + .module_type("pmi_ram_dp") + ) +U1_pmi_ram_dp (.Data(datain[8:0]), + .WrAddress(wr_addr_a[8:0]), + .RdAddress(rd_addr_a[8:0]), + .WrClock(wclk), + .RdClock(rclk), + .WrClockEn(wr_en_a_clk_en), + //.RdClockEn(1'b1), + .RdClockEn(rclk_en), + .WE(1'b1), + .Reset(1'b0), + .Q(ram_da_out_a[8:0]) + ); + +fifo_512_ctl ff_ctl_b( + // Inputs + .ckw(rclk), + .ckw_en(rclk_en), + .csw(wr_b_d), + .rst_wr(reset), + .rst_rd(reset), + .ckr(rclk), + .ckr_en(rclk_en), + .csr(rd_b), + .aff_thrhd(9'b111111100), + .afe_thrhd(9'b000000000), + // Outputs + .wr_adr(wr_addr_b[8:0]), + .rd_adr(rd_addr_b[8:0]), + .ff(full_b), + .aff(almost_full_b), + .afe(almost_empty_b), + .ef(empty_b), + .wr_en(wr_en_b), + .rd_en(rd_en_b), + .ram_rd_en() + ); + +pmi_ram_dp + #(.pmi_wr_addr_depth(512), + .pmi_wr_addr_width(9), + .pmi_wr_data_width(9), + .pmi_rd_addr_depth(512), + .pmi_rd_addr_width(9), + .pmi_rd_data_width(9), + .pmi_regmode("noreg"), + .pmi_gsr("enable"), + .pmi_resetmode("sync"), + .pmi_init_file("none"), + .pmi_init_file_format("binary"), + .pmi_family(pdevice_family), + .module_type("pmi_ram_dp") + ) +U2_pmi_ram_dp (.Data(ram_da_out_a_d[8:0]), + .WrAddress(wr_addr_b[8:0]), + .RdAddress(rd_addr_b[8:0]), + .WrClock(rclk), + .RdClock(rclk), + .WrClockEn(wr_en_b_clk_en), + //.RdClockEn(1'b1), + .RdClockEn(rclk_en), + .WE(1'b1), + .Reset(1'b0), + .Q(ram_da_out_b[8:0]) + ); + + +fifo_512_ctl ff_ctl_c( + // Inputs + .ckw(rclk), + .ckw_en(rclk_en), + .csw(wr_c_d), + .rst_wr(reset), + .rst_rd(reset), + .ckr(rclk), + .ckr_en(rclk_en), + .csr(rd_c), + .aff_thrhd(9'b111111100), + .afe_thrhd(9'b000000000), + // Outputs + .wr_adr(wr_addr_c[8:0]), + .rd_adr(rd_addr_c[8:0]), + .ff(full_c), + .aff(almost_full_c), + .afe(almost_empty_c), + .ef(empty_c), + .wr_en(wr_en_c), + .rd_en(rd_en_c), + .ram_rd_en() + ); + +pmi_ram_dp + #(.pmi_wr_addr_depth(512), + .pmi_wr_addr_width(9), + .pmi_wr_data_width(9), + .pmi_rd_addr_depth(512), + .pmi_rd_addr_width(9), + .pmi_rd_data_width(9), + .pmi_regmode("noreg"), + .pmi_gsr("enable"), + .pmi_resetmode("sync"), + .pmi_init_file("none"), + .pmi_init_file_format("binary"), + .pmi_family(pdevice_family), + .module_type("pmi_ram_dp") + ) +U3_pmi_ram_dp (.Data(ram_da_out_b_d[8:0]), + .WrAddress(wr_addr_c[8:0]), + .RdAddress(rd_addr_c[8:0]), + .WrClock(rclk), + .RdClock(rclk), + .WrClockEn(wr_en_c_clk_en), + //.RdClockEn(1'b1), + .RdClockEn(rclk_en), + .WE(1'b1), + .Reset(1'b0), + .Q(ram_da_out_c[8:0]) + ); + + +fifo_512_ctl ff_ctl_d( + // Inputs + .ckw(rclk), + .ckw_en(rclk_en), + .csw(wr_d_d), + .rst_wr(reset), + .rst_rd(reset), + .ckr(rclk), + .ckr_en(rclk_en), + .csr(rden), + .aff_thrhd(9'b111111100), + .afe_thrhd(afe_thrhd[8:0]), + // Outputs + .wr_adr(wr_addr_d[8:0]), + .rd_adr(rd_addr_d[8:0]), + .ff(full_d), + .aff(almost_full_d), + .afe(almost_empty), + .ef(empty), + .wr_en(wr_en_d), + .rd_en(rd_en_d), + .ram_rd_en() + ); + +pmi_ram_dp + #(.pmi_wr_addr_depth(512), + .pmi_wr_addr_width(9), + .pmi_wr_data_width(9), + .pmi_rd_addr_depth(512), + .pmi_rd_addr_width(9), + .pmi_rd_data_width(9), + .pmi_regmode("noreg"), + .pmi_gsr("enable"), + .pmi_resetmode("sync"), + .pmi_init_file("none"), + .pmi_init_file_format("binary"), + .pmi_family(pdevice_family), + .module_type("pmi_ram_dp") + ) +U4_pmi_ram_dp (.Data(ram_da_out_c_d[8:0]), + .WrAddress(wr_addr_d[8:0]), + .RdAddress(rd_addr_d[8:0]), + .WrClock(rclk), + .RdClock(rclk), + .WrClockEn(wr_en_d_clk_en), + //.RdClockEn(1'b1), + .RdClockEn(rclk_en), + .WE(1'b1), + .Reset(1'b0), + .Q(ram_da_out_d[8:0]) + ); + +endmodule // end of fifo_2048x9 diff --git a/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/rtl/template/fifo_512_ctl.v b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/rtl/template/fifo_512_ctl.v new file mode 100644 index 0000000..7d20d97 --- /dev/null +++ b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/rtl/template/fifo_512_ctl.v @@ -0,0 +1,373 @@ +// =========================================================================== +// Verilog module generated by IPexpress +// Filename: fifo_512_ctl.v +// Copyright 2012 (c) Lattice Semiconductor Corporation. All rights reserved. +// =========================================================================== + +module fifo_512_ctl ( +// INPUTS + ckw, // write clock for fifo + ckw_en, // write clock enable for fifo + csw, // write select for fifo + rst_wr, // fifo write clock domain reset active low + rst_rd, // fifo read clock domain reset active low + ckr, // read clock for fifo + ckr_en, // read clock enable for fifo + csr, // read select for fifo + aff_thrhd, // 9 bit almost full flag threshold value + afe_thrhd, // 9 bit almost empty flag threshold value + +// OUTPUTS + wr_adr, // FIFO write address to ram + rd_adr, // FIFO read address to ram + ef, // empty flag + aff, // almost full flag + afe, // almost empty flag + ff, // full flag + wr_en, // ram write enable + rd_en, // read enable + ram_rd_en // ram read enable to the ram + ); + +parameter SYNC_MODE = "SYNC"; +parameter RAM_MODE = "REG"; + +input ckw; // write clock for fifo +input ckw_en; // write clock enable for fifo +input csw; // write select for fifo +input rst_wr; // fifo write clock domain reset active low +input rst_rd; // fifo read clock domain reset active low +input ckr; // read clock for fifo +input ckr_en; // resd clock enable for fifo +input csr; // read select for fifo +input [8:0] aff_thrhd; // 9 bit almost full flag threshold value +input [8:0] afe_thrhd; // 9 bit almost empty flag threshold value + +output [8:0] wr_adr; +output [8:0] rd_adr; +output wr_en, rd_en, ram_rd_en; +output ef, ff, aff, afe; + +// DECLARATIONS +wire wr_en; +wire rd_en; +wire ram_rd_en; +wire [9:0] sync_wcnt, sync_rcnt; +wire [9:0] async_wcnt, async_rcnt; +wire [9:0] wcnt; +wire [9:0] rcnt; +wire [8:0] wr_adr, rd_adr; + +reg [9:0] wr_addr; +reg [9:0] rd_addr; +reg [9:0] rd_addr_reg; +reg ef, ff, aff, afe; +wire [8:0] rd_addr_temp; + +// select the old address during fifo empty. This application is +// used for the special ECP ram model with read clock enable input +assign rd_addr_temp[8:0] = (ef) ? rd_addr_reg[8:0] : rd_addr[8:0]; + + +// ASSIGN +assign wr_en = csw & (~ff); +assign rd_en = csr & (~ef); +assign ram_rd_en = csr | ef; +assign wr_adr[8:0] = wr_addr[8:0]; + +// select the input read address with register mode or without register mode +//assign rd_adr[8:0] = (RAM_MODE == "REG") ? rd_addr[8:0] : rd_addr_reg[8:0]; +assign rd_adr[8:0] = (RAM_MODE == "REG") ? rd_addr_temp[8:0] : rd_addr_reg[8:0]; + +// select the SYNC mode or ASYNC mode +assign wcnt[9:0] = (SYNC_MODE == "SYNC")? sync_wcnt[9:0] : async_wcnt[9:0]; +assign rcnt[9:0] = (SYNC_MODE == "SYNC")? sync_rcnt[9:0] : async_rcnt[9:0]; + +assign sync_wcnt[9:0] = {rd_addr_reg[9]^wr_addr[9], wr_addr[8:0]} - rd_addr_reg[8:0]; +assign sync_rcnt[9:0] = {wr_addr[9]^rd_addr_reg[9], wr_addr[8:0]} - rd_addr_reg[8:0]; + +// DECLARATIONS +reg [9:0] wr_addr_gc; +reg [9:0] wr2_addr; + +// wire [9:0] wr1_addr; +// assign wr1_addr[9:0] = wr_addr[9:0]+1; +// wr2_addr is the same logic function as wr1_addr +// use wr2_addr replace wr1_addr for improve timing. +//assign wr1_addr[9:0] = wr_addr[9:0]+1 after wr_addr +// increased by 1 and wr2_addr[9:0] = wr_addr[9:0]+ 2 +// at the same time wr_addr increase by 1; + + +// generate write address +always @(posedge ckw or negedge rst_wr) begin + if (~rst_wr) begin + wr_addr[9:0] <= 10'd0; + wr_addr_gc[9:0] <= 10'd0; + wr2_addr[9:0] <= 10'd0; + end // if + else begin + if(ckw_en == 1) begin + if(wr_en == 1) begin + wr_addr[9:0] <= wr_addr[9:0] + 1; + wr2_addr[9:0] <= wr_addr[9:0] + 2; + wr_addr_gc[0] <= wr2_addr[0]^wr2_addr[1]; + wr_addr_gc[1] <= wr2_addr[1]^wr2_addr[2]; + wr_addr_gc[2] <= wr2_addr[2]^wr2_addr[3]; + wr_addr_gc[3] <= wr2_addr[3]^wr2_addr[4]; + wr_addr_gc[4] <= wr2_addr[4]^wr2_addr[5]; + wr_addr_gc[5] <= wr2_addr[5]^wr2_addr[6]; + wr_addr_gc[6] <= wr2_addr[6]^wr2_addr[7]; + wr_addr_gc[7] <= wr2_addr[7]^wr2_addr[8]; + wr_addr_gc[8] <= wr2_addr[8]^wr2_addr[9]; + wr_addr_gc[9] <= wr2_addr[9]; + end // if + end // if + end // else +end // always + +// DECLARATIONS +reg [9:0] rd_addr_gc; +reg [9:0] rd2_addr; + +// wire [9:0] rd1_addr; +// assign rd1_addr[9:0] = rd_addr[9:0]+1; +// rd2_addr is the same logic function as rd1_addr +// use rd2_addr replace rd1_addr for improve timing. +// assign rd1_addr[9:0] = rd_addr[9:0]+1 after rd_addr +// increased by 1 and rd2_addr[9:0] = rd_addr[9:0]+ 2 +// at the same time rd_addr increase by 1; + +// generate read address +always @(posedge ckr or negedge rst_rd) begin + if (~rst_rd) begin + rd_addr[9:0] <= 10'd1; + rd_addr_reg[9:0] <= 10'd0; + rd_addr_gc[9:0] <= 10'd0; + rd2_addr[9:0] <= 10'd0; + end // if + else begin + if(ckr_en == 1) begin + if(rd_en == 1) begin + rd_addr[9:0] <= rd_addr[9:0] + 1; + rd_addr_reg[9:0] <= rd_addr[9:0]; + rd2_addr[9:0] <= rd_addr_reg[9:0] + 2; + rd_addr_gc[0] <= rd2_addr[0]^rd2_addr[1]; + rd_addr_gc[1] <= rd2_addr[1]^rd2_addr[2]; + rd_addr_gc[2] <= rd2_addr[2]^rd2_addr[3]; + rd_addr_gc[3] <= rd2_addr[3]^rd2_addr[4]; + rd_addr_gc[4] <= rd2_addr[4]^rd2_addr[5]; + rd_addr_gc[5] <= rd2_addr[5]^rd2_addr[6]; + rd_addr_gc[6] <= rd2_addr[6]^rd2_addr[7]; + rd_addr_gc[7] <= rd2_addr[7]^rd2_addr[8]; + rd_addr_gc[8] <= rd2_addr[8]^rd2_addr[9]; + rd_addr_gc[9] <= rd2_addr[9]; + end // if + end // if + end // else +end // always + +reg [9:0] rd_addr_gcf; + +// convert read address to write clock domain +always @(posedge ckw or negedge rst_wr) begin + if (~rst_wr) begin + rd_addr_gcf[9:0] <= 10'd0; + end // if + else begin + if(ckw_en == 1) begin + rd_addr_gcf[9:0] <= rd_addr_gc[9:0]; + end // if + end // else +end // always + +reg [9:0] wr_addr_gcf; + +// convert write address to read clock domain +always @(posedge ckr or negedge rst_rd) begin + if (~rst_rd) begin + wr_addr_gcf[9:0] <= 10'd0; + end // if + else begin + if(ckr_en == 1) begin + wr_addr_gcf[9:0] <= wr_addr_gc[9:0]; + end // if + end // else +end // always + +// convert write address gray code back to binary code + +/* +wire [9:0] wr_addr_bin_ckr; +assign wr_addr_bin_ckr[0] = wr_addr_gcf[0]^wr_addr_gcf[1]^wr_addr_gcf[2] + ^wr_addr_gcf[3]^wr_addr_gcf[4]^wr_addr_gcf[5]^wr_addr_gcf[6] + ^wr_addr_gcf[7]^wr_addr_gcf[8]^wr_addr_gcf[9]; +assign wr_addr_bin_ckr[1] = wr_addr_gcf[1]^wr_addr_gcf[2]^wr_addr_gcf[3] + ^wr_addr_gcf[4]^wr_addr_gcf[5]^wr_addr_gcf[6] + ^wr_addr_gcf[7]^wr_addr_gcf[8]^wr_addr_gcf[9]; +assign wr_addr_bin_ckr[2] = wr_addr_gcf[2]^wr_addr_gcf[3]^wr_addr_gcf[4] + ^wr_addr_gcf[5]^wr_addr_gcf[6]^wr_addr_gcf[7] + ^wr_addr_gcf[8]^wr_addr_gcf[9]; +assign wr_addr_bin_ckr[3] = wr_addr_gcf[3]^wr_addr_gcf[4]^wr_addr_gcf[5] + ^wr_addr_gcf[6]^wr_addr_gcf[7]^wr_addr_gcf[8]^wr_addr_gcf[9]; +assign wr_addr_bin_ckr[4] = wr_addr_gcf[4]^wr_addr_gcf[5]^wr_addr_gcf[6] + ^wr_addr_gcf[7]^wr_addr_gcf[8]^wr_addr_gcf[9]; +assign wr_addr_bin_ckr[5] = wr_addr_gcf[5]^wr_addr_gcf[6] + ^wr_addr_gcf[7]^wr_addr_gcf[8]^wr_addr_gcf[9]; +assign wr_addr_bin_ckr[6] = wr_addr_gcf[6]^wr_addr_gcf[7] + ^wr_addr_gcf[8]^wr_addr_gcf[9]; +assign wr_addr_bin_ckr[7] = wr_addr_gcf[7]^wr_addr_gcf[8]^wr_addr_gcf[9]; +assign wr_addr_bin_ckr[8] = wr_addr_gcf[8]^wr_addr_gcf[9]; +assign wr_addr_bin_ckr[9] = wr_addr_gcf[9]; +*/ + +// for timing reason convert wire to register +// the design will add one clock delay for the write counter +// before compare to the read counter + +reg [9:0] wr_addr_bin_ckr; +always @(posedge ckr or negedge rst_rd) begin + if (~rst_rd) begin + wr_addr_bin_ckr[9:0] <= 10'd0; + end // if + else begin + if(ckr_en == 1) begin + wr_addr_bin_ckr[0] <= wr_addr_gcf[0]^wr_addr_gcf[1]^wr_addr_gcf[2] + ^wr_addr_gcf[3]^wr_addr_gcf[4]^wr_addr_gcf[5]^wr_addr_gcf[6] + ^wr_addr_gcf[7]^wr_addr_gcf[8]^wr_addr_gcf[9]; + wr_addr_bin_ckr[1] <= wr_addr_gcf[1]^wr_addr_gcf[2]^wr_addr_gcf[3] + ^wr_addr_gcf[4]^wr_addr_gcf[5]^wr_addr_gcf[6] + ^wr_addr_gcf[7]^wr_addr_gcf[8]^wr_addr_gcf[9]; + wr_addr_bin_ckr[2] <= wr_addr_gcf[2]^wr_addr_gcf[3]^wr_addr_gcf[4] + ^wr_addr_gcf[5]^wr_addr_gcf[6]^wr_addr_gcf[7]^wr_addr_gcf[8]^wr_addr_gcf[9]; + wr_addr_bin_ckr[3] <= wr_addr_gcf[3]^wr_addr_gcf[4]^wr_addr_gcf[5] + ^wr_addr_gcf[6]^wr_addr_gcf[7]^wr_addr_gcf[8]^wr_addr_gcf[9]; + wr_addr_bin_ckr[4] <= wr_addr_gcf[4]^wr_addr_gcf[5]^wr_addr_gcf[6] + ^wr_addr_gcf[7]^wr_addr_gcf[8]^wr_addr_gcf[9]; + wr_addr_bin_ckr[5] <= wr_addr_gcf[5]^wr_addr_gcf[6] + ^wr_addr_gcf[7]^wr_addr_gcf[8]^wr_addr_gcf[9]; + wr_addr_bin_ckr[6] <= wr_addr_gcf[6]^wr_addr_gcf[7] + ^wr_addr_gcf[8]^wr_addr_gcf[9]; + wr_addr_bin_ckr[7] <= wr_addr_gcf[7]^wr_addr_gcf[8]^wr_addr_gcf[9]; + wr_addr_bin_ckr[8] <= wr_addr_gcf[8]^wr_addr_gcf[9]; + wr_addr_bin_ckr[9] <= wr_addr_gcf[9]; + end //if + end // else +end // always + +assign async_rcnt[9:0] = {wr_addr_bin_ckr[9]^rd_addr_reg[9], wr_addr_bin_ckr[8:0]} + - rd_addr_reg[8:0]; + +/* +wire [9:0] rd_addr_bin_ckw; +assign rd_addr_bin_ckw[0] = rd_addr_gcf[0]^rd_addr_gcf[1]^rd_addr_gcf[2] + ^rd_addr_gcf[3]^rd_addr_gcf[4]^rd_addr_gcf[5]^rd_addr_gcf[6] + ^rd_addr_gcf[7]^rd_addr_gcf[8]^rd_addr_gcf[9]; +assign rd_addr_bin_ckw[1] = rd_addr_gcf[1]^rd_addr_gcf[2]^rd_addr_gcf[3] + ^rd_addr_gcf[4]^rd_addr_gcf[5]^rd_addr_gcf[6] + ^rd_addr_gcf[7]^rd_addr_gcf[8]^rd_addr_gcf[9]; +assign rd_addr_bin_ckw[2] = rd_addr_gcf[2]^rd_addr_gcf[3]^rd_addr_gcf[4] + ^rd_addr_gcf[5]^rd_addr_gcf[6]^rd_addr_gcf[7] + ^rd_addr_gcf[8]^rd_addr_gcf[9]; +assign rd_addr_bin_ckw[3] = rd_addr_gcf[3]^rd_addr_gcf[4]^rd_addr_gcf[5] + ^rd_addr_gcf[6]^rd_addr_gcf[7]^rd_addr_gcf[8]^rd_addr_gcf[9]; +assign rd_addr_bin_ckw[4] = rd_addr_gcf[4]^rd_addr_gcf[5]^rd_addr_gcf[6] + ^rd_addr_gcf[7]^rd_addr_gcf[8]^rd_addr_gcf[9]; +assign rd_addr_bin_ckw[5] = rd_addr_gcf[5]^rd_addr_gcf[6] + ^rd_addr_gcf[7]^rd_addr_gcf[8]^rd_addr_gcf[9]; +assign rd_addr_bin_ckw[6] = rd_addr_gcf[6]^rd_addr_gcf[7] + ^rd_addr_gcf[8]^rd_addr_gcf[9]; +assign rd_addr_bin_ckw[7] = rd_addr_gcf[7]^rd_addr_gcf[8]^rd_addr_gcf[9]; +assign rd_addr_bin_ckw[8] = rd_addr_gcf[8]^rd_addr_gcf[9]; +assign rd_addr_bin_ckw[9] = rd_addr_gcf[9]; +*/ + +// for timing reason convert wire to register +// the design will add one clock delay for the read counter +// before compare to the write counter + +reg [9:0] rd_addr_bin_ckw; +always @(posedge ckw or negedge rst_wr) begin + if (~rst_wr) begin + rd_addr_bin_ckw[9:0] <= 10'd0; + end // if + else begin + if(ckw_en == 1) begin + rd_addr_bin_ckw[0] <= rd_addr_gcf[0]^rd_addr_gcf[1]^rd_addr_gcf[2] + ^rd_addr_gcf[3]^rd_addr_gcf[4]^rd_addr_gcf[5]^rd_addr_gcf[6] + ^rd_addr_gcf[7]^rd_addr_gcf[8]^rd_addr_gcf[9]; + rd_addr_bin_ckw[1] <= rd_addr_gcf[1]^rd_addr_gcf[2]^rd_addr_gcf[3] + ^rd_addr_gcf[4]^rd_addr_gcf[5]^rd_addr_gcf[6] + ^rd_addr_gcf[7]^rd_addr_gcf[8]^rd_addr_gcf[9]; + rd_addr_bin_ckw[2] <= rd_addr_gcf[2]^rd_addr_gcf[3]^rd_addr_gcf[4] + ^rd_addr_gcf[5]^rd_addr_gcf[6]^rd_addr_gcf[7] + ^rd_addr_gcf[8]^rd_addr_gcf[9]; + rd_addr_bin_ckw[3] <= rd_addr_gcf[3]^rd_addr_gcf[4]^rd_addr_gcf[5] + ^rd_addr_gcf[6]^rd_addr_gcf[7]^rd_addr_gcf[8]^rd_addr_gcf[9]; + rd_addr_bin_ckw[4] <= rd_addr_gcf[4]^rd_addr_gcf[5]^rd_addr_gcf[6] + ^rd_addr_gcf[7]^rd_addr_gcf[8]^rd_addr_gcf[9]; + rd_addr_bin_ckw[5] <= rd_addr_gcf[5]^rd_addr_gcf[6] + ^rd_addr_gcf[7]^rd_addr_gcf[8]^rd_addr_gcf[9]; + rd_addr_bin_ckw[6] <= rd_addr_gcf[6]^rd_addr_gcf[7] + ^rd_addr_gcf[8]^rd_addr_gcf[9]; + rd_addr_bin_ckw[7] <= rd_addr_gcf[7]^rd_addr_gcf[8]^rd_addr_gcf[9]; + rd_addr_bin_ckw[8] <= rd_addr_gcf[8]^rd_addr_gcf[9]; + rd_addr_bin_ckw[9] <= rd_addr_gcf[9]; + end // if + end // else +end // always + +assign async_wcnt[9:0] = {rd_addr_bin_ckw[9]^wr_addr[9], wr_addr[8:0]} - rd_addr_bin_ckw[8:0]; + +// detect the fifo full +always @(posedge ckw or negedge rst_wr) begin + if (~rst_wr) begin + ff <= 1'b0; + aff <= 1'b0; + end // if + else begin + if(ckw_en == 1) begin + if(wcnt[9:0] >= 511 | ((wcnt[9:0] == 510) && (wr_en == 1))) begin + ff <= 1'b1; + end // if + else begin + ff <= 1'b0; + end // if + + // this extra bit is used to take care of SPYGLASS warning messages + if(wcnt[9:0] >= {1'b0,aff_thrhd[8:0]}) begin + aff <= 1'b1; + end // if + else begin + aff <= 1'b0; + end // else + end // if + end // else +end // always + +// detect the fifo empty +always @(posedge ckr or negedge rst_rd) begin + if (~rst_rd) begin + ef <= 1'b1; + afe <= 1'b1; + end // if + else begin + if(ckr_en == 1) begin + if((rcnt[9:0] == 0) || ((rcnt[9:0] == 1) && (rd_en == 1))) begin + ef <= 1'b1; + end // if + else begin + ef <= 1'b0; + end // else + + // this extra bit is used to take care of SPYGLASS warning messages + if(rcnt[9:0] <= {1'b0,afe_thrhd[8:0]}) begin + afe <= 1'b1; + end // if + else begin + afe <= 1'b0; + end // else + end // if + end // else +end // always +endmodule // end of rfifo_ctl diff --git a/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/rtl/template/oddrx_soft.v b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/rtl/template/oddrx_soft.v new file mode 100644 index 0000000..dfce8d2 --- /dev/null +++ b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/rtl/template/oddrx_soft.v @@ -0,0 +1,56 @@ + +// ==================================================================== +// File Details +// ==================================================================== +// Project : TSMAC IP Core For EC2 +// Filename : ODDRX_SFT.v +// Author : lattice Semiconductor +//===================================================================== +// +//* Notes: +//* +//* # Soft ODDR model for TSMAC +//* + +module oddrx_soft +( +// Primary I/O +DA, DB, RST, CLK_I, CLK_IX2, Q +); + +input DA; +input DB; +input CLK_I; +input CLK_IX2; +input RST; +output Q; + +reg DA_f; +reg DB_f; +reg Q; +wire MUX_OUT; + + + assign MUX_OUT = CLK_I ? DA_f:DB_f; + + always @(posedge CLK_I or posedge RST) begin + if (RST) begin + DA_f <= 1'b0; + DB_f <= 1'b0; + end + else begin + DA_f <= DA; + DB_f <= DB; + end + end + + always @(negedge CLK_IX2 or posedge RST) begin + if (RST) begin + Q <= 1'b0; + end + else begin + Q <= MUX_OUT; + end + end + +endmodule diff --git a/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/rtl/template/orcastra.v b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/rtl/template/orcastra.v new file mode 100644 index 0000000..64ed991 --- /dev/null +++ b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/rtl/template/orcastra.v @@ -0,0 +1,424 @@ +// =========================================================================== +// Verilog module generated by IPexpress +// Filename: orcastra.v +// Copyright 2005 (c) Lattice Semiconductor Corporation. All rights reserved. +// =========================================================================== + + + +//`timescale 1ns/100ps + + +module orcastra ( + //---------------------- + // inputs to orcastra_intf + //---------------------- + // + //************ + // resets + //************ + reset_n, + //************ + // clocks + //************ + hclk, + pc_clk, + //************************ + // from pc parallel port + //************************ + pc_datain, + pc_ready, + //**************** + // from host bus + //**************** + hdataout, + hready_n, + //***************** + //from reg_intf + //***************** + us_rdata, + us_ack, + //***************** + //---------------------------- + // outputs from orcastra_intf + //---------------------------- + // + //***************** + //to reg_intf + //***************** + us_wdata, + us_rdy, + us_wr, + us_addr, + us_size, + //******************** + // to MAC Host bus intf + //******************** + hdatain, + hcs_n, + hread_n, + hwrite_n, + haddr, + //******************** + // to pc parallel port + //******************** + pc_dataout, + pc_error, + pc_retry, + pc_ack ); + + +//--------- +// INPUTS +//--------- +//************ +// resets +//************ +input reset_n; +//************ +// clocks +//************ +input hclk; +input pc_clk; +//************************ +// from pc parallel port +//************************ +input pc_datain; +input pc_ready; +//*************** +// from host bus +//*************** +input [7:0] hdataout; +input hready_n; +//***************** +//from reg_intf +//***************** +input [7:0] us_rdata; +input us_ack; +//***************** +//--------- +// OUTPUTS +//--------- +//***************** +//to reg_intf +//***************** +output [7:0] us_wdata; +output us_rdy; +output us_wr; +output [17:0] us_addr; +output [1:0] us_size; +//******************** +// to MAC Host bus intf +//******************** +output [7:0] hdatain; +output hcs_n; +output hread_n; +output hwrite_n; +output [7:0] haddr; +//******************** +// to pc parallel port +//******************** +output pc_dataout; +output pc_error; +output pc_retry; +output pc_ack; + + +//------------------- +// SIGNAL assignments +//------------------- +wire [7:0] us_wdata; +reg us_rdy; +reg us_wr; +wire [17:0] us_addr; +wire [1:0] us_size; +wire [7:0] hdatain; +reg hcs_n; +reg hread_n; +reg hwrite_n; +wire [7:0] haddr; +reg pc_dataout; +reg pc_error; +wire pc_retry; +reg pc_ack; + +wire orc_ack; +reg [7:0] sreg_do; +reg [25:0] sreg_di; +reg [25:0] reg_di; +reg [2:0] rdwr_st; +reg pc_ready_1d; +reg pc_ready_2d; +reg pc_ready_3d; +reg orc_ack_1d; +reg orc_ack_2d; +reg orc_ack_3d; +reg pc_rdy_pulse; +wire [7:0] mux_dout; +wire tstl_regs; + +reg gate_clk_ctl1; +reg gate_clk_ctl2; +wire gate_clk; +reg [8:0] timeout_cnt; +wire timeout; + +// PARAMETERS + +parameter [1:0] + SIZE = 2'b00; + +parameter [2:0] + IDLE = 3'b000, // IDLE State + READ = 3'b001, // READ State + WRITE = 3'b010, // WRITE State + WAIT1 = 3'b011, // WAIT1 State + WAIT2 = 3'b100; // WAIT2 State + + assign gate_clk_ctl = gate_clk_ctl1 & gate_clk_ctl2; + assign gate_clk = gate_clk_ctl ? hclk:pc_clk; + assign mux_dout = tstl_regs ? us_rdata:hdataout; + + assign tstl_regs = (reg_di[17:6] == 12'h200) ? 1'b1:1'b0; + + assign us_size[1:0] = SIZE; + assign pc_retry = 1'b0; + assign timeout = (timeout_cnt[8:0] == 9'h000) ? 1'b1:1'b0; + assign orc_ack = (!hready_n | us_ack); + + + //------------------------------------------------------------------- + // Pipeline pc_ready and orc_ack and + // Edge detector for pc_ready signal - generates a one clk wide + // "pc_rdy_pulse" on a L->H transition of pc_ready + //------------------------------------------------------------------- + always @(posedge hclk or negedge reset_n) begin + if (~reset_n) begin + pc_ready_1d <= #1 1'b0; + pc_ready_2d <= #1 1'b0; + pc_ready_3d <= #1 1'b0; + orc_ack_1d <= #1 1'b0; + orc_ack_2d <= #1 1'b0; + orc_ack_3d <= #1 1'b0; + pc_rdy_pulse <= #1 1'b0; + end + else begin + pc_ready_1d <= #1 pc_ready; + pc_ready_2d <= #1 pc_ready_1d; + pc_ready_3d <= #1 pc_ready_2d; + orc_ack_1d <= #1 orc_ack; + orc_ack_2d <= #1 orc_ack_1d; + orc_ack_3d <= #1 orc_ack_2d; + pc_rdy_pulse <= (~pc_ready_3d & pc_ready_2d); + end // else + end // always + + + // --------------------------------------------------------------------------- + // gclk gate control2 on falling edge to prevent runt + // --------------------------------------------------------------------------- + always @(negedge hclk or negedge reset_n) begin + if (~reset_n) begin + gate_clk_ctl2 <= #1 1'b1; + end + else begin + gate_clk_ctl2 <= #1 !orc_ack_1d; + end + end // always + + // --------------------------------------------------------------------------- + // shift reg - sreg_di - shift data and address in + // --------------------------------------------------------------------------- + always @(negedge pc_clk or negedge reset_n) begin + if (~reset_n) begin + sreg_di[25:0] <= #1 26'h0000000; + end + else begin + sreg_di <= sreg_di << 1; // Shift Left + sreg_di[0] <= pc_datain; + end + end // always + + //------------------------------------------------------------------- + // Latch data and address into internal reg clocked by hclk + //------------------------------------------------------------------- + always @(posedge hclk or negedge reset_n) begin + if (~reset_n) begin + reg_di[25:0] <= #1 26'h0000000; + end + else begin + if (pc_rdy_pulse) begin + reg_di[25:0] <= #1 sreg_di[25:0]; + end + end // else + end // always + + assign us_wdata[7] = reg_di[18]; + assign us_wdata[6] = reg_di[19]; + assign us_wdata[5] = reg_di[20]; + assign us_wdata[4] = reg_di[21]; + assign us_wdata[3] = reg_di[22]; + assign us_wdata[2] = reg_di[23]; + assign us_wdata[1] = reg_di[24]; + assign us_wdata[0] = reg_di[25]; + + assign hdatain[7] = reg_di[18]; + assign hdatain[6] = reg_di[19]; + assign hdatain[5] = reg_di[20]; + assign hdatain[4] = reg_di[21]; + assign hdatain[3] = reg_di[22]; + assign hdatain[2] = reg_di[23]; + assign hdatain[1] = reg_di[24]; + assign hdatain[0] = reg_di[25]; + + assign haddr[7:0] = reg_di[7:0]; + assign us_addr[17:0] = reg_di[17:0]; + + + // --------------------------------------------------------------------------- + // Latch output read data to 8 bit shift reg - sreg_do + // --------------------------------------------------------------------------- + always @(negedge gate_clk or negedge reset_n) begin + if (~reset_n) begin + sreg_do[7:0] <= #1 8'h00; + pc_dataout <= #1 1'b0; + end + else begin + if (orc_ack_1d) begin + sreg_do[7:0] <= mux_dout[7:0]; + end + else begin + sreg_do <= sreg_do >> 1; // shift Left + sreg_do[7] <= 1; + end + pc_dataout <= sreg_do[0]; + end + end // always + + + // --------------------------------------------------------------------------- + + + // --------------------------------------------------------------------------- + // Read/Write FSM + // --------------------------------------------------------------------------- + + always @(posedge hclk or negedge reset_n) begin + if (~reset_n) begin + rdwr_st <= #1 IDLE; + gate_clk_ctl1 <= #1 1'b0; + us_rdy <= #1 1'b0; + us_wr <= #1 1'b0; + hcs_n <= #1 1'b1; + hread_n <= #1 1'b1; + hwrite_n <= #1 1'b1; + pc_ack <= #1 1'b0; + pc_error <= #1 1'b0; + timeout_cnt <= #1 9'h1ff; + end + else begin + // default values + us_rdy <= #1 1'b0; + + case (rdwr_st) + + IDLE: + begin + us_wr <= #1 1'b0; + hcs_n <= #1 1'b1; + hread_n <= #1 1'b1; + hwrite_n <= #1 1'b1; + gate_clk_ctl1 <= #1 1'b0; + timeout_cnt <= #1 9'h1ff; + pc_ack <= #1 1'b0; + pc_error <= #1 1'b0; + + if (pc_rdy_pulse) begin + if (pc_datain == 1'b0) begin // Write + rdwr_st <= #1 WRITE; + end + else begin // read + rdwr_st <= #1 READ; + gate_clk_ctl1 <= #1 1'b1; + end + end + end + READ: + begin + if (tstl_regs) begin + us_rdy <= #1 1'b1; + us_wr <= #1 1'b0; + end + else begin + hcs_n <= #1 1'b0; + hread_n <= #1 1'b0; + hwrite_n <= #1 1'b1; + end + + rdwr_st <= #1 WAIT1; + end + WRITE: + begin + if (tstl_regs) begin + us_rdy <= #1 1'b1; + us_wr <= #1 1'b1; + end + else begin + hcs_n <= #1 1'b0; + hread_n <= #1 1'b1; + hwrite_n <= #1 1'b0; + end + + rdwr_st <= #1 WAIT1; + end + WAIT1: + begin + // timeout_cnt <= #1 timeout_cnt - 1; + // if (timeout) begin + // pc_ack <= #1 1'b1; + // pc_error <= #1 1'b1; + // rdwr_st <= #1 WAIT2; + // end + // else begin + if (orc_ack) begin + us_wr <= #1 1'b0; + hcs_n <= #1 1'b1; + hread_n <= #1 1'b1; + hwrite_n <= #1 1'b1; + pc_ack <= #1 1'b1; + rdwr_st <= #1 WAIT2; + end + // end + end + WAIT2: + begin + gate_clk_ctl1 <= #1 1'b0; + if (pc_ready_3d == 1'b0) begin + pc_ack <= #1 1'b0; + pc_error <= #1 1'b0; + rdwr_st <= #1 IDLE; + end + end + default: + begin + rdwr_st <= #1 IDLE; + gate_clk_ctl1 <= #1 1'b0; + us_rdy <= #1 1'b0; + us_wr <= #1 1'b0; + hcs_n <= #1 1'b1; + hread_n <= #1 1'b1; + hwrite_n <= #1 1'b1; + pc_ack <= #1 1'b0; + pc_error <= #1 1'b0; + timeout_cnt <= #1 9'h1ff; + end + endcase + end + end // always + + +endmodule // orcastra + + + + diff --git a/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/rtl/template/reg_intf.v b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/rtl/template/reg_intf.v new file mode 100644 index 0000000..bbcbf9d --- /dev/null +++ b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/rtl/template/reg_intf.v @@ -0,0 +1,1790 @@ +// =========================================================================== +// Verilog module generated by IPexpress +// Filename: reg_intf.v +// Copyright 2005 (c) Lattice Semiconductor Corporation. All rights reserved. +// =========================================================================== + + +//`timescale 1ns/100ps + + +module reg_intf ( + //---------------------- + // inputs to Reg_intf + //---------------------- + // + //************ + // resets + //************ + reset_n, + //************ + // clocks + //************ + hclk, + rxc_clk, + txc_clk, + //******************* + // USI related inputs + // (User Slave Interface) + //******************* + us_wdata, + us_rdy, + us_wr, + us_addr, + us_size, + //**************** + // from tst_logic + //**************** + rx_error_ri, + rx_fifo_error_ri, + tx_disfrm_ri, + tx_fifo_full_ri, + //***************** + //from MAC Stat intf + //***************** + rx_stat_vec, + rx_stat_en, + tx_stat_vec, + tx_stat_en, + //***************** + //---------------------------- + // outputs from Reg_intf + //---------------------------- + // + //***************** + //to tst_logic + //***************** + pkt_add_swap_ri, + pkt_loop_enb_ri, + pkt_loop_clksel_ri, + phy_reset_n_ri, + tx_sndpaustim_ri, + tx_sndpausreq_ri, + tx_fifoctrl_ri, + rx_fifo_full_ri, + tx_fifo_empty_ri, + ignore_next_pkt_ri, + aff_thrhd, + afe_thrhd, + //******************** + // usi related outputs + //******************** + us_err, + us_irq, + us_ack, + us_rdata ); + + + +//--------- +// INPUTS +//--------- +//************ +// resets +//************ +input reset_n; // system reset +//************ +// clocks +//************ +input hclk; +input rxc_clk; +input txc_clk; +//**************** +input [1:0] us_size; // Transfer size 00-byte +input us_rdy; // Active high ready respose from USI +input [7:0] us_wdata; // register's input data from usi +input us_wr; // write/read enable wr=high, read=low +input [17:0] us_addr; // 18 bit address +//*********** +// tst_logic +//*********** +input rx_error_ri; +input rx_fifo_error_ri; +input tx_disfrm_ri; +input tx_fifo_full_ri; +//***************** +//from MAC Stat intf +//***************** +input [31:0] rx_stat_vec; +input rx_stat_en; +input [30:0] tx_stat_vec; +input tx_stat_en; +//***************** +//---------------------------- +// outputs from Reg_intf +//---------------------------- +// +//***************** +//to tst_logic +//***************** +output pkt_add_swap_ri; +output pkt_loop_enb_ri; +output pkt_loop_clksel_ri; +output phy_reset_n_ri; +output [15:0] tx_sndpaustim_ri; +output tx_sndpausreq_ri; +output tx_fifoctrl_ri; +output rx_fifo_full_ri; +output tx_fifo_empty_ri; +output ignore_next_pkt_ri; +output [8:0] aff_thrhd; +output [8:0] afe_thrhd; +//************* +//usi related +//************* +output us_err; +output us_irq; // active high interrupt out to mpu +output us_ack; // active high acknowledge for reads and writes +output [7:0] us_rdata; // register's output data to usi + + + +//------------------- +// SIGNAL assignments +//------------------- +wire pkt_add_swap_ri; +wire pkt_loop_enb_ri; +wire pkt_loop_clksel_ri; +wire phy_reset_n_ri; +wire [15:0] tx_sndpaustim_ri; +wire tx_sndpausreq_ri; +wire tx_fifoctrl_ri; +wire rx_fifo_full_ri; +wire tx_fifo_empty_ri; +wire ignore_next_pkt_ri; +wire [8:0] aff_thrhd; +wire [8:0] afe_thrhd; +wire unused_ctl_0; // NOT USED +wire unused_ctl_1; // NOT USED +wire unused_ctl_2; // NOT USED +wire unused_ctl_3; // NOT USED +wire unused_ctl_4; // NOT USED + +reg us_rdy_f0; // Active high ready respose from USI pipelined once +reg us_rdy_f1; // Active high ready respose from USI pipelined twice +reg us_rdy_wide; // Active high ready respose from USI widened to 2 clks +reg [7:0] us_wdata_f; // pipelined register's input data from usi +reg [49:0] we; // register write enables-used for writes (only 9 used) +reg [49:0] re; // register read enables-used for reads +reg [7:0] us_rdata; // register's output data to usi +reg us_ack; // active high acknowledge for reads and writes +reg [2:0] cntl_fsm_st; // control reg FSM states +reg start_burst; // Start Burst signal (pulse) - NOT USED +reg ram_rst; // reset the RAM signal (pulse) - NOT USED +reg range_err; // Address Out of Range Error + +wire size_err; // Data Size Error +wire us_err; // USI Error +wire [7:0] verid_reg; // VERID reg always set to 8'ha0 +wire [1:0]ram_rst_mode; // reset RAM mode signal 00 = null, 01 = dc/idle rdy low, +wire us_irq; // active high interrupt out to mpu + + +// ----------------------------- +// General Registers +// ----------------------------- +reg [7:0] tstcntl_reg; // Test Control Register +reg [7:0] tstcntl2_reg; // Test Control Register 2 - NOT USED +reg [7:0] maccntl_reg; // MAC control Register +reg [7:0] paustmrl_reg; // Pause timer register low byte +reg [7:0] paustmrh_reg; // Pause timer register high byte +reg [7:0] fifoaftl_reg; // FIFO Almost full Threshold register low byte +reg [7:0] fifoafth_reg; // FIFO Almost full Threshold register high byte +reg [7:0] fifoaetl_reg; // FIFO Almost Empty Threshold register low byte +reg [7:0] fifoaeth_reg; // FIFO Almost Empty Threshold register high byte +reg [7:0] rxstatus_reg; // RX Status Register +reg [7:0] txstatus_reg; // TX Status Register + +// ----------------------------- +// Statistics Counters Registers +// ----------------------------- +reg [15:0] rxpicnt_reg; // Rx packets ignored counter +reg [15:0] rxlcecnt_reg; // Rx length check error counter +reg [15:0] rxlfcnt_reg; // Rx long frames counter +reg [15:0] rxsfcnt_reg; // Rx short frames counter +reg [15:0] rxipgcnt_reg; // Rx ipg violations counter +reg [15:0] rxcrccnt_reg; // Rx crc errors counter +reg [15:0] rxokcnt_reg; // Rx ok packets counter +reg [15:0] rxcfcnt_reg; // Rx control frames counter +reg [15:0] rxpfcnt_reg; // Rx pause frames counter +reg [15:0] rxmfcnt_reg; // Rx Multicast frames counter +reg [15:0] rxbfcnt_reg; // Rx broadcast frames counter +reg [15:0] rxvfcnt_reg; // Rx vlan tagged frames counter + +reg [15:0] txufcnt_reg; // Tx unicast frames counter +reg [15:0] txpfcnt_reg; // Tx pause frames counter +reg [15:0] txmfcnt_reg; // Tx Multicast frames counter +reg [15:0] txbfcnt_reg; // Tx broadcast frames counter +reg [15:0] txvfcnt_reg; // Tx vlan tagged frames counter +reg [15:0] txbfccnt_reg; // Tx bad FCS frames counter +reg [15:0] txjfcnt_reg; // Tx jumbo frames counter + + +reg re10_dly; // re[10] pipelined once +reg re11_dly; // re[11] pipelined once +reg re12_dly; // re[12] pipelined once +reg re14_dly; // re[14] pipelined once +reg re16_dly; // re[16] pipelined once +reg re18_dly; // re[18] pipelined once +reg re20_dly; // re[20] pipelined once +reg re22_dly; // re[22] pipelined once +reg re24_dly; // re[24] pipelined once +reg re26_dly; // re[26] pipelined once +reg re28_dly; // re[28] pipelined once +reg re30_dly; // re[30] pipelined once +reg re32_dly; // re[32] pipelined once +reg re34_dly; // re[34] pipelined once +reg re36_dly; // re[36] pipelined once +reg re38_dly; // re[38] pipelined once +reg re40_dly; // re[40] pipelined once +reg re42_dly; // re[42] pipelined once +reg re44_dly; // re[44] pipelined once +reg re46_dly; // re[46] pipelined once +reg re48_dly; // re[48] pipelined once +reg clear_delay; // Clear the clear on read bit +reg [6:0] clear_count; // Counter used to generate clear_delay bit + + +//-------------------------- +// dbus0 related +//-------------------------- +wire [7:0] reg0_tdrive0_data; +wire [7:0] reg1_tdrive0_data; +wire [7:0] reg2_tdrive0_data; +wire [7:0] reg3_tdrive0_data; +wire [7:0] reg4_tdrive0_data; +wire [7:0] reg5_tdrive0_data; +wire [7:0] reg6_tdrive0_data; +wire [7:0] reg7_tdrive0_data; +wire [7:0] reg8_tdrive0_data; +wire [7:0] reg9_tdrive0_data; +wire [7:0] reg10_tdrive0_data; +wire [7:0] reg11_tdrive0_data; +wire [7:0] buskeep0_tdrive0_data; +wire reg0_tdrive0_en; +wire reg1_tdrive0_en; +wire reg2_tdrive0_en; +wire reg3_tdrive0_en; +wire reg4_tdrive0_en; +wire reg5_tdrive0_en; +wire reg6_tdrive0_en; +wire reg7_tdrive0_en; +wire reg8_tdrive0_en; +wire reg9_tdrive0_en; +wire reg10_tdrive0_en; +wire reg11_tdrive0_en; +wire buskeep0_tdrive0_en; +//-------------------------- + +//-------------------------- +// dbus1 related +//-------------------------- +wire [7:0] reg12_tdrive1_data; +wire [7:0] reg13_tdrive1_data; +wire [7:0] reg14_tdrive1_data; +wire [7:0] reg15_tdrive1_data; +wire [7:0] reg16_tdrive1_data; +wire [7:0] reg17_tdrive1_data; +wire [7:0] reg18_tdrive1_data; +wire [7:0] reg19_tdrive1_data; +wire [7:0] reg20_tdrive1_data; +wire [7:0] reg21_tdrive1_data; +wire [7:0] reg22_tdrive1_data; +wire [7:0] reg23_tdrive1_data; +wire [7:0] buskeep1_tdrive1_data; +wire reg12_tdrive1_en; +wire reg13_tdrive1_en; +wire reg14_tdrive1_en; +wire reg15_tdrive1_en; +wire reg16_tdrive1_en; +wire reg17_tdrive1_en; +wire reg18_tdrive1_en; +wire reg19_tdrive1_en; +wire reg20_tdrive1_en; +wire reg21_tdrive1_en; +wire reg22_tdrive1_en; +wire reg23_tdrive1_en; +wire buskeep1_tdrive1_en; +//-------------------------- + +//-------------------------- +// dbus2 related +//-------------------------- +wire [7:0] reg24_tdrive2_data; +wire [7:0] reg25_tdrive2_data; +wire [7:0] reg26_tdrive2_data; +wire [7:0] reg27_tdrive2_data; +wire [7:0] reg28_tdrive2_data; +wire [7:0] reg29_tdrive2_data; +wire [7:0] reg30_tdrive2_data; +wire [7:0] reg31_tdrive2_data; +wire [7:0] reg32_tdrive2_data; +wire [7:0] reg33_tdrive2_data; +wire [7:0] reg34_tdrive2_data; +wire [7:0] reg35_tdrive2_data; +wire [7:0] buskeep2_tdrive2_data; +wire reg24_tdrive2_en; +wire reg25_tdrive2_en; +wire reg26_tdrive2_en; +wire reg27_tdrive2_en; +wire reg28_tdrive2_en; +wire reg29_tdrive2_en; +wire reg30_tdrive2_en; +wire reg31_tdrive2_en; +wire reg32_tdrive2_en; +wire reg33_tdrive2_en; +wire reg34_tdrive2_en; +wire reg35_tdrive2_en; +wire buskeep2_tdrive2_en; +//-------------------------- + +//-------------------------- +// dbus3 related +//-------------------------- +wire [7:0] reg36_tdrive3_data; +wire [7:0] reg37_tdrive3_data; +wire [7:0] reg38_tdrive3_data; +wire [7:0] reg39_tdrive3_data; +wire [7:0] reg40_tdrive3_data; +wire [7:0] reg41_tdrive3_data; +wire [7:0] reg42_tdrive3_data; +wire [7:0] reg43_tdrive3_data; +wire [7:0] reg44_tdrive3_data; +wire [7:0] reg45_tdrive3_data; +wire [7:0] reg46_tdrive3_data; +wire [7:0] reg47_tdrive3_data; +wire [7:0] reg48_tdrive3_data; +wire [7:0] reg49_tdrive3_data; +wire [7:0] buskeep3_tdrive3_data; +wire reg36_tdrive3_en; +wire reg37_tdrive3_en; +wire reg38_tdrive3_en; +wire reg39_tdrive3_en; +wire reg40_tdrive3_en; +wire reg41_tdrive3_en; +wire reg42_tdrive3_en; +wire reg43_tdrive3_en; +wire reg44_tdrive3_en; +wire reg45_tdrive3_en; +wire reg46_tdrive3_en; +wire reg47_tdrive3_en; +wire reg48_tdrive3_en; +wire reg49_tdrive3_en; +wire buskeep3_tdrive3_en; + + + +wire [7:0] keep0; // bus keeper values for tdrive0 +wire [7:0] keep1; // bus keeper values for tdrive1 +wire [7:0] keep2; // bus keeper values for tdrive2 +wire [7:0] keep3; // bus keeper values for tdrive3 + +wire bkenb0; // bus keeper enable for tdrive0 +wire bkenb1; // bus keeper enable for tdrive1 +wire bkenb2; // bus keeper enable for tdrive2 +wire bkenb3; // bus keeper enable for tdrive3 + +wire [3:0] grpsel; // group select sigs used by add decoder sel between dbus0-dbus3 + +reg [7:0] dbus; // register's output data to usi +tri [7:0] dbus0; // data bus 0 +tri [7:0] dbus1; // data bus 1 +tri [7:0] dbus2; // data bus 2 +tri [7:0] dbus3; // data bus 3 + +wire us_clk; // tied to hclk + +// PARAMETERS + +parameter [1:0] + SIZE = 2'b00; // Size for byte transfers + +parameter [7:0] + VERID = 8'ha2; + +parameter [1:0] + IDLE = 2'b00, // IDLE State + DELAY = 2'b01, // DELAY State + PULSE1 = 2'b10, // PULSE1 State + PULSE2 = 2'b11; // PULSE2 State + + + assign us_clk = hclk; + assign us_irq = 1'b0; + + assign size_err = (us_size[1:0] != SIZE) ? 1'b1:1'b0; + assign us_err = (size_err || range_err) ? 1'b1:1'b0; + + + // ------------------------------------------- + // generate grpsel signals for address decoder + // ------------------------------------------- + + assign grpsel[0] = (re[0] | re[1] | re[2] | re[3] | re[4] | re[5] | re[6] | + re[7] | re[8] | re[9] | re[10] | re[11]); + + assign grpsel[1] = (re[12] | re[13] | re[14] | re[15] | re[16] | re[17] | + re[18] | re[19] | re[20] | re[21] | re[22] | re[23]); + + assign grpsel[2] = (re[24] | re[25] | re[26] | re[27] | re[28] | re[29] | + re[30] | re[31] | re[32] | re[33] | re[34] | re[35]); + + assign grpsel[3] = (re[36] | re[37] | re[38] | re[39] | re[40] | re[41] | re[42] | + re[43] | re[44] | re[45] | re[46] | re[47] | re[48] | re[49]); + + // set bus keeper signals to high state + + assign keep0 = 8'b11111111; + assign keep1 = 8'b11111111; + assign keep2 = 8'b11111111; + assign keep3 = 8'b11111111; + + // decode bus keeper enable signals + + assign bkenb0 = !grpsel[0]; + assign bkenb1 = !grpsel[1]; + assign bkenb2 = !grpsel[2]; + assign bkenb3 = !grpsel[3]; + + + // -------------------------- + // mux selected Register bank + // -------------------------- + + always @(grpsel[3:0] or dbus0 or dbus1 or dbus2 or dbus3) + begin + if (grpsel[0]) begin + dbus <= dbus0; + end + else if (grpsel[1]) begin + dbus <= dbus1; + end + else if (grpsel[2]) begin + dbus <= dbus2; + end + else if (grpsel[3]) begin + dbus <= dbus3; + end + else + dbus <= 8'hff; + end + // -------------------------- + + + + // Latch register output to us_rdata usi port + // --------------------------------------------------------------------------- + always @(posedge us_clk or negedge reset_n) begin + if (~reset_n) begin + us_rdata[7:0] <= #1 8'hff; + end + else begin + if (us_rdy_wide && !us_wr) begin + us_rdata[7:0] <= dbus[7:0]; + end + end + end // always + + // --------------------------------------------------------------------------- + + + + // ======================================== + // Register outs - wire assignments + // ======================================== + + // --------------------------------------- + // VERID + // --------------------------------------- + assign verid_reg = VERID; + + // --------------------------------------- + // TSTCNTL + // --------------------------------------- + assign pkt_add_swap_ri = tstcntl_reg[0]; + assign pkt_loop_enb_ri = tstcntl_reg[1]; + assign phy_reset_n_ri = tstcntl_reg[2]; + assign pkt_loop_clksel_ri = tstcntl_reg[3]; + + + // --------------------------------------- + // SMCNTL + // --------------------------------------- + assign unused_ctl_0 = tstcntl2_reg[0]; + assign unused_ctl_1 = tstcntl2_reg[1]; + assign unused_ctl_2 = tstcntl2_reg[2]; + assign unused_ctl_3 = tstcntl2_reg[3]; + assign unused_ctl_4 = tstcntl2_reg[4]; + + // --------------------------------------- + // MACCNTL + // --------------------------------------- + assign tx_sndpausreq_ri = maccntl_reg[0]; + assign tx_fifoctrl_ri = maccntl_reg[1]; + assign rx_fifo_full_ri = maccntl_reg[2]; + assign tx_fifo_empty_ri = maccntl_reg[3]; + assign ignore_next_pkt_ri = maccntl_reg[4]; + + // --------------------------------------- + // PAUSTMRL + // --------------------------------------- + assign tx_sndpaustim_ri[0] = paustmrl_reg[0]; + assign tx_sndpaustim_ri[1] = paustmrl_reg[1]; + assign tx_sndpaustim_ri[2] = paustmrl_reg[2]; + assign tx_sndpaustim_ri[3] = paustmrl_reg[3]; + assign tx_sndpaustim_ri[4] = paustmrl_reg[4]; + assign tx_sndpaustim_ri[5] = paustmrl_reg[5]; + assign tx_sndpaustim_ri[6] = paustmrl_reg[6]; + assign tx_sndpaustim_ri[7] = paustmrl_reg[7]; + + // --------------------------------------- + // PAUSTMRH + // --------------------------------------- + assign tx_sndpaustim_ri[8] = paustmrh_reg[0]; + assign tx_sndpaustim_ri[9] = paustmrh_reg[1]; + assign tx_sndpaustim_ri[10] = paustmrh_reg[2]; + assign tx_sndpaustim_ri[11] = paustmrh_reg[3]; + assign tx_sndpaustim_ri[12] = paustmrh_reg[4]; + assign tx_sndpaustim_ri[13] = paustmrh_reg[5]; + assign tx_sndpaustim_ri[14] = paustmrh_reg[6]; + assign tx_sndpaustim_ri[15] = paustmrh_reg[7]; + + // --------------------------------------- + // FIFOAFTH and FIFOAETH + // --------------------------------------- + assign aff_thrhd[7:0] = fifoaftl_reg[7:0]; + assign aff_thrhd[8] = fifoafth_reg[0]; + assign afe_thrhd[7:0] = fifoaetl_reg[7:0]; + assign afe_thrhd[8] = fifoaeth_reg[0]; + + // --------------------------------------- + // RXSTATUS and TXSTATUS + // --------------------------------------- + // RO bits out of reg - see code below + + // --------------------------------------- + // COUNTER REGISTERS + // --------------------------------------- + // RO bits out of reg - see code below + + // ----------------------------------------- + // ***************************************** + // assign register bits to output TS-drivers + // ----------------------------------------- + // ***************************************** + + //---------------------------------------- + // dbus0 related + //---------------------------------------- + assign reg0_tdrive0_data = verid_reg; + assign reg0_tdrive0_en = re[0]; + + assign reg1_tdrive0_data = tstcntl_reg; + assign reg1_tdrive0_en = re[1]; + + assign reg2_tdrive0_data = tstcntl2_reg; + assign reg2_tdrive0_en = re[2]; + + assign reg3_tdrive0_data = maccntl_reg; + assign reg3_tdrive0_en = re[3]; + + assign reg4_tdrive0_data = paustmrl_reg; + assign reg4_tdrive0_en = re[4]; + + assign reg5_tdrive0_data = paustmrh_reg; + assign reg5_tdrive0_en = re[5]; + + assign reg6_tdrive0_data = fifoaftl_reg; + assign reg6_tdrive0_en = re[6]; + + assign reg7_tdrive0_data = fifoafth_reg; + assign reg7_tdrive0_en = re[7]; + + assign reg8_tdrive0_data = fifoaetl_reg; + assign reg8_tdrive0_en = re[8]; + + assign reg9_tdrive0_data = fifoaeth_reg; + assign reg9_tdrive0_en = re[9]; + + assign reg10_tdrive0_data = rxstatus_reg; + assign reg10_tdrive0_en = re[10]; + + assign reg11_tdrive0_data = txstatus_reg; + assign reg11_tdrive0_en = re[11]; + + assign buskeep0_tdrive0_data = keep0; + assign buskeep0_tdrive0_en = bkenb0; + //---------------------------------------- + + //---------------------------------------- + // dbus1 related + //---------------------------------------- + assign reg12_tdrive1_data = rxpicnt_reg[7:0]; + assign reg12_tdrive1_en = re[12]; + + assign reg13_tdrive1_data = rxpicnt_reg[15:8]; + assign reg13_tdrive1_en = re[13]; + + assign reg14_tdrive1_data = rxlcecnt_reg[7:0]; + assign reg14_tdrive1_en = re[14]; + + assign reg15_tdrive1_data = rxlcecnt_reg[15:8]; + assign reg15_tdrive1_en = re[15]; + + assign reg16_tdrive1_data = rxlfcnt_reg[7:0]; + assign reg16_tdrive1_en = re[16]; + + assign reg17_tdrive1_data = rxlfcnt_reg[15:8]; + assign reg17_tdrive1_en = re[17]; + + assign reg18_tdrive1_data = rxsfcnt_reg[7:0]; + assign reg18_tdrive1_en = re[18]; + + assign reg19_tdrive1_data = rxsfcnt_reg[15:8]; + assign reg19_tdrive1_en = re[19]; + + assign reg20_tdrive1_data = rxipgcnt_reg[7:0]; + assign reg20_tdrive1_en = re[20]; + + assign reg21_tdrive1_data = rxipgcnt_reg[15:8]; + assign reg21_tdrive1_en = re[21]; + + assign reg22_tdrive1_data = rxcrccnt_reg[7:0]; + assign reg22_tdrive1_en = re[22]; + + assign reg23_tdrive1_data = rxcrccnt_reg[15:8]; + assign reg23_tdrive1_en = re[23]; + + assign buskeep1_tdrive1_data = keep1; + assign buskeep1_tdrive1_en = bkenb1; + //---------------------------------------- + + //---------------------------------------- + // dbus2 related + //---------------------------------------- + assign reg24_tdrive2_data = rxokcnt_reg[7:0]; + assign reg24_tdrive2_en = re[24]; + + assign reg25_tdrive2_data = rxokcnt_reg[15:8]; + assign reg25_tdrive2_en = re[25]; + + assign reg26_tdrive2_data = rxcfcnt_reg[7:0]; + assign reg26_tdrive2_en = re[26]; + + assign reg27_tdrive2_data = rxcfcnt_reg[15:8]; + assign reg27_tdrive2_en = re[27]; + + assign reg28_tdrive2_data = rxpfcnt_reg[7:0]; + assign reg28_tdrive2_en = re[28]; + + assign reg29_tdrive2_data = rxpfcnt_reg[15:8]; + assign reg29_tdrive2_en = re[29]; + + assign reg30_tdrive2_data = rxmfcnt_reg[7:0]; + assign reg30_tdrive2_en = re[30]; + + assign reg31_tdrive2_data = rxmfcnt_reg[15:8]; + assign reg31_tdrive2_en = re[31]; + + assign reg32_tdrive2_data = rxbfcnt_reg[7:0]; + assign reg32_tdrive2_en = re[32]; + + assign reg33_tdrive2_data = rxbfcnt_reg[15:8]; + assign reg33_tdrive2_en = re[33]; + + assign reg34_tdrive2_data = rxvfcnt_reg[7:0]; + assign reg34_tdrive2_en = re[34]; + + assign reg35_tdrive2_data = rxvfcnt_reg[15:8]; + assign reg35_tdrive2_en = re[35]; + + assign buskeep2_tdrive2_data = keep2; + assign buskeep2_tdrive2_en = bkenb2; + //---------------------------------------- + + + //---------------------------------------- + // dbus3 related + //---------------------------------------- + assign reg36_tdrive3_data = txufcnt_reg[7:0]; + assign reg36_tdrive3_en = re[36]; + + assign reg37_tdrive3_data = txufcnt_reg[15:8]; + assign reg37_tdrive3_en = re[37]; + + assign reg38_tdrive3_data = txpfcnt_reg[7:0]; + assign reg38_tdrive3_en = re[38]; + + assign reg39_tdrive3_data = txpfcnt_reg[15:8]; + assign reg39_tdrive3_en = re[39]; + + assign reg40_tdrive3_data = txmfcnt_reg[7:0]; + assign reg40_tdrive3_en = re[40]; + + assign reg41_tdrive3_data = txmfcnt_reg[15:8]; + assign reg41_tdrive3_en = re[41]; + + assign reg42_tdrive3_data = txbfcnt_reg[7:0]; + assign reg42_tdrive3_en = re[42]; + + assign reg43_tdrive3_data = txbfcnt_reg[15:8]; + assign reg43_tdrive3_en = re[43]; + + assign reg44_tdrive3_data = txvfcnt_reg[7:0]; + assign reg44_tdrive3_en = re[44]; + + assign reg45_tdrive3_data = txvfcnt_reg[15:8]; + assign reg45_tdrive3_en = re[45]; + + assign reg46_tdrive3_data = txbfccnt_reg[7:0]; + assign reg46_tdrive3_en = re[46]; + + assign reg47_tdrive3_data = txbfccnt_reg[15:8]; + assign reg47_tdrive3_en = re[47]; + + assign reg48_tdrive3_data = txjfcnt_reg[7:0]; + assign reg48_tdrive3_en = re[48]; + + assign reg49_tdrive3_data = txjfcnt_reg[15:8]; + assign reg49_tdrive3_en = re[49]; + + assign buskeep3_tdrive3_data = keep3; + assign buskeep3_tdrive3_en = bkenb3; + //---------------------------------------- + + + + // instantiate tristate drivers for each register's data Muxing + // ------------------------------------------------------------- + assign dbus0 = (reg0_tdrive0_en) ? reg0_tdrive0_data:8'bz; + assign dbus0 = (reg1_tdrive0_en) ? reg1_tdrive0_data:8'bz; + assign dbus0 = (reg2_tdrive0_en) ? reg2_tdrive0_data:8'bz; + assign dbus0 = (reg3_tdrive0_en) ? reg3_tdrive0_data:8'bz; + assign dbus0 = (reg4_tdrive0_en) ? reg4_tdrive0_data:8'bz; + assign dbus0 = (reg5_tdrive0_en) ? reg5_tdrive0_data:8'bz; + assign dbus0 = (reg6_tdrive0_en) ? reg6_tdrive0_data:8'bz; + assign dbus0 = (reg7_tdrive0_en) ? reg7_tdrive0_data:8'bz; + assign dbus0 = (reg8_tdrive0_en) ? reg8_tdrive0_data:8'bz; + assign dbus0 = (reg9_tdrive0_en) ? reg9_tdrive0_data:8'bz; + assign dbus0 = (reg10_tdrive0_en) ? reg10_tdrive0_data:8'bz; + assign dbus0 = (reg11_tdrive0_en) ? reg11_tdrive0_data:8'bz; + assign dbus0 = (buskeep0_tdrive0_en) ? buskeep0_tdrive0_data:8'bz; + + // ---------------------------------------------------------------- + + assign dbus1 = (reg12_tdrive1_en) ? reg12_tdrive1_data:8'bz; + assign dbus1 = (reg13_tdrive1_en) ? reg13_tdrive1_data:8'bz; + assign dbus1 = (reg14_tdrive1_en) ? reg14_tdrive1_data:8'bz; + assign dbus1 = (reg15_tdrive1_en) ? reg15_tdrive1_data:8'bz; + assign dbus1 = (reg16_tdrive1_en) ? reg16_tdrive1_data:8'bz; + assign dbus1 = (reg17_tdrive1_en) ? reg17_tdrive1_data:8'bz; + assign dbus1 = (reg18_tdrive1_en) ? reg18_tdrive1_data:8'bz; + assign dbus1 = (reg19_tdrive1_en) ? reg19_tdrive1_data:8'bz; + assign dbus1 = (reg20_tdrive1_en) ? reg20_tdrive1_data:8'bz; + assign dbus1 = (reg21_tdrive1_en) ? reg21_tdrive1_data:8'bz; + assign dbus1 = (reg22_tdrive1_en) ? reg22_tdrive1_data:8'bz; + assign dbus1 = (reg23_tdrive1_en) ? reg23_tdrive1_data:8'bz; + assign dbus1 = (buskeep1_tdrive1_en) ? buskeep1_tdrive1_data:8'bz; + + // ---------------------------------------------------------------- + + assign dbus2 = (reg24_tdrive2_en) ? reg24_tdrive2_data:8'bz; + assign dbus2 = (reg25_tdrive2_en) ? reg25_tdrive2_data:8'bz; + assign dbus2 = (reg26_tdrive2_en) ? reg26_tdrive2_data:8'bz; + assign dbus2 = (reg27_tdrive2_en) ? reg27_tdrive2_data:8'bz; + assign dbus2 = (reg28_tdrive2_en) ? reg28_tdrive2_data:8'bz; + assign dbus2 = (reg29_tdrive2_en) ? reg29_tdrive2_data:8'bz; + assign dbus2 = (reg30_tdrive2_en) ? reg30_tdrive2_data:8'bz; + assign dbus2 = (reg31_tdrive2_en) ? reg31_tdrive2_data:8'bz; + assign dbus2 = (reg32_tdrive2_en) ? reg32_tdrive2_data:8'bz; + assign dbus2 = (reg33_tdrive2_en) ? reg33_tdrive2_data:8'bz; + assign dbus2 = (reg34_tdrive2_en) ? reg34_tdrive2_data:8'bz; + assign dbus2 = (reg35_tdrive2_en) ? reg35_tdrive2_data:8'bz; + assign dbus2 = (buskeep2_tdrive2_en) ? buskeep2_tdrive2_data:8'bz; + + // ---------------------------------------------------------------- + + assign dbus3 = (reg36_tdrive3_en) ? reg36_tdrive3_data:8'bz; + assign dbus3 = (reg37_tdrive3_en) ? reg37_tdrive3_data:8'bz; + assign dbus3 = (reg38_tdrive3_en) ? reg38_tdrive3_data:8'bz; + assign dbus3 = (reg39_tdrive3_en) ? reg39_tdrive3_data:8'bz; + assign dbus3 = (reg40_tdrive3_en) ? reg40_tdrive3_data:8'bz; + assign dbus3 = (reg41_tdrive3_en) ? reg41_tdrive3_data:8'bz; + assign dbus3 = (reg42_tdrive3_en) ? reg42_tdrive3_data:8'bz; + assign dbus3 = (reg43_tdrive3_en) ? reg43_tdrive3_data:8'bz; + assign dbus3 = (reg44_tdrive3_en) ? reg44_tdrive3_data:8'bz; + assign dbus3 = (reg45_tdrive3_en) ? reg45_tdrive3_data:8'bz; + assign dbus3 = (reg46_tdrive3_en) ? reg46_tdrive3_data:8'bz; + assign dbus3 = (reg47_tdrive3_en) ? reg47_tdrive3_data:8'bz; + assign dbus3 = (reg48_tdrive3_en) ? reg48_tdrive3_data:8'bz; + assign dbus3 = (reg49_tdrive3_en) ? reg49_tdrive3_data:8'bz; + assign dbus3 = (buskeep3_tdrive3_en) ? buskeep3_tdrive3_data:8'bz; + + // ---------------------------------------------------------------- + + + // --------------------------------------------------------------------------- + // Stretch out us_rdy and Generate us_ack + // us_ack - is just us_rdy pipelined three times and returned + // --------------------------------------------------------------------------- + always @(posedge us_clk or negedge reset_n) begin + if (~reset_n) begin + us_rdy_f0 <= #1 1'b0; + us_rdy_f1 <= #1 1'b0; + us_ack <= #1 1'b0; + us_rdy_wide <= #1 1'b0; + end + else begin + us_rdy_f0 <= #1 us_rdy; + us_rdy_f1 <= #1 us_rdy_f0; + us_rdy_wide <= #1 (us_rdy_f0 | us_rdy_f1); + us_ack <= #1 us_rdy_f1; + end + end // always + // --------------------------------------------------------------------------- + + + + // --------------------------------------------------------------------------------- + // ********************************************************************************* + // ADDRESS DECODER + // --------------------------------------------------------------------------------- + // ********************************************************************************* + always @(us_addr or us_wr or us_rdy_wide) + begin + + // default assignment of we, and re signals + we <= 0; + re <= 0; + range_err <= 0; + + if (us_rdy_wide == 1'b1) begin + + if (us_addr[17:6] == 12'h200) begin + + case (us_addr[5:0]) + + 6'd0 : // VERID + begin + if (!us_wr) + re[0] <= 1; + else + re[0] <= 0; + end + 6'd1 : // TSTCNTL + begin + if (us_wr) begin + we[1] <= 1; + re[1] <= 0; + end + else begin + we[1] <= 0; + re[1] <= 1; + end + end + 6'd2 : // TSTCNTL2 + begin + if (us_wr) begin + we[2] <= 1; + re[2] <= 0; + end + else begin + we[2] <= 0; + re[2] <= 1; + end + end + 6'd3 : // MACCNTL + begin + if (us_wr) begin + we[3] <= 1; + re[3] <= 0; + end + else begin + we[3] <= 0; + re[3] <= 1; + end + end + 6'd4 : // PAUSTMRL + begin + if (us_wr) begin + we[4] <= 1; + re[4] <= 0; + end + else begin + we[4] <= 0; + re[4] <= 1; + end + end + 6'd5 : // PAUSTMRH + begin + if (us_wr) begin + we[5] <= 1; + re[5] <= 0; + end + else begin + we[5] <= 0; + re[5] <= 1; + end + end + 6'd6 : // FIFOAFTL + begin + if (us_wr) begin + we[6] <= 1; + re[6] <= 0; + end + else begin + we[6] <= 0; + re[6] <= 1; + end + end + 6'd7 : // FIFOAFTH + begin + if (us_wr) begin + we[7] <= 1; + re[7] <= 0; + end + else begin + we[7] <= 0; + re[7] <= 1; + end + end + 6'd8 : // FIFOAETL + begin + if (us_wr) begin + we[8] <= 1; + re[8] <= 0; + end + else begin + we[8] <= 0; + re[8] <= 1; + end + end + 6'd9 : // FIFOAETH + begin + if (us_wr) begin + we[9] <= 1; + re[9] <= 0; + end + else begin + we[9] <= 0; + re[9] <= 1; + end + end + 6'd10 : // RXSTATUS + begin + if (!us_wr) + re[10] <= 1; + else + re[10] <= 0; + end + 6'd11 : // TXSTATUS + begin + if (!us_wr) + re[11] <= 1; + else + re[11] <= 0; + end + 6'd12 : // RXPICNT_L + begin + if (!us_wr) + re[12] <= 1; + else + re[12] <= 0; + end + 6'd13 : // RXPICNT_H + begin + if (!us_wr) + re[13] <= 1; + else + re[13] <= 0; + end + 6'd14 : // RXLCECNT_L + begin + if (!us_wr) + re[14] <= 1; + else + re[14] <= 0; + end + 6'd15 : // RXLCECNT_H + begin + if (!us_wr) + re[15] <= 1; + else + re[15] <= 0; + end + 6'd16 : // RXLFCNT_L + begin + if (!us_wr) + re[16] <= 1; + else + re[16] <= 0; + end + 6'd17 : // RXLFCNT_H + begin + if (!us_wr) + re[17] <= 1; + else + re[17] <= 0; + end + 6'd18 : // RXSFCNT_L + begin + if (!us_wr) + re[18] <= 1; + else + re[18] <= 0; + end + 6'd19 : // RXSFCNT_H + begin + if (!us_wr) + re[19] <= 1; + else + re[19] <= 0; + end + 6'd20 : // RXIPGFCNT_L + begin + if (!us_wr) + re[20] <= 1; + else + re[20] <= 0; + end + 6'd21 : // RXIPGFCNT_H + begin + if (!us_wr) + re[21] <= 1; + else + re[21] <= 0; + end + 6'd22 : // RXCRCCNT_L + begin + if (!us_wr) + re[22] <= 1; + else + re[22] <= 0; + end + 6'd23 : // RXCRCCNT_H + begin + if (!us_wr) + re[23] <= 1; + else + re[23] <= 0; + end + 6'd24 : // RXOKFCNT_L + begin + if (!us_wr) + re[24] <= 1; + else + re[24] <= 0; + end + 6'd25 : // RXOKFCNT_H + begin + if (!us_wr) + re[25] <= 1; + else + re[25] <= 0; + end + 6'd26 : // RXCFCNT_L + begin + if (!us_wr) + re[26] <= 1; + else + re[26] <= 0; + end + 6'd27 : // RXCFCNT_H + begin + if (!us_wr) + re[27] <= 1; + else + re[27] <= 0; + end + 6'd28 : // RXPFCNT_L + begin + if (!us_wr) + re[28] <= 1; + else + re[28] <= 0; + end + 6'd29 : // RXPFCNT_H + begin + if (!us_wr) + re[29] <= 1; + else + re[29] <= 0; + end + 6'd30 : // RXMFCNT_L + begin + if (!us_wr) + re[30] <= 1; + else + re[30] <= 0; + end + 6'd31 : // RXMFCNT_H + begin + if (!us_wr) + re[31] <= 1; + else + re[31] <= 0; + end + 6'd32 : // RXBFCNT_L + begin + if (!us_wr) + re[32] <= 1; + else + re[32] <= 0; + end + 6'd33 : // RXBFCNT_H + begin + if (!us_wr) + re[33] <= 1; + else + re[33] <= 0; + end + 6'd34 : // RXVFCNT_L + begin + if (!us_wr) + re[34] <= 1; + else + re[34] <= 0; + end + 6'd35 : // RXVFCNT_H + begin + if (!us_wr) + re[35] <= 1; + else + re[35] <= 0; + end + 6'd36 : // TXUFCNT_L + begin + if (!us_wr) + re[36] <= 1; + else + re[36] <= 0; + end + 6'd37 : // TXUFCNT_H + begin + if (!us_wr) + re[37] <= 1; + else + re[37] <= 0; + end + 6'd38 : // TXPFCNT_L + begin + if (!us_wr) + re[38] <= 1; + else + re[38] <= 0; + end + 6'd39 : // TXPFCNT_H + begin + if (!us_wr) + re[39] <= 1; + else + re[39] <= 0; + end + 6'd40 : // TXMFCNT_L + begin + if (!us_wr) + re[40] <= 1; + else + re[40] <= 0; + end + 6'd41 : // TXMFCNT_H + begin + if (!us_wr) + re[41] <= 1; + else + re[41] <= 0; + end + 6'd42 : // TXBFCNT_L + begin + if (!us_wr) + re[42] <= 1; + else + re[42] <= 0; + end + 6'd43 : // TXBFCNT_H + begin + if (!us_wr) + re[43] <= 1; + else + re[43] <= 0; + end + 6'd44 : // TXVFCNT_L + begin + if (!us_wr) + re[44] <= 1; + else + re[44] <= 0; + end + 6'd45 : // TXVFCNT_H + begin + if (!us_wr) + re[45] <= 1; + else + re[45] <= 0; + end + 6'd46 : // TXBFCCNT_L + begin + if (!us_wr) + re[46] <= 1; + else + re[46] <= 0; + end + 6'd47 : // TXBFCCNT_H + begin + if (!us_wr) + re[47] <= 1; + else + re[47] <= 0; + end + 6'd48 : // TXJFCNT_L + begin + if (!us_wr) + re[48] <= 1; + else + re[48] <= 0; + end + 6'd49 : // TXJFCNT_H + begin + if (!us_wr) + re[49] <= 1; + else + re[49] <= 0; + end + + default: + begin + re <= 0; + we <= 0; + range_err <= 1'b0; + end + + endcase + + end // (us_addr[17:6] == 12'h2000) + + + end // (us_rdy == 1) + + else begin // (us_rdy == 0) + we <= 0; + re <= 0; + end + + end //always + // --------------------------------------------------------------------------------- + // ********************************************************************************* + + + // --------------------------------------------------------------------------- + // Delay re[10] - re[48] by 2 clks to use for Clear on Read + // --------------------------------------------------------------------------- + always @(posedge us_clk or negedge reset_n) begin + if (~reset_n) begin + re10_dly <= #1 1'b0; + re11_dly <= #1 1'b0; + re12_dly <= #1 1'b0; + re14_dly <= #1 1'b0; + re16_dly <= #1 1'b0; + re18_dly <= #1 1'b0; + re20_dly <= #1 1'b0; + re22_dly <= #1 1'b0; + re24_dly <= #1 1'b0; + re26_dly <= #1 1'b0; + re28_dly <= #1 1'b0; + re30_dly <= #1 1'b0; + re32_dly <= #1 1'b0; + re34_dly <= #1 1'b0; + re36_dly <= #1 1'b0; + re38_dly <= #1 1'b0; + re40_dly <= #1 1'b0; + re42_dly <= #1 1'b0; + re44_dly <= #1 1'b0; + re46_dly <= #1 1'b0; + re48_dly <= #1 1'b0; + clear_delay <= #1 1'b0; + clear_count <= #1 7'b0000000; + end + else begin + if (us_rdy_wide & !us_wr) begin + clear_count <= 127; + end else if (clear_count != 0) begin + clear_count <= clear_count - 1; + end + + if (clear_count == 7'b0000001) begin + clear_delay <= 1; + end else begin + clear_delay <= 0; + end + + if (re[10]) begin + re10_dly <= 1; + end else if (clear_delay) begin + re10_dly <= 0; + end + + if (re[11]) begin + re11_dly <= 1; + end else if (clear_delay) begin + re11_dly <= 0; + end + + if (re[12]) begin + re12_dly <= 1; + end else if (clear_delay) begin + re12_dly <= 0; + end + + if (re[14]) begin + re14_dly <= 1; + end else if (clear_delay) begin + re14_dly <= 0; + end + + if (re[16]) begin + re16_dly <= 1; + end else if (clear_delay) begin + re16_dly <= 0; + end + + if (re[18]) begin + re18_dly <= 1; + end else if (clear_delay) begin + re18_dly <= 0; + end + + if (re[20]) begin + re20_dly <= 1; + end else if (clear_delay) begin + re20_dly <= 0; + end + + if (re[22]) begin + re22_dly <= 1; + end else if (clear_delay) begin + re22_dly <= 0; + end + + if (re[24]) begin + re24_dly <= 1; + end else if (clear_delay) begin + re24_dly <= 0; + end + + if (re[26]) begin + re26_dly <= 1; + end else if (clear_delay) begin + re26_dly <= 0; + end + + if (re[28]) begin + re28_dly <= 1; + end else if (clear_delay) begin + re28_dly <= 0; + end + + if (re[30]) begin + re30_dly <= 1; + end else if (clear_delay) begin + re30_dly <= 0; + end + + if (re[32]) begin + re32_dly <= 1; + end else if (clear_delay) begin + re32_dly <= 0; + end + + if (re[34]) begin + re34_dly <= 1; + end else if (clear_delay) begin + re34_dly <= 0; + end + + if (re[36]) begin + re36_dly <= 1; + end else if (clear_delay) begin + re36_dly <= 0; + end + + if (re[38]) begin + re38_dly <= 1; + end else if (clear_delay) begin + re38_dly <= 0; + end + + if (re[40]) begin + re40_dly <= 1; + end else if (clear_delay) begin + re40_dly <= 0; + end + + if (re[42]) begin + re42_dly <= 1; + end else if (clear_delay) begin + re42_dly <= 0; + end + + if (re[44]) begin + re44_dly <= 1; + end else if (clear_delay) begin + re44_dly <= 0; + end + + if (re[46]) begin + re46_dly <= 1; + end else if (clear_delay) begin + re46_dly <= 0; + end + + if (re[48]) begin + re48_dly <= 1; + end else if (clear_delay) begin + re48_dly <= 0; + end + end + end // always + + + // --------------------------------------------------------------------------------- + // WRITE TO REGISTERS LOGIC + // --------------------------------------------------------------------------------- + + + // --------------------------------------------------------------------------- + // PIPELINE us_wdata + // --------------------------------------------------------------------------- + always @(posedge us_clk or negedge reset_n) begin + if (~reset_n) begin + us_wdata_f[7:0] <= #1 8'h00; + end + else begin + us_wdata_f[7:0] <= #1 us_wdata[7:0]; + end + end // always + // --------------------------------------------------------------------------- + + // --------------------------------------------------------------------------- + // TSTCNTL REGISTER + // --------------------------------------------------------------------------- + // FSM to generate pulses if tstcntl_reg[3] or tstcntl_reg[4] are written to "1" + // --------------------------------------------------------------------------- + + always @(posedge us_clk or negedge reset_n) begin + if (~reset_n) begin + cntl_fsm_st <= #1 IDLE; + start_burst <= #1 1'b0; + ram_rst <= #1 1'b0; + end + else begin + + case (cntl_fsm_st) + + IDLE: + begin + start_burst <= #1 1'b0; + ram_rst <= #1 1'b0; + + if (we[1] == 1) + cntl_fsm_st <= #1 DELAY; + else + cntl_fsm_st <= #1 IDLE; + end + DELAY: + begin + if (us_wdata_f[3] == 1) + cntl_fsm_st <= #1 PULSE1; + else if (us_wdata_f[4] == 1) + cntl_fsm_st <= #1 PULSE2; + else + cntl_fsm_st <= #1 IDLE; + end + PULSE1: + begin + start_burst <= #1 1'b1; + cntl_fsm_st <= #1 IDLE; + end + PULSE2: + begin + ram_rst <= #1 1'b1; + cntl_fsm_st <= #1 IDLE; + end + default: + begin + cntl_fsm_st <= #1 IDLE; + start_burst <= #1 1'b0; + ram_rst <= #1 1'b0; + end + endcase + end + end // always + + // --------------------------------------------------------------------------- + // Write data into TSTCNTL bits [3:0] + // --------------------------------------------------------------------------- + + always @(posedge us_clk or negedge reset_n) begin + if (~reset_n) begin + tstcntl_reg[7:0] <= #1 8'h00; + end + else begin + if (we[1] == 1) begin + tstcntl_reg[3:0] <= #1 us_wdata_f[3:0]; + tstcntl_reg[7:4] <= #1 4'b0000; + end + end + end // always + // --------------------------------------------------------------------------- + + // --------------------------------------------------------------------------- + // Write data into TSTCNTL2 - unused + // --------------------------------------------------------------------------- + + always @(posedge us_clk or negedge reset_n) begin + if (~reset_n) begin + tstcntl2_reg[7:0] <= #1 8'h00; + end + else begin + if (we[2] == 1) + tstcntl2_reg[7:0] <= #1 us_wdata_f[7:0]; + end + end // always + // --------------------------------------------------------------------------- + + // --------------------------------------------------------------------------- + // Write data into MACCNTL + // --------------------------------------------------------------------------- + + always @(posedge us_clk or negedge reset_n) begin + if (~reset_n) begin + maccntl_reg[7:0] <= #1 8'h00; + end + else begin + if (we[3] == 1) + maccntl_reg[7:0] <= #1 us_wdata_f[7:0]; + end + end // always + // --------------------------------------------------------------------------- + + // --------------------------------------------------------------------------- + // Write data into PAUSTMR_L, and PAUSTMR_H + // --------------------------------------------------------------------------- + + always @(posedge us_clk or negedge reset_n) begin + if (~reset_n) begin + paustmrl_reg[7:0] <= #1 8'h00; + paustmrh_reg[7:0] <= #1 8'h00; + end + else begin + if (we[4] == 1) + paustmrl_reg[7:0] <= #1 us_wdata_f[7:0]; + if (we[5] == 1) + paustmrh_reg[7:0] <= #1 us_wdata_f[7:0]; + end + end // always + // --------------------------------------------------------------------------- + + // --------------------------------------------------------------------------- + // Write data into FIFOAFTL, and FIFOAFTH + // --------------------------------------------------------------------------- + + always @(posedge us_clk or negedge reset_n) begin + if (~reset_n) begin + fifoaftl_reg[7:0] <= #1 8'hc1; + fifoafth_reg[7:0] <= #1 8'h01; + end + else begin + if (we[6] == 1) + fifoaftl_reg[7:0] <= #1 us_wdata_f[7:0]; + if (we[7] == 1) + fifoafth_reg[7:0] <= #1 us_wdata_f[7:0]; + end + end // always + // --------------------------------------------------------------------------- + + // --------------------------------------------------------------------------- + // Write data into FIFOAETL, and FIFOAETH + // --------------------------------------------------------------------------- + + always @(posedge us_clk or negedge reset_n) begin + if (~reset_n) begin + fifoaetl_reg[7:0] <= #1 8'h05; + fifoaeth_reg[7:0] <= #1 8'h00; + end + else begin + if (we[8] == 1) + fifoaetl_reg[7:0] <= #1 us_wdata_f[7:0]; + if (we[9] == 1) + fifoaeth_reg[7:0] <= #1 us_wdata_f[7:0]; + end + end // always + // --------------------------------------------------------------------------- + + // --------------------------------------------------------------------------- + // Write to RXSTATUS Reg from system side + // --------------------------------------------------------------------------- + always @(posedge rxc_clk or negedge reset_n) begin + if (~reset_n) begin + rxstatus_reg[7:0] <= #1 8'h00; + end + else begin + if (re10_dly & !us_rdy_wide) + rxstatus_reg[7:0] <= #1 8'h00; + else begin + if (rx_error_ri == 1'b1) + rxstatus_reg[0] <= #1 1'b1; + if (rx_fifo_error_ri == 1'b1) + rxstatus_reg[1] <= #1 1'b1; + end + end + end // always + + // --------------------------------------------------------------------------- + // Write to TXSTATUS Reg from system side + // --------------------------------------------------------------------------- + always @(posedge txc_clk or negedge reset_n) begin + if (~reset_n) begin + txstatus_reg[7:0] <= #1 8'h00; + end + else begin + if (re11_dly & !us_rdy_wide) + txstatus_reg[7:0] <= #1 8'h00; + else begin + if (tx_disfrm_ri == 1'b1) + txstatus_reg[0] <= #1 1'b1; + if (tx_fifo_full_ri == 1'b1) + txstatus_reg[1] <= #1 1'b1; + end + end + end // always + + // --------------------------------------------------------------------------- + // RX STAT COUNTERS + // --------------------------------------------------------------------------- + always @(posedge rxc_clk or negedge reset_n) begin + if (~reset_n) begin + rxpicnt_reg <= #1 16'h0000; + rxlcecnt_reg <= #1 16'h0000; + rxlfcnt_reg <= #1 16'h0000; + rxsfcnt_reg <= #1 16'h0000; + rxipgcnt_reg <= #1 16'h0000; + rxcrccnt_reg <= #1 16'h0000; + rxokcnt_reg <= #1 16'h0000; + rxcfcnt_reg <= #1 16'h0000; + rxpfcnt_reg <= #1 16'h0000; + rxmfcnt_reg <= #1 16'h0000; + rxbfcnt_reg <= #1 16'h0000; + rxvfcnt_reg <= #1 16'h0000; + end + else begin + if (re12_dly & !us_rdy_wide) + rxpicnt_reg <= #1 16'h0000; + if (re14_dly & !us_rdy_wide) + rxlcecnt_reg <= #1 16'h0000; + if (re16_dly & !us_rdy_wide) + rxlfcnt_reg <= #1 16'h0000; + if (re18_dly & !us_rdy_wide) + rxsfcnt_reg <= #1 16'h0000; + if (re20_dly & !us_rdy_wide) + rxipgcnt_reg <= #1 16'h0000; + if (re22_dly & !us_rdy_wide) + rxcrccnt_reg <= #1 16'h0000; + if (re24_dly & !us_rdy_wide) + rxokcnt_reg <= #1 16'h0000; + if (re26_dly & !us_rdy_wide) + rxcfcnt_reg <= #1 16'h0000; + if (re28_dly & !us_rdy_wide) + rxpfcnt_reg <= #1 16'h0000; + if (re30_dly & !us_rdy_wide) + rxmfcnt_reg <= #1 16'h0000; + if (re32_dly & !us_rdy_wide) + rxbfcnt_reg <= #1 16'h0000; + if (re34_dly & !us_rdy_wide) + rxvfcnt_reg <= #1 16'h0000; + else begin + if (rx_stat_en == 1'b1) begin + if (rx_stat_vec[26] == 1'b1) + rxpicnt_reg <= #1 rxpicnt_reg + 1; + if (rx_stat_vec[24] == 1'b1) + rxlcecnt_reg <= #1 rxlcecnt_reg + 1; + if (rx_stat_vec[31] == 1'b1) + rxlfcnt_reg <= #1 rxlfcnt_reg + 1; + if (rx_stat_vec[30] == 1'b1) + rxsfcnt_reg <= #1 rxsfcnt_reg + 1; + if (rx_stat_vec[29] == 1'b1) + rxipgcnt_reg <= #1 rxipgcnt_reg + 1; + if (rx_stat_vec[25] == 1'b1) + rxcrccnt_reg <= #1 rxcrccnt_reg + 1; + if (rx_stat_vec[23] == 1'b1) + rxokcnt_reg <= #1 rxokcnt_reg + 1; + if (rx_stat_vec[18] == 1'b1) + rxcfcnt_reg <= #1 rxcfcnt_reg + 1; + if (rx_stat_vec[17] == 1'b1) + rxpfcnt_reg <= #1 rxpfcnt_reg + 1; + if (rx_stat_vec[22] == 1'b1) + rxmfcnt_reg <= #1 rxmfcnt_reg + 1; + if (rx_stat_vec[21] == 1'b1) + rxbfcnt_reg <= #1 rxbfcnt_reg + 1; + if (rx_stat_vec[16] == 1'b1) + rxvfcnt_reg <= #1 rxvfcnt_reg + 1; + end + end + end + end // always + + + // --------------------------------------------------------------------------- + // TX STAT COUNTERS + // --------------------------------------------------------------------------- + always @(posedge txc_clk or negedge reset_n) begin + if (~reset_n) begin + txufcnt_reg <= #1 16'h0000; + txpfcnt_reg <= #1 16'h0000; + txmfcnt_reg <= #1 16'h0000; + txbfcnt_reg <= #1 16'h0000; + txvfcnt_reg <= #1 16'h0000; + txbfccnt_reg <= #1 16'h0000; + txjfcnt_reg <= #1 16'h0000; + end + else begin + if (re36_dly & !us_rdy_wide) + txufcnt_reg <= #1 16'h0000; + if (re38_dly & !us_rdy_wide) + txpfcnt_reg <= #1 16'h0000; + if (re40_dly & !us_rdy_wide) + txmfcnt_reg <= #1 16'h0000; + if (re42_dly & !us_rdy_wide) + txbfcnt_reg <= #1 16'h0000; + if (re44_dly & !us_rdy_wide) + txvfcnt_reg <= #1 16'h0000; + if (re46_dly & !us_rdy_wide) + txbfccnt_reg <= #1 16'h0000; + if (re48_dly & !us_rdy_wide) + txjfcnt_reg <= #1 16'h0000; + else begin + if (tx_stat_en == 1'b1) begin + if (tx_stat_vec[0] == 1'b1) + txufcnt_reg <= #1 txufcnt_reg + 1; + if (tx_stat_vec[6] == 1'b1) + txpfcnt_reg <= #1 txpfcnt_reg + 1; + if (tx_stat_vec[1] == 1'b1) + txmfcnt_reg <= #1 txmfcnt_reg + 1; + if (tx_stat_vec[2] == 1'b1) + txbfcnt_reg <= #1 txbfcnt_reg + 1; + if (tx_stat_vec[7] == 1'b1) + txvfcnt_reg <= #1 txvfcnt_reg + 1; + if (tx_stat_vec[3] == 1'b1) + txbfccnt_reg <= #1 txbfccnt_reg + 1; + if (tx_stat_vec[4] == 1'b1) + txjfcnt_reg <= #1 txjfcnt_reg + 1; + end + end + end + end // always + + +endmodule // reg_intf + + + + diff --git a/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/rtl/template/rx_loopbk.v b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/rtl/template/rx_loopbk.v new file mode 100644 index 0000000..8c844d5 --- /dev/null +++ b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/rtl/template/rx_loopbk.v @@ -0,0 +1,300 @@ +// =========================================================================== +// Verilog module generated by IPexpress +// Filename: rx_loopbk.v +// Copyright 2012 (c) Lattice Semiconductor Corporation. All rights reserved. +// =========================================================================== + +//`timescale 1ns/100ps + + +// DEFINES + + +module rx_loopbk( + clk, + reset_n, + rxmac_clk_en, + add_swap, + loop_enb, + rx_dbout, + rx_write, + rx_eof, + tx_dbin, + tx_write, + tx_eof + ); + + + input clk; // rx fifo clock + input reset_n; // active low global reset + input rxmac_clk_en; // rx clk enable + + input add_swap; // address swap control bit from reg + input loop_enb; // loop back enable control bit from reg + + input [7:0] rx_dbout; // rxdata input to Rx FIFO + input rx_eof; // rxdata EOF input to Rx FIFO + input rx_write; // Rx FIFO write enable + + output [7:0] tx_dbin; // txdata input to Tx FIFO + reg [7:0] tx_dbin; // + + output tx_eof; // txdata EOF input to Tx FIFO + reg tx_eof; // + + output tx_write; // Tx FIFO write enable + reg tx_write; // + + + reg [7:0] rx_dbout_1f; // rxdata input to Rx FIFO flopped 1 time + reg rx_eof_1f; // rxdata EOF input to Rx FIFO flopped 1 time + reg rx_write_1f; // Rx FIFO write enable flopped 1 time + + reg [7:0] rx_dbout_2f; // rxdata input to Rx FIFO flopped 2 times + reg rx_eof_2f; // rxdata EOF input to Rx FIFO flopped 2 times + reg rx_write_2f; // Rx FIFO write enable flopped 2 times + + reg [7:0] rx_dbout_3f; // rxdata input to Rx FIFO flopped 3 times + reg rx_eof_3f; // rxdata EOF input to Rx FIFO flopped 3 times + reg rx_write_3f; // Rx FIFO write enable flopped 3 times + + reg [7:0] rx_dbout_4f; // rxdata input to Rx FIFO flopped 4 times + reg rx_eof_4f; // rxdata EOF input to Rx FIFO flopped 4 times + reg rx_write_4f; // Rx FIFO write enable flopped 4 times + + reg [7:0] rx_dbout_5f; // rxdata input to Rx FIFO flopped 5 times + reg rx_eof_5f; // rxdata EOF input to Rx FIFO flopped 5 times + reg rx_write_5f; // Rx FIFO write enable flopped 5 times + + reg [7:0] rx_dbout_6f; // rxdata input to Rx FIFO flopped 6 times + reg rx_eof_6f; // rxdata EOF input to Rx FIFO flopped 6 times + reg rx_write_6f; // Rx FIFO write enable flopped 6 times + + reg [7:0] rx_dbout_7f; // rxdata input to Rx FIFO flopped 7 times + reg rx_eof_7f; // rxdata EOF input to Rx FIFO flopped 7 times + reg rx_write_7f; // Rx FIFO write enable flopped 7 times + + reg [7:0] rx_dbout_8f; // rxdata input to Rx FIFO flopped 8 times + reg rx_eof_8f; // rxdata EOF input to Rx FIFO flopped 8 times + reg rx_write_8f; // Rx FIFO write enable flopped 8 times + + reg [7:0] rx_dbout_9f; // rxdata input to Rx FIFO flopped 9 times + reg [7:0] rx_dbout_10f; // rxdata input to Rx FIFO flopped 10 times + reg [7:0] rx_dbout_11f; // rxdata input to Rx FIFO flopped 11 times + reg [7:0] rx_dbout_12f; // rxdata input to Rx FIFO flopped 12 times + reg [7:0] rx_dbout_13f; // rxdata input to Rx FIFO flopped 13 times + + reg [7:0] add_swap_data; // data from add swap mux flopped once + + reg mx_ctl_1f; // mux control flopped 1 time + reg mx_ctl_2f; // mux control flopped 2 times + reg mx_ctl_3f; // mux control flopped 3 times + reg mx_ctl_4f; // mux control flopped 4 times + reg mx_ctl_5f; // mux control flopped 5 times + reg mx_ctl_6f; // mux control flopped 6 times + reg mx_ctl_7f; // mux control flopped 7 time + reg mx_ctl_8f; // mux control flopped 8 times + reg mx_ctl_9f; // mux control flopped 9 times + reg mx_ctl_10f; // mux control flopped 10 times + reg mx_ctl_11f; // mux control flopped 11 times + reg mx_ctl_12f; // mux control flopped 12 times + reg addr_detect_en; // address detect enable + + reg [1:0] mux_ctl; // address swap mux control bits + + parameter + NO_WRITE = 1'b0; // write enable low + + parameter [7:0] + NULL_DATA = 8'h00; // NULL DATA + + parameter + NULL_EOF = 1'b0; // NO EOF + + parameter [1:0] // ADD SWAP MUX SELECTIONS + DATA_D7 = 2'b00, + DATA_D1 = 2'b01, + DATA_D13 = 2'b10, + NO_SWAP = 2'b11; + + + + + //------------------------------------------------------------------- + // Pipeline rx_dbout, rx_eof and rx_write + //------------------------------------------------------------------- + always @(posedge clk or negedge reset_n) begin + if (~reset_n) begin + rx_dbout_1f <= 8'h00; + rx_eof_1f <= 1'b0; + rx_write_1f <= 1'b0; + + rx_dbout_2f <= 8'h00; + rx_eof_2f <= 1'b0; + rx_write_2f <= 1'b0; + + rx_dbout_3f <= 8'h00; + rx_eof_3f <= 1'b0; + rx_write_3f <= 1'b0; + + rx_dbout_4f <= 8'h00; + rx_eof_4f <= 1'b0; + rx_write_4f <= 1'b0; + + rx_dbout_5f <= 8'h00; + rx_eof_5f <= 1'b0; + rx_write_5f <= 1'b0; + + rx_dbout_6f <= 8'h00; + rx_eof_6f <= 1'b0; + rx_write_6f <= 1'b0; + + rx_dbout_7f <= 8'h00; + rx_eof_7f <= 1'b0; + rx_write_7f <= 1'b0; + + rx_dbout_8f <= 8'h00; + rx_eof_8f <= 1'b0; + rx_write_8f <= 1'b0; + + rx_dbout_9f <= 8'h00; + rx_dbout_10f <= 8'h00; + rx_dbout_11f <= 8'h00; + rx_dbout_12f <= 8'h00; + rx_dbout_13f <= 8'h00; + end + else if (rxmac_clk_en) begin + rx_dbout_1f <= rx_dbout; + rx_eof_1f <= rx_eof; + rx_write_1f <= rx_write; + + rx_dbout_2f <= rx_dbout_1f; + rx_eof_2f <= rx_eof_1f; + rx_write_2f <= rx_write_1f; + + rx_dbout_3f <= rx_dbout_2f; + rx_eof_3f <= rx_eof_2f; + rx_write_3f <= rx_write_2f; + + rx_dbout_4f <= rx_dbout_3f; + rx_eof_4f <= rx_eof_3f; + rx_write_4f <= rx_write_3f; + + rx_dbout_5f <= rx_dbout_4f; + rx_eof_5f <= rx_eof_4f; + rx_write_5f <= rx_write_4f; + + rx_dbout_6f <= rx_dbout_5f; + rx_eof_6f <= rx_eof_5f; + rx_write_6f <= rx_write_5f; + + rx_dbout_7f <= rx_dbout_6f; + rx_eof_7f <= rx_eof_6f; + rx_write_7f <= rx_write_6f; + + rx_write_8f <= rx_write_7f; + rx_eof_8f <= rx_eof_7f; + rx_dbout_8f <= rx_dbout_7f; + + rx_dbout_9f <= rx_dbout_8f; + rx_dbout_10f <= rx_dbout_9f; + rx_dbout_11f <= rx_dbout_10f; + rx_dbout_12f <= rx_dbout_11f; + rx_dbout_13f <= rx_dbout_12f; + end // else + end // always + + //------------------------------------------------------------------- + // Pipelined mux control bits + //------------------------------------------------------------------- + always @(posedge clk or negedge reset_n) begin + if (~reset_n) begin + mx_ctl_1f <= 1'b0; + mx_ctl_2f <= 1'b0; + mx_ctl_3f <= 1'b0; + mx_ctl_4f <= 1'b0; + mx_ctl_5f <= 1'b0; + mx_ctl_6f <= 1'b0; + mx_ctl_7f <= 1'b0; + mx_ctl_8f <= 1'b0; + mx_ctl_9f <= 1'b0; + mx_ctl_10f <= 1'b0; + mx_ctl_11f <= 1'b0; + mx_ctl_12f <= 1'b0; + addr_detect_en <= 1'b1; + end + else if (rxmac_clk_en) begin + if (rx_write_1f & rx_write_7f) begin + addr_detect_en <= 0; + end else if (rx_write_7f & rx_eof_7f) begin + addr_detect_en <= 1; + end + mx_ctl_1f <= (rx_write_1f & !rx_write_7f & addr_detect_en); + mx_ctl_2f <= mx_ctl_1f; + mx_ctl_3f <= mx_ctl_2f; + mx_ctl_4f <= mx_ctl_3f; + mx_ctl_5f <= mx_ctl_4f; + mx_ctl_6f <= mx_ctl_5f; + mx_ctl_7f <= mx_ctl_6f; + mx_ctl_8f <= mx_ctl_7f; + mx_ctl_9f <= mx_ctl_8f; + mx_ctl_10f <= mx_ctl_9f; + mx_ctl_11f <= mx_ctl_10f; + mx_ctl_12f <= mx_ctl_11f; + end // else + end // always + + always @(add_swap, mx_ctl_12f, mx_ctl_6f) begin + if (add_swap) begin + mux_ctl[0] <= mx_ctl_6f; + mux_ctl[1] <= mx_ctl_12f; + end + else begin + mux_ctl <= NO_SWAP; + end + end // always + + + //------------------------------------------------------------------- + // Pipelined address swap mux + //------------------------------------------------------------------- + always @(posedge clk or negedge reset_n) begin + if (~reset_n) begin + add_swap_data <= 8'h00; + end + else if (rxmac_clk_en) begin + case (mux_ctl) + DATA_D7: add_swap_data <= rx_dbout_7f; + DATA_D1: add_swap_data <= rx_dbout_1f; + DATA_D13: add_swap_data <= rx_dbout_13f; + NO_SWAP: add_swap_data <= rx_dbout_7f; + endcase + end // else + end // always + + //------------------------------------------------------------------- + // Pipelined muxes - loopback rx data or Null data (place holder + // for a frame buffer etc.) + //------------------------------------------------------------------- + always @(posedge clk or negedge reset_n) begin + if (~reset_n) begin + tx_dbin <= 8'h00; + tx_write <= 1'b0; + tx_eof <= 1'b0; + end + else if (rxmac_clk_en) begin + if (loop_enb) begin + tx_dbin <= add_swap_data; + tx_write <= rx_write_8f ; + tx_eof <= rx_eof_8f; + end + else begin + tx_dbin <= NULL_DATA; + tx_write <= NO_WRITE; + tx_eof <= NULL_EOF; + end + end // else + end // always + + +endmodule// diff --git a/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/rtl/template/tst_logic.v b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/rtl/template/tst_logic.v new file mode 100644 index 0000000..6e2daf6 --- /dev/null +++ b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/rtl/template/tst_logic.v @@ -0,0 +1,295 @@ +// =========================================================================== +// Verilog module generated by IPexpress +// Filename: tst_logic.v +// Copyright 2012 (c) Lattice Semiconductor Corporation. All rights reserved. +// =========================================================================== + +//`timescale 1ns/100ps + +module tst_logic ( + + // ------- + // inputs + // ------- + + // from IO + reset_n, + txmac_clk, + rxmac_clk, + txmac_clk_en, + rxmac_clk_en, + + // from tsmac core + rx_write, + rx_dbout, + rx_eof, + rx_error, + rx_fifo_error, + tx_macread, + tx_done, + tx_disfrm, +//gbit_en, + + // from reg_intf + pkt_add_swap_ri, + pkt_loop_enb_ri, + tx_sndpaustim_ri, + tx_sndpausreq_ri, + tx_fifoctrl_ri, + rx_fifo_full_ri, + tx_fifo_empty_ri, + ignore_next_pkt_ri, + aff_thrhd, + afe_thrhd, + + // ------- + // outputs + // ------- + + // to tsmac core + tx_fifodata, + tx_fifoeof, + tx_fifoavail, + tx_fifoempty, + tx_sndpaustim, + tx_sndpausreq, + tx_fifoctrl, + rx_fifo_full, + ignore_next_pkt, + + // to reg_intf + rxc_clk, + txc_clk, + rx_error_ri, + rx_fifo_error_ri, + tx_disfrm_ri, + tx_fifo_full_ri + ); + + //====================== + // inputs and outputs + //====================== + input reset_n; // active low global reset + input txmac_clk; + input rxmac_clk; + input txmac_clk_en; + input rxmac_clk_en; + + // from tsmac core + input rx_write; + input [7:0] rx_dbout; + input rx_eof; + input rx_error; + input rx_fifo_error; + input tx_macread; + input tx_done; + input tx_disfrm; +// input gbit_en; + + // from reg_intf + input pkt_add_swap_ri; + input pkt_loop_enb_ri; + input [15:0] tx_sndpaustim_ri; + input tx_sndpausreq_ri; + input tx_fifoctrl_ri; + input rx_fifo_full_ri; + input tx_fifo_empty_ri; + input ignore_next_pkt_ri; + input [8:0] aff_thrhd; // almost full threshold from reg intf + input [8:0] afe_thrhd; // almost empty threshold from reg intf + + // to tsmac core + output [7:0] tx_fifodata; + output tx_fifoeof; + output tx_fifoavail; + output tx_fifoempty; + output [15:0] tx_sndpaustim; + output tx_sndpausreq; + output tx_fifoctrl; + output rx_fifo_full; + output ignore_next_pkt; + + // to reg_intf + output rx_error_ri; + output rx_fifo_error_ri; + output tx_disfrm_ri; + output tx_fifo_full_ri; + output rxc_clk; // MAC Client side Rx clock + output txc_clk; // MAC Client side Tx clock + +parameter pdevice_family = "EC"; + + //====================== + // Regs and wires + //====================== + wire tx_fifoempty; + reg [15:0] tx_sndpaustim; + reg tx_sndpausreq; + reg tx_fifoctrl; + reg ignore_next_pkt; + reg write_eof_rxclk; + reg [1:0] clr_write_eof_rxclk; + reg [2:0] write_eof_txclk; + reg flop_tx_macread; + reg flop_flop_tx_macread; + reg flop_tx_fifo_eof; + reg [3:0] frames_present; + + reg rx_error_ri; + reg rx_fifo_error_ri; + reg tx_disfrm_ri; + reg tx_fifo_full_ri; + reg tx_fifo_empty_f; // tx fifo empty pipelined and synced with clk_enb + + wire rxc_clk; // MAC Client side Rx clock + wire txc_clk; // MAC Client side Tx clock + + wire [7:0] tx_fifodata; + wire tx_fifoeof; + reg tx_fifoavail; + reg tx_fifoavail_int; + wire rx_fifo_full; + + wire [8:0] tx_fifo_dout; // data out of tx_fifo + wire tx_fifo_full; // tx fifo full + wire tx_fifo_afull; // tx fifo almost full + wire tx_fifo_empty; // tx fifo empty + wire tx_fifo_aempty; // tx fifo almost empty + + wire [7:0] tx_dbin; + wire tx_write; + wire tx_eof; + + //------------------------------------------------------------------- + // glue logic + //------------------------------------------------------------------- + assign rxc_clk = rxmac_clk; + assign txc_clk = txmac_clk; + assign tx_fifodata[7:0] = tx_fifo_dout[7:0]; + assign tx_fifoeof = tx_fifo_dout[8]; + assign rx_fifo_full = (tx_fifo_full | rx_fifo_full_ri); + + assign tx_fifoempty = (tx_fifo_empty|tx_fifo_empty_ri); + + always @(posedge rxmac_clk or negedge reset_n) begin + if (~reset_n) begin + ignore_next_pkt <= 1'b0; + tx_fifoavail <= 1'b0; + tx_fifoavail_int <= 1'b0; + write_eof_rxclk <= 1'b0; + clr_write_eof_rxclk <= 2'b00; + tx_fifo_empty_f <= 1'b1; + end + else if (rxmac_clk_en) begin + tx_fifo_empty_f <= tx_fifo_empty; + ignore_next_pkt <= ignore_next_pkt_ri; + + tx_fifoavail_int <= (|frames_present) | (~tx_fifo_aempty); + tx_fifoavail <= tx_fifoavail_int; + + clr_write_eof_rxclk[1] <= clr_write_eof_rxclk[0]; + clr_write_eof_rxclk[0] <= write_eof_rxclk; + if (rx_write & rx_eof) begin + write_eof_rxclk <= 1; + end else if (clr_write_eof_rxclk[1]) begin + write_eof_rxclk <= 0; + end + end // else + end // always + + always @(posedge txmac_clk or negedge reset_n) begin + if (~reset_n) begin + tx_sndpausreq <= 1'b0; + tx_fifo_full_ri <= 1'b0; + tx_sndpaustim[15:0] <= 16'h0000; + tx_disfrm_ri <= 1'b0; + tx_fifoctrl <= 1'b0; + rx_error_ri <= 1'b0; + rx_fifo_error_ri <= 1'b0; + write_eof_txclk <= 1'b0; + flop_tx_macread <= 1'b0; + flop_flop_tx_macread <= 1'b0; + flop_tx_fifo_eof <= 1'b0; + frames_present <= 1'b0; + end + else if (txmac_clk_en) begin + if (tx_sndpausreq_ri == 1) begin + tx_sndpausreq <= 1; + end else if (tx_macread == 1) begin + if (tx_fifo_afull) begin + tx_sndpausreq <= 1; + end else begin + tx_sndpausreq <= 0; + end + end else begin + tx_sndpausreq <= 0; + end + tx_sndpaustim[15:0] <= tx_sndpaustim_ri[15:0]; + tx_fifoctrl <= tx_fifoctrl_ri; + + tx_disfrm_ri <= tx_disfrm; // an error condition -fifo underun etc. + rx_error_ri <= rx_error; + rx_fifo_error_ri <= rx_fifo_error; + + tx_fifo_full_ri <= tx_fifo_full; + + write_eof_txclk[2] <= write_eof_txclk[1]; + write_eof_txclk[1] <= write_eof_txclk[0]; + write_eof_txclk[0] <= write_eof_rxclk; + flop_tx_macread <= tx_macread; + flop_flop_tx_macread <= flop_tx_macread; + flop_tx_fifo_eof <= tx_fifo_dout[8]; + if (tx_fifo_empty == 1) begin + frames_present <= 0; // When fifo is empty clear frames present + end else if ((write_eof_txclk[1] & !write_eof_txclk[2]) + && !(flop_flop_tx_macread & flop_tx_fifo_eof)) begin + frames_present <= frames_present + 4'b0001; // Increment # frames + end else if (!(write_eof_txclk[1] & !write_eof_txclk[2]) + && (flop_flop_tx_macread & flop_tx_fifo_eof)) begin + frames_present <= frames_present - 4'b0001; // Dec # frames in buf + end + end // else + end // always + + //------------------------------------------------------------------- + // instanciate modules + //------------------------------------------------------------------- + + rx_loopbk rx_loopbk( + .clk(rxmac_clk), + .reset_n(reset_n), + .rxmac_clk_en(rxmac_clk_en), + .add_swap(pkt_add_swap_ri), + .loop_enb(pkt_loop_enb_ri), + .rx_dbout(rx_dbout[7:0]), + .rx_write(rx_write), + .rx_eof(rx_eof), + .tx_dbin(tx_dbin), + .tx_write(tx_write), + .tx_eof(tx_eof) + ); + + //defparam tx_fifo.ff_ctl.SYNC_MODE = "ASYNC"; + //defparam tx_fifo.ff_ctl.RAM_MODE = "NOREG"; + fifo_2048x9 #(.pdevice_family(pdevice_family)) + tx_fifo ( + // INPUTS + .wclk(rxmac_clk), + .wren(tx_write), + .datain({tx_eof,tx_dbin}), + .reset(reset_n), + .rclk(txmac_clk), + .rden(tx_macread), + .aff_thrhd(aff_thrhd), + .afe_thrhd(afe_thrhd), + .wclk_en(rxmac_clk_en), + .rclk_en(txmac_clk_en), + + // OUTPUTS + .daout(tx_fifo_dout[8:0]), + .empty(tx_fifo_empty), + .almost_full(tx_fifo_afull), + .almost_empty(tx_fifo_aempty), + .full(tx_fifo_full) + ); +endmodule diff --git a/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/rtl/top/ts_mac_core_only_top.v b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/rtl/top/ts_mac_core_only_top.v new file mode 100644 index 0000000..320160c --- /dev/null +++ b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/rtl/top/ts_mac_core_only_top.v @@ -0,0 +1,216 @@ +//============================================================================= +// Verilog module generated by IPExpress +// Filename: USERNAME.v +// Copyright(c) 2006 Lattice Semiconductor Corporation. All rights reserved. +//============================================================================= + +/* WARNING - Changes to this file should be performed by re-running IPexpress +or modifying the .LPC file and regenerating the core. Other changes may lead +to inconsistent simulation and/or implemenation results */ +module ts_mac_core_only_top ( + // clock and reset + hclk, + txmac_clk, + rxmac_clk, + reset_n, + txmac_clk_en, + rxmac_clk_en, + + // Input signals to the GMII + rxd, + rx_dv, + rx_er, + col, + crs, + + // Input signals to the CPU Interface + haddr, + hdatain, + hcs_n, + hwrite_n, + hread_n, + + // Input signals to the MII Management Interface + + // Input signals to the Tx MAC FIFO Interface + tx_fifodata, + tx_fifoavail, + tx_fifoeof, + tx_fifoempty, + tx_sndpaustim, + tx_sndpausreq, + tx_fifoctrl, + + // Input signals to the Rx MAC FIFO Interface + rx_fifo_full, + ignore_pkt, + + // Output signals from the GMII + txd, + tx_en, + tx_er, + + // Output signals from the CPU Interface + hdataout, + hdataout_en_n, + hready_n, + cpu_if_gbit_en, + + // Output signals from the MII Management Interface + + // Output signals from the Tx MAC FIFO Interface + tx_macread, + tx_discfrm, + tx_staten, + tx_statvec, + tx_done, + + // Output signals from the Rx MAC FIFO Interface + rx_fifo_error, + rx_stat_vector, + rx_dbout, + rx_write, + rx_stat_en, + rx_eof, + rx_error + ); + + // ------------------------- clock and reset inputs --------------------- + input hclk; // clock to the CPU I/F + input txmac_clk; // clock to the Tx MAC + input rxmac_clk; // clock to the RX MAC + input reset_n; // Global reset + + input txmac_clk_en; // clock enable to the Tx MAC + input rxmac_clk_en; // clock enable to the RX MAC + + // ----------------------- Input signals to the GMII ------------------- + input [7:0] rxd; // Receive data + input rx_dv; // Receive data valid + input rx_er; // Receive data error + + input col; // Collision detect + input crs; // Carrier Sense + + // -------------------- Input signals to the CPU I/F ------------------- + input [7:0] haddr; // Address Bus + input [7:0] hdatain; // Input data Bus + input hcs_n; // Chip select + input hwrite_n; // Register write + input hread_n; // Register read + + // -------------------- Input signals to the MII I/F ------------------- + + + // ---------------- Input signals to the Tx MAC FIFO I/F --------------- + input [7:0] tx_fifodata; // Data Input from FIFO + input tx_fifoavail; // Data Available in FIFO + input tx_fifoeof; // End of Frame + input tx_fifoempty; // FIFO Empty + input [15:0] tx_sndpaustim; // Pause frame parameter + input tx_sndpausreq; // Transmit PAUSE frame + input tx_fifoctrl; // Control frame or Not + + // ---------------- Input signals to the Rx MAC FIFO I/F --------------- + input rx_fifo_full; // Receive FIFO Full + input ignore_pkt; // Ignore the frame + + // -------------------- Output signals from the GMII ----------------------- + output [7:0] txd; // Transmit data + output tx_en; // Transmit Enable + output tx_er; // Transmit Error + + // -------------------- Output signals from the CPU I/F ------------------- + output [7:0] hdataout; // Output data Bus + output hdataout_en_n; // Data Out Enable + output hready_n; // Ready signal + output cpu_if_gbit_en; // Gig or 10/100 mode + + // -------------------- Output signals from the MII I/F ------------------- + + + // ---------------- Output signals from the Tx MAC FIFO I/F --------------- + output tx_macread; // Read FIFO + output tx_discfrm; // Discard Frame + output tx_staten; // Status Vector Valid + output tx_done; // Transmit of Frame done + output [30:0] tx_statvec; // Tx Status Vector + + // ---------------- Output signals from the Rx MAC FIFO I/F --------------- + output rx_fifo_error; // FIFO full detected + output [31:0] rx_stat_vector; // Rx Status Vector + output [7:0] rx_dbout; // Data Output to FIFO + output rx_write; // Write FIFO + output rx_stat_en; // Status Vector Valid + output rx_eof; // Entire frame written + output rx_error; // Erroneous frame + + tsmac U1_ts_mac_core_only_core ( + + // clock and reset + .hclk(hclk), + .txmac_clk(txmac_clk), + .rxmac_clk(rxmac_clk), + .reset_n(reset_n), + .txmac_clk_en(txmac_clk_en), + .rxmac_clk_en(rxmac_clk_en), + + + // Input signals to the GMII + .rxd(rxd), + .rx_dv(rx_dv), + .rx_er(rx_er), + .col(col), + .crs(crs), + // Input signals to the CPU Interface + .haddr(haddr), + .hdatain(hdatain), + .hcs_n(hcs_n), + .hwrite_n(hwrite_n), + .hread_n(hread_n), + + // Input signals to the MII Management Interface + + // Input signals to the Tx MAC FIFO Interface + .tx_fifodata(tx_fifodata), + .tx_fifoavail(tx_fifoavail), + .tx_fifoeof(tx_fifoeof), + .tx_fifoempty(tx_fifoempty), + .tx_sndpaustim(tx_sndpaustim), + .tx_sndpausreq(tx_sndpausreq), + .tx_fifoctrl(tx_fifoctrl), + + // Input signals to the Rx MAC FIFO Interface + .rx_fifo_full(rx_fifo_full), + .ignore_pkt(ignore_pkt), + + // Output signals from the GMII + .txd(txd), + .tx_en(tx_en), + .tx_er(tx_er), + + // Output signals from the CPU Interface + .hdataout(hdataout), + .hdataout_en_n(hdataout_en_n), + .hready_n(hready_n), + .cpu_if_gbit_en(cpu_if_gbit_en), + + // Output signals from the MII Management Interface + + // Output signals from the Tx MAC FIFO Interface + .tx_macread(tx_macread), + .tx_discfrm(tx_discfrm), + .tx_staten(tx_staten), + .tx_statvec(tx_statvec), + .tx_done(tx_done), + + // Output signals from the Rx MAC FIFO Interface + .rx_fifo_error(rx_fifo_error), + .rx_stat_vector(rx_stat_vector), + .rx_dbout(rx_dbout), + .rx_write(rx_write), + .rx_stat_en(rx_stat_en), + .rx_eof(rx_eof), + .rx_error(rx_error) + ); +endmodule diff --git a/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/rtl/top/ts_mac_core_only_top.vhd b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/rtl/top/ts_mac_core_only_top.vhd new file mode 100644 index 0000000..328d770 --- /dev/null +++ b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/rtl/top/ts_mac_core_only_top.vhd @@ -0,0 +1,201 @@ +------------------------------------------------------------------------------- +-- Verilog module generated by IPExpress +-- Filename: ts_mac_core_only_top.vhd +-- Copyright(c) 2005 Lattice Semiconductor Corporation. All rights reserved. +------------------------------------------------------------------------------- + +--WARNING - Changes to this file should be performed by re-running IPexpress +--or modifying the .LPC file and regenerating the core. Other changes may lead +--to inconsistent simulation and/or implemenation results +library ieee; +use ieee.std_logic_1164.all; +use ieee.std_logic_arith.all; + +entity ts_mac_core_only_top is +port( + --------------- clock and reset port declarations ------------------ + hclk : in std_logic; + txmac_clk : in std_logic; + rxmac_clk : in std_logic; + reset_n : in std_logic; + txmac_clk_en : in std_logic; + rxmac_clk_en : in std_logic; + + ------------------- Input signals to the GMII ---------------- + rxd : in std_logic_vector(7 downto 0); + rx_dv : in std_logic; + rx_er : in std_logic; + col : in std_logic; + crs : in std_logic; + + -------------------- Input signals to the CPU I/F ------------------- + haddr : in std_logic_vector(7 downto 0); + hdatain : in std_logic_vector(7 downto 0); + hcs_n : in std_logic; + hwrite_n : in std_logic; + hread_n : in std_logic; + -------------------- Input signals to the Tx MAC FIFO Interface---- + tx_fifodata : in std_logic_vector(7 downto 0); + tx_fifoavail : in std_logic; + tx_fifoeof : in std_logic; + tx_fifoempty : in std_logic; + tx_sndpaustim : in std_logic_vector(15 downto 0); + tx_sndpausreq : in std_logic; + tx_fifoctrl : in std_logic; + + -------------------- Input signals to the Rx MAC FIFO Interface ---- + rx_fifo_full : in std_logic; + ignore_pkt : in std_logic; + + -------------------- Output signals from the GMII ----------------------- + txd : out std_logic_vector(7 downto 0); + tx_en : out std_logic; + tx_er : out std_logic; + -------------------- Output signals from the CPU I/F ------------------- + hdataout : out std_logic_vector(7 downto 0); + hdataout_en_n : out std_logic; + hready_n : out std_logic; + cpu_if_gbit_en : out std_logic; + + ---------------- Output signals from the Tx MAC FIFO I/F --------------- + tx_macread : out std_logic; + tx_discfrm : out std_logic; + tx_staten : out std_logic; + tx_done : out std_logic; + tx_statvec : out std_logic_vector(30 downto 0); + + ---------------- Output signals from the Rx MAC FIFO I/F --------------- + rx_fifo_error : out std_logic; + rx_stat_vector : out std_logic_vector(31 downto 0); + rx_dbout : out std_logic_vector(7 downto 0); + rx_write : out std_logic; + rx_stat_en : out std_logic; + rx_eof : out std_logic; + rx_error : out std_logic + + ); +end ts_mac_core_only_top; + +architecture ts_mac_core_only_top_a of ts_mac_core_only_top is +component tsmac + port ( + --------------- clock and reset port declarations ------------------ + hclk : in std_logic; + txmac_clk : in std_logic; + rxmac_clk : in std_logic; + reset_n : in std_logic; + txmac_clk_en : in std_logic; + rxmac_clk_en : in std_logic; + + ------------------- Input signals to the GMII ---------------- + rxd : in std_logic_vector(7 downto 0); + rx_dv : in std_logic; + rx_er : in std_logic; + col : in std_logic; + crs : in std_logic; + + -------------------- Input signals to the CPU I/F ------------------- + haddr : in std_logic_vector(7 downto 0); + hdatain : in std_logic_vector(7 downto 0); + hcs_n : in std_logic; + hwrite_n : in std_logic; + hread_n : in std_logic; + + ---------------- Input signals to the Tx MAC FIFO I/F --------------- + tx_fifodata : in std_logic_vector(7 downto 0); + tx_fifoavail : in std_logic; + tx_fifoeof : in std_logic; + tx_fifoempty : in std_logic; + tx_sndpaustim : in std_logic_vector(15 downto 0); + tx_sndpausreq : in std_logic; + tx_fifoctrl : in std_logic; + + ---------------- Input signals to the Rx MAC FIFO I/F --------------- + rx_fifo_full : in std_logic; + ignore_pkt : in std_logic; + + -------------------- Output signals from the GMII ----------------------- + txd : out std_logic_vector(7 downto 0); + tx_en : out std_logic; + tx_er : out std_logic; + + -------------------- Output signals from the CPU I/F ------------------- + hdataout : out std_logic_vector(7 downto 0); + hdataout_en_n : out std_logic; + hready_n : out std_logic; + cpu_if_gbit_en : out std_logic; + + ---------------- Output signals from the Tx MAC FIFO I/F --------------- + tx_macread : out std_logic; + tx_discfrm : out std_logic; + tx_staten : out std_logic; + tx_done : out std_logic; + tx_statvec : out std_logic_vector(30 downto 0); + + ---------------- Output signals from the Rx MAC FIFO I/F --------------- + rx_fifo_error : out std_logic; + rx_stat_vector : out std_logic_vector(31 downto 0); + rx_dbout : out std_logic_vector(7 downto 0); + rx_write : out std_logic; + rx_stat_en : out std_logic; + rx_eof : out std_logic; + rx_error : out std_logic + ); +end component; + +begin + +U1_ts_mac_core_only_core : tsmac +port map ( + hclk => hclk, + txmac_clk => txmac_clk, + rxmac_clk => rxmac_clk, + reset_n => reset_n, + txmac_clk_en =>txmac_clk_en, + rxmac_clk_en =>rxmac_clk_en, + rxd => rxd, + rx_dv => rx_dv, + rx_er => rx_er, + col => col, + crs => crs, + + haddr => haddr, + hdatain => hdatain, + hcs_n => hcs_n, + hwrite_n => hwrite_n, + hread_n => hread_n, + + + tx_fifodata => tx_fifodata, + tx_fifoavail => tx_fifoavail, + tx_fifoeof => tx_fifoeof, + tx_fifoempty => tx_fifoempty, + tx_sndpaustim => tx_sndpaustim, + tx_sndpausreq => tx_sndpausreq, + tx_fifoctrl => tx_fifoctrl, + rx_fifo_full => rx_fifo_full, + ignore_pkt => ignore_pkt, + txd => txd, + tx_en => tx_en, + tx_er => tx_er, + hdataout => hdataout, + hdataout_en_n => hdataout_en_n, + hready_n => hready_n, + cpu_if_gbit_en => cpu_if_gbit_en, + + tx_macread => tx_macread, + tx_discfrm => tx_discfrm, + tx_staten => tx_staten , + tx_statvec => tx_statvec, + tx_done => tx_done, + rx_fifo_error => rx_fifo_error, + rx_stat_vector => rx_stat_vector, + rx_dbout => rx_dbout, + rx_write => rx_write, + rx_stat_en => rx_stat_en, + rx_eof => rx_eof, + rx_error => rx_error + ); + +end ts_mac_core_only_top_a; + diff --git a/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/rtl/top/ts_mac_top.v b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/rtl/top/ts_mac_top.v new file mode 100644 index 0000000..c795296 --- /dev/null +++ b/gbe/cores/sgmii/tsmac/ts_mac_eval/tsmac/src/rtl/top/ts_mac_top.v @@ -0,0 +1,544 @@ +// =========================================================================== +// Verilog module generated by IPexpress +// Filename: ts_mac_top.v +// Copyright 2005 (c) Lattice Semiconductor Corporation. All rights reserved. +// =========================================================================== +// + +`timescale 1 ns/ 1ns +module ts_mac_top ( + + // clock, clock enables and reset + gtx_clk, + tx_clk, + + txmac_clk_en, + rxmac_clk_en, + + sys_clk, + hclk, + rx_clk, + rxmac_clk, + txmac_clk, + reset_n, + + // Input signals to the GMII + rx_dv, + rx_er, + rxd, + col, + crs, + + // orcastra interface + pc_clk, + pc_datain, + pc_ready, + pc_dataout, + pc_error, + pc_retry, + pc_ack, + jtag_present, + jtag_parallel, + // JTAG Port + tdi, + tck, + tms, + tdo, + + // Output signals from the MII Management Interface + + // Output signals from the GMII + tx_en, + tx_er, + txd, + + // These are test points on the evaluation board + tx_fifodata, + tx_fifoavail, + tx_fifoeof, + tx_fifoempty, + tx_sndpausreq, + tx_fifoctrl, + tx_fifo_full_ri, + tx_macread, + tx_discfrm, + tx_staten, + tx_done, + gbit_en, + phy_reset_n +); + +// ---------------- clock, clock enables and reset inputs ----------------- +output gtx_clk; // Gigabit Transmit clock +output rxmac_clk; // Rx_clock out to App I/F +output txmac_clk; // Tx_clock out to App I/F +input tx_clk; // Transmit clock + +input txmac_clk_en; +input rxmac_clk_en; + + +input sys_clk; // system clock +input rx_clk; // Receive clock +input reset_n; // Global reset + +// ----------------------- Input signals to the GMII ------------------- +input [7:0] rxd /* synthesis syn_useioff=0 */; // Receive data +input rx_dv/* synthesis syn_useioff=0 */; // Receive data valid +input rx_er/* synthesis syn_useioff=0 */; // Receive data error + +input col; // Collision detect +input crs; // Carrier Sense +// ------------------ Input/ouputs signals to the Orcastra Interface ---- +input pc_clk; +input pc_datain; +input pc_ready; +output pc_dataout; +output pc_error; +output pc_retry; +output pc_ack; +output jtag_present; +input jtag_parallel; +// ------------------ Input/output signals to the JTAG Port -------------- +input tdi; +input tck; +input tms; +output tdo; + +// -------------------- Output signals from the GMII ----------------------- +output [7:0] txd; // Transmit data +output tx_en; // Transmit Enable +output tx_er; // Transmit Error + +// These are test points on the evaluation board +output [7:0] tx_fifodata; +output tx_fifoavail; +output tx_fifoeof; +output tx_fifoempty; +output tx_sndpausreq; +output tx_fifoctrl; +output tx_fifo_full_ri; +output tx_macread; +output tx_discfrm; +output tx_staten; +output tx_done; +output gbit_en; + +// -------------------- Input signals to the CPU I/F ------------------- +input hclk; // Clock + +// -------------------- Input/Output signals from the MII I/F ---------------- + +// -------------------- Misc Output signals to be used with eval board only -- +output phy_reset_n; // used to reset PHY device +parameter pdevice_family = "ECP5UM"; +////////////////////////////////////////////////////////////////////////////// +// Internal wires related to fifo client interfaces and host bus interface +////////////////////////////////////////////////////////////////////////////// + +// -------------------- Input signals to the CPU I/F ------------------- +wire [7:0] haddr; // Address Bus +wire [7:0] hdatain; // Input data Bus +wire hcs_n; // Chip select +wire hwrite_n; // Register write +wire hread_n; // Register read + +// -------------------- Output signals from the CPU I/F ------------------- +wire [7:0] hdataout; // Output data Bus +wire hdataout_en_n; // Data Out Enable +wire hready_n; // Ready signal + +// ---------------- Input signals to the Tx MAC FIFO I/F --------------- +wire [7:0] tx_fifodata; // Data Input from FIFO +wire tx_fifoavail; // Data Available in FIFO +wire tx_fifoeof; // End of Frame +wire tx_fifoempty; // FIFO Empty +wire [15:0] tx_sndpaustim; // Pause frame parameter +wire tx_sndpausreq; // Transmit PAUSE frame +wire tx_fifoctrl; // Control frame or Not + +// ---------------- Input signals to the Rx MAC FIFO I/F --------------- +wire rx_fifo_full; // Receive FIFO Full +wire ignore_pkt; // Ignore the frame + +// ---------------- Output signals from the Tx MAC FIFO I/F --------------- +wire tx_macread; // Read FIFO +wire tx_discfrm; // Discard Frame +wire tx_staten; // Status Vector Valid +wire tx_done; // Transmit of Frame done +wire [30:0] tx_statvec; // Tx Status Vector + +// ---------------- Output signals from the Rx MAC FIFO I/F --------------- +wire rx_fifo_error; // FIFO full detected +wire [31:0] rx_stat_vector; // Rx Status Vector +wire [7:0] rx_dbout; // Data Output to FIFO +wire rx_write; // Write FIFO +wire rx_stat_en; // Status Vector Valid +wire rx_eof; // Entire frame written +wire rx_error; // Erroneous frame + +wire rx_write_e; // Write FIFO conditioned with rx enable +wire tx_macread_e; // Read FIFO conditioned with tx enable +////////////////////////////////////////////////////////////////////////////// +// internal wires related to register interface, and orcastra interface +////////////////////////////////////////////////////////////////////////////// + +wire pkt_add_swap_ri; +wire pkt_loop_enb_ri; +wire pkt_loop_clksel_ri; +wire phy_reset_n_ri; +wire [15:0] tx_sndpaustim_ri; +wire tx_sndpausreq_ri; +wire tx_fifoctrl_ri; +wire rx_fifo_full_ri; +wire tx_fifo_empty_ri; +wire ignore_next_pkt_ri; +wire [8:0] aff_thrhd; +wire [8:0] afe_thrhd; + +wire [7:0] us_rdata; +wire us_ack; +wire [7:0] us_wdata; +wire us_rdy; +wire us_wr; +wire [17:0] us_addr; +wire [1:0] us_size; + +wire rxc_clk; +wire txc_clk; + +// from MAC to status reg bits in reg_intf +wire rx_error_ri; +wire rx_fifo_error_ri; +wire tx_disfrm_ri; +wire tx_fifo_full_ri; + +wire gbit_en_wire /*synthesis syn_keep=1 */; // 1G enable - MAC clock select + +// ------------------ signals related to the Orcastra Interface ------- +wire pc_clk_jtag; +wire pc_clk_mux /*synthesis syn_keep=1 */; +wire pc_datain_jtag; +wire pc_datain_mux; +wire pc_ready_jtag; +wire pc_ready_mux; + +assign phy_reset_n = phy_reset_n_ri; // this output is used only when user is using an eval board. +assign gbit_en = gbit_en_wire; + + +////////////////////////////////////////////////////////////////////////////// +// Internal wires related to GMII I/O +reg [7:0] rxd_pos; +reg [3:0] rxd_neg; +reg rx_dv_pos; +reg rx_dv_neg; +reg rx_er_pos; +reg rx_er_neg; +wire [7:0] txd_pos; +wire [3:0] txd_neg; +wire tx_en_d; +wire tx_er_d; + +reg [7:4] txd_pos_x; +reg tx_en_d_x; +reg tx_er_d_x; +wire [3:0] txd_int; +reg [3:0] txd_10_100; +reg tx_en_10_100; +reg tx_er_10_100; +reg [7:0] txd_1g; +reg tx_en_1g; +reg tx_er_1g; + +// Internal wires related to clock synthesis +reg tx_clk_div2; // tx_clk divided by 2 +reg rx_clk_div2; // rx_clk divided by 2 +wire txmac_clk_c /*synthesis syn_keep=1 */; // Internal txmac_clk +wire rxmac_clk_c /*synthesis syn_keep=1 */; // Internal rxmac_clk +wire gtx_clk_src; // for 1GBE +wire txmac_clk_1g; // +wire txmac_ref /*synthesis syn_keep=1 */; + + +////////////////////////////////////////////////////////////////////////////// +// Instantiate PLLs, DCS Muxes, and other buffers + + assign rx_write_e = rx_write & rxmac_clk_en; + assign tx_macread_e = tx_macread & txmac_clk_en; + +// SGMII_TSMAC or GBE_MAC +assign rxmac_clk_c = rx_clk; + +// This mux is added to allow a selection of the txmac_clk source +assign txmac_clk_c = pkt_loop_clksel_ri ? rx_clk : sys_clk; +assign gtx_clk_src = txmac_clk_c; +assign rxmac_clk = rxmac_clk_c; +assign txmac_clk = txmac_clk_c; + + +// GMII inputs RXD[3:0], RX_DV RX_ER are sampled on +// both clock edges of rxmac_clk_c +// These flip-flops must be placed close to the associated I/O pins. +// They are given a COMP name here and located in a specific component +// in the preference file. + +always @(posedge rxmac_clk_c or negedge reset_n) begin + if (~reset_n) begin + rx_dv_pos <= 1'b0; + rx_er_pos <= 1'b0; + rxd_pos[7:0] <= 8'h00; + end + else begin + rx_dv_pos <= rx_dv; + rx_er_pos <= rx_er; + rxd_pos[7:0] <= rxd[7:0]; + end +end + +always @(negedge rxmac_clk_c or negedge reset_n) begin + if (~reset_n) begin + rx_dv_neg <= 1'b0; + rx_er_neg <= 1'b0; + rxd_neg[3:0] <= 4'h0; + end + else begin + rx_dv_neg <= rx_dv; + rx_er_neg <= rx_er; + rxd_neg[3:0] <= rxd[3:0]; + end +end + +// GBE_MAC OR SGMII_TSMAC +always @(posedge txmac_clk_c or negedge reset_n) begin + if (~reset_n) begin + txd_1g <= 8'h00; + tx_en_1g <= 1'b0; + tx_er_1g <= 1'b0; + end + else begin + txd_1g <= txd_pos; + tx_en_1g <= tx_en_d; + tx_er_1g <= tx_er_d; + end +end + +assign txd = txd_1g; +assign tx_en = tx_en_1g; +assign tx_er = tx_er_1g; + +//Note: User may need to invert clock to adjust timing +assign gtx_clk = gtx_clk_src; + +assign pc_datain_mux = (jtag_parallel) ? pc_datain_jtag : pc_datain; +assign pc_ready_mux = (jtag_parallel) ? pc_ready_jtag : pc_ready; +assign pc_clk_mux = (jtag_parallel) ? pc_clk_jtag : pc_clk; + +//////////////////////////////////////////////////////////////////////////// +// Instantiate modules +ts_mac_core_only_top U1_ts_mac_core ( + // clock and reset + .hclk(hclk), + .txmac_clk(txmac_clk_c), + .rxmac_clk(rxmac_clk_c), + .reset_n(reset_n), + .txmac_clk_en(txmac_clk_en), + .rxmac_clk_en(rxmac_clk_en), + + // Input signals to the GMII + .rxd(rxd_pos), + .rx_dv(rx_dv_pos), + .rx_er(rx_er_pos), + .col(col), + .crs(crs), + + // Input signals to the CPU Interface + .haddr(haddr), + .hdatain(hdatain), + .hcs_n(hcs_n), + .hwrite_n(hwrite_n), + .hread_n(hread_n), + + // Input signals to the MII Management Interface + + // Input signals to the Tx MAC FIFO Interface + .tx_fifodata(tx_fifodata), + .tx_fifoavail(tx_fifoavail), + .tx_fifoeof(tx_fifoeof), + .tx_fifoempty(tx_fifoempty), + .tx_sndpaustim(tx_sndpaustim), + .tx_sndpausreq(tx_sndpausreq), + .tx_fifoctrl(tx_fifoctrl), + + // Input signals to the Rx MAC FIFO Interface + .rx_fifo_full(rx_fifo_full), + .ignore_pkt(ignore_pkt), + + // Output signals from the GMII + .txd(txd_pos), + .tx_en(tx_en_d), + .tx_er(tx_er_d), + + // Output signals from the CPU Interface + .hdataout(hdataout), + .hdataout_en_n(hdataout_en_n), + .hready_n(hready_n), + .cpu_if_gbit_en(gbit_en_wire), + + // Output signals from the MII Management Interface + + // Output signals from the Tx MAC FIFO Interface + .tx_macread(tx_macread), + .tx_discfrm(tx_discfrm), + .tx_staten(tx_staten), + .tx_statvec(tx_statvec), + .tx_done(tx_done), + + // Output signals from the Rx MAC FIFO Interface + .rx_fifo_error(rx_fifo_error), + .rx_stat_vector(rx_stat_vector), + .rx_dbout(rx_dbout), + .rx_write(rx_write), + .rx_stat_en(rx_stat_en), + .rx_eof(rx_eof), + .rx_error(rx_error) +); + + +tst_logic #(.pdevice_family(pdevice_family)) + u1_tst_logic ( + // ------- + // inputs + // ------- + // Clock and Reset + .reset_n (reset_n), + .txmac_clk (txmac_clk_c), + .rxmac_clk (rxmac_clk_c), + // Clock enables + .txmac_clk_en (txmac_clk_en), + .rxmac_clk_en (rxmac_clk_en), + // from tsmac core + .rx_write (rx_write_e), + .tx_macread (tx_macread_e), + .rx_dbout (rx_dbout), + .rx_eof (rx_eof), + .rx_error (rx_error), + .rx_fifo_error (rx_fifo_error), + .tx_done (tx_done), + .tx_disfrm (tx_discfrm), + // from reg_intf + .pkt_add_swap_ri (pkt_add_swap_ri), + .pkt_loop_enb_ri (pkt_loop_enb_ri), + .tx_sndpaustim_ri (tx_sndpaustim_ri), + .tx_sndpausreq_ri (tx_sndpausreq_ri), + .tx_fifoctrl_ri (tx_fifoctrl_ri), + .rx_fifo_full_ri (rx_fifo_full_ri), + .tx_fifo_empty_ri (tx_fifo_empty_ri), + .ignore_next_pkt_ri (ignore_next_pkt_ri), + .aff_thrhd (aff_thrhd[8:0]), + .afe_thrhd (afe_thrhd[8:0]), + // ------- + // outputs + // ------- + // to tsmac core + .tx_fifodata (tx_fifodata), + .tx_fifoeof (tx_fifoeof), + .tx_fifoavail (tx_fifoavail), + .tx_fifoempty (tx_fifoempty), + .tx_sndpaustim (tx_sndpaustim), + .tx_sndpausreq (tx_sndpausreq), + .tx_fifoctrl (tx_fifoctrl), + .rx_fifo_full (rx_fifo_full), + .ignore_next_pkt (ignore_pkt), + // to reg_intf + .rxc_clk (rxc_clk), + .txc_clk (txc_clk), + .rx_error_ri (rx_error_ri), + .rx_fifo_error_ri (rx_fifo_error_ri), + .tx_disfrm_ri (tx_disfrm_ri), + .tx_fifo_full_ri (tx_fifo_full_ri) +); + +orcastra orcastra ( + .reset_n (reset_n), + .hclk (hclk), + .pc_clk (pc_clk_mux), + .pc_datain (pc_datain_mux), + .pc_ready (pc_ready_mux), + .hdataout (hdataout), + .hready_n (hready_n), + .us_rdata (us_rdata), + .us_ack (us_ack), + .us_wdata (us_wdata), + .us_rdy (us_rdy), + .us_wr (us_wr), + .us_addr (us_addr), + .us_size (us_size), + .hdatain (hdatain), + .hcs_n (hcs_n), + .hread_n (hread_n), + .hwrite_n (hwrite_n), + .haddr (haddr), + .pc_dataout (pc_dataout), + .pc_error (pc_error), + .pc_retry (pc_retry), + .pc_ack (pc_ack) +); + +reg_intf reg_intf ( + .reset_n (reset_n), + .hclk (hclk), + .rxc_clk (rxc_clk), + .txc_clk (txc_clk), + .us_wdata (us_wdata), + .us_rdy (us_rdy), + .us_wr (us_wr), + .us_addr (us_addr), + .us_size (us_size), + .rx_error_ri (rx_error_ri), + .rx_fifo_error_ri (rx_fifo_error_ri), + .tx_disfrm_ri (tx_disfrm_ri), + .tx_fifo_full_ri (tx_fifo_full_ri), + .rx_stat_vec (rx_stat_vector[31:0]), + .rx_stat_en (rx_stat_en), + .tx_stat_vec (tx_statvec[30:0]), + .tx_stat_en (tx_staten), + .pkt_add_swap_ri (pkt_add_swap_ri), + .pkt_loop_enb_ri (pkt_loop_enb_ri), + .pkt_loop_clksel_ri (pkt_loop_clksel_ri), + .phy_reset_n_ri (phy_reset_n_ri), + .tx_sndpaustim_ri (tx_sndpaustim_ri), + .tx_sndpausreq_ri (tx_sndpausreq_ri), + .tx_fifoctrl_ri (tx_fifoctrl_ri), + .rx_fifo_full_ri (rx_fifo_full_ri), + .tx_fifo_empty_ri (tx_fifo_empty_ri), + .ignore_next_pkt_ri (ignore_next_pkt_ri), + .aff_thrhd (aff_thrhd[8:0]), + .afe_thrhd (afe_thrhd[8:0]), + .us_err (), //no_connect + .us_irq (), //no_connect + .us_ack (us_ack), + .us_rdata (us_rdata) +); + + + +JTAG_ECP5UM JTAG_ECP5UM + ( + .grst_ni (reset_n), + .tck (tck), + .tms (tms), + .tdi (tdi), + .tdo (tdo), + .PC_Clk (pc_clk_jtag), + .PC_Data_In (pc_datain_jtag), + .PC_Ready (pc_ready_jtag), + .PC_Reset (), + .Cnt (), + .PC_Data_Out (pc_dataout), + .PC_Ack (pc_ack), + .PC_Error (pc_error) +); + + +endmodule diff --git a/gbe/cores/sgmii/tsmac/tsmac.fdc b/gbe/cores/sgmii/tsmac/tsmac.fdc new file mode 100644 index 0000000..6fbcac9 --- /dev/null +++ b/gbe/cores/sgmii/tsmac/tsmac.fdc @@ -0,0 +1,2 @@ +###==== Start Configuration + diff --git a/gbe/cores/sgmii/tsmac/tsmac.lpc b/gbe/cores/sgmii/tsmac/tsmac.lpc new file mode 100644 index 0000000..5c8ae17 --- /dev/null +++ b/gbe/cores/sgmii/tsmac/tsmac.lpc @@ -0,0 +1,37 @@ +[Device] +Family=sa5p00m +PartType=LFE5UM-85F +PartName=LFE5UM-85F-8BG756C +SpeedGrade=8 +Package=CABGA756 +OperatingCondition=COM +Status=P + +[IP] +VendorName=Lattice Semiconductor Corporation +CoreType=IPCFG +CoreStatus=Demo +CoreName=Tri-Speed Ethernet MAC +CoreRevision=4.1 +ModuleName=tsmac +SourceFormat=vhdl +ParameterFileVersion=1.0 +Date=04/29/2019 +Time=13:44:50 + +[Parameters] +MIIM=No +MODE=SGMII easy connect +MODS_TOOL=1 +ALDC_TOOL=0 +MULT_WB=NO +LOOPBACK=NO +STAT_REGS=NO +CORE_SYNP=1 + +[Files] +Synthesis= +Simulation= +Logical= +Physical= +Misc= diff --git a/gbe/cores/sgmii/tsmac/tsmac.ngd b/gbe/cores/sgmii/tsmac/tsmac.ngd new file mode 100644 index 0000000000000000000000000000000000000000..3fe1735cce51d9cfb6b310d311a7966e766cae7f GIT binary patch literal 1743567 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�I>PG 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%0DNgFd_O%zX2l@#zp5D!AdGjr}y&`3e)L* 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%0DeuOD`iVk#2Ag8s2j@?G?tUb56T-$1&x37#?WIA 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
    s!>&_RWFURI;lD? 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�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

    md8Ki@D=|RCs*go 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

    SRJcEBxZ05wm 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%0ASFUz&t{++zrs5xN2c^E(hHHk8#2}yYbIsx- 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/sgmii/tsmac/tsmac.v b/gbe/cores/sgmii/tsmac/tsmac.v new file mode 100644 index 0000000..569c933 --- /dev/null +++ b/gbe/cores/sgmii/tsmac/tsmac.v @@ -0,0 +1,212 @@ +//============================================================================= +// Verilog module generated by IPExpress +// Filename: USERNAME.v +// Copyright(c) 2006 Lattice Semiconductor Corporation. All rights reserved. +//============================================================================= + +/* WARNING - Changes to this file should be performed by re-running IPexpress +or modifying the .LPC file and regenerating the core. Other changes may lead +to inconsistent simulation and/or implemenation results */ +`timescale 1 ns/ 1ns +module tsmac ( + // clock and reset + hclk, + txmac_clk, + rxmac_clk, + reset_n, + txmac_clk_en, + rxmac_clk_en, + + // Input signals to the GMII + rxd, + rx_dv, + rx_er, + col, + crs, + // Input signals to the CPU Interface + haddr, + hdatain, + hcs_n, + hwrite_n, + hread_n, + + // Input signals to the MII Management Interface + + // Input signals to the Tx MAC FIFO Interface + tx_fifodata, + tx_fifoavail, + tx_fifoeof, + tx_fifoempty, + tx_sndpaustim, + tx_sndpausreq, + tx_fifoctrl, + + // Input signals to the Rx MAC FIFO Interface + rx_fifo_full, + ignore_pkt, + + // Output signals from the GMII + txd, + tx_en, + tx_er, + + // Output signals from the CPU Interface + hdataout, + hdataout_en_n, + hready_n, + cpu_if_gbit_en, + + // Output signals from the MII Management Interface + + // Output signals from the Tx MAC FIFO Interface + tx_macread, + tx_discfrm, + tx_staten, + tx_statvec, + tx_done, + + // Output signals from the Rx MAC FIFO Interface + rx_fifo_error, + rx_stat_vector, + rx_dbout, + rx_write, + rx_stat_en, + rx_eof, + rx_error + ); + + // ------------------------- clock and reset inputs --------------------- + input hclk; // clock to the CPU I/F + input txmac_clk; // clock to the Tx MAC + input rxmac_clk; // clock to the RX MAC + input reset_n; // Global reset + input txmac_clk_en; // clock enable to the Tx MAC + input rxmac_clk_en; // clock enable to the RX MAC + + // ----------------------- Input signals to the GMII ------------------- + input [7:0] rxd; // Receive data + input rx_dv; // Receive data valid + input rx_er; // Receive data error + input col; // Collision detect + input crs; // Carrier Sense + // -------------------- Input signals to the CPU I/F ------------------- + input [7:0] haddr; // Address Bus + input [7:0] hdatain; // Input data Bus + input hcs_n; // Chip select + input hwrite_n; // Register write + input hread_n; // Register read + + // -------------------- Input signals to the MII I/F ------------------- + + + // ---------------- Input signals to the Tx MAC FIFO I/F --------------- + input [7:0] tx_fifodata; // Data Input from FIFO + input tx_fifoavail; // Data Available in FIFO + input tx_fifoeof; // End of Frame + input tx_fifoempty; // FIFO Empty + input [15:0] tx_sndpaustim; // Pause frame parameter + input tx_sndpausreq; // Transmit PAUSE frame + input tx_fifoctrl; // Control frame or Not + + // ---------------- Input signals to the Rx MAC FIFO I/F --------------- + input rx_fifo_full; // Receive FIFO Full + input ignore_pkt; // Ignore the frame + + // -------------------- Output signals from the GMII ----------------------- + output [7:0] txd; // Transmit data + output tx_en; // Transmit Enable + output tx_er; // Transmit Error + + // -------------------- Output signals from the CPU I/F ------------------- + output [7:0] hdataout; // Output data Bus + output hdataout_en_n; // Data Out Enable + output hready_n; // Ready signal + output cpu_if_gbit_en; // Gig or 10/100 mode + + // -------------------- Output signals from the MII I/F ------------------- + + + // ---------------- Output signals from the Tx MAC FIFO I/F --------------- + output tx_macread; // Read FIFO + output tx_discfrm; // Discard Frame + output tx_staten; // Status Vector Valid + output tx_done; // Transmit of Frame done + output [30:0] tx_statvec; // Tx Status Vector + + // ---------------- Output signals from the Rx MAC FIFO I/F --------------- + output rx_fifo_error; // FIFO full detected + output [31:0] rx_stat_vector; // Rx Status Vector + output [7:0] rx_dbout; // Data Output to FIFO + output rx_write; // Write FIFO + output rx_stat_en; // Status Vector Valid + output rx_eof; // Entire frame written + output rx_error; // Erroneous frame + + tsmac_core U1_LSC_ts_mac_core ( + + // clock and reset + .hclk(hclk), + .txmac_clk(txmac_clk), + .rxmac_clk(rxmac_clk), + .reset_n(reset_n), + .txmac_clk_en(txmac_clk_en), + .rxmac_clk_en(rxmac_clk_en), + + // Input signals to the GMII + .rxd(rxd), + .rx_dv(rx_dv), + .rx_er(rx_er), + .col(col), + .crs(crs), + // Input signals to the CPU Interface + .haddr(haddr), + .hdatain(hdatain), + .hcs_n(hcs_n), + .hwrite_n(hwrite_n), + .hread_n(hread_n), + + // Input signals to the MII Management Interface + + // Input signals to the Tx MAC FIFO Interface + .tx_fifodata(tx_fifodata), + .tx_fifoavail(tx_fifoavail), + .tx_fifoeof(tx_fifoeof), + .tx_fifoempty(tx_fifoempty), + .tx_sndpaustim(tx_sndpaustim), + .tx_sndpausreq(tx_sndpausreq), + .tx_fifoctrl(tx_fifoctrl), + + // Input signals to the Rx MAC FIFO Interface + .rx_fifo_full(rx_fifo_full), + .ignore_pkt(ignore_pkt), + + // Output signals from the GMII + .txd(txd), + .tx_en(tx_en), + .tx_er(tx_er), + + // Output signals from the CPU Interface + .hdataout(hdataout), + .hdataout_en_n(hdataout_en_n), + .hready_n(hready_n), + .cpu_if_gbit_en(cpu_if_gbit_en), + + // Output signals from the MII Management Interface + + // Output signals from the Tx MAC FIFO Interface + .tx_macread(tx_macread), + .tx_discfrm(tx_discfrm), + .tx_staten(tx_staten), + .tx_statvec(tx_statvec), + .tx_done(tx_done), + + // Output signals from the Rx MAC FIFO Interface + .rx_fifo_error(rx_fifo_error), + .rx_stat_vector(rx_stat_vector), + .rx_dbout(rx_dbout), + .rx_write(rx_write), + .rx_stat_en(rx_stat_en), + .rx_eof(rx_eof), + .rx_error(rx_error) + ); +endmodule diff --git a/gbe/cores/sgmii/tsmac/tsmac_bb.v b/gbe/cores/sgmii/tsmac/tsmac_bb.v new file mode 100644 index 0000000..4cee903 --- /dev/null +++ b/gbe/cores/sgmii/tsmac/tsmac_bb.v @@ -0,0 +1,145 @@ +//============================================================================= +// Verilog module generated by IPExpress +// Filename: USERNAME_bb.v +// Copyright(c) 2006 Lattice Semiconductor Corporation. All rights reserved. +//============================================================================= + +/* WARNING - Changes to this file should be performed by re-running IPexpress +or modifying the .LPC file and regenerating the core. Other changes may lead +to inconsistent simulation and/or implemenation results */ +module tsmac ( + // clock and reset + hclk, + txmac_clk, + rxmac_clk, + reset_n, + txmac_clk_en, + rxmac_clk_en, + + // Input signals to the GMII + rxd, + rx_dv, + rx_er, + col, + crs, + + // Input signals to the CPU Interface + haddr, + hdatain, + hcs_n, + hwrite_n, + hread_n, + + // Input signals to the MII Management Interface + + // Input signals to the Tx MAC FIFO Interface + tx_fifodata, + tx_fifoavail, + tx_fifoeof, + tx_fifoempty, + tx_sndpaustim, + tx_sndpausreq, + tx_fifoctrl, + + // Input signals to the Rx MAC FIFO Interface + rx_fifo_full, + ignore_pkt, + + // Output signals from the GMII + txd, + tx_en, + tx_er, + + // Output signals from the CPU Interface + hdataout, + hdataout_en_n, + hready_n, + cpu_if_gbit_en, + + // Output signals from the MII Management Interface + + // Output signals from the Tx MAC FIFO Interface + tx_macread, + tx_discfrm, + tx_staten, + tx_statvec, + tx_done, + + // Output signals from the Rx MAC FIFO Interface + rx_fifo_error, + rx_stat_vector, + rx_dbout, + rx_write, + rx_stat_en, + rx_eof, + rx_error + ); + + // ------------------------- clock and reset inputs --------------------- + input hclk; // clock to the CPU I/F + input txmac_clk; // clock to the Tx MAC + input rxmac_clk; // clock to the RX MAC + input reset_n; // Global reset + input txmac_clk_en; // clock enable to the Tx MAC + input rxmac_clk_en; // clock enable to the RX MAC + + // ----------------------- Input signals to the GMII ------------------- + input [7:0] rxd; // Receive data + input rx_dv; // Receive data valid + input rx_er; // Receive data error + input col; // Collision detect + input crs; // Carrier Sense + // -------------------- Input signals to the CPU I/F ------------------- + input [7:0] haddr; // Address Bus + input [7:0] hdatain; // Input data Bus + input hcs_n; // Chip select + input hwrite_n; // Register write + input hread_n; // Register read + + // -------------------- Input signals to the MII I/F ------------------- + + + // ---------------- Input signals to the Tx MAC FIFO I/F --------------- + input [7:0] tx_fifodata; // Data Input from FIFO + input tx_fifoavail; // Data Available in FIFO + input tx_fifoeof; // End of Frame + input tx_fifoempty; // FIFO Empty + input [15:0] tx_sndpaustim; // Pause frame parameter + input tx_sndpausreq; // Transmit PAUSE frame + input tx_fifoctrl; // Control frame or Not + + // ---------------- Input signals to the Rx MAC FIFO I/F --------------- + input rx_fifo_full; // Receive FIFO Full + input ignore_pkt; // Ignore the frame + + // -------------------- Output signals from the GMII ----------------------- + output [7:0] txd; // Transmit data + output tx_en; // Transmit Enable + output tx_er; // Transmit Error + + // -------------------- Output signals from the CPU I/F ------------------- + output [7:0] hdataout; // Output data Bus + output hdataout_en_n; // Data Out Enable + output hready_n; // Ready signal + output cpu_if_gbit_en; // Gig or 10/100 mode + + // -------------------- Output signals from the MII I/F ------------------- + + + // ---------------- Output signals from the Tx MAC FIFO I/F --------------- + output tx_macread; // Read FIFO + output tx_discfrm; // Discard Frame + output tx_staten; // Status Vector Valid + output tx_done; // Transmit of Frame done + output [30:0] tx_statvec; // Tx Status Vector + + // ---------------- Output signals from the Rx MAC FIFO I/F --------------- + output rx_fifo_error; // FIFO full detected + output [31:0] rx_stat_vector; // Rx Status Vector + output [7:0] rx_dbout; // Data Output to FIFO + output rx_write; // Write FIFO + output rx_stat_en; // Status Vector Valid + output rx_eof; // Entire frame written + output rx_error; // Erroneous frame + +endmodule diff --git a/gbe/cores/sgmii/tsmac/tsmac_beh.v b/gbe/cores/sgmii/tsmac/tsmac_beh.v new file mode 100644 index 0000000..c5f1d57 --- /dev/null +++ b/gbe/cores/sgmii/tsmac/tsmac_beh.v @@ -0,0 +1,6022 @@ +//============================================================================= +// Verilog module generated by IPExpress +// Filename: USERNAME.v +// Copyright(c) 2006 Lattice Semiconductor Corporation. All rights reserved. +//============================================================================= + +/* WARNING - Changes to this file should be performed by re-running IPexpress +or modifying the .LPC file and regenerating the core. Other changes may lead +to inconsistent simulation and/or implemenation results */ +`timescale 1 ns/ 1ns +module tsmac ( + // clock and reset + hclk, + txmac_clk, + rxmac_clk, + reset_n, + txmac_clk_en, + rxmac_clk_en, + + // Input signals to the GMII + rxd, + rx_dv, + rx_er, + col, + crs, + // Input signals to the CPU Interface + haddr, + hdatain, + hcs_n, + hwrite_n, + hread_n, + + // Input signals to the MII Management Interface + + // Input signals to the Tx MAC FIFO Interface + tx_fifodata, + tx_fifoavail, + tx_fifoeof, + tx_fifoempty, + tx_sndpaustim, + tx_sndpausreq, + tx_fifoctrl, + + // Input signals to the Rx MAC FIFO Interface + rx_fifo_full, + ignore_pkt, + + // Output signals from the GMII + txd, + tx_en, + tx_er, + + // Output signals from the CPU Interface + hdataout, + hdataout_en_n, + hready_n, + cpu_if_gbit_en, + + // Output signals from the MII Management Interface + + // Output signals from the Tx MAC FIFO Interface + tx_macread, + tx_discfrm, + tx_staten, + tx_statvec, + tx_done, + + // Output signals from the Rx MAC FIFO Interface + rx_fifo_error, + rx_stat_vector, + rx_dbout, + rx_write, + rx_stat_en, + rx_eof, + rx_error + ); + + // ------------------------- clock and reset inputs --------------------- + input hclk; // clock to the CPU I/F + input txmac_clk; // clock to the Tx MAC + input rxmac_clk; // clock to the RX MAC + input reset_n; // Global reset + input txmac_clk_en; // clock enable to the Tx MAC + input rxmac_clk_en; // clock enable to the RX MAC + + // ----------------------- Input signals to the GMII ------------------- + input [7:0] rxd; // Receive data + input rx_dv; // Receive data valid + input rx_er; // Receive data error + input col; // Collision detect + input crs; // Carrier Sense + // -------------------- Input signals to the CPU I/F ------------------- + input [7:0] haddr; // Address Bus + input [7:0] hdatain; // Input data Bus + input hcs_n; // Chip select + input hwrite_n; // Register write + input hread_n; // Register read + + // -------------------- Input signals to the MII I/F ------------------- + + + // ---------------- Input signals to the Tx MAC FIFO I/F --------------- + input [7:0] tx_fifodata; // Data Input from FIFO + input tx_fifoavail; // Data Available in FIFO + input tx_fifoeof; // End of Frame + input tx_fifoempty; // FIFO Empty + input [15:0] tx_sndpaustim; // Pause frame parameter + input tx_sndpausreq; // Transmit PAUSE frame + input tx_fifoctrl; // Control frame or Not + + // ---------------- Input signals to the Rx MAC FIFO I/F --------------- + input rx_fifo_full; // Receive FIFO Full + input ignore_pkt; // Ignore the frame + + // -------------------- Output signals from the GMII ----------------------- + output [7:0] txd; // Transmit data + output tx_en; // Transmit Enable + output tx_er; // Transmit Error + + // -------------------- Output signals from the CPU I/F ------------------- + output [7:0] hdataout; // Output data Bus + output hdataout_en_n; // Data Out Enable + output hready_n; // Ready signal + output cpu_if_gbit_en; // Gig or 10/100 mode + + // -------------------- Output signals from the MII I/F ------------------- + + + // ---------------- Output signals from the Tx MAC FIFO I/F --------------- + output tx_macread; // Read FIFO + output tx_discfrm; // Discard Frame + output tx_staten; // Status Vector Valid + output tx_done; // Transmit of Frame done + output [30:0] tx_statvec; // Tx Status Vector + + // ---------------- Output signals from the Rx MAC FIFO I/F --------------- + output rx_fifo_error; // FIFO full detected + output [31:0] rx_stat_vector; // Rx Status Vector + output [7:0] rx_dbout; // Data Output to FIFO + output rx_write; // Write FIFO + output rx_stat_en; // Status Vector Valid + output rx_eof; // Entire frame written + output rx_error; // Erroneous frame + + tsmac_core U1_LSC_ts_mac_core ( + + // clock and reset + .hclk(hclk), + .txmac_clk(txmac_clk), + .rxmac_clk(rxmac_clk), + .reset_n(reset_n), + .txmac_clk_en(txmac_clk_en), + .rxmac_clk_en(rxmac_clk_en), + + // Input signals to the GMII + .rxd(rxd), + .rx_dv(rx_dv), + .rx_er(rx_er), + .col(col), + .crs(crs), + // Input signals to the CPU Interface + .haddr(haddr), + .hdatain(hdatain), + .hcs_n(hcs_n), + .hwrite_n(hwrite_n), + .hread_n(hread_n), + + // Input signals to the MII Management Interface + + // Input signals to the Tx MAC FIFO Interface + .tx_fifodata(tx_fifodata), + .tx_fifoavail(tx_fifoavail), + .tx_fifoeof(tx_fifoeof), + .tx_fifoempty(tx_fifoempty), + .tx_sndpaustim(tx_sndpaustim), + .tx_sndpausreq(tx_sndpausreq), + .tx_fifoctrl(tx_fifoctrl), + + // Input signals to the Rx MAC FIFO Interface + .rx_fifo_full(rx_fifo_full), + .ignore_pkt(ignore_pkt), + + // Output signals from the GMII + .txd(txd), + .tx_en(tx_en), + .tx_er(tx_er), + + // Output signals from the CPU Interface + .hdataout(hdataout), + .hdataout_en_n(hdataout_en_n), + .hready_n(hready_n), + .cpu_if_gbit_en(cpu_if_gbit_en), + + // Output signals from the MII Management Interface + + // Output signals from the Tx MAC FIFO Interface + .tx_macread(tx_macread), + .tx_discfrm(tx_discfrm), + .tx_staten(tx_staten), + .tx_statvec(tx_statvec), + .tx_done(tx_done), + + // Output signals from the Rx MAC FIFO Interface + .rx_fifo_error(rx_fifo_error), + .rx_stat_vector(rx_stat_vector), + .rx_dbout(rx_dbout), + .rx_write(rx_write), + .rx_stat_en(rx_stat_en), + .rx_eof(rx_eof), + .rx_error(rx_error) + ); +endmodule +// ts_mac_core_beh.v generated by Lattice IP Model Creator version 1 +// created on Fri, May 23, 2014 10:35:39 AM +// Copyright(c) 2007 Lattice Semiconductor Corporation. All rights reserved +// obfuscator_exe version 1.mar0807 + +// top + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +`timescale 1 ns / 100 ps +module kdd67f2 ( + rxmac_clk, + reset_n, + rxmac_clk_en, + + + mrf282b, + tj9415c, + + + lfa0ae7, + aa573e, + + + aa2b9f0, + yk5cf81, + yxe7c08, + ec3e045 +); +parameter mef0229 = 8; +input rxmac_clk; +input reset_n; +input rxmac_clk_en; +input mrf282b; +input lfa0ae7; +input aa573e; +input [mef0229-1:0] tj9415c; +output yk5cf81; +output yxe7c08; +output ec3e045; +output [mef0229-1:0] aa2b9f0; +reg yk5cf81; +reg yxe7c08; +reg ec3e045; +reg [mef0229-1:0] aa2b9f0; +reg gd26f72; +parameter tj37b95 = 2; +parameter vkbdcae = 2'b01; +parameter tuee573 = 2'b10; +parameter qg72b9a = 0; +parameter yz95cd0 = 1; +parameter uxae684 = 8'hd5; +parameter zk73424 = 8'h55; +wire wl9a123; +wire hod091c; +reg ph848e2; +reg uk24717; +reg an238b9; +reg [tj37b95-1:0] uve2e6f; +reg [2:0] an1737d; +reg [tj37b95-1:0] vvcdf61; +reg wj6fb0f; +reg [mef0229 - 1 : 0] xjec3e9; +reg dz61f4f; +reg oufa7e; +reg me7d3f0; +reg xje9f80; +reg zx4fc06; +reg zx7e036; +reg ykf01b7; +reg kf80db8; +reg [tj37b95 - 1 : 0] wl36e2e; +reg [2 : 0] twb7174; +reg [tj37b95 - 1 : 0] zkc5d1b; +reg [2047:0] wy2e8db; +wire [12:0] vv746d9; + +localparam ksa36ce = 13,tw1b670 = 32'hfdffc68b; +localparam [31:0] icdb382 = tw1b670; +localparam mece084 = tw1b670 & 4'hf; +localparam [11:0] ou8210c = 'h7ff; +wire [(1 << mece084) -1:0] db84308; +reg [ksa36ce-1:0] dbc230; +reg [mece084-1:0] kf8c37 [0:1]; +reg [mece084-1:0] hq30de9; +reg hq86f4b; +integer hd37a5a; +integer dobd2d6; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +always @ (posedge rxmac_clk or negedge reset_n) begin if (!reset_n) begin aa2b9f0 <= 0; end else if (rxmac_clk_en) begin if (wj6fb0f) begin aa2b9f0 <= xjec3e9; end end +end + + + + +assign wl9a123 = xjec3e9[7:0] == uxae684; +assign hod091c = xjec3e9[7:0] == zk73424; + + + + + + +always @(posedge rxmac_clk or negedge reset_n) begin if (!reset_n) begin vvcdf61 <= vkbdcae; an1737d <= 3'b0; yk5cf81 <= 1'b0; ec3e045 <= 1'b0; gd26f72 <= 1'b0; yxe7c08 <= 1'b0; end else if (rxmac_clk_en) begin vvcdf61 <= wl36e2e; gd26f72 <= zx7e036; yxe7c08 <= me7d3f0; yk5cf81 <= 1'b0; + an1737d <= kf80db8 ? 3'h1 : (|twb7174) ? (twb7174+3'h1) : zkc5d1b[qg72b9a] ? 3'h0 : twb7174; + if (ykf01b7) begin ec3e045 <= 1'b1; end else if (oufa7e) begin ec3e045 <= 1'b0; end else if (dz61f4f) begin ec3e045 <= 1'b0; end end +end + + +always @(zkc5d1b or dz61f4f or zx4fc06 or xje9f80 or twb7174) begin case(zkc5d1b) vkbdcae : begin if (dz61f4f && xje9f80) begin uve2e6f = vkbdcae; ph848e2 = 1'b1; uk24717 = 1'b0; an238b9 = 1'b0; end else if (dz61f4f && zx4fc06) begin uve2e6f = tuee573; ph848e2 = 1'b0; uk24717 = 1'b0; an238b9 = 1'b1; end else if (dz61f4f && !xje9f80 && !zx4fc06) begin uve2e6f = vkbdcae; ph848e2 = 1'b0; uk24717 = 1'b1; an238b9 = 1'b0; end + else begin uve2e6f = vkbdcae; ph848e2 = 1'b0; uk24717 = 1'b0; an238b9 = 1'b0; end end + tuee573 : begin if (xje9f80) begin uve2e6f = vkbdcae; ph848e2 = 1'b1; uk24717 = 1'b0; an238b9 = 1'b0; end else if (~|twb7174 & ~zx4fc06) begin uve2e6f = vkbdcae; ph848e2 = 1'b0; uk24717 = 1'b1; an238b9 = 1'b0; end else begin uve2e6f = tuee573; ph848e2 = 1'b0; uk24717 = 1'b0; an238b9 = 1'b0; end + end + default : begin uve2e6f = vkbdcae; ph848e2 = 1'b0; uk24717 = 1'b0; an238b9 = 1'b0; end endcase +end + +always@* begin wj6fb0f<=vv746d9[0];xjec3e9<={tj9415c>>1,vv746d9[1]};dz61f4f<=vv746d9[2];oufa7e<=vv746d9[3];me7d3f0<=vv746d9[4];xje9f80<=vv746d9[5];zx4fc06<=vv746d9[6];zx7e036<=vv746d9[7];ykf01b7<=vv746d9[8];kf80db8<=vv746d9[9];wl36e2e<={uve2e6f>>1,vv746d9[10]};twb7174<={an1737d>>1,vv746d9[11]};zkc5d1b<={vvcdf61>>1,vv746d9[12]};end +always@* begin wy2e8db[2047]<=tj9415c[0];wy2e8db[2046]<=lfa0ae7;wy2e8db[2044]<=aa573e;wy2e8db[2040]<=gd26f72;wy2e8db[2032]<=wl9a123;wy2e8db[2017]<=hod091c;wy2e8db[1987]<=ph848e2;wy2e8db[1926]<=uk24717;wy2e8db[1805]<=an238b9;wy2e8db[1562]<=uve2e6f[0];wy2e8db[1076]<=an1737d[0];wy2e8db[1023]<=mrf282b;wy2e8db[104]<=vvcdf61[0];end assign db84308 = wy2e8db,vv746d9 = dbc230; initial begin hd37a5a = $fopen(".fred"); $fdisplay( hd37a5a, "%3h\n%3h", (icdb382 >> 4) & ou8210c, (icdb382 >> (mece084+4)) & ou8210c ); $fclose(hd37a5a); $readmemh(".fred", kf8c37); end always @ (db84308) begin hq30de9 = kf8c37[1]; for (dobd2d6=0; dobd2d6>1,vv746d9[0]};godee70<=vv746d9[1];oufa7e<=vv746d9[2];ksb9c0d<=vv746d9[3];wj70349<={su43606>>1,vv746d9[4]};sjd267<={tw1b031>>1,vv746d9[5]};ui499e3<={ldd818a>>1,vv746d9[6]};ay678c9<={byc0c57>>1,vv746d9[7]};zxe324c<={ph62bb>>1,vv746d9[8]};czc9337<={uk315df>>1,vv746d9[9]};me4cde1<={ep8aef8>>1,vv746d9[10]};fp3784b<={lq577c4>>1,vv746d9[11]};vie12f0<={uxbbe22>>1,vv746d9[12]};jr9783<=vv746d9[13];al4bc1e<=vv746d9[14];gb5e0f4<=vv746d9[15];ls83d20<={hd228a8>>1,vv746d9[16]};ls1e902<=vv746d9[17];byf4813<=vv746d9[18];mta409b<=vv746d9[19];ng204dd<=vv746d9[20];wl26eb<=vv746d9[21];bn1375d<=vv746d9[22];tj9baee<=vv746d9[23];pfdd777<=vv746d9[24];dm5ddfb<={fca828a>>1,vv746d9[25]};ic77ed3<={iea29c>>1,vv746d9[26]};ntbf698<=vv746d9[27];hofb4c7<=vv746d9[28];lqda63b<=vv746d9[29];yxd31da<=vv746d9[30];sw98ed4<=vv746d9[31];dzc76a0<=vv746d9[32];co3b507<=vv746d9[33];xwda839<=vv746d9[34];dba0e59<={hb5aa5d>>1,vv746d9[35]};ep39675<={yma977b>>1,vv746d9[36]};iccb3ac<=vv746d9[37];ui59d61<=vv746d9[38];en75840<={vv7b310>>1,vv746d9[39]};ieac205<=vv746d9[40];nr61029<=vv746d9[41];wl814f<=vv746d9[42];bl40a7c<=vv746d9[43];mg53e7<=vv746d9[44];bl4f9c4<={jce4005>>1,vv746d9[45]};ipe7133<={ks15b>>1,vv746d9[46]};fp3899c<=vv746d9[47];uic4ce7<=vv746d9[48];kf26739<=vv746d9[49];ux339cc<=vv746d9[50];do9ce64<=vv746d9[51];mre7322<=vv746d9[52];kf39914<=vv746d9[53];kdcc8a5<=vv746d9[54];nr6452d<=vv746d9[55];xl2296f<=vv746d9[56];xy14b7f<=vv746d9[57];end +always@* begin wy2e8db[2047]<=yxe7c08;wy2e8db[2046]<=aa573e;wy2e8db[2044]<=fnc86c0;wy2e8db[2040]<=su43606[0];wy2e8db[2032]<=tw1b031[0];wy2e8db[2017]<=ldd818a[0];wy2e8db[1987]<=byc0c57[0];wy2e8db[1980]<=ec2b608;wy2e8db[1963]<=me6d2d5;wy2e8db[1942]<=th409c4;wy2e8db[1926]<=ph62bb[0];wy2e8db[1921]<=do14d41;wy2e8db[1913]<=cz5b040;wy2e8db[1903]<=su621e4;wy2e8db[1879]<=rg696a9;wy2e8db[1837]<=ba4e27;wy2e8db[1805]<=uk315df[0];wy2e8db[1795]<=gqa6a0a;wy2e8db[1783]<=ks15b[0];wy2e8db[1778]<=fnd8204;wy2e8db[1758]<=ec10f20;wy2e8db[1710]<=hb5aa5d[0];wy2e8db[1679]<=hd228a8[0];wy2e8db[1627]<=ph2713b;wy2e8db[1562]<=ep8aef8[0];wy2e8db[1543]<=fca828a[0];wy2e8db[1519]<=coad8;wy2e8db[1509]<=eac1027;wy2e8db[1499]<=uvd9887;wy2e8db[1469]<=ou87900;wy2e8db[1398]<=ho5decc;wy2e8db[1373]<=yma977b[0];wy2e8db[1310]<=zk73e4c;wy2e8db[1207]<=jr389de;wy2e8db[1144]<=dzf9314;wy2e8db[1076]<=lq577c4[0];wy2e8db[1039]<=iea29c[0];wy2e8db[1023]<=ne52e43[0];wy2e8db[990]<=uk56c1;wy2e8db[981]<=uxda5a;wy2e8db[971]<=ir8138;wy2e8db[960]<=os629a8;wy2e8db[951]<=shcc43c;wy2e8db[891]<=jce4005[0];wy2e8db[839]<=uic4515;wy2e8db[749]<=vv7b310[0];wy2e8db[699]<=kd4bbd9;wy2e8db[572]<=sj9f262;wy2e8db[490]<=xwe1b4b;wy2e8db[480]<=yk4c535;wy2e8db[419]<=shf88a2;wy2e8db[245]<=ri9c369;wy2e8db[240]<=czc98a6;wy2e8db[209]<=hodf114;wy2e8db[122]<=ui5386d;wy2e8db[104]<=uxbbe22[0];wy2e8db[61]<=ir8a70d;wy2e8db[30]<=wj514e1;end assign db84308 = wy2e8db,vv746d9 = dbc230; initial begin hd37a5a = $fopen(".fred"); $fdisplay( hd37a5a, "%3h\n%3h", (icdb382 >> 4) & ou8210c, (icdb382 >> (mece084+4)) & ou8210c ); $fclose(hd37a5a); $readmemh(".fred", kf8c37); end always @ (db84308) begin hq30de9 = kf8c37[1]; for (dobd2d6=0; dobd2d6= 7'h42); + + +assign kqd4ee3 = uxb1e05 & ~rg79e44; +assign jcda9dc = mg8dfce & ~nr71b79 & ~qt7f38d & ~hbf9c6d; + + +assign yma9e3c = sj236bc & hd91bf9[18]; + + + + + + +assign kf3c1ce = (mg8dfce | rx_write) & hoc0b68 & ~nr71b79 & ~qt7f38d; + +always@* begin uxb1e05<=vv746d9[0];ir8f02d<=vv746d9[1];ui7816d<={zm9985b>>1,vv746d9[2]};hoc0b68<=vv746d9[3];tj2da19<={dz616d4>>1,vv746d9[4]};ww68671<={mgacec5>>1,vv746d9[5]};vx19c49<={ie3b140>>1,vv746d9[6]};vv71271<={qvbe6c1>>1,vv746d9[7]};os49c72<={jr9b06f>>1,vv746d9[8]};sh4e391<=vv746d9[9];zx71c8d<=vv746d9[10];xl8e46f<=vv746d9[11];hd91bf9<={cm6dd4f>>1,vv746d9[12]};mg8dfce<=vv746d9[13];cz6fe71<=vv746d9[14];qt7f38d<=vv746d9[15];hbf9c6d<=vv746d9[16];kqce36f<=vv746d9[17];nr71b79<=vv746d9[18];co8dbcf<=vv746d9[19];gb6f3c8<={yz73a0>>1,vv746d9[20]};rg79e44<=vv746d9[21];jc7911b<={nr74168>>1,vv746d9[22]};cz446d7<={ym5a36>>1,vv746d9[23]};sj236bc<=vv746d9[24];fc1b5e4<=vv746d9[25];bydaf22<=vv746d9[26];bld7913<=vv746d9[27];end +always@* begin wy2e8db[2047]<=tu7330b;wy2e8db[2046]<=zm9985b[0];wy2e8db[2044]<=rx_fifo_full;wy2e8db[2040]<=dz616d4[0];wy2e8db[2032]<=mgacec5[0];wy2e8db[2017]<=ie3b140[0];wy2e8db[1987]<=qvbe6c1[0];wy2e8db[1926]<=jr9b06f[0];wy2e8db[1804]<=kqc1bf7;wy2e8db[1803]<=ym5a36[0];wy2e8db[1560]<=irdfb9;wy2e8db[1558]<=rv2d1b1;wy2e8db[1550]<=hb4f1e0;wy2e8db[1072]<=wj6fdcd;wy2e8db[1069]<=ea68d8f;wy2e8db[1052]<=me78f07;wy2e8db[1023]<=lse661;wy2e8db[901]<=nr74168[0];wy2e8db[775]<=yma9e3c;wy2e8db[450]<=qv39d05;wy2e8db[387]<=al753c7;wy2e8db[225]<=yz73a0[0];wy2e8db[193]<=nr6ea78;wy2e8db[183]<=cb363c0;wy2e8db[112]<=kf3c1ce;wy2e8db[96]<=cm6dd4f[0];wy2e8db[91]<=ay46c78;wy2e8db[56]<=blc7839;end assign db84308 = wy2e8db,vv746d9 = dbc230; initial begin hd37a5a = $fopen(".fred"); $fdisplay( hd37a5a, "%3h\n%3h", (icdb382 >> 4) & ou8210c, (icdb382 >> (mece084+4)) & ou8210c ); $fclose(hd37a5a); $readmemh(".fred", kf8c37); end always @ (db84308) begin hq30de9 = kf8c37[1]; for (dobd2d6=0; dobd2d6>1,vv746d9[0]};oufa7e<=vv746d9[1];fpbfe8f<=vv746d9[2];ksb9c0d<=vv746d9[3];eafa3f1<=vv746d9[4];cb8fc48<={ep90e3c>>1,vv746d9[5]};xj7e244<=vv746d9[6];jcf1227<=vv746d9[7];by489d2<={vie1324>>1,vv746d9[8]};sh44e93<=vv746d9[9];vx2749d<=vv746d9[10];do3a4ee<=vv746d9[11];hbd2773<=vv746d9[12];ng93b9e<=vv746d9[13];mg9dcf3<=vv746d9[14];faee798<=vv746d9[15];jc73cc2<=vv746d9[16];vx9e612<=vv746d9[17];ks984b7<={rtf63e4>>1,vv746d9[18]};vvc25b9<=vv746d9[19];sj12dcf<=vv746d9[20];ba96e7d<=vv746d9[21];vkb73eb<=vv746d9[22];pscfad9<={rv3d8d7>>1,vv746d9[23]};xy14b7f<=vv746d9[24];end +always@* begin wy2e8db[2047]<=aa573e;wy2e8db[2046]<=yk78487;wy2e8db[2044]<=fnc86c0;wy2e8db[2041]<=wl121c7;wy2e8db[2034]<=ep90e3c[0];wy2e8db[2021]<=medb299;wy2e8db[2017]<=by7c9ec;wy2e8db[1995]<=fca2a3b;wy2e8db[1986]<=pse4f63;wy2e8db[1943]<=vie1324[0];wy2e8db[1925]<=rv3d8d7[0];wy2e8db[1855]<=tj9efb1;wy2e8db[1838]<=neeb0b5;wy2e8db[1803]<=jr389de;wy2e8db[1662]<=off7d8f;wy2e8db[1628]<=vi585aa;wy2e8db[1487]<=ntaa7be;wy2e8db[1276]<=rtf63e4[0];wy2e8db[1209]<=fnc2d53;wy2e8db[1023]<=ne52e43[0];wy2e8db[1008]<=gd8f93d;wy2e8db[927]<=ui53df6;wy2e8db[743]<=vxb54f7;wy2e8db[504]<=kfb1f27;wy2e8db[371]<=rv16a9e;end assign db84308 = wy2e8db,vv746d9 = dbc230; initial begin hd37a5a = $fopen(".fred"); $fdisplay( hd37a5a, "%3h\n%3h", (icdb382 >> 4) & ou8210c, (icdb382 >> (mece084+4)) & ou8210c ); $fclose(hd37a5a); $readmemh(".fred", kf8c37); end always @ (db84308) begin hq30de9 = kf8c37[1]; for (dobd2d6=0; dobd2d6>1,vv746d9[0]};nec54d1<=vv746d9[1];ba2a68a<=vv746d9[2];cm53452<=vv746d9[3];an9a290<=vv746d9[4];med1484<={lq42166>>1,vv746d9[5]};gd8a421<={yk4962f>>1,vv746d9[6]};fa5210d<={rgc5e2a>>1,vv746d9[7]};yz9086a<={ls2f153>>1,vv746d9[8]};end +always@* begin wy2e8db[2047]<=mee0e42;wy2e8db[2046]<=kf7210;wy2e8db[2044]<=ir39085;wy2e8db[2040]<=rtc842c;wy2e8db[2032]<=lq42166[0];wy2e8db[2017]<=yk4962f[0];wy2e8db[1987]<=rgc5e2a[0];wy2e8db[1926]<=ls2f153[0];wy2e8db[1023]<=lq7c1c8[0];end assign db84308 = wy2e8db,vv746d9 = dbc230; initial begin hd37a5a = $fopen(".fred"); $fdisplay( hd37a5a, "%3h\n%3h", (icdb382 >> 4) & ou8210c, (icdb382 >> (mece084+4)) & ou8210c ); $fclose(hd37a5a); $readmemh(".fred", kf8c37); end always @ (db84308) begin hq30de9 = kf8c37[1]; for (dobd2d6=0; dobd2d6= 14'd64); + + + + +assign tu7330b = ((~vk96e34) ? (aa573e & ~wla11ec) : 1'b0) | (an18b41 & ~nec5a0c) | (ayd163b & ~ph8b1d9) | (xy1b700 & vk48b0 & aa573e) | (zz9e5b8 & aa573e); + +assign zmad7ab = godee70 | (ou10c51 & uvf8bdc); + + +assign th6bd5b = wl121c7; +assign wj5eadf = wl121c7 & wy98ff3; + + +assign cbab7e8 = (~ng833f6) ? mg8862d -14'd4 : qi1f373; + +assign mecb116 = 32'hffffffff; + +assign hd22c50 = lfa0ae7; +assign ir39085 = ~hd3d96a & mrd6847; + +assign zm14547 = godee70 | al6afa7; + + + +assign ld5f545 = zmb71a3 & fpb067e & nt2d5f4 & wla11ec & ~(ng1bcce | osdb802); + +always @ (posedge rxmac_clk or negedge reset_n) begin if (!reset_n) begin rt5ac95 <= 1'b0; en4b592 <= 1'b0; twb257c <= 14'b0; ie2b213 <= 14'b0; pfc84c1 <= 14'b0; vi4260e <= 1'b0; fn617ab <= 1'b0; pua8b83 <= 1'b0; lsb88ce <= 1'b0; qgc4673 <= 1'b0; an23398 <= 1'b0; tj19cc4 <= 1'b0; wwfaa2e <= 1'b0; uka5df <= 1'b0; xjd7119 <= 1'b0; by73c4b <= 14'd0; yz95f19 <= 14'd0; ri99b0a <= 9'd0; vvcd852 <= 1'b0; icce626 <= 1'b0; ph2713b <= 1'b0; end else if (rxmac_clk_en) begin vvcd852 <= pu2f72b & ~bld7913; if (pu2f72b && !bld7913) ri99b0a <= mg98e8b; wwfaa2e <= ir39085; uka5df <= wj65abe; if (gq8d22a) xjd7119 <= gq8d22a; else if (lfa0ae7 && !gq8d22a) xjd7119 <= 1'b0; else if (an18b41) xjd7119 <= 1'b0; else xjd7119 <= xweb8de; tj19cc4 <= ~jr3d71b; if (ir7674 & wj6fb0f) an23398 <= ir7674; else if (pu2f72b) an23398 <= 1'b0; else an23398 <= ng1bcce; if (zkf4f5c) qgc4673 <= zkf4f5c; else if (pu2f72b) qgc4673 <= 1'b0; else qgc4673 <= the3799; ph2713b <= godee70; if (xl2296f) lsb88ce <= gbd9d29; if (nr614bb) icce626 <= ay4c1fc; pua8b83 <= godee70 | (al6afa7 & wj6fb0f); twb257c <= pu1bcbb; en4b592 <= zk57d3d; rt5ac95 <= kdf2ed8; if (ou10c51 && !pf4541b) fn617ab <= jpc7f98; vi4260e <= pf4541b; if (ou10c51 && !pf4541b) ie2b213 <= ym8218a; if (pf4541b) begin pfc84c1 <= ym8218a + 14'd1; end else pfc84c1 <= 14'd0; if (dz506f2 && ng833f6 && uk98c9f) yz95f19 <= qi1f373 + 14'd1; if (ri2a0de && !ng833f6 && uvf8bdc) by73c4b <= mg8862d + 14'd1; else if (ww43168) by73c4b <= 14'd0; end +end + + + +assign nr614bb = ww43168; + + +assign nr45c1a = qi24583 ? (os46086 > (uvc68db + 14'd4)) : os46086 > uvc68db; +assign ec2e0d7 = (os46086 < 14'd64); +assign cz706b8 = do11a45; + +assign mr5bf44 = (os46086[6:0] != 7'd64); +assign jcdfa25 = (jr160cf != fpc7cd); +assign pu835c4 = gdbe9eb ? 1'b0 : vk48b0 | ng833f6 ? gode5db : hd19fb3 ? 1'b0 : cm6831f; + +assign uk1ae23 = ~(ng1bcce | osdb802 | vka7ae3); +assign zma8cd1[31] = hd2d063; +assign zma8cd1[30] = gdbe9eb; +assign zma8cd1[29] = ay5c6f3; +assign zma8cd1[28] = nrf3398; +assign zma8cd1[27] = the3799; +assign zma8cd1[26] = xweb8de; +assign zma8cd1[25] = osdb802; +assign zma8cd1[24] = vka7ae3; +assign zma8cd1[23] = jr3d71b; +assign zma8cd1[22] = je3f824; +assign zma8cd1[21] = zxfc122; +assign zma8cd1[20] = qi3b3a5; +assign zma8cd1[19] = rgcfd9e; +assign zma8cd1[18] = vk48b0; +assign zma8cd1[17] = fpb067e; +assign zma8cd1[16] = qi24583; +assign zma8cd1[15:14] = 2'b00; +assign zma8cd1[13:0] = os46086; + +assign kf262c1[0] = fpb067e; +assign kf262c1[1] = osdb802; +assign kf262c1[2] = ng1bcce; +assign kf262c1[3] = hd2d063; +assign kf262c1[4] = gdbe9eb; +assign kf262c1[5] = ay5c6f3; +assign kf262c1[6] = je3f824; +assign kf262c1[7] = zxfc122; +assign kf262c1[8] = qi24583; + +always@* begin wj6fb0f<=vv746d9[0];cz60ece<=vv746d9[1];ir7674<=vv746d9[2];qi3b3a5<=vv746d9[3];gbd9d29<=vv746d9[4];uk3bdce<={ne52e43>>1,vv746d9[5]};godee70<=vv746d9[6];ep2983f<=vv746d9[7];ay4c1fc<=vv746d9[8];gb60fe0<=vv746d9[9];oh7f04<=vv746d9[10];je3f824<=vv746d9[11];zxfc122<=vv746d9[12];uie0916<=vv746d9[13];vk48b0<=vv746d9[14];qi24583<=vv746d9[15];jr160cf<={ec21fab>>1,vv746d9[16]};fpb067e<=vv746d9[17];ng833f6<=vv746d9[18];hd19fb3<=vv746d9[19];rgcfd9e<=vv746d9[20];nr7ecf2<=vv746d9[21];qib3cb7<={bl7eac0>>1,vv746d9[22]};zz9e5b8<=vv746d9[23];gbf2dc6<=vv746d9[24];vk96e34<=vv746d9[25];zmb71a3<=vv746d9[26];uvc68db<={dz6b175>>1,vv746d9[27]};ec346dc<=vv746d9[28];eca36e0<=vv746d9[29];xy1b700<=vv746d9[30];osdb802<=vv746d9[31];qge008d<={ecb9836>>1,vv746d9[32]};sw469<=vv746d9[33];qv2348<=vv746d9[34];do11a45<=vv746d9[35];gq8d22a<=vv746d9[36];by69150<=vv746d9[37];ho48a83<=vv746d9[38];pf4541b<=vv746d9[39];ri2a0de<=vv746d9[40];dz506f2<=vv746d9[41];pu1bcbb<={cbab7e8>>1,vv746d9[42]};gode5db<=vv746d9[43];kdf2ed8<=vv746d9[44];kfbb620<={wje895c>>1,vv746d9[45]};icdb105<=vv746d9[46];bld8828<=vv746d9[47];uic4146<={sw2b92b>>1,vv746d9[48]};fc20a30<=vv746d9[49];ec5182<=vv746d9[50];os46086<={ie2b213>>1,vv746d9[51]};ym8218a<={pfc84c1>>1,vv746d9[52]};ou10c51<=vv746d9[53];ri86288<=vv746d9[54];ks31443<=vv746d9[55];cb8a218<=vv746d9[56];mg8862d<={by73c4b>>1,vv746d9[57]};ww43168<=vv746d9[58];an18b41<=vv746d9[59];nec5a0c<=vv746d9[60];hd2d063<=vv746d9[61];cm6831f<=vv746d9[62];fpc7cd<={twb257c>>1,vv746d9[63]};qi1f373<={yz95f19>>1,vv746d9[64]};nrf9b98<=vv746d9[65];jpcdcc7<=vv746d9[66];fn6e63f<=vv746d9[67];jc731fe<=vv746d9[68];wy98ff3<=vv746d9[69];jpc7f98<=vv746d9[70];vk3fcc6<=vv746d9[71];zxf3193<={ksb6a15>>1,vv746d9[72]};uk98c9f<=vv746d9[73];shc64f8<=vv746d9[74];vx327c5<=vv746d9[75];ep9f17b<={zma8cd1>>1,vv746d9[76]};uvf8bdc<=vv746d9[77];lqc5ee5<=vv746d9[78];pu2f72b<=vv746d9[79];bld7913<=vv746d9[80];endcad6<=vv746d9[81];sue56b4<=vv746d9[82];jp5ad08<={dz61b0b>>1,vv746d9[83]};mrd6847<=vv746d9[84];gdb423d<=vv746d9[85];wla11ec<=vv746d9[86];qv8f65<=vv746d9[87];ho47b2d<={al5eafa>>1,vv746d9[88]};hd3d96a<=vv746d9[89];xl2296f<=vv746d9[90];wj65abe<=vv746d9[91];nt2d5f4<=vv746d9[92];al6afa7<=vv746d9[93];zk57d3d<=vv746d9[94];gdbe9eb<=vv746d9[95];zkf4f5c<=vv746d9[96];vka7ae3<=vv746d9[97];jr3d71b<=vv746d9[98];xweb8de<=vv746d9[99];ay5c6f3<=vv746d9[100];the3799<=vv746d9[101];ng1bcce<=vv746d9[102];qgde673<=vv746d9[103];nrf3398<=vv746d9[104];do99cc7<=vv746d9[105];kqce63a<=vv746d9[106];mg98e8b<={kf262c1>>1,vv746d9[107]};hbc7458<={sw3160c>>1,vv746d9[108]};je3a2c7<=vv746d9[109];ayd163b<=vv746d9[110];ph8b1d9<=vv746d9[111];end +always@* begin wy2e8db[2047]<=xy304af;wy2e8db[2046]<=aa8257a;wy2e8db[2045]<=ui675b5;wy2e8db[2044]<=gd12bd1;wy2e8db[2043]<=vk3ada8;wy2e8db[2041]<=kf95e8d;wy2e8db[2038]<=ksb6a15[0];wy2e8db[2035]<=ne52e43[0];wy2e8db[2029]<=by73c4b[0];wy2e8db[2028]<=dbb50a8;wy2e8db[2022]<=yxe7c08;wy2e8db[2011]<=jr9e25a;wy2e8db[2009]<=xya8546;wy2e8db[1996]<=ec3e045;wy2e8db[1986]<=icce626;wy2e8db[1974]<=hof12d6;wy2e8db[1971]<=by42a33;wy2e8db[1945]<=yk5cf81;wy2e8db[1943]<=me5c959;wy2e8db[1924]<=vi73131;wy2e8db[1922]<=thddac5;wy2e8db[1901]<=do896b2;wy2e8db[1895]<=zma8cd1[0];wy2e8db[1857]<=qvd85e;wy2e8db[1842]<=ie151db;wy2e8db[1839]<=fae4ac8;wy2e8db[1800]<=ou9898b;wy2e8db[1797]<=kded62e;wy2e8db[1791]<=pfe333a;wy2e8db[1784]<=qgc4673;wy2e8db[1778]<=qt44ae4;wy2e8db[1776]<=bl7eac0[0];wy2e8db[1759]<=yz95f19[0];wy2e8db[1755]<=en4b592;wy2e8db[1742]<=yz33451;wy2e8db[1677]<=nr45c1a;wy2e8db[1667]<=ho6c2f5;wy2e8db[1652]<=cb363c0;wy2e8db[1637]<=zma8ed9;wy2e8db[1631]<=ie2b213[0];wy2e8db[1622]<=ux3c87e;wy2e8db[1552]<=kf262c1[0];wy2e8db[1546]<=dz6b175[0];wy2e8db[1535]<=jr199d6;wy2e8db[1531]<=ec9839e;wy2e8db[1520]<=an23398;wy2e8db[1509]<=do25725;wy2e8db[1504]<=uk2b76b;wy2e8db[1471]<=vxaf8cc;wy2e8db[1468]<=rv846fb;wy2e8db[1463]<=rt5ac95;wy2e8db[1437]<=oh9a28d;wy2e8db[1391]<=cbab030;wy2e8db[1312]<=bn6c64;wy2e8db[1307]<=ec2e0d7;wy2e8db[1286]<=fn617ab;wy2e8db[1256]<=yx51b0d;wy2e8db[1226]<=ne476ca;wy2e8db[1215]<=pfc84c1[0];wy2e8db[1197]<=lqe43f5;wy2e8db[1153]<=gdb1935;wy2e8db[1135]<=pu835c4;wy2e8db[1057]<=sw3160c[0];wy2e8db[1050]<=al5eafa[0];wy2e8db[1044]<=tu58bae;wy2e8db[1037]<=zmad7ab;wy2e8db[1023]<=mrf282b;wy2e8db[1022]<=ipcceb6;wy2e8db[1014]<=wwc1cf1;wy2e8db[993]<=tj19cc4;wy2e8db[971]<=sw2b92b[0];wy2e8db[961]<=ignore_pkt;wy2e8db[928]<=dz61b0b[0];wy2e8db[895]<=lq7c667;wy2e8db[892]<=lsb88ce;wy2e8db[889]<=wje895c[0];wy2e8db[888]<=wyfd58;wy2e8db[879]<=twb257c[0];wy2e8db[838]<=pua8b83;wy2e8db[826]<=uid146c;wy2e8db[811]<=zxc790f;wy2e8db[765]<=tj13073;wy2e8db[734]<=lq58184;wy2e8db[695]<=kqf5606;wy2e8db[656]<=of60d8c;wy2e8db[576]<=kf36326;wy2e8db[567]<=cz706b8;wy2e8db[525]<=jebd5f;wy2e8db[518]<=tw35af5;wy2e8db[464]<=sw8d86c;wy2e8db[446]<=xjd7119;wy2e8db[444]<=jcdfa25;wy2e8db[419]<=wwfaa2e;wy2e8db[405]<=ec3b653;wy2e8db[382]<=vi4260e;wy2e8db[347]<=ec21fab[0];wy2e8db[328]<=ecb9836[0];wy2e8db[269]<=icc183b;wy2e8db[259]<=dz64d6b;wy2e8db[223]<=uk1ae23;wy2e8db[222]<=mr5bf44;wy2e8db[209]<=ld5f545;wy2e8db[164]<=ecf839;wy2e8db[134]<=zk58307;wy2e8db[111]<=cbab7e8[0];wy2e8db[104]<=ph2713b;wy2e8db[82]<=ym2eb93;wy2e8db[67]<=ph8b060;wy2e8db[55]<=wj5eadf;wy2e8db[52]<=qgf57d5;wy2e8db[41]<=jcc5d72;wy2e8db[27]<=th6bd5b;end assign db84308 = wy2e8db,vv746d9 = dbc230; initial begin hd37a5a = $fopen(".fred"); $fdisplay( hd37a5a, "%3h\n%3h", (icdb382 >> 4) & ou8210c, (icdb382 >> (mece084+4)) & ou8210c ); $fclose(hd37a5a); $readmemh(".fred", kf8c37); end always @ (db84308) begin hq30de9 = kf8c37[1]; for (dobd2d6=0; dobd2d6>1,vv746d9[3]};ir7674<=vv746d9[4];qi3b3a5<=vv746d9[5];gbd9d29<=vv746d9[6];wj70349<={su43606>>1,vv746d9[7]};sjd267<={tw1b031>>1,vv746d9[8]};ui499e3<={ldd818a>>1,vv746d9[9]};ay678c9<={byc0c57>>1,vv746d9[10]};zxe324c<={ph62bb>>1,vv746d9[11]};czc9337<={uk315df>>1,vv746d9[12]};me4cde1<={ep8aef8>>1,vv746d9[13]};fp3784b<={lq577c4>>1,vv746d9[14]};vie12f0<={uxbbe22>>1,vv746d9[15]};jr9783<=vv746d9[16];al4bc1e<=vv746d9[17];gb5e0f4<=vv746d9[18];cb8fc48<={ep90e3c>>1,vv746d9[19]};vk96e34<=vv746d9[20];zmb71a3<=vv746d9[21];uvc68db<={dz6b175>>1,vv746d9[22]};ec346dc<=vv746d9[23];eca36e0<=vv746d9[24];xy1b700<=vv746d9[25];hoc0b68<=vv746d9[26];gbf2dc6<=vv746d9[27];dob70ad<={gq88cbf>>1,vv746d9[28]};nrc2b5a<={nt32fc9>>1,vv746d9[29]};aa15ad6<=vv746d9[30];jead6b0<=vv746d9[31];vv6b583<=vv746d9[32];jp5ac1e<=vv746d9[33];mrd60f7<=vv746d9[34];xy83de6<={mt8fd6f>>1,vv746d9[35]};do1ef32<=vv746d9[36];qtf7993<=vv746d9[37];wybcc9c<=vv746d9[38];dze64e1<=vv746d9[39];rv3270e<=vv746d9[40];hq9c3bb<={ym3155e>>1,vv746d9[41]};doeeda<={jp55784>>1,vv746d9[42]};uxbb691<={mr5e13d>>1,vv746d9[43]};kqdb48d<=vv746d9[44];psda468<=vv746d9[45];fnd2342<=vv746d9[46];zz91a16<=vv746d9[47];aa8d0b6<=vv746d9[48];ea685b0<=vv746d9[49];fa42d81<=vv746d9[50];rv16c0a<=vv746d9[51];swb6057<=vv746d9[52];tjb02b9<=vv746d9[53];xl815ce<=vv746d9[54];coae76<=vv746d9[55];vi573b0<=vv746d9[56];ukb9d82<=vv746d9[57];ho76088<={db3398>>1,vv746d9[58]};jrb0443<=vv746d9[59];sw8221e<=vv746d9[60];ie8878b<={wy98f8b>>1,vv746d9[61]};qg43c58<=vv746d9[62];zm1e2c0<=vv746d9[63];ph8b012<={wl8aea8>>1,vv746d9[64]};jcc04bb<={dbbaa22>>1,vv746d9[65]};an12ed5<={vka88b3>>1,vv746d9[66]};cbbb568<={ph22cd4>>1,vv746d9[67]};xwdab45<=vv746d9[68];tud5a2b<=vv746d9[69];me68ad3<={osd4f8d>>1,vv746d9[70]};end +always@* begin wy2e8db[2047]<=mrf282b;wy2e8db[2046]<=xy304af;wy2e8db[2044]<=tj9415c[0];wy2e8db[2040]<=aa8257a;wy2e8db[2033]<=gd12bd1;wy2e8db[2019]<=kf95e8d;wy2e8db[1999]<=mt8fd6f[0];wy2e8db[1991]<=su43606[0];wy2e8db[1981]<=mr7fff0;wy2e8db[1958]<=ph84019;wy2e8db[1950]<=zx7eb7c;wy2e8db[1947]<=jp55784[0];wy2e8db[1934]<=tw1b031[0];wy2e8db[1914]<=uifff84;wy2e8db[1892]<=thddac5;wy2e8db[1868]<=ri200ce;wy2e8db[1852]<=uif5be6;wy2e8db[1851]<=uxbbe22[0];wy2e8db[1847]<=mr5e13d[0];wy2e8db[1820]<=ldd818a[0];wy2e8db[1783]<=hbec3ff;wy2e8db[1780]<=goffc20;wy2e8db[1737]<=kded62e;wy2e8db[1689]<=db3398[0];wy2e8db[1657]<=hqadf31;wy2e8db[1654]<=hodf114;wy2e8db[1647]<=eaf09ec;wy2e8db[1610]<=jcc5d72;wy2e8db[1608]<=wl8aea8[0];wy2e8db[1593]<=byc0c57[0];wy2e8db[1523]<=mrc9c7e;wy2e8db[1519]<=fn61fff;wy2e8db[1513]<=zkfe100;wy2e8db[1426]<=dz6b175[0];wy2e8db[1404]<=zzbf271;wy2e8db[1330]<=fp19cc7;wy2e8db[1267]<=al6f98a;wy2e8db[1260]<=shf88a2;wy2e8db[1246]<=lf84f61;wy2e8db[1225]<=wy98f8b[0];wy2e8db[1199]<=gq88cbf[0];wy2e8db[1173]<=ym2eb93;wy2e8db[1169]<=dbbaa22[0];wy2e8db[1163]<=nt166a7;wy2e8db[1139]<=ph62bb[0];wy2e8db[1023]<=reset_n;wy2e8db[999]<=cz4e3f5;wy2e8db[990]<=ecfffe;wy2e8db[979]<=ykf0803;wy2e8db[973]<=ym3155e[0];wy2e8db[946]<=ep90e3c[0];wy2e8db[925]<=lq577c4[0];wy2e8db[891]<=db3d87f;wy2e8db[805]<=tu58bae;wy2e8db[804]<=uk3e2c6;wy2e8db[761]<=blf938f;wy2e8db[702]<=ym97e4e;wy2e8db[612]<=ayce63e;wy2e8db[599]<=ignore_pkt;wy2e8db[581]<=ph22cd4[0];wy2e8db[556]<=osd4f8d[0];wy2e8db[486]<=zk7cc55;wy2e8db[473]<=uic4515;wy2e8db[462]<=ep8aef8[0];wy2e8db[445]<=rv27b0f;wy2e8db[402]<=jpc7c58;wy2e8db[351]<=nt32fc9[0];wy2e8db[299]<=rx_fifo_full;wy2e8db[290]<=vka88b3[0];wy2e8db[278]<=ieb353e;wy2e8db[231]<=uk315df[0];end assign db84308 = wy2e8db,vv746d9 = dbc230; initial begin hd37a5a = $fopen(".fred"); $fdisplay( hd37a5a, "%3h\n%3h", (icdb382 >> 4) & ou8210c, (icdb382 >> (mece084+4)) & ou8210c ); $fclose(hd37a5a); $readmemh(".fred", kf8c37); end always @ (db84308) begin hq30de9 = kf8c37[1]; for (dobd2d6=0; dobd2d6>1,vv746d9[1]};qg43b47<=vv746d9[2];an1da38<=vv746d9[3];ofed1c4<={zm9368d>>1,vv746d9[4]};go68e25<={db9b46a>>1,vv746d9[5]};rg47128<=vv746d9[6];nt38943<={gd90143>>1,vv746d9[7]};end +always@* begin wy2e8db[2047]<=osce1dd[0];wy2e8db[2046]<=qi3e4da;wy2e8db[2044]<=gbf26d1;wy2e8db[2040]<=zm9368d[0];wy2e8db[2032]<=db9b46a[0];wy2e8db[2016]<=lqda356;wy2e8db[1985]<=gd90143[0];wy2e8db[1023]<=oh39c3b;end assign db84308 = wy2e8db,vv746d9 = dbc230; initial begin hd37a5a = $fopen(".fred"); $fdisplay( hd37a5a, "%3h\n%3h", (icdb382 >> 4) & ou8210c, (icdb382 >> (mece084+4)) & ou8210c ); $fclose(hd37a5a); $readmemh(".fred", kf8c37); end always @ (db84308) begin hq30de9 = kf8c37[1]; for (dobd2d6=0; dobd2d6>1,vv746d9[0]};nec54d1<=vv746d9[1];an9a290<=vv746d9[2];med1484<={lq42166>>1,vv746d9[3]};gd8a421<={yk4962f>>1,vv746d9[4]};fa5210d<={rgc5e2a>>1,vv746d9[5]};end +always@* begin wy2e8db[2047]<=mee0e42;wy2e8db[2046]<=rtc842c;wy2e8db[2044]<=lq42166[0];wy2e8db[2040]<=yk4962f[0];wy2e8db[2033]<=rgc5e2a[0];wy2e8db[1023]<=lq7c1c8[0];end assign db84308 = wy2e8db,vv746d9 = dbc230; initial begin hd37a5a = $fopen(".fred"); $fdisplay( hd37a5a, "%3h\n%3h", (icdb382 >> 4) & ou8210c, (icdb382 >> (mece084+4)) & ou8210c ); $fclose(hd37a5a); $readmemh(".fred", kf8c37); end always @ (db84308) begin hq30de9 = kf8c37[1]; for (dobd2d6=0; dobd2d6>1,vv746d9[1]};cz6561a<=vv746d9[2];ks2b0d5<=vv746d9[3];uvc3543<={ui7d18f>>1,vv746d9[4]};dmd50e9<={go463c4>>1,vv746d9[5]};lsa874b<=vv746d9[6];ic43a5b<=vv746d9[7];oh1d2d8<=vv746d9[8];ip4b62f<={xw483d3>>1,vv746d9[9]};jpd8bec<={ip7a6a9>>1,vv746d9[10]};hoc5f66<=vv746d9[11];end +always@* begin wy2e8db[2047]<=yza464e[0];wy2e8db[2046]<=gd23275;wy2e8db[2044]<=ph193ac;wy2e8db[2040]<=ui7d18f[0];wy2e8db[2032]<=go463c4[0];wy2e8db[2017]<=aa31e21;wy2e8db[1987]<=os7884d;wy2e8db[1927]<=osc4269;wy2e8db[1806]<=xw483d3[0];wy2e8db[1565]<=ip7a6a9[0];wy2e8db[1082]<=uvd354d;wy2e8db[1023]<=fp948c9;end assign db84308 = wy2e8db,vv746d9 = dbc230; initial begin hd37a5a = $fopen(".fred"); $fdisplay( hd37a5a, "%3h\n%3h", (icdb382 >> 4) & ou8210c, (icdb382 >> (mece084+4)) & ou8210c ); $fclose(hd37a5a); $readmemh(".fred", kf8c37); end always @ (db84308) begin hq30de9 = kf8c37[1]; for (dobd2d6=0; dobd2d6>1,vv746d9[6]};tj9bfdb<={dz7e8f3>>1,vv746d9[7]};qgff6fb<={byf479e>>1,vv746d9[8]};fafb7d9<=vv746d9[9];uidbecb<=vv746d9[10];vidf659<=vv746d9[11];zkfb2ca<=vv746d9[12];qgcb29d<={off22b6>>1,vv746d9[13]};go594e9<=vv746d9[14];neca749<=vv746d9[15];ym9d259<={me56d7c>>1,vv746d9[16]};dze92c9<=vv746d9[17];ww4964f<=vv746d9[18];ic593c5<={jraf847>>1,vv746d9[19]};enc9e29<=vv746d9[20];rt4f14d<=vv746d9[21];os78a6f<=vv746d9[22];psc5379<=vv746d9[23];sj29bca<=vv746d9[24];jc4de54<=vv746d9[25];en6f2a3<=vv746d9[26];ic43a5b<={os7884d>>1,vv746d9[27]};oh1d2d8<={osc4269>>1,vv746d9[28]};qt54712<=vv746d9[29];ksa3895<=vv746d9[30];kde254f<={ph94fba>>1,vv746d9[31]};sj953e5<={mg3eeb3>>1,vv746d9[32]};xj4f968<={zzbacc5>>1,vv746d9[33]};ho7cb46<=vv746d9[34];kqe5a33<=vv746d9[35];vx2d198<=vv746d9[36];kq68cc7<=vv746d9[37];ww46638<=vv746d9[38];an331c1<=vv746d9[39];co98e0d<={osceb0e>>1,vv746d9[40]};fnc7068<={of75870>>1,vv746d9[41]};vx38347<=vv746d9[42];osc1a3e<=vv746d9[43];ohd1f1<=vv746d9[44];me68f8c<=vv746d9[45];ne47c60<=vv746d9[46];aa3e302<=vv746d9[47];hq8c08b<={zk4d8a8>>1,vv746d9[48]};kd6045a<=vv746d9[49];yz22d5<=vv746d9[50];pu116ad<=vv746d9[51];fp8b56b<={wjc9655>>1,vv746d9[52]};zx5ab5f<=vv746d9[53];jcd5aff<=vv746d9[54];doad7fa<={dmcab29>>1,vv746d9[55]};zx6bfd3<=vv746d9[56];th5fe9f<=vv746d9[57];meff4ff<=vv746d9[58];ykfa7f9<=vv746d9[59];shd3fc9<=vv746d9[60];cb9fe4d<=vv746d9[61];goff26d<=vv746d9[62];fnf9369<=vv746d9[63];shc9b4e<=vv746d9[64];xw4da75<={th710a3>>1,vv746d9[65]};kq6d3ab<={uk8851e>>1,vv746d9[66]};by69d59<={jc428f0>>1,vv746d9[67]};en4eaca<=vv746d9[68];mr75654<=vv746d9[69];sjab2a4<=vv746d9[70];end +always@* begin wy2e8db[2047]<=dze6fa5;wy2e8db[2046]<=vx37d2f;wy2e8db[2044]<=mtbe97e;wy2e8db[2040]<=vif4bf4;wy2e8db[2033]<=rva5fa3;wy2e8db[2019]<=xy2fd1e[0];wy2e8db[1991]<=dz7e8f3[0];wy2e8db[1934]<=byf479e[0];wy2e8db[1929]<=oh95362;wy2e8db[1898]<=oh8adaf;wy2e8db[1821]<=gqa3cf2;wy2e8db[1810]<=zk4d8a8[0];wy2e8db[1749]<=me56d7c[0];wy2e8db[1707]<=jraf847[0];wy2e8db[1666]<=osc4269[0];wy2e8db[1630]<=of75870[0];wy2e8db[1617]<=th710a3[0];wy2e8db[1595]<=ri1e791;wy2e8db[1572]<=lsa86c9;wy2e8db[1506]<=ip4e764;wy2e8db[1450]<=ecb6be1;wy2e8db[1440]<=kdd3a99;wy2e8db[1428]<=sj2647d;wy2e8db[1384]<=ipc9d67;wy2e8db[1370]<=oh8fd3;wy2e8db[1366]<=tu7c23f;wy2e8db[1308]<=yma3c13;wy2e8db[1284]<=zx7eca7;wy2e8db[1212]<=ksac385;wy2e8db[1202]<=cobc75c;wy2e8db[1187]<=uk8851e[0];wy2e8db[1174]<=wyaca56;wy2e8db[1170]<=ic59565;wy2e8db[1142]<=tx_fifoavail;wy2e8db[1125]<=qv8675;wy2e8db[1097]<=ic4364b;wy2e8db[1041]<=ph94fba[0];wy2e8db[1023]<=wl3cdf4;wy2e8db[964]<=vi73b25;wy2e8db[949]<=nt915b5;wy2e8db[853]<=wj4eb3d;wy2e8db[833]<=os7884d[0];wy2e8db[815]<=osceb0e[0];wy2e8db[808]<=ep8fb3e;wy2e8db[753]<=ir29cec;wy2e8db[720]<=kqfa753;wy2e8db[714]<=yk59132;wy2e8db[692]<=sh70ee9;wy2e8db[685]<=zke11fa;wy2e8db[654]<=vk14782;wy2e8db[601]<=kf23de3;wy2e8db[587]<=fn5594a;wy2e8db[585]<=al4b2ac;wy2e8db[568]<=fc1e099;wy2e8db[562]<=th74219;wy2e8db[520]<=xjf653e;wy2e8db[474]<=off22b6[0];wy2e8db[407]<=xl19d61;wy2e8db[376]<=dz61c29;wy2e8db[357]<=ux7ac8;wy2e8db[327]<=jc428f0[0];wy2e8db[300]<=sj84dc;wy2e8db[293]<=dmcab29[0];wy2e8db[292]<=wjc9655[0];wy2e8db[281]<=mg2e843;wy2e8db[237]<=nt9e456;wy2e8db[203]<=cm433ac;wy2e8db[146]<=ri1b259;wy2e8db[140]<=byc5d08;wy2e8db[70]<=zzbacc5[0];wy2e8db[35]<=mg3eeb3[0];end assign db84308 = wy2e8db,vv746d9 = dbc230; initial begin hd37a5a = $fopen(".fred"); $fdisplay( hd37a5a, "%3h\n%3h", (icdb382 >> 4) & ou8210c, (icdb382 >> (mece084+4)) & ou8210c ); $fclose(hd37a5a); $readmemh(".fred", kf8c37); end always @ (db84308) begin hq30de9 = kf8c37[1]; for (dobd2d6=0; dobd2d6>1,vv746d9[3]};nrec8cd<=vv746d9[4];xj6466e<=vv746d9[5];db19bbc<={th4059a>>1,vv746d9[6]};fafb7d9<=vv746d9[7];ld6ef37<=vv746d9[8];ic779bf<=vv746d9[9];ksbcdf8<=vv746d9[10];lde6fc1<=vv746d9[11];hd37e0f<=vv746d9[12];fpbf07e<=vv746d9[13];wjf83f7<=vv746d9[14];wwc1fbc<=vv746d9[15];ymfde1<=vv746d9[16];rt7ef08<=vv746d9[17];kdf7846<=vv746d9[18];aabc234<=vv746d9[19];dme11a0<=vv746d9[20];ux8d03<=vv746d9[21];zz28768<={osce1dd>>1,vv746d9[22]};pha0740<=vv746d9[23];nt3a07<=vv746d9[24];cb1d03e<=vv746d9[25];ipe81f5<=vv746d9[26];nr40fad<=vv746d9[27];wy3eb7c<={je434b>>1,vv746d9[28]};wwf5be0<=vv746d9[29];yx6f80a<={zk69684>>1,vv746d9[30]};jc7c055<=vv746d9[31];wwe02aa<=vv746d9[32];pu1551<=vv746d9[33];qiaa8a<=vv746d9[34];fn55450<=vv746d9[35];dbaa287<=vv746d9[36];uv5143e<=vv746d9[37];sj8a1f5<=vv746d9[38];zx50fad<=vv746d9[39];aa87d6e<=vv746d9[40];aa3eb70<=vv746d9[41];cmf5b80<=vv746d9[42];twadc01<=vv746d9[43];th6e00a<=vv746d9[44];sh70056<=vv746d9[45];oh802b4<=vv746d9[46];je15a4<=vv746d9[47];ukad22<=vv746d9[48];ic56910<=vv746d9[49];anb4881<=vv746d9[50];epa440d<=vv746d9[51];ou1036e<={kq53e55>>1,vv746d9[52]};xl81b71<=vv746d9[53];irdb8f<=vv746d9[54];ui6dc7d<=vv746d9[55];bl6e3e8<=vv746d9[56];fn71f46<=vv746d9[57];sj8fa37<=vv746d9[58];su7d1bc<=vv746d9[59];she8de0<=vv746d9[60];ic46f04<=vv746d9[61];ph37820<=vv746d9[62];end +always@* begin wy2e8db[2047]<=dze6fa5;wy2e8db[2046]<=tx_sndpausreq;wy2e8db[2044]<=tx_sndpaustim[0];wy2e8db[2040]<=psfe9c0;wy2e8db[2033]<=tuf4e02;wy2e8db[2019]<=th4059a[0];wy2e8db[1994]<=cz41436;wy2e8db[1990]<=gqa3cf2;wy2e8db[1981]<=co9810d;wy2e8db[1965]<=zz84772;wy2e8db[1940]<=qia1b4;wy2e8db[1939]<=ou9d4cd;wy2e8db[1933]<=nec04d6;wy2e8db[1914]<=je434b[0];wy2e8db[1883]<=neee5ac;wy2e8db[1832]<=jp50da1;wy2e8db[1831]<=pu99a40;wy2e8db[1819]<=qtd698d;wy2e8db[1785]<=co1f20a;wy2e8db[1781]<=uk21a5a;wy2e8db[1778]<=cz41332;wy2e8db[1740]<=kf18629;wy2e8db[1719]<=ui72d62;wy2e8db[1634]<=ww53d13;wy2e8db[1616]<=do86d0e;wy2e8db[1615]<=tx_discfrm;wy2e8db[1591]<=gq8db41;wy2e8db[1522]<=fnf9050;wy2e8db[1515]<=zk69684[0];wy2e8db[1508]<=ay6d048;wy2e8db[1470]<=os620f9;wy2e8db[1432]<=lq6c518;wy2e8db[1391]<=ntb5883;wy2e8db[1286]<=qv18d0c;wy2e8db[1271]<=vka72b6;wy2e8db[1221]<=of7a593;wy2e8db[1184]<=an36872;wy2e8db[1182]<=ea53348;wy2e8db[1135]<=ea6da09;wy2e8db[1051]<=nt27c53;wy2e8db[1023]<=wl3cdf4;wy2e8db[997]<=thc8286;wy2e8db[990]<=ep395b2;wy2e8db[982]<=fad08ee;wy2e8db[969]<=db9444a;wy2e8db[892]<=xy83e41;wy2e8db[889]<=tu48266;wy2e8db[870]<=aaf97d;wy2e8db[817]<=eacb16f;wy2e8db[735]<=coac41f;wy2e8db[643]<=wy24634;wy2e8db[635]<=vx94e56;wy2e8db[525]<=ng209f1;wy2e8db[495]<=go56ec6;wy2e8db[444]<=yk68241;wy2e8db[435]<=mg31165;wy2e8db[394]<=bn9b02c;wy2e8db[321]<=epa48c6;wy2e8db[317]<=osce1dd[0];wy2e8db[222]<=kd41209;wy2e8db[217]<=ay4c3c3;wy2e8db[108]<=iec4c;wy2e8db[54]<=kq53e55[0];end assign db84308 = wy2e8db,vv746d9 = dbc230; initial begin hd37a5a = $fopen(".fred"); $fdisplay( hd37a5a, "%3h\n%3h", (icdb382 >> 4) & ou8210c, (icdb382 >> (mece084+4)) & ou8210c ); $fclose(hd37a5a); $readmemh(".fred", kf8c37); end always @ (db84308) begin hq30de9 = kf8c37[1]; for (dobd2d6=0; dobd2d6>1,vv746d9[2]};anbecbb<={zz28f06>>1,vv746d9[3]};fnf65dc<={ne47836>>1,vv746d9[4]};ic43a5b<=vv746d9[5];oh1d2d8<=vv746d9[6];qvbb9d0<=vv746d9[7];end +always@* begin wy2e8db[2047]<=fp271f5;wy2e8db[2046]<=hd38fae[0];wy2e8db[2044]<=zz28f06[0];wy2e8db[2040]<=ne47836[0];wy2e8db[2032]<=os7884d;wy2e8db[2017]<=osc4269;wy2e8db[1987]<=gd36506;wy2e8db[1023]<=qt44e3e;end assign db84308 = wy2e8db,vv746d9 = dbc230; initial begin hd37a5a = $fopen(".fred"); $fdisplay( hd37a5a, "%3h\n%3h", (icdb382 >> 4) & ou8210c, (icdb382 >> (mece084+4)) & ou8210c ); $fclose(hd37a5a); $readmemh(".fred", kf8c37); end always @ (db84308) begin hq30de9 = kf8c37[1]; for (dobd2d6=0; dobd2d6>1,vv746d9[1]};vk99763<=vv746d9[2];cmcbb1b<=vv746d9[3];vi5d8d8<=vv746d9[4];kdf7846<=vv746d9[5];vk1b0ba<={yz36b29>>1,vv746d9[6]};blc2e97<={mgaca67>>1,vv746d9[7]};ntba5f4<={ep299c5>>1,vv746d9[8]};gq97d3f<={ic67161>>1,vv746d9[9]};faf4fcc<={vic5847>>1,vv746d9[10]};ba3f31b<={pf611dd>>1,vv746d9[11]};ofcc6df<={by4777d>>1,vv746d9[12]};ri1b7e2<={xjddf58>>1,vv746d9[13]};fadf891<={go7d631>>1,vv746d9[14]};ipe245e<={ne58c42>>1,vv746d9[15]};rv917a4<={mg31095>>1,vv746d9[16]};sh5e93e<={dm42540>>1,vv746d9[17]};sja4fab<={ux9501d>>1,vv746d9[18]};ym3eae7<={hb4076b>>1,vv746d9[19]};sjab9c0<={gd1daf6>>1,vv746d9[20]};me5ce05<=vv746d9[21];gbe7028<=vv746d9[22];end +always@* begin wy2e8db[2047]<=tx_fifodata[0];wy2e8db[2046]<=tx_fifoeof;wy2e8db[2044]<=tx_fifoempty;wy2e8db[2040]<=tx_fifoctrl;wy2e8db[2032]<=ou9d4cd;wy2e8db[2016]<=yz36b29[0];wy2e8db[1985]<=mgaca67[0];wy2e8db[1922]<=ep299c5[0];wy2e8db[1796]<=ic67161[0];wy2e8db[1544]<=vic5847[0];wy2e8db[1302]<=kded7b4;wy2e8db[1105]<=dm42540[0];wy2e8db[1041]<=pf611dd[0];wy2e8db[1023]<=tx_discfrm;wy2e8db[651]<=gd1daf6[0];wy2e8db[557]<=dz6bda5;wy2e8db[552]<=mg31095[0];wy2e8db[325]<=hb4076b[0];wy2e8db[276]<=ne58c42[0];wy2e8db[162]<=ux9501d[0];wy2e8db[138]<=go7d631[0];wy2e8db[69]<=xjddf58[0];wy2e8db[34]<=by4777d[0];end assign db84308 = wy2e8db,vv746d9 = dbc230; initial begin hd37a5a = $fopen(".fred"); $fdisplay( hd37a5a, "%3h\n%3h", (icdb382 >> 4) & ou8210c, (icdb382 >> (mece084+4)) & ou8210c ); $fclose(hd37a5a); $readmemh(".fred", kf8c37); end always @ (db84308) begin hq30de9 = kf8c37[1]; for (dobd2d6=0; dobd2d6> 4) & ou8210c, (icdb382 >> (mece084+4)) & ou8210c ); $fclose(hd37a5a); $readmemh(".fred", kf8c37); end always @ (db84308) begin hq30de9 = kf8c37[1]; for (dobd2d6=0; dobd2d6>1,vv746d9[5]};qv8f33b<={me68ae0>>1,vv746d9[6]};tj9bfdb<={dz7e8f3>>1,vv746d9[7]};zk732ec<={tx_fifodata>>1,vv746d9[8]};vk99763<=vv746d9[9];cmcbb1b<=vv746d9[10];vidf659<=vv746d9[11];uvfd919<={tx_sndpaustim>>1,vv746d9[12]};ps63f64<=vv746d9[13];vi5d8d8<=vv746d9[14];godbbe9<=vv746d9[15];cmefa4e<={go49e10>>1,vv746d9[16]};pf5039b<=vv746d9[17];hoca073<=vv746d9[18];qgff6fb<={byf479e>>1,vv746d9[19]};ym9d259<={me56d7c>>1,vv746d9[20]};ic593c5<={jraf847>>1,vv746d9[21]};enc9e29<=vv746d9[22];db19bbc<={th4059a>>1,vv746d9[23]};qgcb29d<={off22b6>>1,vv746d9[24]};zz28768<={osce1dd>>1,vv746d9[25]};ic779bf<=vv746d9[26];aab6476<=vv746d9[27];db91d8b<={czc621c>>1,vv746d9[28]};zk762f6<={co88728>>1,vv746d9[29]};end +always@* begin wy2e8db[2047]<=wl3cdf4;wy2e8db[2046]<=dze6fa5;wy2e8db[2044]<=mtbe97e;wy2e8db[2040]<=vx37d2f;wy2e8db[2032]<=ou8d15c[0];wy2e8db[2016]<=me68ae0[0];wy2e8db[1985]<=dz7e8f3[0];wy2e8db[1922]<=tx_fifodata[0];wy2e8db[1796]<=tx_fifoeof;wy2e8db[1544]<=tx_fifoempty;wy2e8db[1316]<=mtb4c6d;wy2e8db[1169]<=co88728[0];wy2e8db[1106]<=th4059a[0];wy2e8db[1041]<=rva5fa3;wy2e8db[1040]<=tx_fifoavail;wy2e8db[1023]<=zxc8e70;wy2e8db[658]<=qtd698d;wy2e8db[584]<=czc621c[0];wy2e8db[553]<=tu7c23f;wy2e8db[520]<=go49e10[0];wy2e8db[329]<=osce1dd[0];wy2e8db[276]<=jraf847[0];wy2e8db[260]<=kq493c2;wy2e8db[164]<=off22b6[0];wy2e8db[138]<=me56d7c[0];wy2e8db[130]<=tx_fifoctrl;wy2e8db[69]<=byf479e[0];wy2e8db[65]<=tx_sndpausreq;wy2e8db[34]<=vif4bf4;wy2e8db[32]<=tx_sndpaustim[0];end assign db84308 = wy2e8db,vv746d9 = dbc230; initial begin hd37a5a = $fopen(".fred"); $fdisplay( hd37a5a, "%3h\n%3h", (icdb382 >> 4) & ou8210c, (icdb382 >> (mece084+4)) & ou8210c ); $fclose(hd37a5a); $readmemh(".fred", kf8c37); end always @ (db84308) begin hq30de9 = kf8c37[1]; for (dobd2d6=0; dobd2d6>1,vv746d9[0]};en5e01d<={hdatain>>1,vv746d9[1]};suf00ec<=vv746d9[2];oh80760<=vv746d9[3];lf3b04<=vv746d9[4];mt1d826<=vv746d9[5];en609a7<={sw10140>>1,vv746d9[6]};xy4d3c<=vv746d9[7];gq34f1d<={ri99b0a>>1,vv746d9[8]};zma78e9<=vv746d9[9];oh3c74b<=vv746d9[10];nre3a5c<=vv746d9[11];wl1d2e7<=vv746d9[12];nre973d<=vv746d9[13];al4b9ef<=vv746d9[14];uve7be0<={wy31bf1>>1,vv746d9[15]};osef82f<={en6fc49>>1,vv746d9[16]};goe0bca<={lqf126f>>1,vv746d9[17]};xy2f281<={yk49bd2>>1,vv746d9[18]};xw7940a<=vv746d9[19];zx50293<={ou2ef80>>1,vv746d9[20]};eca4fe<={wlbe008>>1,vv746d9[21]};zm93f8a<={an80228>>1,vv746d9[22]};nefe29d<={kf8a22>>1,vv746d9[23]};ep8a75a<={db288ae>>1,vv746d9[24]};os53ad5<={uv44576>>1,vv746d9[25]};uk9d6a9<=vv746d9[26];jp5aa4a<={uxaed38>>1,vv746d9[27]};wya92bb<={yzb4e2a>>1,vv746d9[28]};vv4aec8<={tj38aaa>>1,vv746d9[29]};qvbb232<={zm2aaba>>1,vv746d9[30]};pfc8cad<={lfaae9f>>1,vv746d9[31]};rv32b79<={fpba7fa>>1,vv746d9[32]};fcade74<={ir9febd>>1,vv746d9[33]};xw79d14<={wwfaf69>>1,vv746d9[34]};icce8a3<=vv746d9[35];th74518<=vv746d9[36];hq14633<={tu691dd>>1,vv746d9[37]};qv18cd8<={vi4775b>>1,vv746d9[38]};yz33625<={dzdd6d8>>1,vv746d9[39]};fnd896e<={mr5b63a>>1,vv746d9[40]};fc25bb1<={vvd8ea0>>1,vv746d9[41]};bl6ec56<={ng3a837>>1,vv746d9[42]};irb15bb<={fpa0dd1>>1,vv746d9[43]};ww56ee4<={hd37476>>1,vv746d9[44]};hqb7721<={jrba3b7>>1,vv746d9[45]};qtdc85c<={lf8edf8>>1,vv746d9[46]};ec21723<={pub7e32>>1,vv746d9[47]};bab919<=vv746d9[48];me5c8ca<=vv746d9[49];fae4650<=vv746d9[50];vx1941c<={qi92f6f>>1,vv746d9[51]};dmca0e7<=vv746d9[52];jp5073b<=vv746d9[53];end +always@* begin wy2e8db[2047]<=hdatain[0];wy2e8db[2046]<=hread_n;wy2e8db[2044]<=hwrite_n;wy2e8db[2040]<=hcs_n;wy2e8db[2032]<=dzc2191;wy2e8db[2017]<=sw10140[0];wy2e8db[1987]<=cb80a01;wy2e8db[1963]<=qi92f6f[0];wy2e8db[1950]<=jrba3b7[0];wy2e8db[1926]<=ri99b0a[0];wy2e8db[1878]<=ks97b79;wy2e8db[1853]<=lf8edf8[0];wy2e8db[1839]<=vi4775b[0];wy2e8db[1818]<=kf8a22[0];wy2e8db[1804]<=vvcd852;wy2e8db[1708]<=pubdbc9;wy2e8db[1707]<=tj38aaa[0];wy2e8db[1658]<=pub7e32[0];wy2e8db[1630]<=dzdd6d8[0];wy2e8db[1614]<=en6fc49[0];wy2e8db[1589]<=db288ae[0];wy2e8db[1561]<=ba93361;wy2e8db[1511]<=fpa0dd1[0];wy2e8db[1483]<=fcbda47;wy2e8db[1394]<=wwfaf69[0];wy2e8db[1372]<=fpba7fa[0];wy2e8db[1367]<=zm2aaba[0];wy2e8db[1269]<=rvbf192;wy2e8db[1251]<=ou2ef80[0];wy2e8db[1212]<=mr5b63a[0];wy2e8db[1180]<=lqf126f[0];wy2e8db[1130]<=uv44576[0];wy2e8db[1074]<=qg56946;wy2e8db[1023]<=haddr[0];wy2e8db[981]<=qtc64bd;wy2e8db[975]<=hd37476[0];wy2e8db[919]<=tu691dd[0];wy2e8db[909]<=an80228[0];wy2e8db[853]<=yzb4e2a[0];wy2e8db[807]<=wy31bf1[0];wy2e8db[755]<=ng3a837[0];wy2e8db[741]<=zxd7b48;wy2e8db[697]<=ir9febd[0];wy2e8db[686]<=lfaae9f[0];wy2e8db[625]<=ui5cbbe;wy2e8db[490]<=off8c97;wy2e8db[454]<=wlbe008[0];wy2e8db[426]<=uxaed38[0];wy2e8db[403]<=zz28c6f;wy2e8db[377]<=vvd8ea0[0];wy2e8db[312]<=yk49bd2[0];wy2e8db[213]<=hd22bb4;wy2e8db[201]<=xla518d;wy2e8db[100]<=mtb4a31;end assign db84308 = wy2e8db,vv746d9 = dbc230; initial begin hd37a5a = $fopen(".fred"); $fdisplay( hd37a5a, "%3h\n%3h", (icdb382 >> 4) & ou8210c, (icdb382 >> (mece084+4)) & ou8210c ); $fclose(hd37a5a); $readmemh(".fred", kf8c37); end always @ (db84308) begin hq30de9 = kf8c37[1]; for (dobd2d6=0; dobd2d6>1,vv746d9[0]};ui43460<={jc63498>>1,vv746d9[1]};ie1a301<=vv746d9[2];ykd1808<=vv746d9[3];tw8c040<=vv746d9[4];ls1015<={nt6092>>1,vv746d9[5]};zx40554<={mg824ba>>1,vv746d9[6]};ec15534<={sw92e8c>>1,vv746d9[7]};mr54d0f<={lfba308>>1,vv746d9[8]};uk343e1<={hq8c238>>1,vv746d9[9]};wyf844<={gd8e17>>1,vv746d9[10]};vie1102<={vx385eb>>1,vv746d9[11]};wj4409d<={ir17af6>>1,vv746d9[12]};ir2763<={viebdaa>>1,vv746d9[13]};ie9d8ef<={ldf6a9d>>1,vv746d9[14]};blec778<=vv746d9[15];ho63bc7<=vv746d9[16];an1de3b<=vv746d9[17];meef1dc<=vv746d9[18];me78ee0<=vv746d9[19];end +always@* begin wy2e8db[2047]<=jc63498[0];wy2e8db[2046]<=rtd2610;wy2e8db[2044]<=mdi;wy2e8db[2040]<=ls20830;wy2e8db[2032]<=nt6092[0];wy2e8db[2016]<=mg824ba[0];wy2e8db[1985]<=sw92e8c[0];wy2e8db[1922]<=lfba308[0];wy2e8db[1867]<=byeed88;wy2e8db[1797]<=hq8c238[0];wy2e8db[1547]<=gd8e17[0];wy2e8db[1490]<=ea53bb6;wy2e8db[1047]<=vx385eb[0];wy2e8db[1023]<=ui4c693[0];wy2e8db[933]<=sw9ddb1;wy2e8db[745]<=lfaa776;wy2e8db[372]<=lfb54ee;wy2e8db[186]<=ldf6a9d[0];wy2e8db[93]<=viebdaa[0];wy2e8db[46]<=ir17af6[0];end assign db84308 = wy2e8db,vv746d9 = dbc230; initial begin hd37a5a = $fopen(".fred"); $fdisplay( hd37a5a, "%3h\n%3h", (icdb382 >> 4) & ou8210c, (icdb382 >> (mece084+4)) & ou8210c ); $fclose(hd37a5a); $readmemh(".fred", kf8c37); end always @ (db84308) begin hq30de9 = kf8c37[1]; for (dobd2d6=0; dobd2d6>1,vv746d9[0]};xl6c56<=vv746d9[1];ep362b6<=vv746d9[2];kfb15b5<=vv746d9[3];ec346dc<=vv746d9[4];ui56d64<=vv746d9[5];qib6b21<=vv746d9[6];zzb5908<=vv746d9[7];ukac847<=vv746d9[8];bl64238<={rxd_pos>>1,vv746d9[9]};co211c7<={rxd_neg>>1,vv746d9[10]};mt8e39<=vv746d9[11];by471cd<=vv746d9[12];ph38e6b<=vv746d9[13];zxc735f<=vv746d9[14];yz39aff<=vv746d9[15];thcd7fd<=vv746d9[16];dz6bfee<=vv746d9[17];zx5ff77<=vv746d9[18];icffbbf<=vv746d9[19];qtfddf8<=vv746d9[20];me77e2b<={ng83b46>>1,vv746d9[21]};enf8ac7<={ened194>>1,vv746d9[22]};aa2b1ea<={ay46528>>1,vv746d9[23]};blc7a82<={ph283b7>>1,vv746d9[24]};meea0b6<={doedfd>>1,vv746d9[25]};pf505b0<=vv746d9[26];co82d87<=vv746d9[27];tj16c38<=vv746d9[28];ieb61c7<=vv746d9[29];rvb0e39<=vv746d9[30];ie871cf<=vv746d9[31];tj38e79<=vv746d9[32];fnc73cf<=vv746d9[33];ux39e7f<=vv746d9[34];lqcf3fd<=vv746d9[35];dmcff5b<={qgf0b9c>>1,vv746d9[36]};en7fada<=vv746d9[37];kdfd6d4<=vv746d9[38];faeb6a4<=vv746d9[39];kd5b522<=vv746d9[40];psda914<=vv746d9[41];god48a3<=vv746d9[42];gda4518<=vv746d9[43];tj228c5<=vv746d9[44];swa317b<={qv9a85e>>1,vv746d9[45]};gd18bd8<=vv746d9[46];zm2f623<={pubd4d>>1,vv746d9[47]};pf7b11a<={wj5ea6a>>1,vv746d9[48]};zxd88d7<={kqf5355>>1,vv746d9[49]};eac46be<=vv746d9[50];ir235f0<=vv746d9[51];co1af84<=vv746d9[52];jpd7c21<=vv746d9[53];irbe10f<=vv746d9[54];suf087d<=vv746d9[55];tj843e9<=vv746d9[56];wy21f4e<=vv746d9[57];ksfa70<=vv746d9[58];end +always@* begin wy2e8db[2047]<=ph8edd2;wy2e8db[2046]<=vi76e96;wy2e8db[2044]<=tuf131a;wy2e8db[2040]<=tu58bae;wy2e8db[2033]<=rx_dv_pos;wy2e8db[2019]<=rx_dv_neg;wy2e8db[1994]<=uxd09a;wy2e8db[1990]<=rx_er_pos;wy2e8db[1981]<=dbbfa92;wy2e8db[1965]<=lf8b9eb;wy2e8db[1940]<=ic684d4;wy2e8db[1939]<=jebdab0;wy2e8db[1933]<=rx_er_neg;wy2e8db[1914]<=czfd496;wy2e8db[1883]<=os5cf5e;wy2e8db[1832]<=lq426a1;wy2e8db[1831]<=qt6ac1d;wy2e8db[1819]<=rxd_pos[0];wy2e8db[1785]<=zk73868;wy2e8db[1781]<=jc525a0;wy2e8db[1778]<=do11ded;wy2e8db[1740]<=ec15ef4;wy2e8db[1719]<=rv3d785;wy2e8db[1616]<=qv9a85e[0];wy2e8db[1615]<=ww560ed;wy2e8db[1591]<=rxd_neg[0];wy2e8db[1522]<=ri9c342;wy2e8db[1515]<=co92d02;wy2e8db[1508]<=jr8ef6a;wy2e8db[1470]<=cb85ce1;wy2e8db[1432]<=rvaf7a0;wy2e8db[1391]<=jcebc2e;wy2e8db[1286]<=kqf5355[0];wy2e8db[1271]<=ph283b7[0];wy2e8db[1184]<=osd42f5;wy2e8db[1182]<=ng83b46[0];wy2e8db[1135]<=sudbb02;wy2e8db[1051]<=vi4d540;wy2e8db[1023]<=hq11dba[0];wy2e8db[997]<=xwe1a13;wy2e8db[990]<=xyb7f52;wy2e8db[982]<=tw1173d;wy2e8db[969]<=yk77b56;wy2e8db[892]<=uk2e70d;wy2e8db[889]<=qv23bd;wy2e8db[870]<=ux2bde;wy2e8db[735]<=qgf0b9c[0];wy2e8db[643]<=wj5ea6a[0];wy2e8db[635]<=ay46528[0];wy2e8db[525]<=aaa9aa8;wy2e8db[495]<=doedfd[0];wy2e8db[444]<=thec08e;wy2e8db[435]<=zx4057b;wy2e8db[321]<=pubd4d[0];wy2e8db[317]<=ened194[0];wy2e8db[222]<=hbdd811;wy2e8db[217]<=doa80af;wy2e8db[108]<=pf55015;wy2e8db[54]<=sh6aa02;end assign db84308 = wy2e8db,vv746d9 = dbc230; initial begin hd37a5a = $fopen(".fred"); $fdisplay( hd37a5a, "%3h\n%3h", (icdb382 >> 4) & ou8210c, (icdb382 >> (mece084+4)) & ou8210c ); $fclose(hd37a5a); $readmemh(".fred", kf8c37); end always @ (db84308) begin hq30de9 = kf8c37[1]; for (dobd2d6=0; dobd2d6>1,vv746d9[1]};en5e01d<={hdatain>>1,vv746d9[2]};lf3b04<=vv746d9[3];oh80760<=vv746d9[4];suf00ec<=vv746d9[5];zk732ec<={tx_fifodata>>1,vv746d9[6]};vidf659<=vv746d9[7];vk99763<=vv746d9[8];cmcbb1b<=vv746d9[9];uvfd919<={tx_sndpaustim>>1,vv746d9[10]};ps63f64<=vv746d9[11];vi5d8d8<=vv746d9[12];hoc0b68<=vv746d9[13];gbf2dc6<=vv746d9[14];jccae98<={hod0a7b>>1,vv746d9[15]};zk574c2<=vv746d9[16];dbba612<=vv746d9[17];gq34f1d<={ri99b0a>>1,vv746d9[18]};zma78e9<=vv746d9[19];zxc25e1<={fada93f>>1,vv746d9[20]};yz12f0f<=vv746d9[21];wy9787d<=vv746d9[22];gqbc3e9<={rv27ec4>>1,vv746d9[23]};zke1f48<=vv746d9[24];iefa42<=vv746d9[25];qg7d210<=vv746d9[26];dze9080<=vv746d9[27];xw48407<=vv746d9[28];ho4203a<={qi3b78e>>1,vv746d9[29]};ie101d3<=vv746d9[30];an80e99<=vv746d9[31];gd74cd<=vv746d9[32];ba3a66d<=vv746d9[33];qtd336b<=vv746d9[34];hq99b5c<=vv746d9[35];thcdae2<=vv746d9[36];ea6d717<=vv746d9[37];hb6b8b9<=vv746d9[38];cm5c5cf<={zkfe481>>1,vv746d9[39]};ipe2e79<={alf240b>>1,vv746d9[40]};ir173cd<={co9205d>>1,vv746d9[41]};ukb9e6c<={an902e8>>1,vv746d9[42]};lqcf361<={ph81745>>1,vv746d9[43]};tu79b0b<={riba2e>>1,vv746d9[44]};fncd85b<={lq5d172>>1,vv746d9[45]};xw6c2df<={cze8b93>>1,vv746d9[46]};dz616fb<={nr45c9c>>1,vv746d9[47]};twb7df<={ec2e4e7>>1,vv746d9[48]};gb5befb<={ay72738>>1,vv746d9[49]};nedf7dd<={do939c1>>1,vv746d9[50]};nefbeea<={ls9ce0b>>1,vv746d9[51]};dmdf752<=vv746d9[52];lqfba92<={db382d4>>1,vv746d9[53]};pfdd492<=vv746d9[54];goea497<=vv746d9[55];rg524b8<=vv746d9[56];ou925c2<=vv746d9[57];qi92e10<=vv746d9[58];ks97081<=vv746d9[59];lsb8408<=vv746d9[60];pfc2042<=vv746d9[61];uk10217<={mt12115>>1,vv746d9[62]};tj810b9<={cb908ac>>1,vv746d9[63]};yz85ce<=vv746d9[64];ps42e74<=vv746d9[65];sj173a2<=vv746d9[66];wyb9d14<=vv746d9[67];ayce8a1<={fn64dc0>>1,vv746d9[68]};hb74508<={gd26e06>>1,vv746d9[69]};end +always@* begin wy2e8db[2047]<=haddr[0];wy2e8db[2046]<=hdatain[0];wy2e8db[2044]<=hcs_n;wy2e8db[2041]<=db382d4[0];wy2e8db[2040]<=hwrite_n;wy2e8db[2035]<=ayc16a6;wy2e8db[2033]<=hread_n;wy2e8db[2024]<=ead49fb;wy2e8db[2022]<=bab530;wy2e8db[2018]<=tx_fifodata[0];wy2e8db[2001]<=qva4fd8;wy2e8db[1997]<=th5a983;wy2e8db[1988]<=tx_fifoavail;wy2e8db[1954]<=rv27ec4[0];wy2e8db[1946]<=med4c1f;wy2e8db[1929]<=tx_fifoeof;wy2e8db[1874]<=ng890fe;wy2e8db[1860]<=ba3f627;wy2e8db[1851]<=fn64dc0[0];wy2e8db[1845]<=aaa60f8;wy2e8db[1811]<=tx_fifoempty;wy2e8db[1789]<=ri99b0a[0];wy2e8db[1721]<=cb908ac[0];wy2e8db[1700]<=fa487f2;wy2e8db[1673]<=psfb13b;wy2e8db[1655]<=gd26e06[0];wy2e8db[1643]<=ri307c0;wy2e8db[1574]<=tx_sndpaustim[0];wy2e8db[1530]<=vvcd852;wy2e8db[1486]<=ec15937;wy2e8db[1395]<=bn84564;wy2e8db[1353]<=su43f92;wy2e8db[1317]<=zkfe481[0];wy2e8db[1311]<=nr45c9c[0];wy2e8db[1299]<=zxd89db;wy2e8db[1258]<=hof1c48;wy2e8db[1247]<=hod0a7b[0];wy2e8db[1239]<=xwc0484;wy2e8db[1187]<=riba2e[0];wy2e8db[1172]<=co9205d[0];wy2e8db[1151]<=ay72738[0];wy2e8db[1102]<=nt276f1;wy2e8db[1101]<=tx_sndpausreq;wy2e8db[1023]<=reset_n;wy2e8db[1020]<=yxe705a;wy2e8db[1012]<=fada93f[0];wy2e8db[937]<=fn7121f;wy2e8db[925]<=ouac9b8;wy2e8db[894]<=kf29ed4;wy2e8db[860]<=mt12115[0];wy2e8db[743]<=lf22b26;wy2e8db[658]<=ou1fc90;wy2e8db[655]<=cze8b93[0];wy2e8db[629]<=wwde389;wy2e8db[623]<=ignore_pkt;wy2e8db[593]<=ph81745[0];wy2e8db[586]<=alf240b[0];wy2e8db[575]<=ec2e4e7[0];wy2e8db[551]<=eac4ede;wy2e8db[510]<=ls9ce0b[0];wy2e8db[468]<=jr8e243;wy2e8db[447]<=oh853da;wy2e8db[430]<=ep2422;wy2e8db[327]<=lq5d172[0];wy2e8db[314]<=eadbc71;wy2e8db[311]<=rx_fifo_full;wy2e8db[296]<=an902e8[0];wy2e8db[255]<=do939c1[0];wy2e8db[157]<=qi3b78e[0];wy2e8db[155]<=tx_fifoctrl;end assign db84308 = wy2e8db,vv746d9 = dbc230; initial begin hd37a5a = $fopen(".fred"); $fdisplay( hd37a5a, "%3h\n%3h", (icdb382 >> 4) & ou8210c, (icdb382 >> (mece084+4)) & ou8210c ); $fclose(hd37a5a); $readmemh(".fred", kf8c37); end always @ (db84308) begin hq30de9 = kf8c37[1]; for (dobd2d6=0; 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⩔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∓xZH^il-xiVfGqN~g!dG!%((=;)+0<7b?m=i6SB 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"0b1",D_IB_PWDNB=>"0b1", + D_XGE_MODE=>"0b0",D_LOW_MARK=>"0d4",D_HIGH_MARK=>"0d12",D_BUS8BIT_SEL=>"0b0", + D_CDR_LOL_SET=>"0b00",D_TXPLL_PWDNB=>"0b1",D_BITCLK_LOCAL_EN=>"0b1", + D_BITCLK_ND_EN=>"0b0",D_BITCLK_FROM_ND_EN=>"0b0",D_SYNC_LOCAL_EN=>"0b1", + D_SYNC_ND_EN=>"0b0",CH1_UC_MODE=>"0b0",CH1_PCIE_MODE=>"0b0",CH1_RIO_MODE=>"0b0", + CH1_WA_MODE=>"0b0",CH1_INVERT_RX=>"0b0",CH1_INVERT_TX=>"0b0",CH1_PRBS_SELECTION=>"0b0", + CH1_GE_AN_ENABLE=>"0b0",CH1_PRBS_LOCK=>"0b0",CH1_PRBS_ENABLE=>"0b0", + CH1_ENABLE_CG_ALIGN=>"0b1",CH1_TX_GEAR_MODE=>"0b0",CH1_RX_GEAR_MODE=>"0b0", + CH1_PCS_DET_TIME_SEL=>"0b00",CH1_PCIE_EI_EN=>"0b0",CH1_TX_GEAR_BYPASS=>"0b0", + CH1_ENC_BYPASS=>"0b0",CH1_SB_BYPASS=>"0b0",CH1_RX_SB_BYPASS=>"0b0", + CH1_WA_BYPASS=>"0b0",CH1_DEC_BYPASS=>"0b0",CH1_CTC_BYPASS=>"0b0", + CH1_RX_GEAR_BYPASS=>"0b0",CH1_LSM_DISABLE=>"0b0",CH1_MATCH_2_ENABLE=>"0b1", + CH1_MATCH_4_ENABLE=>"0b0",CH1_MIN_IPG_CNT=>"0b11",CH1_CC_MATCH_1=>"0x000", + CH1_CC_MATCH_2=>"0x000",CH1_CC_MATCH_3=>"0x1BC",CH1_CC_MATCH_4=>"0x050", + CH1_UDF_COMMA_MASK=>"0x3ff",CH1_UDF_COMMA_A=>"0x283",CH1_UDF_COMMA_B=>"0x17C", + CH1_RX_DCO_CK_DIV=>"0b000",CH1_RCV_DCC_EN=>"0b0",CH1_TPWDNB=>"0b1", + CH1_RATE_MODE_TX=>"0b0",CH1_RTERM_TX=>"0d19",CH1_TX_CM_SEL=>"0b00", + CH1_TDRV_PRE_EN=>"0b0",CH1_TDRV_SLICE0_SEL=>"0b01",CH1_TDRV_SLICE1_SEL=>"0b00", + CH1_TDRV_SLICE2_SEL=>"0b01",CH1_TDRV_SLICE3_SEL=>"0b01",CH1_TDRV_SLICE4_SEL=>"0b01", + CH1_TDRV_SLICE5_SEL=>"0b01",CH1_TDRV_SLICE0_CUR=>"0b101",CH1_TDRV_SLICE1_CUR=>"0b000", + CH1_TDRV_SLICE2_CUR=>"0b11",CH1_TDRV_SLICE3_CUR=>"0b11",CH1_TDRV_SLICE4_CUR=>"0b11", + CH1_TDRV_SLICE5_CUR=>"0b00",CH1_TDRV_DAT_SEL=>"0b00",CH1_TX_DIV11_SEL=>"0b0", + CH1_RPWDNB=>"0b1",CH1_RATE_MODE_RX=>"0b0",CH1_RX_DIV11_SEL=>"0b0", + CH1_SEL_SD_RX_CLK=>"0b0",CH1_FF_RX_H_CLK_EN=>"0b0",CH1_FF_RX_F_CLK_DIS=>"0b0", + CH1_FF_TX_H_CLK_EN=>"0b0",CH1_FF_TX_F_CLK_DIS=>"0b0",CH1_TDRV_POST_EN=>"0b0", + CH1_TX_POST_SIGN=>"0b0",CH1_TX_PRE_SIGN=>"0b0",CH1_REQ_LVL_SET=>"0b00", + CH1_REQ_EN=>"0b1",CH1_RTERM_RX=>"0d22",CH1_RXTERM_CM=>"0b11",CH1_PDEN_SEL=>"0b1", + CH1_RXIN_CM=>"0b11",CH1_LEQ_OFFSET_SEL=>"0b0",CH1_LEQ_OFFSET_TRIM=>"0b000", + CH1_RLOS_SEL=>"0b1",CH1_RX_LOS_LVL=>"0b010",CH1_RX_LOS_CEQ=>"0b11", + CH1_RX_LOS_HYST_EN=>"0b0",CH1_RX_LOS_EN=>"0b1",CH1_LDR_RX2CORE_SEL=>"0b0", + CH1_LDR_CORE2TX_SEL=>"0b0",D_TX_MAX_RATE=>"2",CH1_CDR_MAX_RATE=>"2", + CH1_TXAMPLITUDE=>"0d1100",CH1_TXDEPRE=>"DISABLED",CH1_TXDEPOST=>"DISABLED", + CH1_PROTOCOL=>"GBE",D_ISETLOS=>"0d0",D_SETIRPOLY_AUX=>"0b00",D_SETICONST_AUX=>"0b00", + D_SETIRPOLY_CH=>"0b00",D_SETICONST_CH=>"0b00",D_REQ_ISET=>"0b000", + D_PD_ISET=>"0b00",D_DCO_CALIB_TIME_SEL=>"0b00",CH1_CDR_CNT4SEL=>"0b00", + CH1_CDR_CNT8SEL=>"0b00",CH1_DCOATDCFG=>"0b00",CH1_DCOATDDLY=>"0b00", + CH1_DCOBYPSATD=>"0b1",CH1_DCOCALDIV=>"0b001",CH1_DCOCTLGI=>"0b010", + CH1_DCODISBDAVOID=>"0b0",CH1_DCOFLTDAC=>"0b01",CH1_DCOFTNRG=>"0b110", + CH1_DCOIOSTUNE=>"0b000",CH1_DCOITUNE=>"0b00",CH1_DCOITUNE4LSB=>"0b111", + CH1_DCOIUPDNX2=>"0b1",CH1_DCONUOFLSB=>"0b101",CH1_DCOSCALEI=>"0b00", + CH1_DCOSTARTVAL=>"0b000",CH1_DCOSTEP=>"0b00",CH1_BAND_THRESHOLD=>"0d0", + CH1_AUTO_FACQ_EN=>"0b1",CH1_AUTO_CALIB_EN=>"0b1",CH1_CALIB_CK_MODE=>"0b0", + CH1_REG_BAND_OFFSET=>"0d0",CH1_REG_BAND_SEL=>"0d0",CH1_REG_IDAC_SEL=>"0d0", + CH1_REG_IDAC_EN=>"0b0",D_CMUSETISCL4VCO=>"0b000",D_CMUSETI4VCO=>"0b00", + D_CMUSETINITVCT=>"0b00",D_CMUSETZGM=>"0b000",D_CMUSETP2AGM=>"0b000", + D_CMUSETP1GM=>"0b000",D_CMUSETI4CPZ=>"0d3",D_CMUSETI4CPP=>"0d3",D_CMUSETICP4Z=>"0b101", + D_CMUSETICP4P=>"0b01",D_CMUSETBIASI=>"0b00",D_SETPLLRC=>"0d1",CH1_RX_RATE_SEL=>"0d8", + D_REFCK_MODE=>"0b001",D_TX_VCO_CK_DIV=>"0b000",D_PLL_LOL_SET=>"0b00", + D_RG_EN=>"0b0",D_RG_SET=>"0b00") + port map (CH0_HDINP=>n103,CH1_HDINP=>hdinp,CH0_HDINN=>n103,CH1_HDINN=>hdinn, + D_TXBIT_CLKP_FROM_ND=>n44,D_TXBIT_CLKN_FROM_ND=>n44,D_SYNC_ND=>n44,D_TXPLL_LOL_FROM_ND=>n44, + CH0_RX_REFCLK=>n103,CH1_RX_REFCLK=>rxrefclk,CH0_FF_RXI_CLK=>n102,CH1_FF_RXI_CLK=>tx_pclk_c, + CH0_FF_TXI_CLK=>n102,CH1_FF_TXI_CLK=>txi_clk,CH0_FF_EBRD_CLK=>n102,CH1_FF_EBRD_CLK=>tx_pclk_c, + CH0_FF_TX_D_0=>n103,CH1_FF_TX_D_0=>txdata(0),CH0_FF_TX_D_1=>n103,CH1_FF_TX_D_1=>txdata(1), + CH0_FF_TX_D_2=>n103,CH1_FF_TX_D_2=>txdata(2),CH0_FF_TX_D_3=>n103,CH1_FF_TX_D_3=>txdata(3), + CH0_FF_TX_D_4=>n103,CH1_FF_TX_D_4=>txdata(4),CH0_FF_TX_D_5=>n103,CH1_FF_TX_D_5=>txdata(5), + CH0_FF_TX_D_6=>n103,CH1_FF_TX_D_6=>txdata(6),CH0_FF_TX_D_7=>n103,CH1_FF_TX_D_7=>txdata(7), + CH0_FF_TX_D_8=>n103,CH1_FF_TX_D_8=>tx_k(0),CH0_FF_TX_D_9=>n103,CH1_FF_TX_D_9=>n44, + CH0_FF_TX_D_10=>n103,CH1_FF_TX_D_10=>xmit(0),CH0_FF_TX_D_11=>n103,CH1_FF_TX_D_11=>tx_disp_correct(0), + CH0_FF_TX_D_12=>n103,CH1_FF_TX_D_12=>n103,CH0_FF_TX_D_13=>n103,CH1_FF_TX_D_13=>n103, + CH0_FF_TX_D_14=>n103,CH1_FF_TX_D_14=>n103,CH0_FF_TX_D_15=>n103,CH1_FF_TX_D_15=>n103, + CH0_FF_TX_D_16=>n103,CH1_FF_TX_D_16=>n103,CH0_FF_TX_D_17=>n103,CH1_FF_TX_D_17=>n103, + CH0_FF_TX_D_18=>n103,CH1_FF_TX_D_18=>n103,CH0_FF_TX_D_19=>n103,CH1_FF_TX_D_19=>n103, + CH0_FF_TX_D_20=>n103,CH1_FF_TX_D_20=>n103,CH0_FF_TX_D_21=>n103,CH1_FF_TX_D_21=>n44, + CH0_FF_TX_D_22=>n103,CH1_FF_TX_D_22=>n103,CH0_FF_TX_D_23=>n103,CH1_FF_TX_D_23=>n103, + CH0_FFC_EI_EN=>n103,CH1_FFC_EI_EN=>n44,CH0_FFC_PCIE_DET_EN=>n103,CH1_FFC_PCIE_DET_EN=>n44, + CH0_FFC_PCIE_CT=>n103,CH1_FFC_PCIE_CT=>n44,CH0_FFC_SB_INV_RX=>n103,CH1_FFC_SB_INV_RX=>n103, + CH0_FFC_ENABLE_CGALIGN=>n103,CH1_FFC_ENABLE_CGALIGN=>n103,CH0_FFC_SIGNAL_DETECT=>n103, + CH1_FFC_SIGNAL_DETECT=>signal_detect_c,CH0_FFC_FB_LOOPBACK=>n103,CH1_FFC_FB_LOOPBACK=>n44, + CH0_FFC_SB_PFIFO_LP=>n103,CH1_FFC_SB_PFIFO_LP=>n44,CH0_FFC_PFIFO_CLR=>n103, + CH1_FFC_PFIFO_CLR=>n44,CH0_FFC_RATE_MODE_RX=>n103,CH1_FFC_RATE_MODE_RX=>n44, + CH0_FFC_RATE_MODE_TX=>n103,CH1_FFC_RATE_MODE_TX=>n44,CH0_FFC_DIV11_MODE_RX=>n103, + CH1_FFC_DIV11_MODE_RX=>n44,CH0_FFC_DIV11_MODE_TX=>n103,CH1_FFC_DIV11_MODE_TX=>n44, + CH0_FFC_RX_GEAR_MODE=>n103,CH1_FFC_RX_GEAR_MODE=>n44,CH0_FFC_TX_GEAR_MODE=>n103, + CH1_FFC_TX_GEAR_MODE=>n44,CH0_FFC_LDR_CORE2TX_EN=>n103,CH1_FFC_LDR_CORE2TX_EN=>n103, + CH0_FFC_LANE_TX_RST=>n103,CH1_FFC_LANE_TX_RST=>rsl_tx_pcs_rst_c,CH0_FFC_LANE_RX_RST=>n103, + CH1_FFC_LANE_RX_RST=>rsl_rx_pcs_rst_c,CH0_FFC_RRST=>n103,CH1_FFC_RRST=>rsl_rx_serdes_rst_c, + CH0_FFC_TXPWDNB=>n103,CH1_FFC_TXPWDNB=>tx_pwrup_c,CH0_FFC_RXPWDNB=>n103, + CH1_FFC_RXPWDNB=>rx_pwrup_c,CH0_LDR_CORE2TX=>n103,CH1_LDR_CORE2TX=>n103, + D_SCIWDATA0=>sci_wrdata(0),D_SCIWDATA1=>sci_wrdata(1),D_SCIWDATA2=>sci_wrdata(2), + D_SCIWDATA3=>sci_wrdata(3),D_SCIWDATA4=>sci_wrdata(4),D_SCIWDATA5=>sci_wrdata(5), + D_SCIWDATA6=>sci_wrdata(6),D_SCIWDATA7=>sci_wrdata(7),D_SCIADDR0=>sci_addr(0), + D_SCIADDR1=>sci_addr(1),D_SCIADDR2=>sci_addr(2),D_SCIADDR3=>sci_addr(3), + D_SCIADDR4=>sci_addr(4),D_SCIADDR5=>sci_addr(5),D_SCIENAUX=>sci_en_dual, + D_SCISELAUX=>sci_sel_dual,CH0_SCIEN=>n103,CH1_SCIEN=>sci_en,CH0_SCISEL=>n103, + CH1_SCISEL=>sci_sel,D_SCIRD=>sci_rd,D_SCIWSTN=>sci_wrn,D_CYAWSTN=>cyawstn, + D_FFC_SYNC_TOGGLE=>n103,D_FFC_DUAL_RST=>rsl_rst_dual_c,D_FFC_MACRO_RST=>rsl_serdes_rst_dual_c, + D_FFC_MACROPDB=>serdes_pdb,D_FFC_TRST=>rsl_tx_serdes_rst_c,CH0_FFC_CDR_EN_BITSLIP=>n103, + CH1_FFC_CDR_EN_BITSLIP=>n44,D_SCAN_ENABLE=>n44,D_SCAN_IN_0=>n44,D_SCAN_IN_1=>n44, + D_SCAN_IN_2=>n44,D_SCAN_IN_3=>n44,D_SCAN_IN_4=>n44,D_SCAN_IN_5=>n44, + D_SCAN_IN_6=>n44,D_SCAN_IN_7=>n44,D_SCAN_MODE=>n44,D_SCAN_RESET=>n44, + D_CIN0=>n44,D_CIN1=>n44,D_CIN2=>n44,D_CIN3=>n44,D_CIN4=>n44,D_CIN5=>n44, + D_CIN6=>n44,D_CIN7=>n44,D_CIN8=>n44,D_CIN9=>n44,D_CIN10=>n44,D_CIN11=>n44, + CH0_HDOUTP=>n47,CH1_HDOUTP=>hdoutp,CH0_HDOUTN=>n48,CH1_HDOUTN=>hdoutn, + D_TXBIT_CLKP_TO_ND=>n1,D_TXBIT_CLKN_TO_ND=>n2,D_SYNC_PULSE2ND=>n3,D_TXPLL_LOL_TO_ND=>n4, + CH0_FF_RX_F_CLK=>n49,CH1_FF_RX_F_CLK=>n5,CH0_FF_RX_H_CLK=>n50,CH1_FF_RX_H_CLK=>n6, + CH0_FF_TX_F_CLK=>n51,CH1_FF_TX_F_CLK=>n7,CH0_FF_TX_H_CLK=>n52,CH1_FF_TX_H_CLK=>n8, + CH0_FF_RX_PCLK=>n53,CH1_FF_RX_PCLK=>n9,CH0_FF_TX_PCLK=>n54,CH1_FF_TX_PCLK=>tx_pclk_c, + CH0_FF_RX_D_0=>n55,CH1_FF_RX_D_0=>rxdata(0),CH0_FF_RX_D_1=>n56,CH1_FF_RX_D_1=>rxdata(1), + CH0_FF_RX_D_2=>n57,CH1_FF_RX_D_2=>rxdata(2),CH0_FF_RX_D_3=>n58,CH1_FF_RX_D_3=>rxdata(3), + CH0_FF_RX_D_4=>n59,CH1_FF_RX_D_4=>rxdata(4),CH0_FF_RX_D_5=>n60,CH1_FF_RX_D_5=>rxdata(5), + CH0_FF_RX_D_6=>n61,CH1_FF_RX_D_6=>rxdata(6),CH0_FF_RX_D_7=>n62,CH1_FF_RX_D_7=>rxdata(7), + CH0_FF_RX_D_8=>n63,CH1_FF_RX_D_8=>rx_k(0),CH0_FF_RX_D_9=>n64,CH1_FF_RX_D_9=>rx_disp_err(0), + CH0_FF_RX_D_10=>n65,CH1_FF_RX_D_10=>rx_cv_err(0),CH0_FF_RX_D_11=>n66, + CH1_FF_RX_D_11=>n10,CH0_FF_RX_D_12=>n67,CH1_FF_RX_D_12=>n68,CH0_FF_RX_D_13=>n69, + CH1_FF_RX_D_13=>n70,CH0_FF_RX_D_14=>n71,CH1_FF_RX_D_14=>n72,CH0_FF_RX_D_15=>n73, + CH1_FF_RX_D_15=>n74,CH0_FF_RX_D_16=>n75,CH1_FF_RX_D_16=>n76,CH0_FF_RX_D_17=>n77, + CH1_FF_RX_D_17=>n78,CH0_FF_RX_D_18=>n79,CH1_FF_RX_D_18=>n80,CH0_FF_RX_D_19=>n81, + CH1_FF_RX_D_19=>n82,CH0_FF_RX_D_20=>n83,CH1_FF_RX_D_20=>n84,CH0_FF_RX_D_21=>n85, + CH1_FF_RX_D_21=>n86,CH0_FF_RX_D_22=>n87,CH1_FF_RX_D_22=>n88,CH0_FF_RX_D_23=>n89, + CH1_FF_RX_D_23=>n11,CH0_FFS_PCIE_DONE=>n90,CH1_FFS_PCIE_DONE=>n12,CH0_FFS_PCIE_CON=>n91, + CH1_FFS_PCIE_CON=>n13,CH0_FFS_RLOS=>n92,CH1_FFS_RLOS=>rx_los_low_s_c, + CH0_FFS_LS_SYNC_STATUS=>n93,CH1_FFS_LS_SYNC_STATUS=>lsm_status_s,CH0_FFS_CC_UNDERRUN=>n94, + CH1_FFS_CC_UNDERRUN=>ctc_urun_s,CH0_FFS_CC_OVERRUN=>n95,CH1_FFS_CC_OVERRUN=>ctc_orun_s, + CH0_FFS_RXFBFIFO_ERROR=>n96,CH1_FFS_RXFBFIFO_ERROR=>n14,CH0_FFS_TXFBFIFO_ERROR=>n97, + CH1_FFS_TXFBFIFO_ERROR=>n15,CH0_FFS_RLOL=>n98,CH1_FFS_RLOL=>rx_cdr_lol_s_c, + CH0_FFS_SKP_ADDED=>n99,CH1_FFS_SKP_ADDED=>ctc_ins_s,CH0_FFS_SKP_DELETED=>n100, + CH1_FFS_SKP_DELETED=>ctc_del_s,CH0_LDR_RX2CORE=>n101,CH1_LDR_RX2CORE=>n112, + D_SCIRDATA0=>sci_rddata(0),D_SCIRDATA1=>sci_rddata(1),D_SCIRDATA2=>sci_rddata(2), + D_SCIRDATA3=>sci_rddata(3),D_SCIRDATA4=>sci_rddata(4),D_SCIRDATA5=>sci_rddata(5), + D_SCIRDATA6=>sci_rddata(6),D_SCIRDATA7=>sci_rddata(7),D_SCIINT=>sci_int, + D_SCAN_OUT_0=>n16,D_SCAN_OUT_1=>n17,D_SCAN_OUT_2=>n18,D_SCAN_OUT_3=>n19, + D_SCAN_OUT_4=>n20,D_SCAN_OUT_5=>n21,D_SCAN_OUT_6=>n22,D_SCAN_OUT_7=>n23, + D_COUT0=>n24,D_COUT1=>n25,D_COUT2=>n26,D_COUT3=>n27,D_COUT4=>n28,D_COUT5=>n29, + D_COUT6=>n30,D_COUT7=>n31,D_COUT8=>n32,D_COUT9=>n33,D_COUT10=>n34,D_COUT11=>n35, + D_COUT12=>n36,D_COUT13=>n37,D_COUT14=>n38,D_COUT15=>n39,D_COUT16=>n40, + D_COUT17=>n41,D_COUT18=>n42,D_COUT19=>n43,D_REFCLKI=>pll_refclki,D_FFS_PLOL=>n46); + n45 <= '1' ; + n44 <= '0' ; + n1 <= 'Z' ; + n2 <= 'Z' ; + n3 <= 'Z' ; + n4 <= 'Z' ; + n5 <= 'Z' ; + n6 <= 'Z' ; + n7 <= 'Z' ; + n8 <= 'Z' ; + n9 <= 'Z' ; + n10 <= 'Z' ; + n11 <= 'Z' ; + n12 <= 'Z' ; + n13 <= 'Z' ; + n14 <= 'Z' ; + n15 <= 'Z' ; + n16 <= 'Z' ; + n17 <= 'Z' ; + n18 <= 'Z' ; + n19 <= 'Z' ; + n20 <= 'Z' ; + n21 <= 'Z' ; + n22 <= 'Z' ; + n23 <= 'Z' ; + n24 <= 'Z' ; + n25 <= 'Z' ; + n26 <= 'Z' ; + n27 <= 'Z' ; + n28 <= 'Z' ; + n29 <= 'Z' ; + n30 <= 'Z' ; + n31 <= 'Z' ; + n32 <= 'Z' ; + n33 <= 'Z' ; + n34 <= 'Z' ; + n35 <= 'Z' ; + n36 <= 'Z' ; + n37 <= 'Z' ; + n38 <= 'Z' ; + n39 <= 'Z' ; + n40 <= 'Z' ; + n41 <= 'Z' ; + n42 <= 'Z' ; + n43 <= 'Z' ; + n46 <= 'Z' ; + n103 <= '0' ; + n102 <= '1' ; + n47 <= 'Z' ; + n48 <= 'Z' ; + n49 <= 'Z' ; + n50 <= 'Z' ; + n51 <= 'Z' ; + n52 <= 'Z' ; + n53 <= 'Z' ; + n54 <= 'Z' ; + n55 <= 'Z' ; + n56 <= 'Z' ; + n57 <= 'Z' ; + n58 <= 'Z' ; + n59 <= 'Z' ; + n60 <= 'Z' ; + n61 <= 'Z' ; + n62 <= 'Z' ; + n63 <= 'Z' ; + n64 <= 'Z' ; + n65 <= 'Z' ; + n66 <= 'Z' ; + n67 <= 'Z' ; + n68 <= 'Z' ; + n69 <= 'Z' ; + n70 <= 'Z' ; + n71 <= 'Z' ; + n72 <= 'Z' ; + n73 <= 'Z' ; + n74 <= 'Z' ; + n75 <= 'Z' ; + n76 <= 'Z' ; + n77 <= 'Z' ; + n78 <= 'Z' ; + n79 <= 'Z' ; + n80 <= 'Z' ; + n81 <= 'Z' ; + n82 <= 'Z' ; + n83 <= 'Z' ; + n84 <= 'Z' ; + n85 <= 'Z' ; + n86 <= 'Z' ; + n87 <= 'Z' ; + n88 <= 'Z' ; + n89 <= 'Z' ; + n90 <= 'Z' ; + n91 <= 'Z' ; + n92 <= 'Z' ; + n93 <= 'Z' ; + n94 <= 'Z' ; + n95 <= 'Z' ; + n96 <= 'Z' ; + n97 <= 'Z' ; + n98 <= 'Z' ; + n99 <= 'Z' ; + n100 <= 'Z' ; + n101 <= 'Z' ; + n112 <= 'Z' ; + rsl_inst: component sgmii_ecp5rsl_core port map (rui_rst=>rsl_rst,rui_serdes_rst_dual_c=>serdes_rst_dual_c, + rui_rst_dual_c=>rst_dual_c,rui_rsl_disable=>rsl_disable,rui_tx_ref_clk=>pll_refclki, + rui_tx_serdes_rst_c=>tx_serdes_rst_c,rui_tx_pcs_rst_c(3)=>n122, + rui_tx_pcs_rst_c(2)=>n122,rui_tx_pcs_rst_c(1)=>n122,rui_tx_pcs_rst_c(0)=>tx_pcs_rst_c, + rdi_pll_lol=>pll_lol_c,rui_rx_ref_clk=>rxrefclk,rui_rx_serdes_rst_c(3)=>n122, + rui_rx_serdes_rst_c(2)=>n122,rui_rx_serdes_rst_c(1)=>n122,rui_rx_serdes_rst_c(0)=>rx_serdes_rst_c, + rui_rx_pcs_rst_c(3)=>n122,rui_rx_pcs_rst_c(2)=>n122,rui_rx_pcs_rst_c(1)=>n122, + rui_rx_pcs_rst_c(0)=>rx_pcs_rst_c,rdi_rx_los_low_s(3)=>n122,rdi_rx_los_low_s(2)=>n122, + rdi_rx_los_low_s(1)=>n122,rdi_rx_los_low_s(0)=>rx_los_low_s_c, + rdi_rx_cdr_lol_s(3)=>n122,rdi_rx_cdr_lol_s(2)=>n122,rdi_rx_cdr_lol_s(1)=>n122, + rdi_rx_cdr_lol_s(0)=>rx_cdr_lol_s_c,rdo_serdes_rst_dual_c=>rsl_serdes_rst_dual_c, + rdo_rst_dual_c=>rsl_rst_dual_c,ruo_tx_rdy=>rsl_tx_rdy,rdo_tx_serdes_rst_c=>rsl_tx_serdes_rst_c, + rdo_tx_pcs_rst_c(3)=>n113,rdo_tx_pcs_rst_c(2)=>n114,rdo_tx_pcs_rst_c(1)=>n115, + rdo_tx_pcs_rst_c(0)=>rsl_tx_pcs_rst_c,ruo_rx_rdy=>rsl_rx_rdy,rdo_rx_serdes_rst_c(3)=>n116, + rdo_rx_serdes_rst_c(2)=>n117,rdo_rx_serdes_rst_c(1)=>n118,rdo_rx_serdes_rst_c(0)=>rsl_rx_serdes_rst_c, + rdo_rx_pcs_rst_c(3)=>n119,rdo_rx_pcs_rst_c(2)=>n120,rdo_rx_pcs_rst_c(1)=>\_Z\, + rdo_rx_pcs_rst_c(0)=>rsl_rx_pcs_rst_c); + n111 <= '1' ; + n110 <= '0' ; + n122 <= '0' ; + n121 <= '1' ; + n113 <= 'Z' ; + n114 <= 'Z' ; + n115 <= 'Z' ; + n116 <= 'Z' ; + n117 <= 'Z' ; + n118 <= 'Z' ; + n119 <= 'Z' ; + n120 <= 'Z' ; + \_Z\ <= 'Z' ; + sll_inst: component sgmii_ecp5sll_core port map (sli_rst=>sli_rst,sli_refclk=>pll_refclki, + sli_pclk=>tx_pclk_c,sli_div2_rate=>gnd,sli_div11_rate=>gnd,sli_gear_mode=>gnd, + sli_cpri_mode(2)=>gnd,sli_cpri_mode(1)=>gnd,sli_cpri_mode(0)=>gnd, + sli_pcie_mode=>gnd,slo_plol=>pll_lol_c); + n124 <= '1' ; + n123 <= '0' ; + gnd <= '0' ; + pwr <= '1' ; + +end architecture v1; + diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/sgmii_ecp5_ngd.asd b/gbe/cores/test_gbepcs/sgmii_ecp5/sgmii_ecp5_ngd.asd new file mode 100644 index 0000000..c265c78 --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/sgmii_ecp5_ngd.asd @@ -0,0 +1 @@ +[ActiveSupport NGD] diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v b/gbe/cores/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v new file mode 100644 index 0000000..69a023d --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v @@ -0,0 +1,2003 @@ + + +// =========================================================================== +// >>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< +// --------------------------------------------------------------------------- +// Copyright (c) 2016 by Lattice Semiconductor Corporation +// ALL RIGHTS RESERVED +// ------------------------------------------------------------------ +// +// Permission: +// +// Lattice SG Pte. Ltd. grants permission to use this code +// pursuant to the terms of the Lattice Reference Design License Agreement. +// +// +// Disclaimer: +// +// This VHDL or Verilog source code is intended as a design reference +// which illustrates how these types of functions can be implemented. +// It is the user's responsibility to verify their design for +// consistency and functionality through the use of formal +// verification methods. Lattice provides no warranty +// regarding the use or functionality of this code. +// +// --------------------------------------------------------------------------- +// +// Lattice SG Pte. Ltd. +// 101 Thomson Road, United Square #07-02 +// Singapore 307591 +// +// +// TEL: 1-800-Lattice (USA and Canada) +// +65-6631-2000 (Singapore) +// +1-503-268-8001 (other locations) +// +// web: http://www.latticesemi.com/ +// email: techsupport@latticesemi.com +// +// --------------------------------------------------------------------------- +// +// ============================================================================= +// FILE DETAILS +// Project : RSL- Reset Sequence Logic +// File : rsl_core.v +// Title : Top-level file for RSL +// Dependencies : 1. +// : 2. +// Description : +// ============================================================================= +// REVISION HISTORY +// Version : 1.0 +// Author(s) : BM +// Mod. Date : October 28, 2013 +// Changes Made : Initial Creation +// ----------------------------------------------------------------------------- +// Version : 1.1 +// Author(s) : BM +// Mod. Date : November 06, 2013 +// Changes Made : Tx/Rx separation, ready port code exclusion +// ----------------------------------------------------------------------------- +// Version : 1.2 +// Author(s) : BM +// Mod. Date : June 13, 2014 +// Changes Made : Updated Rx PCS reset method +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// Version : 1.3 +// Author(s) : UA +// Mod. Date : Dec 19, 2014 +// Changes Made : Added new parameter fro PCIE +// ----------------------------------------------------------------------------- +// Version : 1.31 +// Author(s) : BM/UM +// Mod. Date : Feb 23, 2016 +// Changes Made : Behavior of rx_rdy output modified. The output rx_rdy +// and the rx_rdy wait counter are reset to zero on +// LOL or LOS. Reverted back the counter value change for PCIE. +// ----------------------------------------------------------------------------- +// Version : 1.4 +// Author(s) : EB +// Mod. Date: : March 21, 2017 +// Changes Made : +// ----------------------------------------------------------------------------- +// Version : 1.5 +// Author(s) : ES +// Mod. Date: : May 8, 2017 +// Changes Made : Implemented common RSL behaviour as proposed by BM. +// ============================================================================= + +`timescale 1ns/10ps + +module sgmii_ecp5rsl_core ( + // ------------ Inputs + // Common + rui_rst, // Active high reset for the RSL module + rui_serdes_rst_dual_c, // SERDES macro reset user command + rui_rst_dual_c, // PCS dual reset user command + rui_rsl_disable, // Active high signal that disables all reset outputs of RSL + // Tx + rui_tx_ref_clk, // Tx reference clock + rui_tx_serdes_rst_c, // Tx SERDES reset user command + rui_tx_pcs_rst_c, // Tx lane reset user command + rdi_pll_lol, // Tx PLL Loss of Lock status input from the SERDES + // Rx + rui_rx_ref_clk, // Rx reference clock + rui_rx_serdes_rst_c, // SERDES Receive channel reset user command + rui_rx_pcs_rst_c, // Rx lane reset user command + rdi_rx_los_low_s, // Receive loss of signal status input from SERDES + rdi_rx_cdr_lol_s, // Receive CDR loss of lock status input from SERDES + + // ------------ Outputs + // Common + rdo_serdes_rst_dual_c, // SERDES macro reset command output + rdo_rst_dual_c, // PCS dual reset command output + // Tx + ruo_tx_rdy, // Tx lane ready status output + rdo_tx_serdes_rst_c, // SERDES Tx reset command output + rdo_tx_pcs_rst_c, // PCS Tx lane reset command output + // Rx + ruo_rx_rdy, // Rx lane ready status output + rdo_rx_serdes_rst_c, // SERDES Rx channel reset command output + rdo_rx_pcs_rst_c // PCS Rx lane reset command output + ); + +// ------------ Module parameters +`ifdef NUM_CHANNELS + parameter pnum_channels = `NUM_CHANNELS; // 1,2,4 +`else + parameter pnum_channels = 1; +`endif + +`ifdef PCIE + parameter pprotocol = "PCIE"; +`else + parameter pprotocol = ""; +`endif + +`ifdef RX_ONLY + parameter pserdes_mode = "RX ONLY"; +`else + `ifdef TX_ONLY + parameter pserdes_mode = "TX ONLY"; + `else + parameter pserdes_mode = "RX AND TX"; + `endif +`endif + +`ifdef PORT_TX_RDY + parameter pport_tx_rdy = "ENABLED"; +`else + parameter pport_tx_rdy = "DISABLED"; +`endif + +`ifdef WAIT_TX_RDY + parameter pwait_tx_rdy = `WAIT_TX_RDY; +`else + parameter pwait_tx_rdy = 3000; +`endif + +`ifdef PORT_RX_RDY + parameter pport_rx_rdy = "ENABLED"; +`else + parameter pport_rx_rdy = "DISABLED"; +`endif + +`ifdef WAIT_RX_RDY + parameter pwait_rx_rdy = `WAIT_RX_RDY; +`else + parameter pwait_rx_rdy = 3000; +`endif + +// ------------ Local parameters + localparam wa_num_cycles = 1024; + localparam dac_num_cycles = 3; + localparam lreset_pwidth = 3; // reset pulse width-1, default=4-1=3 + localparam lwait_b4_trst = 781250; // 5ms wait with worst-case Fmax=156 MHz + localparam lwait_b4_trst_s = 781; // for simulation + localparam lplol_cnt_width = 20; // width for lwait_b4_trst + localparam lwait_after_plol0 = 4; + localparam lwait_b4_rrst = 180224; // total calibration time + localparam lrrst_wait_width = 20; + localparam lwait_after_rrst = 800000; // For CPRI- unused + localparam lwait_b4_rrst_s = 460; // wait cycles provided by design team + localparam lrlol_cnt_width = 19; // width for lwait_b4_rrst + localparam lwait_after_lols = (16384 * dac_num_cycles) + wa_num_cycles; // 16384 cycles * dac_num_cycles + 1024 cycles + localparam lwait_after_lols_s = 150; // wait cycles provided by design team + localparam llols_cnt_width = 18; // lols count width + localparam lrdb_max = 15; // maximum debounce count + localparam ltxr_wait_width = 12; // width of tx ready wait counter + localparam lrxr_wait_width = 12; // width of tx ready wait counter + +// ------------ input ports + input rui_rst; + input rui_serdes_rst_dual_c; + input rui_rst_dual_c; + input rui_rsl_disable; + + input rui_tx_ref_clk; + input rui_tx_serdes_rst_c; + input [3:0] rui_tx_pcs_rst_c; + input rdi_pll_lol; + + input rui_rx_ref_clk; + input [3:0] rui_rx_serdes_rst_c; + input [3:0] rui_rx_pcs_rst_c; + input [3:0] rdi_rx_los_low_s; + input [3:0] rdi_rx_cdr_lol_s; + +// ------------ output ports + output rdo_serdes_rst_dual_c; + output rdo_rst_dual_c; + + output ruo_tx_rdy; + output rdo_tx_serdes_rst_c; + output [3:0] rdo_tx_pcs_rst_c; + + output ruo_rx_rdy; + output [3:0] rdo_rx_serdes_rst_c; + output [3:0] rdo_rx_pcs_rst_c; + +// ------------ Internal registers and wires + // inputs + wire rui_rst; + wire rui_serdes_rst_dual_c; + wire rui_rst_dual_c; + wire rui_rsl_disable; + wire rui_tx_ref_clk; + wire rui_tx_serdes_rst_c; + wire [3:0] rui_tx_pcs_rst_c; + wire rdi_pll_lol; + wire rui_rx_ref_clk; + wire [3:0] rui_rx_serdes_rst_c; + wire [3:0] rui_rx_pcs_rst_c; + wire [3:0] rdi_rx_los_low_s; + wire [3:0] rdi_rx_cdr_lol_s; + + // outputs + wire rdo_serdes_rst_dual_c; + wire rdo_rst_dual_c; + wire ruo_tx_rdy; + wire rdo_tx_serdes_rst_c; + wire [3:0] rdo_tx_pcs_rst_c; + wire ruo_rx_rdy; + wire [3:0] rdo_rx_serdes_rst_c; + wire [3:0] rdo_rx_pcs_rst_c; + + // internal signals + // common + wire rsl_enable; + wire [lplol_cnt_width-1:0] wait_b4_trst; + wire [lrlol_cnt_width-1:0] wait_b4_rrst; + wire [llols_cnt_width-1:0] wait_after_lols; + reg pll_lol_p1; + reg pll_lol_p2; + reg pll_lol_p3; + // ------------ Tx + // rdo_tx_serdes_rst_c + reg [lplol_cnt_width-1:0] plol_cnt; + wire plol_cnt_tc; + + reg [2:0] txs_cnt; + reg txs_rst; + wire txs_cnt_tc; + // rdo_tx_pcs_rst_c + wire plol_fedge; + wire plol_redge; + reg waita_plol0; + reg [2:0] plol0_cnt; + wire plol0_cnt_tc; + reg [2:0] txp_cnt; + reg txp_rst; + wire txp_cnt_tc; + // ruo_tx_rdy + wire dual_or_serd_rst; + wire tx_any_pcs_rst; + wire tx_any_rst; + reg txsr_appd /* synthesis syn_keep=1 */; + reg txdpr_appd; + reg [pnum_channels-1:0] txpr_appd; + reg txr_wt_en; + reg [ltxr_wait_width-1:0] txr_wt_cnt; + wire txr_wt_tc; + reg ruo_tx_rdyr; + + // ------------ Rx + wire comb_rlos; + wire comb_rlol; + //wire rlols; + wire rx_all_well; + + //reg rlols_p1; + //reg rlols_p2; + //reg rlols_p3; + + reg rlol_p1; + reg rlol_p2; + reg rlol_p3; + reg rlos_p1; + reg rlos_p2; + reg rlos_p3; + + //reg [3:0] rdb_cnt; + //wire rdb_cnt_max; + //wire rdb_cnt_zero; + //reg rlols_db; + //reg rlols_db_p1; + + reg [3:0] rlol_db_cnt; + wire rlol_db_cnt_max; + wire rlol_db_cnt_zero; + reg rlol_db; + reg rlol_db_p1; + + reg [3:0] rlos_db_cnt; + wire rlos_db_cnt_max; + wire rlos_db_cnt_zero; + reg rlos_db; + reg rlos_db_p1; + + // rdo_rx_serdes_rst_c + reg [lrlol_cnt_width-1:0] rlol1_cnt; + wire rlol1_cnt_tc; + reg [2:0] rxs_cnt; + reg rxs_rst; + wire rxs_cnt_tc; + reg [lrrst_wait_width-1:0] rrst_cnt; + wire rrst_cnt_tc; + reg rrst_wait; + // rdo_rx_pcs_rst_c + //wire rlols_fedge; + //wire rlols_redge; + wire rlol_fedge; + wire rlol_redge; + wire rlos_fedge; + wire rlos_redge; + + reg wait_calib; + reg waita_rlols0; + reg [llols_cnt_width-1:0] rlols0_cnt; + wire rlols0_cnt_tc; + reg [2:0] rxp_cnt; + reg rxp_rst; + wire rxp_cnt_tc; + + wire rx_any_serd_rst; + reg [llols_cnt_width-1:0] rlolsz_cnt; + wire rlolsz_cnt_tc; + reg [2:0] rxp_cnt2; + reg rxp_rst2; + wire rxp_cnt2_tc; + reg [15:0] data_loop_b_cnt; + reg data_loop_b; + wire data_loop_b_tc; + + // ruo_rx_rdy + reg [pnum_channels-1:0] rxsr_appd; + reg [pnum_channels-1:0] rxpr_appd; + reg rxsdr_appd /* synthesis syn_keep=1 */; + reg rxdpr_appd; + wire rxsdr_or_sr_appd; + wire dual_or_rserd_rst; + wire rx_any_pcs_rst; + wire rx_any_rst; + reg rxr_wt_en; + reg [lrxr_wait_width-1:0] rxr_wt_cnt; + wire rxr_wt_tc; + reg ruo_rx_rdyr; + +// ================================================================== +// Start of code +// ================================================================== + assign rsl_enable = ~rui_rsl_disable; + +// ------------ rdo_serdes_rst_dual_c + assign rdo_serdes_rst_dual_c = (rui_rst&rsl_enable) | rui_serdes_rst_dual_c; + +// ------------ rdo_rst_dual_c + assign rdo_rst_dual_c = rui_rst_dual_c; + +// ------------ Setting counter values for RSL_SIM_MODE + `ifdef RSL_SIM_MODE + assign wait_b4_trst = lwait_b4_trst_s; + assign wait_b4_rrst = lwait_b4_rrst_s; + assign wait_after_lols = lwait_after_lols_s; + `else + assign wait_b4_trst = lwait_b4_trst; + assign wait_b4_rrst = lwait_b4_rrst; + assign wait_after_lols = lwait_after_lols; + `endif + +// ================================================================== +// Tx +// ================================================================== + generate + if((pserdes_mode=="RX AND TX")||(pserdes_mode=="TX ONLY")) begin + +// ------------ Synchronizing pll_lol to the tx clock + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) begin + pll_lol_p1 <= 1'd0; + pll_lol_p2 <= 1'd0; + pll_lol_p3 <= 1'd0; + end + else begin + pll_lol_p1 <= rdi_pll_lol; + pll_lol_p2 <= pll_lol_p1; + pll_lol_p3 <= pll_lol_p2; + end + end + +// ------------ rdo_tx_serdes_rst_c + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) + plol_cnt <= 'd0; + else if((pll_lol_p2==0)||(plol_cnt_tc==1)||(rdo_tx_serdes_rst_c==1)) + plol_cnt <= 'd0; + else + plol_cnt <= plol_cnt+1; + end + assign plol_cnt_tc = (plol_cnt==wait_b4_trst)?1'b1:1'b0; + + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) begin + txs_cnt <= 'd0; // tx serdes reset pulse count + txs_rst <= 1'b0; // tx serdes reset + end + else if(plol_cnt_tc==1) + txs_rst <= 1'b1; + else if(txs_cnt_tc==1) begin + txs_cnt <= 'd0; + txs_rst <= 1'b0; + end + else if(txs_rst==1) + txs_cnt <= txs_cnt+1; + end + assign txs_cnt_tc = (txs_cnt==lreset_pwidth)?1'b1:1'b0; + + assign rdo_tx_serdes_rst_c = (rsl_enable&txs_rst)| rui_tx_serdes_rst_c; + +// ------------ rdo_tx_pcs_rst_c + assign plol_fedge = ~pll_lol_p2 & pll_lol_p3; + assign plol_redge = pll_lol_p2 & ~pll_lol_p3; + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) + waita_plol0 <= 1'd0; + else if(plol_fedge==1'b1) + waita_plol0 <= 1'b1; + else if((plol0_cnt_tc==1)||(plol_redge==1)) + waita_plol0 <= 1'd0; + end + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) + plol0_cnt <= 'd0; + else if((pll_lol_p2==1)||(plol0_cnt_tc==1)) + plol0_cnt <= 'd0; + else if(waita_plol0==1'b1) + plol0_cnt <= plol0_cnt+1; + end + assign plol0_cnt_tc = (plol0_cnt==lwait_after_plol0)?1'b1:1'b0; + + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) begin + txp_cnt <= 'd0; // tx serdes reset pulse count + txp_rst <= 1'b0; // tx serdes reset + end + else if(plol0_cnt_tc==1) + txp_rst <= 1'b1; + else if(txp_cnt_tc==1) begin + txp_cnt <= 'd0; + txp_rst <= 1'b0; + end + else if(txp_rst==1) + txp_cnt <= txp_cnt+1; + end + assign txp_cnt_tc = (txp_cnt==lreset_pwidth)?1'b1:1'b0; + + genvar i; + for(i=0;i>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< +// --------------------------------------------------------------------------- +// Copyright (c) 2015 by Lattice Semiconductor Corporation +// ALL RIGHTS RESERVED +// ------------------------------------------------------------------ +// +// Permission: +// +// Lattice SG Pte. Ltd. grants permission to use this code +// pursuant to the terms of the Lattice Reference Design License Agreement. +// +// +// Disclaimer: +// +// This VHDL or Verilog source code is intended as a design reference +// which illustrates how these types of functions can be implemented. +// It is the user's responsibility to verify their design for +// consistency and functionality through the use of formal +// verification methods. Lattice provides no warranty +// regarding the use or functionality of this code. +// +// --------------------------------------------------------------------------- +// +// Lattice SG Pte. Ltd. +// 101 Thomson Road, United Square #07-02 +// Singapore 307591 +// +// +// TEL: 1-800-Lattice (USA and Canada) +// +65-6631-2000 (Singapore) +// +1-503-268-8001 (other locations) +// +// web: http://www.latticesemi.com/ +// email: techsupport@latticesemi.com +// +// --------------------------------------------------------------------------- +// +// ============================================================================= +// FILE DETAILS +// Project : SLL - Soft Loss Of Lock(LOL) Logic +// File : sll_core.v +// Title : Top-level file for SLL +// Dependencies : 1. +// : 2. +// Description : +// ============================================================================= +// REVISION HISTORY +// Version : 1.0 +// Author(s) : AV +// Mod. Date : March 2, 2015 +// Changes Made : Initial Creation +// ============================================================================= +// REVISION HISTORY +// Version : 1.1 +// Author(s) : AV +// Mod. Date : June 8, 2015 +// Changes Made : Following updates were made +// : 1. Changed all the PLOL status logic and FSM to run +// : on sli_refclk. +// : 2. Added the HB logic for presence of tx_pclk +// : 3. Changed the lparam assignment scheme for +// : simulation purposes. +// ============================================================================= +// REVISION HISTORY +// Version : 1.2 +// Author(s) : AV +// Mod. Date : June 24, 2015 +// Changes Made : Updated the gearing logic for SDI dynamic rate change +// ============================================================================= +// REVISION HISTORY +// Version : 1.3 +// Author(s) : AV +// Mod. Date : July 14, 2015 +// Changes Made : Added the logic for dynamic rate change in CPRI +// ============================================================================= +// REVISION HISTORY +// Version : 1.4 +// Author(s) : AV +// Mod. Date : August 21, 2015 +// Changes Made : Added the logic for dynamic rate change of 5G CPRI & +// PCIe. +// ============================================================================= +// REVISION HISTORY +// Version : 1.5 +// Author(s) : ES/EB +// Mod. Date : March 21, 2017 +// Changes Made : 1. Added pdiff_sync signal to syncrhonize pcount_diff +// : to sli_refclk. +// : 2. Updated terminal count logic for PCIe 5G +// : 3. Modified checking of pcount_diff in SLL state +// : machine to cover actual count +// : (from 16-bits to 22-bits) +// ============================================================================= +// REVISION HISTORY +// Version : 1.6 +// Author(s) : ES +// Mod. Date : April 19, 2017 +// Changes Made : 1. Added registered lock and unlock signal from +// pdiff_sync to totally decouple pcount_diff from +// SLL state machine. +// : 2. Modified LPCLK_TC_4 to 1:1 clock ratio when CPRI +// is operating @ 4.9125Gbps data rate. +// ============================================================================= +`timescale 1ns/10ps + +module sgmii_ecp5sll_core ( + //Reset and Clock inputs + sli_rst, //Active high asynchronous reset input + sli_refclk, //Refclk input to the Tx PLL + sli_pclk, //Tx pclk output from the PCS + + //Control inputs + sli_div2_rate, //Divide by 2 control; 0 - Full rate; 1 - Half rate + sli_div11_rate, //Divide by 11 control; 0 - Full rate; 1 - Div by 11 + sli_gear_mode, //Gear mode control for PCS; 0 - 8/10; 1- 16/20 + sli_cpri_mode, //Mode of operation specific to CPRI protocol + sli_pcie_mode, //Mode of operation specific to PCIe mode (2.5G or 5G) + + //LOL Output + slo_plol //Tx PLL Loss of Lock output to the user logic + ); + +// Inputs +input sli_rst; +input sli_refclk; +input sli_pclk; +input sli_div2_rate; +input sli_div11_rate; +input sli_gear_mode; +input [2:0] sli_cpri_mode; +input sli_pcie_mode; + +// Outputs +output slo_plol; + + +// Parameters +parameter PPROTOCOL = "PCIE"; //Protocol selected by the User +parameter PLOL_SETTING = 0; //PLL LOL setting. Possible values are 0,1,2,3 +parameter PDYN_RATE_CTRL = "DISABLED"; //PCS Dynamic Rate control +parameter PPCIE_MAX_RATE = "2.5"; //PCIe max data rate +parameter PDIFF_VAL_LOCK = 20; //Differential count value for Lock +parameter PDIFF_VAL_UNLOCK = 39; //Differential count value for Unlock +parameter PPCLK_TC = 65535; //Terminal count value for counter running on sli_pclk +parameter PDIFF_DIV11_VAL_LOCK = 3; //Differential count value for Lock for SDI Div11 +parameter PDIFF_DIV11_VAL_UNLOCK = 3; //Differential count value for Unlock for SDI Div11 +parameter PPCLK_DIV11_TC = 2383; //Terminal count value (SDI Div11) for counter running on sli_pclk + + +// Local Parameters +localparam [1:0] LPLL_LOSS_ST = 2'b00; //PLL Loss state +localparam [1:0] LPLL_PRELOSS_ST = 2'b01; //PLL Pre-Loss state +localparam [1:0] LPLL_PRELOCK_ST = 2'b10; //PLL Pre-Lock state +localparam [1:0] LPLL_LOCK_ST = 2'b11; //PLL Lock state +`ifdef RSL_SIM_MODE +localparam [15:0] LRCLK_TC = 16'd63; //Terminal count value for counter running on sli_refclk +`else +localparam [15:0] LRCLK_TC = 16'd65535; //Terminal count value for counter running on sli_refclk +`endif +localparam [15:0] LRCLK_TC_PUL_WIDTH = 16'd50; //Pulse width for the Refclk terminal count pulse +localparam [7:0] LHB_WAIT_CNT = 8'd255; //Wait count for the Heartbeat signal + +// Local Parameters related to the CPRI dynamic modes +// Terminal count values for the four CPRI modes +localparam LPCLK_TC_0 = 32768; +localparam LPCLK_TC_1 = 65536; +localparam LPCLK_TC_2 = 131072; +localparam LPCLK_TC_3 = 163840; +localparam LPCLK_TC_4 = 65536; + +// Lock values count values for the four CPRI modes and four PLOL settings (4x5) +// CPRI rate mode 0 CPRI rate mode 1 CPRI rate mode 2 CPRI rate mode 3 CPRI rate mode 4 +localparam LPDIFF_LOCK_00 = 9; localparam LPDIFF_LOCK_10 = 19; localparam LPDIFF_LOCK_20 = 39; localparam LPDIFF_LOCK_30 = 49; localparam LPDIFF_LOCK_40 = 19; +localparam LPDIFF_LOCK_01 = 9; localparam LPDIFF_LOCK_11 = 19; localparam LPDIFF_LOCK_21 = 39; localparam LPDIFF_LOCK_31 = 49; localparam LPDIFF_LOCK_41 = 19; +localparam LPDIFF_LOCK_02 = 49; localparam LPDIFF_LOCK_12 = 98; localparam LPDIFF_LOCK_22 = 196; localparam LPDIFF_LOCK_32 = 245; localparam LPDIFF_LOCK_42 = 98; +localparam LPDIFF_LOCK_03 = 131; localparam LPDIFF_LOCK_13 = 262; localparam LPDIFF_LOCK_23 = 524; localparam LPDIFF_LOCK_33 = 655; localparam LPDIFF_LOCK_43 = 262; + +// Unlock values count values for the four CPRI modes and four PLOL settings (4x5) +// CPRI rate mode 0 CPRI rate mode 1 CPRI rate mode 2 CPRI rate mode 3 CPRI rate mode 4 +localparam LPDIFF_UNLOCK_00 = 19; localparam LPDIFF_UNLOCK_10 = 39; localparam LPDIFF_UNLOCK_20 = 78; localparam LPDIFF_UNLOCK_30 = 98; localparam LPDIFF_UNLOCK_40 = 39; +localparam LPDIFF_UNLOCK_01 = 65; localparam LPDIFF_UNLOCK_11 = 131; localparam LPDIFF_UNLOCK_21 = 262; localparam LPDIFF_UNLOCK_31 = 327; localparam LPDIFF_UNLOCK_41 = 131; +localparam LPDIFF_UNLOCK_02 = 72; localparam LPDIFF_UNLOCK_12 = 144; localparam LPDIFF_UNLOCK_22 = 288; localparam LPDIFF_UNLOCK_32 = 360; localparam LPDIFF_UNLOCK_42 = 144; +localparam LPDIFF_UNLOCK_03 = 196; localparam LPDIFF_UNLOCK_13 = 393; localparam LPDIFF_UNLOCK_23 = 786; localparam LPDIFF_UNLOCK_33 = 983; localparam LPDIFF_UNLOCK_43 = 393; + +// Input and Output reg and wire declarations +wire sli_rst; +wire sli_refclk; +wire sli_pclk; +wire sli_div2_rate; +wire sli_div11_rate; +wire sli_gear_mode; +wire [2:0] sli_cpri_mode; +wire sli_pcie_mode; +wire slo_plol; + +//-------------- Internal signals reg and wire declarations -------------------- + +//Signals running on sli_refclk +reg [15:0] rcount; //16-bit Counter +reg rtc_pul; //Terminal count pulse +reg rtc_pul_p1; //Terminal count pulse pipeline +reg rtc_ctrl; //Terminal count pulse control + +reg [7:0] rhb_wait_cnt; //Heartbeat wait counter + +//Heatbeat synchronization and pipeline registers +wire rhb_sync; +reg rhb_sync_p2; +reg rhb_sync_p1; + +//Pipeling registers for dynamic control mode +wire rgear; +wire rdiv2; +wire rdiv11; +reg rgear_p1; +reg rdiv2_p1; +reg rdiv11_p1; + +reg rstat_pclk; //Pclk presence/absence status + +reg [21:0] rcount_tc; //Tx_pclk terminal count register +reg [15:0] rdiff_comp_lock; //Differential comparison value for Lock +reg [15:0] rdiff_comp_unlock; //Differential compariosn value for Unlock + +wire rpcie_mode; //PCIe mode signal synchronized to refclk +reg rpcie_mode_p1; //PCIe mode pipeline register + +wire rcpri_mod_ch_sync; //CPRI mode change synchronized to refclk +reg rcpri_mod_ch_p1; //CPRI mode change pipeline register +reg rcpri_mod_ch_p2; //CPRI mode change pipeline register +reg rcpri_mod_ch_st; //CPRI mode change status + +reg [1:0] sll_state; //Current-state register for LOL FSM + +reg pll_lock; //PLL Lock signal + +//Signals running on sli_pclk +//Synchronization and pipeline registers +wire ppul_sync; +reg ppul_sync_p1; +reg ppul_sync_p2; +reg ppul_sync_p3; + +wire pdiff_sync; +reg pdiff_sync_p1; + +reg [21:0] pcount; //22-bit counter +reg [21:0] pcount_diff; //Differential value between Tx_pclk counter and theoritical value + +//Heartbeat counter and heartbeat signal running on pclk +reg [2:0] phb_cnt; +reg phb; + +//CPRI dynamic mode releated signals +reg [2:0] pcpri_mode; +reg pcpri_mod_ch; + +//Assignment scheme changed mainly for simulation purpose +wire [15:0] LRCLK_TC_w; +assign LRCLK_TC_w = LRCLK_TC; + +reg unlock; +reg lock; + +//Heartbeat synchronization +sync # (.PDATA_RST_VAL(0)) phb_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (phb), + .data_out(rhb_sync) + ); + + +//Terminal count pulse synchronization +sync # (.PDATA_RST_VAL(0)) rtc_sync_inst ( + .clk (sli_pclk), + .rst (sli_rst), + .data_in (rtc_pul), + .data_out(ppul_sync) + ); + +//Differential value logic update synchronization +sync # (.PDATA_RST_VAL(0)) pdiff_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (ppul_sync), + .data_out(pdiff_sync) + ); + +//Gear mode synchronization +sync # (.PDATA_RST_VAL(0)) gear_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (sli_gear_mode), + .data_out(rgear) + ); + +//Div2 synchronization +sync # (.PDATA_RST_VAL(0)) div2_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (sli_div2_rate), + .data_out(rdiv2) + ); + +//Div11 synchronization +sync # (.PDATA_RST_VAL(0)) div11_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (sli_div11_rate), + .data_out(rdiv11) + ); + +//CPRI mode change synchronization +sync # (.PDATA_RST_VAL(0)) cpri_mod_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (pcpri_mod_ch), + .data_out(rcpri_mod_ch_sync) + ); + +//PCIe mode change synchronization +sync # (.PDATA_RST_VAL(0)) pcie_mod_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (sli_pcie_mode), + .data_out(rpcie_mode) + ); + +// ============================================================================= +// Synchronized Lock/Unlock signals +// ============================================================================= +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + unlock <= 1'b0; + lock <= 1'b0; + pdiff_sync_p1 <= 1'b0; + end + else begin + pdiff_sync_p1 <= pdiff_sync; + if (unlock) begin + unlock <= ~pdiff_sync && pdiff_sync_p1 ? 1'b0 : unlock; + end + else begin + unlock <= pdiff_sync ? (pcount_diff[21:0] > {6'd0, rdiff_comp_unlock}) : 1'b0; + end + if (lock) begin + lock <= ~pdiff_sync && pdiff_sync_p1 ? 1'b0 : lock; + end + else begin + lock <= pdiff_sync ? (pcount_diff[21:0] <= {6'd0, rdiff_comp_lock}) : 1'b0; + end + end +end + +// ============================================================================= +// Refclk Counter, pulse generation logic and Heartbeat monitor logic +// ============================================================================= +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rcount <= 16'd0; + rtc_pul <= 1'b0; + rtc_ctrl <= 1'b0; + rtc_pul_p1 <= 1'b0; + end + else begin + //Counter logic + if ((rgear_p1^rgear == 1'b1) || (rdiv2_p1^rdiv2 == 1'b1) || (rdiv11_p1^rdiv11 == 1'b1) || (rcpri_mod_ch_p1^rcpri_mod_ch_p2 == 1'b1) || (rpcie_mode_p1^rpcie_mode == 1'b1)) begin + if (rtc_ctrl == 1'b1) begin + rcount <= LRCLK_TC_PUL_WIDTH; + end + end + else begin + if (rcount != LRCLK_TC_w) begin + rcount <= rcount + 1; + end + else begin + rcount <= 16'd0; + end + end + + //Pulse control logic + if (rcount == LRCLK_TC_w - 1) begin + rtc_ctrl <= 1'b1; + end + + //Pulse Generation logic + if (rtc_ctrl == 1'b1) begin + if ((rcount == LRCLK_TC_w) || (rcount < LRCLK_TC_PUL_WIDTH)) begin + rtc_pul <= 1'b1; + end + else begin + rtc_pul <= 1'b0; + end + end + + rtc_pul_p1 <= rtc_pul; + end +end + + +// ============================================================================= +// Heartbeat synchronization & monitor logic and Dynamic mode pipeline logic +// ============================================================================= +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rhb_sync_p1 <= 1'b0; + rhb_sync_p2 <= 1'b0; + rhb_wait_cnt <= 8'd0; + rstat_pclk <= 1'b0; + rgear_p1 <= 1'b0; + rdiv2_p1 <= 1'b0; + rdiv11_p1 <= 1'b0; + rcpri_mod_ch_p1 <= 1'b0; + rcpri_mod_ch_p2 <= 1'b0; + rcpri_mod_ch_st <= 1'b0; + rpcie_mode_p1 <= 1'b0; + + end + else begin + //Pipeline stages for the Heartbeat + rhb_sync_p1 <= rhb_sync; + rhb_sync_p2 <= rhb_sync_p1; + + //Pipeline stages of the Dynamic rate control signals + rgear_p1 <= rgear; + rdiv2_p1 <= rdiv2; + rdiv11_p1 <= rdiv11; + + //Pipeline stage for PCIe mode + rpcie_mode_p1 <= rpcie_mode; + + //Pipeline stage for CPRI mode change + rcpri_mod_ch_p1 <= rcpri_mod_ch_sync; + rcpri_mod_ch_p2 <= rcpri_mod_ch_p1; + + //CPRI mode change status logic + if (rcpri_mod_ch_p1^rcpri_mod_ch_sync == 1'b1) begin + rcpri_mod_ch_st <= 1'b1; + end + + //Heartbeat wait counter and monitor logic + if (rtc_ctrl == 1'b1) begin + if (rhb_sync_p1 == 1'b1 && rhb_sync_p2 == 1'b0) begin + rhb_wait_cnt <= 8'd0; + rstat_pclk <= 1'b1; + end + else if (rhb_wait_cnt == LHB_WAIT_CNT) begin + rhb_wait_cnt <= 8'd0; + rstat_pclk <= 1'b0; + end + else begin + rhb_wait_cnt <= rhb_wait_cnt + 1; + end + end + end +end + + +// ============================================================================= +// Pipleline registers for the TC pulse and CPRI mode change logic +// ============================================================================= +always @(posedge sli_pclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + ppul_sync_p1 <= 1'b0; + ppul_sync_p2 <= 1'b0; + ppul_sync_p3 <= 1'b0; + pcpri_mode <= 3'b0; + pcpri_mod_ch <= 1'b0; + end + else begin + ppul_sync_p1 <= ppul_sync; + ppul_sync_p2 <= ppul_sync_p1; + ppul_sync_p3 <= ppul_sync_p2; + + //CPRI mode change logic + pcpri_mode <= sli_cpri_mode; + + if (pcpri_mode != sli_cpri_mode) begin + pcpri_mod_ch <= ~pcpri_mod_ch; + end + end +end + + +// ============================================================================= +// Terminal count logic +// ============================================================================= + +//For SDI protocol with Dynamic rate control enabled +generate +if ((PDYN_RATE_CTRL == "ENABLED") && (PPROTOCOL == "SDI")) begin +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rcount_tc <= 22'd0; + rdiff_comp_lock <= 16'd0; + rdiff_comp_unlock <= 16'd0; + end + else begin + //Terminal count logic + //Div by 11 is enabled + if (rdiv11 == 1'b1) begin + //Gear mode is 16/20 + if (rgear == 1'b1) begin + rcount_tc <= PPCLK_DIV11_TC; + rdiff_comp_lock <= PDIFF_DIV11_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_DIV11_VAL_UNLOCK; + end + else begin + rcount_tc <= {PPCLK_DIV11_TC[20:0], 1'b0}; + rdiff_comp_lock <= {PDIFF_DIV11_VAL_LOCK[14:0], 1'b0}; + rdiff_comp_unlock <= {PDIFF_DIV11_VAL_UNLOCK[14:0], 1'b0}; + end + end + //Div by 2 is enabled + else if (rdiv2 == 1'b1) begin + //Gear mode is 16/20 + if (rgear == 1'b1) begin + rcount_tc <= {1'b0,PPCLK_TC[21:1]}; + rdiff_comp_lock <= {1'b0,PDIFF_VAL_LOCK[15:1]}; + rdiff_comp_unlock <= {1'b0,PDIFF_VAL_UNLOCK[15:1]}; + end + else begin + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end + end + //Both div by 11 and div by 2 are disabled + else begin + //Gear mode is 16/20 + if (rgear == 1'b1) begin + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end + else begin + rcount_tc <= {PPCLK_TC[20:0],1'b0}; + rdiff_comp_lock <= {PDIFF_VAL_LOCK[14:0],1'b0}; + rdiff_comp_unlock <= {PDIFF_VAL_UNLOCK[14:0],1'b0}; + end + end + end +end +end +endgenerate + +//For G8B10B protocol with Dynamic rate control enabled +generate +if ((PDYN_RATE_CTRL == "ENABLED") && (PPROTOCOL == "G8B10B")) begin +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rcount_tc <= 22'd0; + rdiff_comp_lock <= 16'd0; + rdiff_comp_unlock <= 16'd0; + end + else begin + //Terminal count logic + //Div by 2 is enabled + if (rdiv2 == 1'b1) begin + rcount_tc <= {1'b0,PPCLK_TC[21:1]}; + rdiff_comp_lock <= {1'b0,PDIFF_VAL_LOCK[15:1]}; + rdiff_comp_unlock <= {1'b0,PDIFF_VAL_UNLOCK[15:1]}; + end + else begin + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end + end +end +end +endgenerate + + +//For CPRI protocol with Dynamic rate control is disabled +generate +if ((PDYN_RATE_CTRL == "DISABLED") && (PPROTOCOL == "CPRI")) begin +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rcount_tc <= 22'd0; + rdiff_comp_lock <= 16'd0; + rdiff_comp_unlock <= 16'd0; + end + else begin + //Terminal count logic for CPRI protocol + //Only if there is a change in the rate mode from the default + if (rcpri_mod_ch_st == 1'b1) begin + if (rcpri_mod_ch_p1^rcpri_mod_ch_p2 == 1'b1) begin + case(sli_cpri_mode) + 3'd0 : begin //For 0.6Gbps + rcount_tc <= LPCLK_TC_0; + case(PLOL_SETTING) + 'd0 : begin + rdiff_comp_lock <= LPDIFF_LOCK_00; + rdiff_comp_unlock <= LPDIFF_UNLOCK_00; + end + + 'd1 : begin + rdiff_comp_lock <= LPDIFF_LOCK_01; + rdiff_comp_unlock <= LPDIFF_UNLOCK_01; + end + + 'd2 : begin + rdiff_comp_lock <= LPDIFF_LOCK_02; + rdiff_comp_unlock <= LPDIFF_UNLOCK_02; + end + + 'd3 : begin + rdiff_comp_lock <= LPDIFF_LOCK_03; + rdiff_comp_unlock <= LPDIFF_UNLOCK_03; + end + + default : begin + rdiff_comp_lock <= LPDIFF_LOCK_00; + rdiff_comp_unlock <= LPDIFF_UNLOCK_00; + end + endcase + end + + 3'd1 : begin //For 1.2Gbps + rcount_tc <= LPCLK_TC_1; + case(PLOL_SETTING) + 'd0 : begin + rdiff_comp_lock <= LPDIFF_LOCK_10; + rdiff_comp_unlock <= LPDIFF_UNLOCK_10; + end + + 'd1 : begin + rdiff_comp_lock <= LPDIFF_LOCK_11; + rdiff_comp_unlock <= LPDIFF_UNLOCK_11; + end + + 'd2 : begin + rdiff_comp_lock <= LPDIFF_LOCK_12; + rdiff_comp_unlock <= LPDIFF_UNLOCK_12; + end + + 'd3 : begin + rdiff_comp_lock <= LPDIFF_LOCK_13; + rdiff_comp_unlock <= LPDIFF_UNLOCK_13; + end + + default : begin + rdiff_comp_lock <= LPDIFF_LOCK_10; + rdiff_comp_unlock <= LPDIFF_UNLOCK_10; + end + endcase + end + + 3'd2 : begin //For 2.4Gbps + rcount_tc <= LPCLK_TC_2; + case(PLOL_SETTING) + 'd0 : begin + rdiff_comp_lock <= LPDIFF_LOCK_20; + rdiff_comp_unlock <= LPDIFF_UNLOCK_20; + end + + 'd1 : begin + rdiff_comp_lock <= LPDIFF_LOCK_21; + rdiff_comp_unlock <= LPDIFF_UNLOCK_21; + end + + 'd2 : begin + rdiff_comp_lock <= LPDIFF_LOCK_22; + rdiff_comp_unlock <= LPDIFF_UNLOCK_22; + end + + 'd3 : begin + rdiff_comp_lock <= LPDIFF_LOCK_23; + rdiff_comp_unlock <= LPDIFF_UNLOCK_23; + end + + default : begin + rdiff_comp_lock <= LPDIFF_LOCK_20; + rdiff_comp_unlock <= LPDIFF_UNLOCK_20; + end + endcase + end + + 3'd3 : begin //For 3.07Gbps + rcount_tc <= LPCLK_TC_3; + case(PLOL_SETTING) + 'd0 : begin + rdiff_comp_lock <= LPDIFF_LOCK_30; + rdiff_comp_unlock <= LPDIFF_UNLOCK_30; + end + + 'd1 : begin + rdiff_comp_lock <= LPDIFF_LOCK_31; + rdiff_comp_unlock <= LPDIFF_UNLOCK_31; + end + + 'd2 : begin + rdiff_comp_lock <= LPDIFF_LOCK_32; + rdiff_comp_unlock <= LPDIFF_UNLOCK_32; + end + + 'd3 : begin + rdiff_comp_lock <= LPDIFF_LOCK_33; + rdiff_comp_unlock <= LPDIFF_UNLOCK_33; + end + endcase + end + + 3'd4 : begin //For 4.9125bps + rcount_tc <= LPCLK_TC_4; + case(PLOL_SETTING) + 'd0 : begin + rdiff_comp_lock <= LPDIFF_LOCK_40; + rdiff_comp_unlock <= LPDIFF_UNLOCK_40; + end + + 'd1 : begin + rdiff_comp_lock <= LPDIFF_LOCK_41; + rdiff_comp_unlock <= LPDIFF_UNLOCK_41; + end + + 'd2 : begin + rdiff_comp_lock <= LPDIFF_LOCK_42; + rdiff_comp_unlock <= LPDIFF_UNLOCK_42; + end + + 'd3 : begin + rdiff_comp_lock <= LPDIFF_LOCK_43; + rdiff_comp_unlock <= LPDIFF_UNLOCK_43; + end + + default : begin + rdiff_comp_lock <= LPDIFF_LOCK_40; + rdiff_comp_unlock <= LPDIFF_UNLOCK_40; + end + endcase + end + + default : begin + rcount_tc <= LPCLK_TC_0; + rdiff_comp_lock <= LPDIFF_LOCK_00; + rdiff_comp_unlock <= LPDIFF_UNLOCK_00; + end + endcase + end + end + else begin + //If there is no change in the CPRI rate mode from default + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end + end +end +end +endgenerate + +//For PCIe protocol with Dynamic rate control disabled +generate +if ((PDYN_RATE_CTRL == "DISABLED") && (PPROTOCOL == "PCIE")) begin +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rcount_tc <= 22'd0; + rdiff_comp_lock <= 16'd0; + rdiff_comp_unlock <= 16'd0; + end + else begin + //Terminal count logic + if (PPCIE_MAX_RATE == "2.5") begin + //2.5G mode is enabled + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end + else begin + //5G mode is enabled + if (rpcie_mode == 1'b1) begin + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end + else begin + //2.5G mode is enabled + rcount_tc <= {1'b0,PPCLK_TC[21:1]}; + rdiff_comp_lock <= {1'b0,PDIFF_VAL_LOCK[15:1]}; + rdiff_comp_unlock <= {1'b0,PDIFF_VAL_UNLOCK[15:1]}; + end + end + end +end +end +endgenerate + +//For all protocols other than CPRI & PCIe +generate +if ((PDYN_RATE_CTRL == "DISABLED") && ((PPROTOCOL != "CPRI") && (PPROTOCOL != "PCIE"))) begin +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rcount_tc <= 22'd0; + rdiff_comp_lock <= 16'd0; + rdiff_comp_unlock <= 16'd0; + end + else begin + //Terminal count logic for all protocols other than CPRI & PCIe + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end +end +end +endgenerate + + +// ============================================================================= +// Tx_pclk counter, Heartbeat and Differential value logic +// ============================================================================= +always @(posedge sli_pclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + pcount <= 22'd0; + pcount_diff <= 22'd65535; + phb_cnt <= 3'd0; + phb <= 1'b0; + end + else begin + //Counter logic + if (ppul_sync_p1 == 1'b1 && ppul_sync_p2 == 1'b0) begin + pcount <= 22'd0; + end + else begin + pcount <= pcount + 1; + end + + //Heartbeat logic + phb_cnt <= phb_cnt + 1; + + if ((phb_cnt < 3'd4) && (phb_cnt >= 3'd0)) begin + phb <= 1'b1; + end + else begin + phb <= 1'b0; + end + + //Differential value logic + if (ppul_sync_p1 == 1'b1 && ppul_sync_p2 == 1'b0) begin + pcount_diff <= rcount_tc + ~(pcount) + 1; + end + else if (ppul_sync_p2 == 1'b1 && ppul_sync_p3 == 1'b0) begin + if (pcount_diff[21] == 1'b1) begin + pcount_diff <= ~(pcount_diff) + 1; + end + end + end +end + + +// ============================================================================= +// State transition logic for SLL FSM +// ============================================================================= +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + sll_state <= LPLL_LOSS_ST; + end + else begin + //Reasons to declare an immediate loss - Absence of Tx_pclk, Dynamic rate change for SDI or CPRI + if ((rstat_pclk == 1'b0) || (rgear_p1^rgear == 1'b1) || (rdiv2_p1^rdiv2 == 1'b1) || + (rdiv11_p1^rdiv11 == 1'b1) || (rcpri_mod_ch_p1^rcpri_mod_ch_p2 == 1'b1) || (rpcie_mode_p1^rpcie_mode == 1'b1)) begin + sll_state <= LPLL_LOSS_ST; + end + else begin + case(sll_state) + LPLL_LOSS_ST : begin + if (rtc_pul_p1 == 1'b1 && rtc_pul == 1'b0) begin + if (unlock) begin + sll_state <= LPLL_LOSS_ST; + end + else if (lock) begin + if (PLOL_SETTING == 2'd0) begin + sll_state <= LPLL_PRELOCK_ST; + end + else begin + sll_state <= LPLL_LOCK_ST; + end + end + end + end + + LPLL_LOCK_ST : begin + if (rtc_pul_p1 == 1'b1 && rtc_pul == 1'b0) begin + if (lock) begin + sll_state <= LPLL_LOCK_ST; + end + else begin + if (PLOL_SETTING == 2'd0) begin + sll_state <= LPLL_LOSS_ST; + end + else begin + sll_state <= LPLL_PRELOSS_ST; + end + end + end + end + + LPLL_PRELOCK_ST : begin + if (rtc_pul_p1 == 1'b1 && rtc_pul == 1'b0) begin + if (lock) begin + sll_state <= LPLL_LOCK_ST; + end + else begin + sll_state <= LPLL_PRELOSS_ST; + end + end + end + + LPLL_PRELOSS_ST : begin + if (rtc_pul_p1 == 1'b1 && rtc_pul == 1'b0) begin + if (unlock) begin + sll_state <= LPLL_PRELOSS_ST; + end + else if (lock) begin + sll_state <= LPLL_LOCK_ST; + end + end + end + + default: begin + sll_state <= LPLL_LOSS_ST; + end + endcase + end + end +end + + +// ============================================================================= +// Logic for Tx PLL Lock +// ============================================================================= +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + pll_lock <= 1'b0; + end + else begin + case(sll_state) + LPLL_LOSS_ST : begin + pll_lock <= 1'b0; + end + + LPLL_LOCK_ST : begin + pll_lock <= 1'b1; + end + + LPLL_PRELOSS_ST : begin + pll_lock <= 1'b0; + end + + default: begin + pll_lock <= 1'b0; + end + endcase + end +end + +assign slo_plol = ~(pll_lock); + +endmodule + + +// =========================================================================== +// >>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< +// --------------------------------------------------------------------------- +// Copyright (c) 2015 by Lattice Semiconductor Corporation +// ALL RIGHTS RESERVED +// ------------------------------------------------------------------ +// +// Permission: +// +// Lattice SG Pte. Ltd. grants permission to use this code +// pursuant to the terms of the Lattice Reference Design License Agreement. +// +// +// Disclaimer: +// +// This VHDL or Verilog source code is intended as a design reference +// which illustrates how these types of functions can be implemented. +// It is the user's responsibility to verify their design for +// consistency and functionality through the use of formal +// verification methods. Lattice provides no warranty +// regarding the use or functionality of this code. +// +// --------------------------------------------------------------------------- +// +// Lattice SG Pte. Ltd. +// 101 Thomson Road, United Square #07-02 +// Singapore 307591 +// +// +// TEL: 1-800-Lattice (USA and Canada) +// +65-6631-2000 (Singapore) +// +1-503-268-8001 (other locations) +// +// web: http://www.latticesemi.com/ +// email: techsupport@latticesemi.com +// +// --------------------------------------------------------------------------- +// +// ============================================================================= +// FILE DETAILS +// Project : Synchronizer Logic +// File : sync.v +// Title : Synchronizer module +// Description : +// ============================================================================= +// REVISION HISTORY +// Version : 1.0 +// Author(s) : AV +// Mod. Date : July 7, 2015 +// Changes Made : Initial Creation +// ----------------------------------------------------------------------------- +// Version : 1.1 +// Author(s) : EB +// Mod. Date : March 21, 2017 +// Changes Made : +// ============================================================================= + +`ifndef PCS_SYNC_MODULE +`define PCS_SYNC_MODULE +module sync ( + clk, + rst, + data_in, + data_out + ); + +input clk; //Clock in which the async data needs to be synchronized to +input rst; //Active high reset +input data_in; //Asynchronous data +output data_out; //Synchronized data + +parameter PDATA_RST_VAL = 0; //Reset value for the registers + +reg data_p1; +reg data_p2; + +// ============================================================================= +// Synchronization logic +// ============================================================================= +always @(posedge clk or posedge rst) begin + if (rst == 1'b1) begin + data_p1 <= PDATA_RST_VAL; + data_p2 <= PDATA_RST_VAL; + end + else begin + data_p1 <= data_in; + data_p2 <= data_p1; + end +end + +assign data_out = data_p2; + +endmodule +`endif + diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/.recordref b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/.recordref new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/_CMD_.CML b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/_CMD_.CML new file mode 100644 index 0000000..9b9aad5 --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/_CMD_.CML @@ -0,0 +1 @@ + -osyn /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.srs -top sgmii_ecp5 -hdllog /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_compiler.srr -encrypt -mp 4 -verification_mode 0 -vhdl -prodtype synplify_pro -dspmac -fixsmult -infer_seqShift -nram -sdff_counter -divnmod -nostructver -encrypt -pro -dmgen /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/dm -lite -ui -fid2 -ram -sharing on -ll 2000 -autosm -ignore_undefined_lib -lib work /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5.vhd -verilog -prodtype synplify_pro -dspmac -fixsmult -infer_seqShift -nram -sdff_counter -divnmod -nostructver -I /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/ -I /home/soft/lattice/diamond/3.10_x64/synpbase/lib -v2001 -devicelib /home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v -devicelib /home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v -encrypt -pro -dmgen /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/dm -ui -fid2 -ram -sharing on -ll 2000 -autosm -lib work /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v -jobname "compiler" \ No newline at end of file diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/_cmd._cml b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/_cmd._cml new file mode 100644 index 0000000..369b52b --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/_cmd._cml @@ -0,0 +1 @@ +-link -encrypt -top sgmii_ecp5 -osyn /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.srs /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/synwork/layer0.srs /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/synwork/layer1.srs \ No newline at end of file diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/dm/layer0.xdm b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/dm/layer0.xdm new file mode 100644 index 0000000..44e72f3 --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/dm/layer0.xdm @@ -0,0 +1,551 @@ +%%% protect protected_file +@EG +- +]17p0Osk0CksRsPC#MHF=3"4j +"> +!S<-1-RFOksCHRVDRC#O0FMskHL0oHMRR0F0REC8HC#o-MR-S> +S +SS1SS1SS +SS1SS1SS1S +SF<1kCsOR"b=/lEFCF/#VD0/NH00O8C/HFNlMd8/3_4jG/nc#b$MLCN#/LDH/8PE/bE$CMsC0P#3ER8"N(=""=RD"8PEDO"RD0H#=4"-"DRbH=#0""-4/S> +SF<1kCsOR"b=/lEFC8/NsMHN/0oH/L0s6/#O0bClDCN0/Fbs[0CO/#0C0L_oC#bO/l#oHCH_O/b6#HolHO_CbP63ER8"NU=""=RD"8PEDO"RD0H#=4"-"DRbH=#0""-4/S> +SF<1kCsOR"b=/lEFCF/#VD0/NH00O8C/HFNlMd8/3_4jG/nc#b$MLCN#/LDH/ODkC/M0C6ObkPl3ER8"Ng=""=RD"8PEDO"RD0H#=4"-"DRbH=#0""-4/S> + + +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMI="F3s #HolHO_CbD6#DF_Os#C3$LM_D NO_GLF"=RD"8PED +">SWSSqS +SRS +S"/ +S +SS +S +SR +SR +SR +SR"/ + +SRS +S +SR"/ +SuSS +S +SRS +SS +SS +S + + + +/S<7>CV +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMI="F3s #HolHO_Cb#6sDF_Os#C3$LM_D NO_GLF"=RD"8PED +">SWSS +S"/ +SqS +SRSqSSqS"/ +"/ +S +SS +S +SR +SR"/ +S +S"/ +SqSSqSSqS +/S<7>CV +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMC="Okb6lB37z#q3$LM_D NO_GLF"=RD"8PED +">SWSS +S"/ +SqS +SRSqSS +SSqSS +SSuSS +SSuSS +SSuS"/ + +SR +SR +SR"/ +S +S +SR +SR"/ +"/ +S +S"/ + +SR +SR +SRSuS"/ +S +S +SR +SR +SR"/ + +SR"/ + +SRSuS"/ +SuS +SR +SR +SR +SR +SRSuS"/ +S +S +SR"/ + +SR +SR +SR +SR +SRS +S"/ +SuS +SR"/ + +SR"/ + +SRS +S"/ +S +S +SR"/ + +SRS +S"/ + +SR"/ + +SR"/ +S +S +SRSuSS +S"/ +SuS +SR +SR +SR"/ +S +S +SRSuS"/ +"/ +"/ +"/ +"/ +S +S +SR"/ +"/ +"/ +SuS +SR +SR +SR"/ + +SR +SR +SRSuS"/ +S +S +SR +SR +SR +SR +SRS +S"/ +"/ +"/ +SuS +SR"/ + +SRSuS"/ + +SR"/ +SuS +SRS +S"/ +SuS +SRSuS"/ +S +S +SRS +S"/ +S +S +SRSuS"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ + +SR"/ +S +S +SRSuS"/ +SuS +SR +SR +SR +SR +SRSuS"/ +S +S +SRS +S"/ +"/ +"/ +SuS +SR"/ + +SR +SR +SR +SR +SRS +S"/ +SuS +SRS +S"/ +SuS +SRS +S"/ +"/ +"/ +SuS +SRS +S"/ +"/ +"/ +SuS +SRS +S"/ +SuS +SR"/ + +SRSuS"/ + +SR"/ +SuS +SRS +S"/ +SuS +SRSuS"/ +S +S +SRSuS"/ +"/ +"/ +"/ +"/ + +SR"/ +S +S +SRS +S"/ + +SR"/ + +SR"/ +"/ +"/ +S +S +SR"/ + +SR +SR +SRSuSSuSSuS +SR"/ + +SR"/ +"/ +SuS +SRS +S"/ +SqS"/ +"/ +"/ +SqSSqSSqSSqS + + + +/S<7>CV +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMI="F3s #HolHO_CbP634D"R=E"P8>D" +S +S"/ +S +SS +SS +S"/ + +SRS +S + + + + +SC<)V=RM"bCO63kl7qBz3M#$_NLDOL _FRG"H7="B_zjH0M#"S> +SWS +SqSS +SSR +SqSS +SqSS +SSR"/ +SSSS"/ +SSS +SqSS +SSRS +SqS +SqS +SqSSSS +SSR +SqS +SqS"/ +SSS +SqSS +SSR +SqS"/ +SSS"/ +SSS"/ +SSSS +SSR +SqS"/ +SSSS +SqSS +SSRS"/ +SSS +SqSS +SSR"/ +SSSSS +SqSS +SSR +SqSS"/ +SSSS +SSR +SqSSS +SSRSS +SqSS +SqS"/ +SSSS +SSRS +SSRS +SSR"/ +SSSS +SSRS +SqS +SqSS"/ +SSSS +SSR +SqSS"/ +SSS +SqS"/ +SSSS +SSR +SqSS"/ +SSS +SqSS +SqSS"/ +SSSS +SSRS +SSR"/ +SSS +SqSSS +SSR"/ +SSS"/ +SSSSSS"/ +SSSS +SSRS +SSR"/ +SSSS +SSR"/ +SSS +SqS +SqSS +SSRS +SSRS"/ +SSS +SqSS"/ +SSS"/ +SSS"/ +SSSS +SSR"/ +SSS +SqSS +SSR"/ +SSSS +SqSS +SSR"/ +SSSS +SSRSS"/ +SSSS"/ +SSS +SqSS +SSRS +SqSS"/ +SSSS"/ +SSS +SqS"/ +SSS"/ +SSSS +SSR +SqS +SqS"/ +SSSS +SqS"/ +SSSSSS +SSR"/ +SSSS"/ +SSS +SqS +SqSS +SSRSS +SSRS +SSR"/ +SSSS/S<)>CV +SS"/ +S +S0" +SSSR/ +SSSS +S + +/p]71k0sOs0kC@> + + + + diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/dm/layer1.xdm b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/dm/layer1.xdm new file mode 100644 index 0000000..758e316 --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/dm/layer1.xdm @@ -0,0 +1,256 @@ +%%% protect protected_file +@EG +- +]17p0Osk0CksRsPC#MHF=3"4j +"> +!S<-1-RFOksCHRVDRC#O0FMskHL0oHMRR0F0REC8HC#o-MR-S> +S +S +SF<1kCsOR"b=/lEFCF/#VD0/NH00O8C/HFNlMd8/3_4jG/nc#b$MLCN#/LDH/ODkC/M0b_lH83CVPN"R=""4R"D=PHCsD"FoRHOD#"0=-R4"b#DH0-="4>"/ + +SF<1kCsOR"b=/lEFCF/#VD0/NH00O8C/HFNlMd8/3_4jG/nc#b$MLCN#/LDH/FPDol/ksN_Ob3HlPN"R=""dR"D=PHCsD"FoRHOD#"0=-R4"b#DH0-="4>"/ + +SF<1kCsOR"b=/lEFCF/#VD0/NH00O8C/HFNlMd8/3_4jG/nc#b$MLCN#/LDH/FPDoO/#C_lHbCHb#P3#EN"R=""6R"D=PHCsD"FoRHOD#"0=-R4"b#DH0-="4>"/ +S1 +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMI="F3s #HolHO_Cb#6sDF_OsZC_.N_D$4Cs3sPCHoDF"=RD"sPCHoDF"S> +SRSqS"/ +S +SS +S"/ +S +SSuSSuS"/ +"/ +S +SSuSSuS +SR +SRS +SSuS +SR +SRS +S"/ +SuSS +SSuSS +SSuS +SR"/ + +SR"/ + +SRSqSSqSSqSSqS + + + +/S<7>CV +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMI="F3s #O$M_3j#PHCsD"FoR"D=PHCsD"Fo>S +S +SRSqS +SRSuS +SR +SRS +SS +SS +S +/S<7>CV +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMI="F3s #HolHO_CbD6#DF_OsZC_4N_D$4Cs3sPCHoDF"=RD"sPCHoDF"S> +SRSqS"/ +S +SS +S +SR"/ +SuSS +S +SRS +SSuSS +SS +SS +SSuS"/ +S +SSuS"/ +SuSSuSSuSSuS"/ +S +SS +SS +S +SRSuS"/ +S +SS +S +SRSuS"/ +S +S +SRSuSS +SSuS"/ + +SR"/ + +SR"/ + +SRS +S"/ +SuS +SRS +S"/ +"/ +"/ +"/ +"/ +SuSSuSSuSSuSSuSSuSSuSSuSSuSSqSS +SSqSSqSSqSSqSSqS + + + + +SC<)V=RM"sIF $3#MjO_#C3PsFHDoH"R=E"bL$_#MHO_M"#0>S +SSRR/ +SSS"/ +SSS"/ +SSSS/S<)>CV +S +SqS +SqS +SqSS +S +SC<)V=RM"sIF $3#MjO_#C3PsFHDoH"R=8"bH_VV#O$M_#HM0 +">S +SqS +SqS +SqSS +S +SC<)V=RM"sIF $3#MjO_#C3PsFHDoH"R=C"oN#s_$_MOH0M#"S> +SWSS +SSRS +SSRS +SSR"/ +S +SS +SSRR/ +SSS"/ +SSS"/ +SSSS/S<)>CV +S +SSRR/ +SSS"/ +SSS"/ +SSSS/S<)>CV +0" +SSSSSS +S)S)SS +SqS +SqS +SqSS +S + +/p]71k0sOs0kC@> + + + + diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/run_options.txt b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/run_options.txt new file mode 100644 index 0000000..f1e19db --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/run_options.txt @@ -0,0 +1,76 @@ +#-- Synopsys, Inc. +#-- Version M-2017.03L-SP1-1 +#-- Project file /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/run_options.txt +#-- Written on Fri May 10 11:58:54 2019 + + +#project files +add_file -vhdl -lib work "/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5.vhd" +add_file -verilog "/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v" +add_file -fpga_constraint "/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5.fdc" + + + +#implementation: "syn_results" +impl -add syn_results -type fpga + +# +#implementation attributes + +set_option -vlog_std v2001 + +#device options +set_option -technology ecp5um +set_option -part LFE5UM_25F +set_option -package MG285C +set_option -speed_grade -6 +set_option -part_companion "" + +#compilation/mapping options +set_option -top_module "sgmii_ecp5" + +# hdl_compiler_options +set_option -distributed_compile 0 + +# mapper_without_write_options +set_option -frequency 100 +set_option -srs_instrumentation 1 + +# mapper_options +set_option -write_verilog 1 +set_option -write_vhdl 1 + +# Lattice XP +set_option -maxfan 50 +set_option -disable_io_insertion 1 +set_option -retiming 0 +set_option -pipe 0 +set_option -forcegsr false +set_option -fix_gated_and_generated_clocks 1 +set_option -rw_check_on_ram 1 +set_option -update_models_cp 0 +set_option -syn_edif_array_rename 1 +set_option -Write_declared_clocks_only 1 + +# NFilter +set_option -no_sequential_opt 0 + +# sequential_optimization_options +set_option -symbolic_fsm_compiler 1 + +# Compiler Options +set_option -compiler_compatible 0 +set_option -resource_sharing 1 + +# Compiler Options +set_option -auto_infer_blackbox 0 + +#automatic place and route (vendor) options +set_option -write_apr_constraint 1 + +#set result format/file last +project -result_file "./sgmii_ecp5.edn" + +#set log file +set_option log_file "/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.srf" +impl -active "syn_results" diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/scemi_cfg.txt b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/scemi_cfg.txt new file mode 100644 index 0000000..868d437 --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/scemi_cfg.txt @@ -0,0 +1,3 @@ +## UMR3 MESSAGE PORT CONFIGURATION FILE +## ************************************ +XTOR_DPI_MSG_PORT_UMR_ADDR_VERSION=0 diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/scratchproject.prs b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/scratchproject.prs new file mode 100644 index 0000000..b221cbd --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/scratchproject.prs @@ -0,0 +1,74 @@ +#-- Synopsys, Inc. +#-- Version M-2017.03L-SP1-1 +#-- Project file /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/scratchproject.prs + +#project files +add_file -vhdl -lib work "/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5.vhd" +add_file -verilog "/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v" +add_file -fpga_constraint "/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5.fdc" + + + +#implementation: "syn_results" +impl -add /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results -type fpga + +# +#implementation attributes + +set_option -vlog_std v2001 + +#device options +set_option -technology ecp5um +set_option -part LFE5UM_25F +set_option -package MG285C +set_option -speed_grade -6 +set_option -part_companion "" + +#compilation/mapping options +set_option -top_module "sgmii_ecp5" + +# hdl_compiler_options +set_option -distributed_compile 0 + +# mapper_without_write_options +set_option -frequency 100 +set_option -srs_instrumentation 1 + +# mapper_options +set_option -write_verilog 1 +set_option -write_vhdl 1 + +# Lattice XP +set_option -maxfan 50 +set_option -disable_io_insertion 1 +set_option -retiming 0 +set_option -pipe 0 +set_option -forcegsr false +set_option -fix_gated_and_generated_clocks 1 +set_option -rw_check_on_ram 1 +set_option -update_models_cp 0 +set_option -syn_edif_array_rename 1 +set_option -Write_declared_clocks_only 1 + +# NFilter +set_option -no_sequential_opt 0 + +# sequential_optimization_options +set_option -symbolic_fsm_compiler 1 + +# Compiler Options +set_option -compiler_compatible 0 +set_option -resource_sharing 1 + +# Compiler Options +set_option -auto_infer_blackbox 0 + +#automatic place and route (vendor) options +set_option -write_apr_constraint 1 + +#set result format/file last +project -result_file "/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.edn" + +#set log file +set_option log_file "/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.srf" +impl -active "syn_results" diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.areasrr b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.areasrr new file mode 100644 index 0000000..270aaa7 --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.areasrr @@ -0,0 +1,97 @@ +---------------------------------------------------------------------- +Report for cell sgmii_ecp5.v1 + +Register bits: 221 of 24288 (1%) +PIC Latch: 0 +I/O cells: 0 + Cell usage: + cell count Res Usage(%) + CCU2C 113 100.0 + DCUA 1 100.0 + FD1P3BX 20 100.0 + FD1P3DX 92 100.0 + FD1S3BX 12 100.0 + FD1S3DX 97 100.0 + GSR 1 100.0 + INV 3 100.0 + ORCALUT4 153 100.0 + PFUMX 2 100.0 + PUR 1 100.0 + VHI 6 100.0 + VLO 6 100.0 +SUB MODULES + sgmii_ecp5rsl_core_Z2_layer1 1 100.0 + sgmii_ecp5sll_core_Z1_layer1 1 100.0 + sync_0s 1 100.0 + sync_0s_0 1 100.0 + sync_0s_6 1 100.0 + + TOTAL 512 +---------------------------------------------------------------------- +Report for cell sgmii_ecp5rsl_core_Z2_layer1.netlist + Instance path: rsl_inst + Cell usage: + cell count Res Usage(%) + CCU2C 51 45.1 + FD1P3BX 4 20.0 + FD1P3DX 74 80.4 + FD1S3BX 12 100.0 + FD1S3DX 37 38.1 + ORCALUT4 99 64.7 + PFUMX 2 100.0 + VHI 1 16.7 + VLO 1 16.7 + + TOTAL 281 +---------------------------------------------------------------------- +Report for cell sgmii_ecp5sll_core_Z1_layer1.netlist + Instance path: sll_inst + Cell usage: + cell count Res Usage(%) + CCU2C 62 54.9 + FD1P3BX 16 80.0 + FD1P3DX 18 19.6 + FD1S3DX 60 61.9 + INV 3 100.0 + ORCALUT4 54 35.3 + VHI 4 66.7 + VLO 4 66.7 +SUB MODULES + sync_0s 1 100.0 + sync_0s_0 1 100.0 + sync_0s_6 1 100.0 + + TOTAL 224 +---------------------------------------------------------------------- +Report for cell sync_0s_0.netlist + Original Cell name sync_0s + Instance path: sll_inst.pdiff_sync_inst + Cell usage: + cell count Res Usage(%) + FD1S3DX 2 2.1 + VHI 1 16.7 + VLO 1 16.7 + + TOTAL 4 +---------------------------------------------------------------------- +Report for cell sync_0s_6.netlist + Original Cell name sync_0s + Instance path: sll_inst.rtc_sync_inst + Cell usage: + cell count Res Usage(%) + FD1S3DX 2 2.1 + VHI 1 16.7 + VLO 1 16.7 + + TOTAL 4 +---------------------------------------------------------------------- +Report for cell sync_0s.netlist + Original Cell name sync_0s + Instance path: sll_inst.phb_sync_inst + Cell usage: + cell count Res Usage(%) + FD1S3DX 2 2.1 + VHI 1 16.7 + VLO 1 16.7 + + TOTAL 4 diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.fse b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.fse new file mode 100644 index 0000000..cc147f0 --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.fse @@ -0,0 +1,12 @@ + +fsm_encoding {61801018011} sequential + +fsm_state_encoding {61801018011} LPLL_LOSS_ST {00} + +fsm_state_encoding {61801018011} LPLL_PRELOSS_ST {01} + +fsm_state_encoding {61801018011} LPLL_PRELOCK_ST {10} + +fsm_state_encoding {61801018011} LPLL_LOCK_ST {11} + +fsm_registers {61801018011} {sll_state[1]} {sll_state[0]} diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.htm b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.htm new file mode 100644 index 0000000..31d89ed --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.htm @@ -0,0 +1,9 @@ + + + syntmp/sgmii_ecp5_srr.htm log file + + + + + + diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.prj b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.prj new file mode 100644 index 0000000..ef8c3fe --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.prj @@ -0,0 +1,47 @@ +#-- Lattice Semiconductor Corporation Ltd. +#-- Synplify OEM project file /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.prj +#-- Written on Fri May 10 11:58:54 2019 + + +#device options +set_option -technology ecp5um +set_option -part LFE5UM-85F +set_option -speed_grade 8 + +#use verilog 2001 standard option +set_option -vlog_std v2001 + +#map options +set_option -frequency 100 +set_option -fanout_limit 50 +set_option -disable_io_insertion true +set_option -retiming false +set_option -pipe false +set_option -pipe false +set_option -force_gsr false + +#simulation options +set_option -write_verilog true +set_option -write_vhdl true + +#timing analysis options + +#automatic place and route (vendor) options +set_option -write_apr_constraint 1 + +#-- add_file options +add_file -vhdl -lib work "/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5.vhd" +add_file -verilog -lib work "/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v" +add_file -constraint {"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5.fdc"} + +#-- top module name +set_option -top_module sgmii_ecp5 + +#-- set result format/file last +project -result_file "sgmii_ecp5.edn" + +#-- error message log file +project -log_file sgmii_ecp5.srf + +#-- run Synplify with 'arrange VHDL file' +project -run diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.srd b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.srd new file mode 100644 index 0000000000000000000000000000000000000000..2b7c9f854df70bcd9ca82300a147a47bbbaf7516 GIT binary patch literal 73001 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.srf b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.srf new file mode 100644 index 0000000..a063791 --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.srf @@ -0,0 +1,1144 @@ +#Build: Synplify Pro (R) M-2017.03L-SP1-1, Build 086R, Aug 4 2017 +#install: /home/soft/lattice/diamond/3.10_x64/synpbase +#OS: Linux +#Hostname: lxhadeb07 + +# Fri May 10 11:58:54 2019 + +#Implementation: syn_results + +Synopsys HDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Synopsys VHDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5.vhd":30:7:30:16|Top entity is set to sgmii_ecp5. +VHDL syntax check successful! + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB) + + +Process completed successfully. +# Fri May 10 11:58:55 2019 + +###########################################################] +Synopsys Verilog Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps) +@I::"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v" (library work) +Verilog syntax check successful! + +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB) + + +Process completed successfully. +# Fri May 10 11:58:55 2019 + +###########################################################] +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5.vhd":30:7:30:16|Top entity is set to sgmii_ecp5. +VHDL syntax check successful! +@N: CD630 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5.vhd":30:7:30:16|Synthesizing work.sgmii_ecp5.v1. +Post processing for work.sgmii_ecp5.v1 + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 74MB peak: 76MB) + + +Process completed successfully. +# Fri May 10 11:58:55 2019 + +###########################################################] +Running on host :lxhadeb07 +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps) +@I::"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v" (library work) +Verilog syntax check successful! +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +@N: CG364 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1968:7:1968:10|Synthesizing module sync in library work. + + PDATA_RST_VAL=32'b00000000000000000000000000000000 + Generated name = sync_0s +@N: CG364 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1051:7:1051:24|Synthesizing module sgmii_ecp5sll_core in library work. + + PPROTOCOL=24'b010001110100001001000101 + PLOL_SETTING=32'b00000000000000000000000000000000 + PDYN_RATE_CTRL=64'b0100010001001001010100110100000101000010010011000100010101000100 + PPCIE_MAX_RATE=24'b001100100010111000110101 + PDIFF_VAL_LOCK=32'b00000000000000000000000000010011 + PDIFF_VAL_UNLOCK=32'b00000000000000000000000000100111 + PPCLK_TC=32'b00000000000000010000000000000000 + PDIFF_DIV11_VAL_LOCK=32'b00000000000000000000000000000000 + PDIFF_DIV11_VAL_UNLOCK=32'b00000000000000000000000000000000 + PPCLK_DIV11_TC=32'b00000000000000000000000000000000 + LPLL_LOSS_ST=2'b00 + LPLL_PRELOSS_ST=2'b01 + LPLL_PRELOCK_ST=2'b10 + LPLL_LOCK_ST=2'b11 + LRCLK_TC=16'b1111111111111111 + LRCLK_TC_PUL_WIDTH=16'b0000000000110010 + LHB_WAIT_CNT=8'b11111111 + LPCLK_TC_0=32'b00000000000000001000000000000000 + LPCLK_TC_1=32'b00000000000000010000000000000000 + LPCLK_TC_2=32'b00000000000000100000000000000000 + LPCLK_TC_3=32'b00000000000000101000000000000000 + LPCLK_TC_4=32'b00000000000000010000000000000000 + LPDIFF_LOCK_00=32'b00000000000000000000000000001001 + LPDIFF_LOCK_10=32'b00000000000000000000000000010011 + LPDIFF_LOCK_20=32'b00000000000000000000000000100111 + LPDIFF_LOCK_30=32'b00000000000000000000000000110001 + LPDIFF_LOCK_40=32'b00000000000000000000000000010011 + LPDIFF_LOCK_01=32'b00000000000000000000000000001001 + LPDIFF_LOCK_11=32'b00000000000000000000000000010011 + LPDIFF_LOCK_21=32'b00000000000000000000000000100111 + LPDIFF_LOCK_31=32'b00000000000000000000000000110001 + LPDIFF_LOCK_41=32'b00000000000000000000000000010011 + LPDIFF_LOCK_02=32'b00000000000000000000000000110001 + LPDIFF_LOCK_12=32'b00000000000000000000000001100010 + LPDIFF_LOCK_22=32'b00000000000000000000000011000100 + LPDIFF_LOCK_32=32'b00000000000000000000000011110101 + LPDIFF_LOCK_42=32'b00000000000000000000000001100010 + LPDIFF_LOCK_03=32'b00000000000000000000000010000011 + LPDIFF_LOCK_13=32'b00000000000000000000000100000110 + LPDIFF_LOCK_23=32'b00000000000000000000001000001100 + LPDIFF_LOCK_33=32'b00000000000000000000001010001111 + LPDIFF_LOCK_43=32'b00000000000000000000000100000110 + LPDIFF_UNLOCK_00=32'b00000000000000000000000000010011 + LPDIFF_UNLOCK_10=32'b00000000000000000000000000100111 + LPDIFF_UNLOCK_20=32'b00000000000000000000000001001110 + LPDIFF_UNLOCK_30=32'b00000000000000000000000001100010 + LPDIFF_UNLOCK_40=32'b00000000000000000000000000100111 + LPDIFF_UNLOCK_01=32'b00000000000000000000000001000001 + LPDIFF_UNLOCK_11=32'b00000000000000000000000010000011 + LPDIFF_UNLOCK_21=32'b00000000000000000000000100000110 + LPDIFF_UNLOCK_31=32'b00000000000000000000000101000111 + LPDIFF_UNLOCK_41=32'b00000000000000000000000010000011 + LPDIFF_UNLOCK_02=32'b00000000000000000000000001001000 + LPDIFF_UNLOCK_12=32'b00000000000000000000000010010000 + LPDIFF_UNLOCK_22=32'b00000000000000000000000100100000 + LPDIFF_UNLOCK_32=32'b00000000000000000000000101101000 + LPDIFF_UNLOCK_42=32'b00000000000000000000000010010000 + LPDIFF_UNLOCK_03=32'b00000000000000000000000011000100 + LPDIFF_UNLOCK_13=32'b00000000000000000000000110001001 + LPDIFF_UNLOCK_23=32'b00000000000000000000001100010010 + LPDIFF_UNLOCK_33=32'b00000000000000000000001111010111 + LPDIFF_UNLOCK_43=32'b00000000000000000000000110001001 + Generated name = sgmii_ecp5sll_core_Z1_layer1 +@N: CG179 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1287:54:1287:59|Removing redundant assignment. +@N: CG179 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1293:52:1293:55|Removing redundant assignment. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1350:0:1350:5|Pruning unused register rcpri_mod_ch_st. Make sure that there are no unused intermediate registers. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 2 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 0 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 1 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 2 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 17 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 18 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 19 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 20 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 21 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +@N: CG364 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":92:7:92:24|Synthesizing module sgmii_ecp5rsl_core in library work. + + pnum_channels=32'b00000000000000000000000000000001 + pprotocol=24'b010001110100001001000101 + pserdes_mode=72'b010100100101100000100000010000010100111001000100001000000101010001011000 + pport_tx_rdy=56'b01000101010011100100000101000010010011000100010101000100 + pwait_tx_rdy=32'b00000000000000000000101110111000 + pport_rx_rdy=56'b01000101010011100100000101000010010011000100010101000100 + pwait_rx_rdy=32'b00000000000000000000101110111000 + wa_num_cycles=32'b00000000000000000000010000000000 + dac_num_cycles=32'b00000000000000000000000000000011 + lreset_pwidth=32'b00000000000000000000000000000011 + lwait_b4_trst=32'b00000000000010111110101111000010 + lwait_b4_trst_s=32'b00000000000000000000001100001101 + lplol_cnt_width=32'b00000000000000000000000000010100 + lwait_after_plol0=32'b00000000000000000000000000000100 + lwait_b4_rrst=32'b00000000000000101100000000000000 + lrrst_wait_width=32'b00000000000000000000000000010100 + lwait_after_rrst=32'b00000000000011000011010100000000 + lwait_b4_rrst_s=32'b00000000000000000000000111001100 + lrlol_cnt_width=32'b00000000000000000000000000010011 + lwait_after_lols=32'b00000000000000001100010000000000 + lwait_after_lols_s=32'b00000000000000000000000010010110 + llols_cnt_width=32'b00000000000000000000000000010010 + lrdb_max=32'b00000000000000000000000000001111 + ltxr_wait_width=32'b00000000000000000000000000001100 + lrxr_wait_width=32'b00000000000000000000000000001100 + Generated name = sgmii_ecp5rsl_core_Z2_layer1 +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":326:33:326:40|Object rrst_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":327:33:327:43|Removing wire rrst_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":328:33:328:41|Object rrst_wait is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":341:33:341:39|Object rxp_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":342:33:342:39|Object rxp_rst is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":343:33:343:42|Removing wire rxp_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":346:33:346:42|Object rlolsz_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":347:33:347:45|Removing wire rlolsz_cnt_tc, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":350:33:350:43|Removing wire rxp_cnt2_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":351:33:351:47|Object data_loop_b_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":352:33:352:43|Object data_loop_b is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":353:33:353:46|Removing wire data_loop_b_tc, as there is no assignment to it. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":806:3:806:8|Pruning unused register genblk2.rxp_cnt2[2:0]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlol_p3. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlos_p3. Make sure that there are no unused intermediate registers. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":694:3:694:8|Optimizing register bit genblk2.rxs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":461:3:461:8|Optimizing register bit genblk1.txp_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":422:3:422:8|Optimizing register bit genblk1.txs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":422:3:422:8|Pruning register bit 2 of genblk1.txs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":461:3:461:8|Pruning register bit 2 of genblk1.txp_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":694:3:694:8|Pruning register bit 2 of genblk2.rxs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":200:33:200:48|Input port bits 3 to 1 of rui_tx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":204:33:204:51|Input port bits 3 to 1 of rui_rx_serdes_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":205:33:205:48|Input port bits 3 to 1 of rui_rx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":206:33:206:48|Input port bits 3 to 1 of rdi_rx_los_low_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":207:33:207:48|Input port bits 3 to 1 of rdi_rx_cdr_lol_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning register bits 5 to 3 of genblk5.rdiff_comp_unlock[5:2]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning register bits 4 to 3 of genblk5.rdiff_comp_lock[4:2]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rdiff_comp_unlock[2]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rcount_tc[16]. Make sure that there are no unused intermediate registers. +@N: CL201 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1801:0:1801:5|Trying to extract state machine for register sll_state. +Extracted state machine for register sll_state +State machine has 4 reachable states with original encodings of: + 00 + 01 + 10 + 11 + +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 75MB peak: 81MB) + + +Process completed successfully. +# Fri May 10 11:58:56 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode + +======================================================================================= +For a summary of linker messages for components that did not bind, please see log file: +@L: /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.linkerlog +======================================================================================= + + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 11:58:56 2019 + +###########################################################] +@END + +At c_hdl Exit (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 3MB peak: 4MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 11:58:56 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 11:58:57 2019 + +###########################################################] +Pre-mapping Report + +# Fri May 10 11:58:57 2019 + +Synopsys Lattice Technology Pre-mapping, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 100MB) + +Reading constraint file: /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5.fdc +@L: /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5_scck.rpt +Printing clock summary report in "/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5_scck.rpt" file +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 102MB peak: 104MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 102MB peak: 104MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 114MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 116MB) + +@N: BN362 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1408:0:1408:5|Removing sequential instance pcpri_mod_ch (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:PrimLib.dffre(prim) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1244:27:1244:40|Removing instance div2_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_3(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1252:27:1252:41|Removing instance div11_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_2(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1236:27:1236:40|Removing instance gear_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_4(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1268:27:1268:44|Removing instance pcie_mod_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_0(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1260:27:1260:44|Removing instance cpri_mod_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_1(verilog) because it does not drive other instances. +ICG Latch Removal Summary: +Number of ICG latches removed: 0 +Number of ICG latches not removed: 0 +syn_allowed_resources : blockrams=56 set on top level netlist sgmii_ecp5 + +Finished netlist restructuring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + + + +Clock Summary +****************** + + Start Requested Requested Clock Clock Clock +Level Clock Frequency Period Type Group Load +---------------------------------------------------------------------------------------------------------------------- +0 - System 100.0 MHz 10.000 system system_clkgroup 0 + +0 - sgmii_ecp5|pll_refclki 100.0 MHz 10.000 inferred Inferred_clkgroup_0 93 + +0 - sgmii_ecp5|rxrefclk 100.0 MHz 10.000 inferred Inferred_clkgroup_1 77 + +0 - sgmii_ecp5|tx_pclk_inferred_clock 100.0 MHz 10.000 inferred Inferred_clkgroup_2 53 +====================================================================================================================== + +@W: MT529 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Found inferred clock sgmii_ecp5|pll_refclki which controls 93 sequential elements including sll_inst.phb_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":567:3:567:8|Found inferred clock sgmii_ecp5|rxrefclk which controls 77 sequential elements including rsl_inst.genblk2\.rlos_db_p1. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Found inferred clock sgmii_ecp5|tx_pclk_inferred_clock which controls 53 sequential elements including sll_inst.rtc_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. + +Finished Pre Mapping Phase. + +Starting constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + +Encoding state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) +original code -> new code + 00 -> 00 + 01 -> 01 + 10 -> 10 + 11 -> 11 +@N: MO225 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1801:0:1801:5|There are no possible illegal states for state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)); safe FSM implementation is not required. + +Finished constraint checker preprocessing (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + +None +None + +Finished constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + +Pre-mapping successful! + +At Mapper Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 58MB peak: 144MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime +# Fri May 10 11:58:58 2019 + +###########################################################] +Map & Optimize Report + +# Fri May 10 11:58:58 2019 + +Synopsys Lattice Technology Mapper, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 100MB) + +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 113MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 115MB) + + + +Starting Optimization and Mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 144MB) + + +Available hyper_sources - for debug and ip models + None Found + + +Finished RTL optimizations (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + +Encoding state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) +original code -> new code + 00 -> 00 + 01 -> 01 + 10 -> 10 + 11 -> 11 +@N: MO225 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1801:0:1801:5|There are no possible illegal states for state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)); safe FSM implementation is not required. +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1350:0:1350:5|Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance rhb_wait_cnt[7:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1304:0:1304:5|Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance rcount[15:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1759:0:1759:5|Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance pcount[21:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":412:3:412:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk1\.plol_cnt[19:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":909:3:909:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.genblk3\.rxr_wt_cnt[11:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":527:3:527:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk1\.genblk2\.txr_wt_cnt[11:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":778:3:778:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.rlols0_cnt[17:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":680:3:680:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.rlol1_cnt[18:0] + +Starting factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + + +Finished factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 144MB) + + +Starting gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + + +Finished gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + + +Finished generic timing optimizations - Pass 1 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 145MB) + + +Starting Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 145MB) + + +Finished Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 145MB) + + +Finished generic timing optimizations - Pass 2 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 145MB) + + +Finished preparing to map (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 145MB peak: 145MB) + +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). + +Finished technology mapping (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 147MB peak: 148MB) + +Pass CPU time Worst Slack Luts / Registers +------------------------------------------------------------ + 1 0h:00m:01s 5.36ns 154 / 221 +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). + +Finished technology timing optimizations and critical path resynthesis (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 147MB peak: 148MB) + +@N: FX164 |The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute. + +Finished restoring hierarchy (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 147MB peak: 148MB) + + + +@S |Clock Optimization Summary + + +#### START OF CLOCK OPTIMIZATION REPORT #####[ + +3 non-gated/non-generated clock tree(s) driving 221 clock pin(s) of sequential element(s) +0 gated/generated clock tree(s) driving 0 clock pin(s) of sequential element(s) +0 instances converted, 0 sequential instances remain driven by gated/generated clocks + +============================================= Non-Gated/Non-Generated Clocks ============================================= +Clock Tree ID Driving Element Drive Element Type Fanout Sample Instance +-------------------------------------------------------------------------------------------------------------------------- +@K:CKID0001 pll_refclki port 91 rsl_inst.genblk1\.genblk2\.mfor\[0\]\.txpr_appd[0] +@K:CKID0002 rxrefclk port 77 rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] +@K:CKID0003 DCU0_inst DCUA 53 sll_inst.pcount[21] +========================================================================================================================== + + +##### END OF CLOCK OPTIMIZATION REPORT ######] + + +Start Writing Netlists (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 111MB peak: 148MB) + +Writing Analyst data base /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_m.srm + +Finished Writing Netlist Databases (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 146MB peak: 148MB) + +Writing EDIF Netlist and constraint files +@N: FX1056 |Writing EDF file: /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.edn +M-2017.03L-SP1-1 +@N: BW106 |Synplicity Constraint File capacitance units using default value of 1pF + +Finished Writing EDIF Netlist and constraint files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 151MB peak: 153MB) + +Writing Verilog Simulation files + +Finished Writing Verilog Simulation files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 151MB peak: 153MB) + +Writing VHDL Simulation files + +Finished Writing VHDL Simulation files (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB) + + +Start final timing analysis (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB) + +@W: MT246 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5.vhd":162:4:162:12|Blackbox DCUA is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) +@W: MT420 |Found inferred clock sgmii_ecp5|rxrefclk with period 10.00ns. Please declare a user-defined clock on object "p:rxrefclk" +@W: MT420 |Found inferred clock sgmii_ecp5|pll_refclki with period 10.00ns. Please declare a user-defined clock on object "p:pll_refclki" +@W: MT420 |Found inferred clock sgmii_ecp5|tx_pclk_inferred_clock with period 10.00ns. Please declare a user-defined clock on object "n:tx_pclk" + + +##### START OF TIMING REPORT #####[ +# Timing Report written on Fri May 10 11:59:02 2019 +# + + +Top view: sgmii_ecp5 +Requested Frequency: 100.0 MHz +Wire load mode: top +Paths requested: 5 +Constraint File(s): /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5.fdc + +@N: MT320 |This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. + +@N: MT322 |Clock constraints include only register-to-register paths associated with each individual clock. + + + +Performance Summary +******************* + + +Worst slack in design: 4.079 + + Requested Estimated Requested Estimated Clock Clock +Starting Clock Frequency Frequency Period Period Slack Type Group +---------------------------------------------------------------------------------------------------------------------------------------- +sgmii_ecp5|pll_refclki 100.0 MHz 168.9 MHz 10.000 5.921 4.079 inferred Inferred_clkgroup_0 +sgmii_ecp5|rxrefclk 100.0 MHz 170.5 MHz 10.000 5.864 4.136 inferred Inferred_clkgroup_1 +sgmii_ecp5|tx_pclk_inferred_clock 100.0 MHz 237.5 MHz 10.000 4.211 5.789 inferred Inferred_clkgroup_2 +System 100.0 MHz 840.7 MHz 10.000 1.190 8.810 system system_clkgroup +======================================================================================================================================== + + + + + +Clock Relationships +******************* + +Clocks | rise to rise | fall to fall | rise to fall | fall to rise +------------------------------------------------------------------------------------------------------------------------------------------------------------ +Starting Ending | constraint slack | constraint slack | constraint slack | constraint slack +------------------------------------------------------------------------------------------------------------------------------------------------------------ +System sgmii_ecp5|rxrefclk | 10.000 8.811 | No paths - | No paths - | No paths - +sgmii_ecp5|pll_refclki System | 10.000 8.253 | No paths - | No paths - | No paths - +sgmii_ecp5|pll_refclki sgmii_ecp5|pll_refclki | 10.000 4.079 | No paths - | No paths - | No paths - +sgmii_ecp5|pll_refclki sgmii_ecp5|tx_pclk_inferred_clock | Diff grp - | No paths - | No paths - | No paths - +sgmii_ecp5|rxrefclk System | 10.000 8.184 | No paths - | No paths - | No paths - +sgmii_ecp5|rxrefclk sgmii_ecp5|rxrefclk | 10.000 4.136 | No paths - | No paths - | No paths - +sgmii_ecp5|tx_pclk_inferred_clock sgmii_ecp5|pll_refclki | Diff grp - | No paths - | No paths - | No paths - +sgmii_ecp5|tx_pclk_inferred_clock sgmii_ecp5|tx_pclk_inferred_clock | 10.000 5.789 | No paths - | No paths - | No paths - +============================================================================================================================================================ + Note: 'No paths' indicates there are no paths in the design for that pair of clock edges. + 'Diff grp' indicates that paths exist but the starting clock and ending clock are in different clock groups. + + + +Interface Information +********************* + +No IO constraint found + + + +==================================== +Detailed Report for Clock: sgmii_ecp5|pll_refclki +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +-------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[2] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[2] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[3] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[3] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[17] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[17] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[19] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[19] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[1] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[1] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[4] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[4] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[5] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[5] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[6] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[6] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[7] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[7] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[8] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[8] 0.907 4.684 +==================================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +----------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[19] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[19] 9.946 4.079 +rsl_inst.genblk1\.plol_cnt[17] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[17] 9.946 4.139 +rsl_inst.genblk1\.plol_cnt[18] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[18] 9.946 4.139 +rsl_inst.genblk1\.plol_cnt[15] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[15] 9.946 4.200 +rsl_inst.genblk1\.plol_cnt[16] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[16] 9.946 4.200 +rsl_inst.genblk1\.plol_cnt[13] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[13] 9.946 4.261 +rsl_inst.genblk1\.plol_cnt[14] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[14] 9.946 4.261 +rsl_inst.genblk1\.plol_cnt[11] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[11] 9.946 4.322 +rsl_inst.genblk1\.plol_cnt[12] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[12] 9.946 4.322 +rsl_inst.genblk1\.plol_cnt[9] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[9] 9.946 4.383 +======================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 5.867 + - Clock delay at starting point: 0.000 (ideal) + = Slack (critical) : 4.079 + + Number of logic level(s): 15 + Starting point: rsl_inst.genblk1\.plol_cnt[2] / Q + Ending point: rsl_inst.genblk1\.plol_cnt[19] / D + The start point is clocked by sgmii_ecp5|pll_refclki [rising] on pin CK + The end point is clocked by sgmii_ecp5|pll_refclki [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[2] FD1S3DX Q Out 0.907 0.907 - +plol_cnt[2] Net - - - - 2 +rsl_inst.genblk1\.un1_plol_cnt_tc_10 ORCALUT4 A In 0.000 0.907 - +rsl_inst.genblk1\.un1_plol_cnt_tc_10 ORCALUT4 Z Out 0.606 1.513 - +un1_plol_cnt_tc_10 Net - - - - 1 +rsl_inst.genblk1\.un1_plol_cnt_tc_14 ORCALUT4 D In 0.000 1.513 - +rsl_inst.genblk1\.un1_plol_cnt_tc_14 ORCALUT4 Z Out 0.606 2.119 - +un1_plol_cnt_tc_14 Net - - - - 1 +rsl_inst.genblk1\.un1_plol_cnt_tc ORCALUT4 D In 0.000 2.119 - +rsl_inst.genblk1\.un1_plol_cnt_tc ORCALUT4 Z Out 0.762 2.881 - +un1_plol_cnt_tc Net - - - - 5 +rsl_inst.genblk1\.plol_cnt11_i ORCALUT4 B In 0.000 2.881 - +rsl_inst.genblk1\.plol_cnt11_i ORCALUT4 Z Out 0.840 3.721 - +plol_cnt Net - - - - 21 +rsl_inst.genblk1\.plol_cnt_cry_0[0] CCU2C A1 In 0.000 3.721 - +rsl_inst.genblk1\.plol_cnt_cry_0[0] CCU2C COUT Out 0.900 4.621 - +plol_cnt_cry[0] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[1] CCU2C CIN In 0.000 4.621 - +rsl_inst.genblk1\.plol_cnt_cry_0[1] CCU2C COUT Out 0.061 4.682 - +plol_cnt_cry[2] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[3] CCU2C CIN In 0.000 4.682 - +rsl_inst.genblk1\.plol_cnt_cry_0[3] CCU2C COUT Out 0.061 4.743 - +plol_cnt_cry[4] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[5] CCU2C CIN In 0.000 4.743 - +rsl_inst.genblk1\.plol_cnt_cry_0[5] CCU2C COUT Out 0.061 4.804 - +plol_cnt_cry[6] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[7] CCU2C CIN In 0.000 4.804 - +rsl_inst.genblk1\.plol_cnt_cry_0[7] CCU2C COUT Out 0.061 4.865 - +plol_cnt_cry[8] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[9] CCU2C CIN In 0.000 4.865 - +rsl_inst.genblk1\.plol_cnt_cry_0[9] CCU2C COUT Out 0.061 4.926 - +plol_cnt_cry[10] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[11] CCU2C CIN In 0.000 4.926 - +rsl_inst.genblk1\.plol_cnt_cry_0[11] CCU2C COUT Out 0.061 4.987 - +plol_cnt_cry[12] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[13] CCU2C CIN In 0.000 4.987 - +rsl_inst.genblk1\.plol_cnt_cry_0[13] CCU2C COUT Out 0.061 5.048 - +plol_cnt_cry[14] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[15] CCU2C CIN In 0.000 5.048 - +rsl_inst.genblk1\.plol_cnt_cry_0[15] CCU2C COUT Out 0.061 5.109 - +plol_cnt_cry[16] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[17] CCU2C CIN In 0.000 5.109 - +rsl_inst.genblk1\.plol_cnt_cry_0[17] CCU2C COUT Out 0.061 5.170 - +plol_cnt_cry[18] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_s_0[19] CCU2C CIN In 0.000 5.170 - +rsl_inst.genblk1\.plol_cnt_s_0[19] CCU2C S0 Out 0.698 5.867 - +plol_cnt_s[19] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt[19] FD1S3DX D In 0.000 5.867 - +======================================================================================================= + + + + +==================================== +Detailed Report for Clock: sgmii_ecp5|rxrefclk +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rlol1_cnt[7] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[7] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[8] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[8] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[9] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[9] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[10] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[10] 0.907 4.136 +rsl_inst.genblk2\.rlols0_cnt[1] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[1] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[2] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[2] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[3] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[3] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[4] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[4] 0.907 4.170 +rsl_inst.genblk2\.rxs_rst sgmii_ecp5|rxrefclk FD1P3DX Q rxs_rst 1.015 4.700 +rsl_inst.genblk2\.rlol1_cnt[0] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[0] 0.907 4.742 +=================================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------------------------------------------ +rsl_inst.genblk2\.rlol1_cnt[17] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[17] 9.946 4.136 +rsl_inst.genblk2\.rlol1_cnt[18] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[18] 9.946 4.136 +rsl_inst.genblk2\.rlols0_cnt[17] sgmii_ecp5|rxrefclk FD1P3DX D rlols0_cnt_s[17] 9.946 4.170 +rsl_inst.genblk2\.rlol1_cnt[15] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[15] 9.946 4.197 +rsl_inst.genblk2\.rlol1_cnt[16] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[16] 9.946 4.197 +rsl_inst.genblk2\.rlols0_cnt[15] sgmii_ecp5|rxrefclk FD1P3DX D rlols0_cnt_s[15] 9.946 4.231 +rsl_inst.genblk2\.rlols0_cnt[16] sgmii_ecp5|rxrefclk FD1P3DX D rlols0_cnt_s[16] 9.946 4.231 +rsl_inst.genblk2\.rlol1_cnt[13] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[13] 9.946 4.258 +rsl_inst.genblk2\.rlol1_cnt[14] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[14] 9.946 4.258 +rsl_inst.genblk2\.rlols0_cnt[13] sgmii_ecp5|rxrefclk FD1P3DX D rlols0_cnt_s[13] 9.946 4.292 +======================================================================================================================== + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 5.809 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : 4.136 + + Number of logic level(s): 14 + Starting point: rsl_inst.genblk2\.rlol1_cnt[7] / Q + Ending point: rsl_inst.genblk2\.rlol1_cnt[18] / D + The start point is clocked by sgmii_ecp5|rxrefclk [rising] on pin CK + The end point is clocked by sgmii_ecp5|rxrefclk [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +-------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rlol1_cnt[7] FD1P3DX Q Out 0.907 0.907 - +rlol1_cnt[7] Net - - - - 2 +rsl_inst.rlol1_cnt_tc_1_10 ORCALUT4 A In 0.000 0.907 - +rsl_inst.rlol1_cnt_tc_1_10 ORCALUT4 Z Out 0.606 1.513 - +rlol1_cnt_tc_1_10 Net - - - - 1 +rsl_inst.rlol1_cnt_tc_1_14 ORCALUT4 D In 0.000 1.513 - +rsl_inst.rlol1_cnt_tc_1_14 ORCALUT4 Z Out 0.606 2.119 - +rlol1_cnt_tc_1_14 Net - - - - 1 +rsl_inst.rlol1_cnt_tc_1 ORCALUT4 D In 0.000 2.119 - +rsl_inst.rlol1_cnt_tc_1 ORCALUT4 Z Out 0.768 2.887 - +rlol1_cnt_tc_1 Net - - - - 6 +rsl_inst.genblk2\.rlos_db_p1_RNIS0OP ORCALUT4 A In 0.000 2.887 - +rsl_inst.genblk2\.rlos_db_p1_RNIS0OP ORCALUT4 Z Out 0.837 3.724 - +rlol1_cnt Net - - - - 20 +rsl_inst.genblk2\.rlol1_cnt_cry_0[0] CCU2C A1 In 0.000 3.724 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[0] CCU2C COUT Out 0.900 4.624 - +rlol1_cnt_cry[0] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[1] CCU2C CIN In 0.000 4.624 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[1] CCU2C COUT Out 0.061 4.685 - +rlol1_cnt_cry[2] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[3] CCU2C CIN In 0.000 4.685 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[3] CCU2C COUT Out 0.061 4.746 - +rlol1_cnt_cry[4] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[5] CCU2C CIN In 0.000 4.746 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[5] CCU2C COUT Out 0.061 4.807 - +rlol1_cnt_cry[6] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[7] CCU2C CIN In 0.000 4.807 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[7] CCU2C COUT Out 0.061 4.868 - +rlol1_cnt_cry[8] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[9] CCU2C CIN In 0.000 4.868 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[9] CCU2C COUT Out 0.061 4.929 - +rlol1_cnt_cry[10] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[11] CCU2C CIN In 0.000 4.929 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[11] CCU2C COUT Out 0.061 4.990 - +rlol1_cnt_cry[12] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[13] CCU2C CIN In 0.000 4.990 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[13] CCU2C COUT Out 0.061 5.051 - +rlol1_cnt_cry[14] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[15] CCU2C CIN In 0.000 5.051 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[15] CCU2C COUT Out 0.061 5.112 - +rlol1_cnt_cry[16] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[17] CCU2C CIN In 0.000 5.112 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[17] CCU2C S1 Out 0.698 5.809 - +rlol1_cnt_s[18] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt[18] FD1P3DX D In 0.000 5.809 - +======================================================================================================== + + + + +==================================== +Detailed Report for Clock: sgmii_ecp5|tx_pclk_inferred_clock +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------------------------------------------ +sll_inst.ppul_sync_p1 sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q ppul_sync_p1 1.098 5.789 +sll_inst.ppul_sync_p2 sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q ppul_sync_p2 1.098 5.789 +sll_inst.pcount_diff[0] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_0 0.985 6.147 +sll_inst.pcount[0] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q pcount[0] 0.955 6.178 +sll_inst.pcount_diff[1] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_1 0.955 6.239 +sll_inst.pcount_diff[2] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_2 0.955 6.239 +sll_inst.pcount[1] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q pcount[1] 0.907 6.287 +sll_inst.pcount[2] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q pcount[2] 0.907 6.287 +sll_inst.pcount_diff[3] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_3 0.955 6.300 +sll_inst.pcount_diff[4] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_4 0.955 6.300 +======================================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +----------------------------------------------------------------------------------------------------------------------------------------- +sll_inst.pcount[21] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[21] 9.946 5.789 +sll_inst.pcount[19] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[19] 9.946 5.850 +sll_inst.pcount[20] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[20] 9.946 5.850 +sll_inst.pcount[17] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[17] 9.946 5.911 +sll_inst.pcount[18] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[18] 9.946 5.911 +sll_inst.pcount[15] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[15] 9.946 5.972 +sll_inst.pcount[16] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[16] 9.946 5.972 +sll_inst.pcount[13] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[13] 9.946 6.033 +sll_inst.pcount[14] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[14] 9.946 6.033 +sll_inst.pcount_diff[21] sgmii_ecp5|tx_pclk_inferred_clock FD1P3DX D un1_pcount_diff_1_s_21_0_S0 9.946 6.034 +========================================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 4.157 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : 5.789 + + Number of logic level(s): 13 + Starting point: sll_inst.ppul_sync_p1 / Q + Ending point: sll_inst.pcount[21] / D + The start point is clocked by sgmii_ecp5|tx_pclk_inferred_clock [rising] on pin CK + The end point is clocked by sgmii_ecp5|tx_pclk_inferred_clock [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +-------------------------------------------------------------------------------------------- +sll_inst.ppul_sync_p1 FD1S3DX Q Out 1.098 1.098 - +ppul_sync_p1 Net - - - - 25 +sll_inst.pcount10_0_o3 ORCALUT4 A In 0.000 1.098 - +sll_inst.pcount10_0_o3 ORCALUT4 Z Out 0.851 1.950 - +N_8 Net - - - - 25 +sll_inst.pcount_cry_0[0] CCU2C A1 In 0.000 1.950 - +sll_inst.pcount_cry_0[0] CCU2C COUT Out 0.900 2.850 - +pcount_cry[0] Net - - - - 1 +sll_inst.pcount_cry_0[1] CCU2C CIN In 0.000 2.850 - +sll_inst.pcount_cry_0[1] CCU2C COUT Out 0.061 2.911 - +pcount_cry[2] Net - - - - 1 +sll_inst.pcount_cry_0[3] CCU2C CIN In 0.000 2.911 - +sll_inst.pcount_cry_0[3] CCU2C COUT Out 0.061 2.972 - +pcount_cry[4] Net - - - - 1 +sll_inst.pcount_cry_0[5] CCU2C CIN In 0.000 2.972 - +sll_inst.pcount_cry_0[5] CCU2C COUT Out 0.061 3.033 - +pcount_cry[6] Net - - - - 1 +sll_inst.pcount_cry_0[7] CCU2C CIN In 0.000 3.033 - +sll_inst.pcount_cry_0[7] CCU2C COUT Out 0.061 3.094 - +pcount_cry[8] Net - - - - 1 +sll_inst.pcount_cry_0[9] CCU2C CIN In 0.000 3.094 - +sll_inst.pcount_cry_0[9] CCU2C COUT Out 0.061 3.155 - +pcount_cry[10] Net - - - - 1 +sll_inst.pcount_cry_0[11] CCU2C CIN In 0.000 3.155 - +sll_inst.pcount_cry_0[11] CCU2C COUT Out 0.061 3.216 - +pcount_cry[12] Net - - - - 1 +sll_inst.pcount_cry_0[13] CCU2C CIN In 0.000 3.216 - +sll_inst.pcount_cry_0[13] CCU2C COUT Out 0.061 3.277 - +pcount_cry[14] Net - - - - 1 +sll_inst.pcount_cry_0[15] CCU2C CIN In 0.000 3.277 - +sll_inst.pcount_cry_0[15] CCU2C COUT Out 0.061 3.338 - +pcount_cry[16] Net - - - - 1 +sll_inst.pcount_cry_0[17] CCU2C CIN In 0.000 3.338 - +sll_inst.pcount_cry_0[17] CCU2C COUT Out 0.061 3.399 - +pcount_cry[18] Net - - - - 1 +sll_inst.pcount_cry_0[19] CCU2C CIN In 0.000 3.399 - +sll_inst.pcount_cry_0[19] CCU2C COUT Out 0.061 3.460 - +pcount_cry[20] Net - - - - 1 +sll_inst.pcount_s_0[21] CCU2C CIN In 0.000 3.460 - +sll_inst.pcount_s_0[21] CCU2C S0 Out 0.698 4.157 - +pcount_s[21] Net - - - - 1 +sll_inst.pcount[21] FD1S3DX D In 0.000 4.157 - +============================================================================================ + + + + +==================================== +Detailed Report for Clock: System +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +---------------------------------------------------------------------------------------- +DCU0_inst System DCUA CH0_FFS_RLOL rx_cdr_lol_s 0.000 8.810 +DCU0_inst System DCUA CH0_FFS_RLOS rx_los_low_s 0.000 8.810 +======================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] System FD1P3DX SP un2_rdo_serdes_rst_dual_c_2_i 9.806 8.810 +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] System FD1P3DX D rxpr_appd_RNO[0] 9.946 9.556 +rsl_inst.genblk2\.rlol_p1 System FD1S3DX D rx_cdr_lol_s 9.946 9.946 +rsl_inst.genblk2\.rlos_p1 System FD1S3DX D rx_los_low_s 9.946 9.946 +============================================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.194 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.806 + + - Propagation time: 0.996 + - Clock delay at starting point: 0.000 (ideal) + - Estimated clock delay at start point: -0.000 + = Slack (non-critical) : 8.810 + + Number of logic level(s): 2 + Starting point: DCU0_inst / CH0_FFS_RLOL + Ending point: rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] / SP + The start point is clocked by System [rising] + The end point is clocked by sgmii_ecp5|rxrefclk [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +----------------------------------------------------------------------------------------------------------------------------------- +DCU0_inst DCUA CH0_FFS_RLOL Out 0.000 0.000 - +rx_cdr_lol_s Net - - - - 4 +rsl_inst.un2_rdo_serdes_rst_dual_c_1_1 ORCALUT4 A In 0.000 0.000 - +rsl_inst.un2_rdo_serdes_rst_dual_c_1_1 ORCALUT4 Z Out 0.606 0.606 - +un2_rdo_serdes_rst_dual_c_1_1 Net - - - - 1 +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd_RNO_0[0] ORCALUT4 B In 0.000 0.606 - +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd_RNO_0[0] ORCALUT4 Z Out 0.390 0.996 - +un2_rdo_serdes_rst_dual_c_2_i Net - - - - 1 +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] FD1P3DX SP In 0.000 0.996 - +=================================================================================================================================== + + + +##### END OF TIMING REPORT #####] + +Timing exceptions that could not be applied +None + +Finished final timing analysis (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB) + + +Finished timing report (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB) + +--------------------------------------- +Resource Usage Report +Part: lfe5um_25f-6 + +Register bits: 221 of 24288 (1%) +PIC Latch: 0 +I/O cells: 0 + + +Details: +CCU2C: 113 +DCUA: 1 +FD1P3BX: 20 +FD1P3DX: 92 +FD1S3BX: 12 +FD1S3DX: 97 +GSR: 1 +INV: 3 +ORCALUT4: 153 +PFUMX: 2 +PUR: 1 +VHI: 6 +VLO: 6 +Mapper successful! + +At Mapper Exit (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 35MB peak: 153MB) + +Process took 0h:00m:03s realtime, 0h:00m:03s cputime +# Fri May 10 11:59:02 2019 + +###########################################################] diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.srm b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.srm new file mode 100644 index 0000000000000000000000000000000000000000..bacca77869981b665c22adfb6d504b929f58e1d7 GIT binary patch literal 31347 zcmaI7cT`hP&^NB4pj4IKMUdWm4JuXXBE3uRASDS^1VQOV=>(+r-bv`ah28>$-a~-U zLVf){&+m86``3HVoY^~fXJ_~9nc2_Wdv_Tlo<8`W3+I!Ljt)EfAm0Zy-k|X!j$`{2 zi6Ud-^8YID?+^SfTyvTyj5$~W`54Fyv0h;AiCfglkB(^^fGyPd=oU2>4|r%zTI>!NDJ?eFD=^+@yz7A z|IwVWfqj1+lOY)#P0C0(OKl=K+VLumoafmuT`jUWFV7TD8+dS%dJvvN!eg2H{gb9N z&x442yA012s!^s^PbFcm*PX?JPm@>-W!Y-ffn(ql8F;@BwDu|Z@Qw?t_-t$x@zssa zlB^|3*hGTm_4uQ=`dVbML-Ug0Lr>hL`5}zchu(c#Tqdj@r3ot~JmWsMUexX17(~|M zJa*}RuIfLWI%mdb3y&W4CGneibUzDzpcACNVtvFVT}egqJrb{>tvmQh8SJN^ z_uU5$(y7QCXg*USy)XwJnh7Rd!H7?>0wi4VKlc#0z zC{vVBp34pIY<*Jv*e~bm;s<_nCuCZF;qKpHreQ1FE#K!Y7SV0vtg#GvEg1du^^2<> z_ZEYjkAd!VNsjwA-#Eo<&YOdeV2VQrW(^5gkT)X3#<{xg=*#`{R{sgNQu_3xjuxoK zlFDtuwP^RHtQgY9GSXI03v^uB=eof5%CvPZtP5V`NgrmMb)n1k+uba~IxPkJx z){p~1h^nl=N;4xb!F)Q4Nj!IfW$+CPBU{9=^>-JWb*mHmtJf!mVSHQ3Cv-UQW0(pU z0BzDY7u+vDZg|WSN+~AfH=kE6)xGnG&t>QGHD=%dr@bZIefzm&DlibcvX@jO<+o2} z4cXQh+8D~-U!Q(%rW#ltMhQBi9PVhmKYg^r7eKr%&|4Z1$yhI`z7)~0`o%lA1=%mT zdO1_$^4%65naJCEBc75l54wA}Y~savGO=pC<#BSl32tit0Q6cVDUiFttW}6aAH8Zu z@v?rq-Q1?zkyx2Ku6@40`>>_xPH`W8ym@L*^hKaIlG22#DXZl82@NlAkm!j!0Lz~i zQ?au2w`vT)NKYhSgSV$At_ELhM)b``5X;2J+{ zR-T`5OjJv2g`r|J14e6)tIQjtOk(r zZEU!p_eX~v#H+=s+3#a-`sjxDl_~|lbZ^!p3i#aaT-YigAuP?{f}k~(40Zk9rF@KK z-Sw+P29Igy_9zv?ce~wAFl-(sjp_{2(cf;8$Y0lLM#UR!H<|;Ainjy~rnD$TG($A2q z;H{+>8LMD7xu_k;;o>haBzb!rD*RfKIwe29XLQCxE?k3+1Im<2>S(&-QX>j=@a18# zfHDfC3ZH!J2TUoh0&Grg-PZcby4)f^Ej_-I8nukmOH??ip|Ex{;~+RcE+Ord`W(2e zut9uui1eIkBW_Y!-lre$H|4ujJZ;f4K~O?*0%C7V@+tkIe_F~Rq+=R4)Pw|TX;*T) z1)Q&RJ&?)9M|bWIrB6AyawK?}QcHf-MtYufsb1KG4p}w^yxkvx4Va6!*Lt2>#;7H9 zjw$a%p38ok6gY-a$GzYivg)EE2TQgyzR)f$NdsDgXJ*jX+0uWWJgX@C<@MM3jVZq( zEKYj@^`b9sWlNgOecO-My!(X!N^C89xRk__MYb&{ec6|IJo1x``OU*(U!2|^Q`#QF zq>Fl>-`i)MB9FL&)_gq98KB1m*a!OM1Wul&LB0&q%vkD$^^M9GJ?r0wH5+#zRw#Em zT+(2zCr7JHIU@qO%|ZHNh0|x7&45-}`EKv!0q^^B#o>lq<}%lWu4@WmQZS-TX6wdJ zc5Y*2z7_ROCTp-JS+;m1=EQG@Bu(6?FMy>SN2o5kpS~~&#XNRp-cmXoOe{Q4oTQT> zPNLaoQH@`n+Y=azSG>;NmeqPgh+SZ08SbsS!<#jt*&(@&TC^6-mYYd~>=VWoR8mPX z_0up4`8bivwc+&S*8r7|qmw2x%DinspCpdyc`lYzoav(H^cyD8{617L-!%b~50${a zg%XsE=vGnmdabV@N)2p5X}iUXx;5D$F&qI2_{2# ze^u5Z<`|?7{~DTYoW)MbK8Owf+M1o7$8I}4)FCb*-fUbBVoQ_@|ED*q`CEu=^N~W+ zTdh&O-x%^uZUqSyPTK@npEbg_(ra!0`aQ!tQ>P6;ySRX5ImUwU^>V?hH2cdXhH>fV zbT$e6G6m>)W0H7K((e1`8kO2V%c=yPoV6G7OPDT2HoQ^4jou1MN#E=NnmZqO5Jj}4v zC#dCS;UH_(dGc-<@I?K33&1*RX#s?_`JyG%Nl#fmL5INIr%HcGLu~U)q^~VhK51hF zjYUswt{(U&Vc?cGDr%%o_&0+KTX{fkB;k@Cuh{39O54xi(T(-!J@#a0!Q1lS034Y= z^GsJJ%7M(QV*d9^rEwQ1sX7}F@|)tlrDJQG<6D9RrR0J-6yt`8ub51%RZ?eIlcA4o zo5e>s?R<^5tut=d<)JftL)5V*r%M{Fw3#?MP&=}F#{+0&s3|d*9)JsH4vNCp+iEV1 zoO~iR7BVt?5KfTA{N{!yEm95d8i=Lm1#lAxsHo-0(~7;sZmXgOmhRdi^zbF0zXsA6 zzk|iDQY#;$*=J1dPRSkj-#U~mI((SCoF7T!7+Nqakv_)-vdjk
    2)2b0bcVXq|k~ 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 LeHchIs-*z{BHI1d literal 0 HcmV?d00001 diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.srr b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.srr new file mode 100644 index 0000000..a063791 --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.srr @@ -0,0 +1,1144 @@ +#Build: Synplify Pro (R) M-2017.03L-SP1-1, Build 086R, Aug 4 2017 +#install: /home/soft/lattice/diamond/3.10_x64/synpbase +#OS: Linux +#Hostname: lxhadeb07 + +# Fri May 10 11:58:54 2019 + +#Implementation: syn_results + +Synopsys HDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Synopsys VHDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5.vhd":30:7:30:16|Top entity is set to sgmii_ecp5. +VHDL syntax check successful! + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB) + + +Process completed successfully. +# Fri May 10 11:58:55 2019 + +###########################################################] +Synopsys Verilog Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps) +@I::"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v" (library work) +Verilog syntax check successful! + +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB) + + +Process completed successfully. +# Fri May 10 11:58:55 2019 + +###########################################################] +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5.vhd":30:7:30:16|Top entity is set to sgmii_ecp5. +VHDL syntax check successful! +@N: CD630 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5.vhd":30:7:30:16|Synthesizing work.sgmii_ecp5.v1. +Post processing for work.sgmii_ecp5.v1 + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 74MB peak: 76MB) + + +Process completed successfully. +# Fri May 10 11:58:55 2019 + +###########################################################] +Running on host :lxhadeb07 +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps) +@I::"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v" (library work) +Verilog syntax check successful! +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +@N: CG364 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1968:7:1968:10|Synthesizing module sync in library work. + + PDATA_RST_VAL=32'b00000000000000000000000000000000 + Generated name = sync_0s +@N: CG364 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1051:7:1051:24|Synthesizing module sgmii_ecp5sll_core in library work. + + PPROTOCOL=24'b010001110100001001000101 + PLOL_SETTING=32'b00000000000000000000000000000000 + PDYN_RATE_CTRL=64'b0100010001001001010100110100000101000010010011000100010101000100 + PPCIE_MAX_RATE=24'b001100100010111000110101 + PDIFF_VAL_LOCK=32'b00000000000000000000000000010011 + PDIFF_VAL_UNLOCK=32'b00000000000000000000000000100111 + PPCLK_TC=32'b00000000000000010000000000000000 + PDIFF_DIV11_VAL_LOCK=32'b00000000000000000000000000000000 + PDIFF_DIV11_VAL_UNLOCK=32'b00000000000000000000000000000000 + PPCLK_DIV11_TC=32'b00000000000000000000000000000000 + LPLL_LOSS_ST=2'b00 + LPLL_PRELOSS_ST=2'b01 + LPLL_PRELOCK_ST=2'b10 + LPLL_LOCK_ST=2'b11 + LRCLK_TC=16'b1111111111111111 + LRCLK_TC_PUL_WIDTH=16'b0000000000110010 + LHB_WAIT_CNT=8'b11111111 + LPCLK_TC_0=32'b00000000000000001000000000000000 + LPCLK_TC_1=32'b00000000000000010000000000000000 + LPCLK_TC_2=32'b00000000000000100000000000000000 + LPCLK_TC_3=32'b00000000000000101000000000000000 + LPCLK_TC_4=32'b00000000000000010000000000000000 + LPDIFF_LOCK_00=32'b00000000000000000000000000001001 + LPDIFF_LOCK_10=32'b00000000000000000000000000010011 + LPDIFF_LOCK_20=32'b00000000000000000000000000100111 + LPDIFF_LOCK_30=32'b00000000000000000000000000110001 + LPDIFF_LOCK_40=32'b00000000000000000000000000010011 + LPDIFF_LOCK_01=32'b00000000000000000000000000001001 + LPDIFF_LOCK_11=32'b00000000000000000000000000010011 + LPDIFF_LOCK_21=32'b00000000000000000000000000100111 + LPDIFF_LOCK_31=32'b00000000000000000000000000110001 + LPDIFF_LOCK_41=32'b00000000000000000000000000010011 + LPDIFF_LOCK_02=32'b00000000000000000000000000110001 + LPDIFF_LOCK_12=32'b00000000000000000000000001100010 + LPDIFF_LOCK_22=32'b00000000000000000000000011000100 + LPDIFF_LOCK_32=32'b00000000000000000000000011110101 + LPDIFF_LOCK_42=32'b00000000000000000000000001100010 + LPDIFF_LOCK_03=32'b00000000000000000000000010000011 + LPDIFF_LOCK_13=32'b00000000000000000000000100000110 + LPDIFF_LOCK_23=32'b00000000000000000000001000001100 + LPDIFF_LOCK_33=32'b00000000000000000000001010001111 + LPDIFF_LOCK_43=32'b00000000000000000000000100000110 + LPDIFF_UNLOCK_00=32'b00000000000000000000000000010011 + LPDIFF_UNLOCK_10=32'b00000000000000000000000000100111 + LPDIFF_UNLOCK_20=32'b00000000000000000000000001001110 + LPDIFF_UNLOCK_30=32'b00000000000000000000000001100010 + LPDIFF_UNLOCK_40=32'b00000000000000000000000000100111 + LPDIFF_UNLOCK_01=32'b00000000000000000000000001000001 + LPDIFF_UNLOCK_11=32'b00000000000000000000000010000011 + LPDIFF_UNLOCK_21=32'b00000000000000000000000100000110 + LPDIFF_UNLOCK_31=32'b00000000000000000000000101000111 + LPDIFF_UNLOCK_41=32'b00000000000000000000000010000011 + LPDIFF_UNLOCK_02=32'b00000000000000000000000001001000 + LPDIFF_UNLOCK_12=32'b00000000000000000000000010010000 + LPDIFF_UNLOCK_22=32'b00000000000000000000000100100000 + LPDIFF_UNLOCK_32=32'b00000000000000000000000101101000 + LPDIFF_UNLOCK_42=32'b00000000000000000000000010010000 + LPDIFF_UNLOCK_03=32'b00000000000000000000000011000100 + LPDIFF_UNLOCK_13=32'b00000000000000000000000110001001 + LPDIFF_UNLOCK_23=32'b00000000000000000000001100010010 + LPDIFF_UNLOCK_33=32'b00000000000000000000001111010111 + LPDIFF_UNLOCK_43=32'b00000000000000000000000110001001 + Generated name = sgmii_ecp5sll_core_Z1_layer1 +@N: CG179 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1287:54:1287:59|Removing redundant assignment. +@N: CG179 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1293:52:1293:55|Removing redundant assignment. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1350:0:1350:5|Pruning unused register rcpri_mod_ch_st. Make sure that there are no unused intermediate registers. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 2 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 0 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 1 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 2 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 17 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 18 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 19 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 20 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 21 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +@N: CG364 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":92:7:92:24|Synthesizing module sgmii_ecp5rsl_core in library work. + + pnum_channels=32'b00000000000000000000000000000001 + pprotocol=24'b010001110100001001000101 + pserdes_mode=72'b010100100101100000100000010000010100111001000100001000000101010001011000 + pport_tx_rdy=56'b01000101010011100100000101000010010011000100010101000100 + pwait_tx_rdy=32'b00000000000000000000101110111000 + pport_rx_rdy=56'b01000101010011100100000101000010010011000100010101000100 + pwait_rx_rdy=32'b00000000000000000000101110111000 + wa_num_cycles=32'b00000000000000000000010000000000 + dac_num_cycles=32'b00000000000000000000000000000011 + lreset_pwidth=32'b00000000000000000000000000000011 + lwait_b4_trst=32'b00000000000010111110101111000010 + lwait_b4_trst_s=32'b00000000000000000000001100001101 + lplol_cnt_width=32'b00000000000000000000000000010100 + lwait_after_plol0=32'b00000000000000000000000000000100 + lwait_b4_rrst=32'b00000000000000101100000000000000 + lrrst_wait_width=32'b00000000000000000000000000010100 + lwait_after_rrst=32'b00000000000011000011010100000000 + lwait_b4_rrst_s=32'b00000000000000000000000111001100 + lrlol_cnt_width=32'b00000000000000000000000000010011 + lwait_after_lols=32'b00000000000000001100010000000000 + lwait_after_lols_s=32'b00000000000000000000000010010110 + llols_cnt_width=32'b00000000000000000000000000010010 + lrdb_max=32'b00000000000000000000000000001111 + ltxr_wait_width=32'b00000000000000000000000000001100 + lrxr_wait_width=32'b00000000000000000000000000001100 + Generated name = sgmii_ecp5rsl_core_Z2_layer1 +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":326:33:326:40|Object rrst_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":327:33:327:43|Removing wire rrst_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":328:33:328:41|Object rrst_wait is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":341:33:341:39|Object rxp_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":342:33:342:39|Object rxp_rst is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":343:33:343:42|Removing wire rxp_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":346:33:346:42|Object rlolsz_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":347:33:347:45|Removing wire rlolsz_cnt_tc, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":350:33:350:43|Removing wire rxp_cnt2_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":351:33:351:47|Object data_loop_b_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":352:33:352:43|Object data_loop_b is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":353:33:353:46|Removing wire data_loop_b_tc, as there is no assignment to it. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":806:3:806:8|Pruning unused register genblk2.rxp_cnt2[2:0]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlol_p3. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlos_p3. Make sure that there are no unused intermediate registers. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":694:3:694:8|Optimizing register bit genblk2.rxs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":461:3:461:8|Optimizing register bit genblk1.txp_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":422:3:422:8|Optimizing register bit genblk1.txs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":422:3:422:8|Pruning register bit 2 of genblk1.txs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":461:3:461:8|Pruning register bit 2 of genblk1.txp_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":694:3:694:8|Pruning register bit 2 of genblk2.rxs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":200:33:200:48|Input port bits 3 to 1 of rui_tx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":204:33:204:51|Input port bits 3 to 1 of rui_rx_serdes_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":205:33:205:48|Input port bits 3 to 1 of rui_rx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":206:33:206:48|Input port bits 3 to 1 of rdi_rx_los_low_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":207:33:207:48|Input port bits 3 to 1 of rdi_rx_cdr_lol_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning register bits 5 to 3 of genblk5.rdiff_comp_unlock[5:2]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning register bits 4 to 3 of genblk5.rdiff_comp_lock[4:2]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rdiff_comp_unlock[2]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rcount_tc[16]. Make sure that there are no unused intermediate registers. +@N: CL201 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1801:0:1801:5|Trying to extract state machine for register sll_state. +Extracted state machine for register sll_state +State machine has 4 reachable states with original encodings of: + 00 + 01 + 10 + 11 + +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 75MB peak: 81MB) + + +Process completed successfully. +# Fri May 10 11:58:56 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode + +======================================================================================= +For a summary of linker messages for components that did not bind, please see log file: +@L: /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.linkerlog +======================================================================================= + + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 11:58:56 2019 + +###########################################################] +@END + +At c_hdl Exit (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 3MB peak: 4MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 11:58:56 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 11:58:57 2019 + +###########################################################] +Pre-mapping Report + +# Fri May 10 11:58:57 2019 + +Synopsys Lattice Technology Pre-mapping, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 100MB) + +Reading constraint file: /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5.fdc +@L: /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5_scck.rpt +Printing clock summary report in "/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5_scck.rpt" file +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 102MB peak: 104MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 102MB peak: 104MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 114MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 116MB) + +@N: BN362 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1408:0:1408:5|Removing sequential instance pcpri_mod_ch (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:PrimLib.dffre(prim) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1244:27:1244:40|Removing instance div2_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_3(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1252:27:1252:41|Removing instance div11_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_2(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1236:27:1236:40|Removing instance gear_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_4(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1268:27:1268:44|Removing instance pcie_mod_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_0(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1260:27:1260:44|Removing instance cpri_mod_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_1(verilog) because it does not drive other instances. +ICG Latch Removal Summary: +Number of ICG latches removed: 0 +Number of ICG latches not removed: 0 +syn_allowed_resources : blockrams=56 set on top level netlist sgmii_ecp5 + +Finished netlist restructuring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + + + +Clock Summary +****************** + + Start Requested Requested Clock Clock Clock +Level Clock Frequency Period Type Group Load +---------------------------------------------------------------------------------------------------------------------- +0 - System 100.0 MHz 10.000 system system_clkgroup 0 + +0 - sgmii_ecp5|pll_refclki 100.0 MHz 10.000 inferred Inferred_clkgroup_0 93 + +0 - sgmii_ecp5|rxrefclk 100.0 MHz 10.000 inferred Inferred_clkgroup_1 77 + +0 - sgmii_ecp5|tx_pclk_inferred_clock 100.0 MHz 10.000 inferred Inferred_clkgroup_2 53 +====================================================================================================================== + +@W: MT529 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Found inferred clock sgmii_ecp5|pll_refclki which controls 93 sequential elements including sll_inst.phb_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":567:3:567:8|Found inferred clock sgmii_ecp5|rxrefclk which controls 77 sequential elements including rsl_inst.genblk2\.rlos_db_p1. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Found inferred clock sgmii_ecp5|tx_pclk_inferred_clock which controls 53 sequential elements including sll_inst.rtc_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. + +Finished Pre Mapping Phase. + +Starting constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + +Encoding state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) +original code -> new code + 00 -> 00 + 01 -> 01 + 10 -> 10 + 11 -> 11 +@N: MO225 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1801:0:1801:5|There are no possible illegal states for state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)); safe FSM implementation is not required. + +Finished constraint checker preprocessing (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + +None +None + +Finished constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + +Pre-mapping successful! + +At Mapper Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 58MB peak: 144MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime +# Fri May 10 11:58:58 2019 + +###########################################################] +Map & Optimize Report + +# Fri May 10 11:58:58 2019 + +Synopsys Lattice Technology Mapper, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 100MB) + +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 113MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 115MB) + + + +Starting Optimization and Mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 144MB) + + +Available hyper_sources - for debug and ip models + None Found + + +Finished RTL optimizations (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + +Encoding state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) +original code -> new code + 00 -> 00 + 01 -> 01 + 10 -> 10 + 11 -> 11 +@N: MO225 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1801:0:1801:5|There are no possible illegal states for state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)); safe FSM implementation is not required. +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1350:0:1350:5|Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance rhb_wait_cnt[7:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1304:0:1304:5|Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance rcount[15:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1759:0:1759:5|Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance pcount[21:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":412:3:412:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk1\.plol_cnt[19:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":909:3:909:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.genblk3\.rxr_wt_cnt[11:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":527:3:527:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk1\.genblk2\.txr_wt_cnt[11:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":778:3:778:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.rlols0_cnt[17:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":680:3:680:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.rlol1_cnt[18:0] + +Starting factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + + +Finished factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 144MB) + + +Starting gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + + +Finished gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + + +Finished generic timing optimizations - Pass 1 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 145MB) + + +Starting Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 145MB) + + +Finished Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 145MB) + + +Finished generic timing optimizations - Pass 2 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 145MB) + + +Finished preparing to map (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 145MB peak: 145MB) + +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). + +Finished technology mapping (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 147MB peak: 148MB) + +Pass CPU time Worst Slack Luts / Registers +------------------------------------------------------------ + 1 0h:00m:01s 5.36ns 154 / 221 +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). + +Finished technology timing optimizations and critical path resynthesis (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 147MB peak: 148MB) + +@N: FX164 |The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute. + +Finished restoring hierarchy (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 147MB peak: 148MB) + + + +@S |Clock Optimization Summary + + +#### START OF CLOCK OPTIMIZATION REPORT #####[ + +3 non-gated/non-generated clock tree(s) driving 221 clock pin(s) of sequential element(s) +0 gated/generated clock tree(s) driving 0 clock pin(s) of sequential element(s) +0 instances converted, 0 sequential instances remain driven by gated/generated clocks + +============================================= Non-Gated/Non-Generated Clocks ============================================= +Clock Tree ID Driving Element Drive Element Type Fanout Sample Instance +-------------------------------------------------------------------------------------------------------------------------- +@K:CKID0001 pll_refclki port 91 rsl_inst.genblk1\.genblk2\.mfor\[0\]\.txpr_appd[0] +@K:CKID0002 rxrefclk port 77 rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] +@K:CKID0003 DCU0_inst DCUA 53 sll_inst.pcount[21] +========================================================================================================================== + + +##### END OF CLOCK OPTIMIZATION REPORT ######] + + +Start Writing Netlists (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 111MB peak: 148MB) + +Writing Analyst data base /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_m.srm + +Finished Writing Netlist Databases (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 146MB peak: 148MB) + +Writing EDIF Netlist and constraint files +@N: FX1056 |Writing EDF file: /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.edn +M-2017.03L-SP1-1 +@N: BW106 |Synplicity Constraint File capacitance units using default value of 1pF + +Finished Writing EDIF Netlist and constraint files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 151MB peak: 153MB) + +Writing Verilog Simulation files + +Finished Writing Verilog Simulation files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 151MB peak: 153MB) + +Writing VHDL Simulation files + +Finished Writing VHDL Simulation files (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB) + + +Start final timing analysis (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB) + +@W: MT246 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5.vhd":162:4:162:12|Blackbox DCUA is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) +@W: MT420 |Found inferred clock sgmii_ecp5|rxrefclk with period 10.00ns. Please declare a user-defined clock on object "p:rxrefclk" +@W: MT420 |Found inferred clock sgmii_ecp5|pll_refclki with period 10.00ns. Please declare a user-defined clock on object "p:pll_refclki" +@W: MT420 |Found inferred clock sgmii_ecp5|tx_pclk_inferred_clock with period 10.00ns. Please declare a user-defined clock on object "n:tx_pclk" + + +##### START OF TIMING REPORT #####[ +# Timing Report written on Fri May 10 11:59:02 2019 +# + + +Top view: sgmii_ecp5 +Requested Frequency: 100.0 MHz +Wire load mode: top +Paths requested: 5 +Constraint File(s): /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5.fdc + +@N: MT320 |This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. + +@N: MT322 |Clock constraints include only register-to-register paths associated with each individual clock. + + + +Performance Summary +******************* + + +Worst slack in design: 4.079 + + Requested Estimated Requested Estimated Clock Clock +Starting Clock Frequency Frequency Period Period Slack Type Group +---------------------------------------------------------------------------------------------------------------------------------------- +sgmii_ecp5|pll_refclki 100.0 MHz 168.9 MHz 10.000 5.921 4.079 inferred Inferred_clkgroup_0 +sgmii_ecp5|rxrefclk 100.0 MHz 170.5 MHz 10.000 5.864 4.136 inferred Inferred_clkgroup_1 +sgmii_ecp5|tx_pclk_inferred_clock 100.0 MHz 237.5 MHz 10.000 4.211 5.789 inferred Inferred_clkgroup_2 +System 100.0 MHz 840.7 MHz 10.000 1.190 8.810 system system_clkgroup +======================================================================================================================================== + + + + + +Clock Relationships +******************* + +Clocks | rise to rise | fall to fall | rise to fall | fall to rise +------------------------------------------------------------------------------------------------------------------------------------------------------------ +Starting Ending | constraint slack | constraint slack | constraint slack | constraint slack +------------------------------------------------------------------------------------------------------------------------------------------------------------ +System sgmii_ecp5|rxrefclk | 10.000 8.811 | No paths - | No paths - | No paths - +sgmii_ecp5|pll_refclki System | 10.000 8.253 | No paths - | No paths - | No paths - +sgmii_ecp5|pll_refclki sgmii_ecp5|pll_refclki | 10.000 4.079 | No paths - | No paths - | No paths - +sgmii_ecp5|pll_refclki sgmii_ecp5|tx_pclk_inferred_clock | Diff grp - | No paths - | No paths - | No paths - +sgmii_ecp5|rxrefclk System | 10.000 8.184 | No paths - | No paths - | No paths - +sgmii_ecp5|rxrefclk sgmii_ecp5|rxrefclk | 10.000 4.136 | No paths - | No paths - | No paths - +sgmii_ecp5|tx_pclk_inferred_clock sgmii_ecp5|pll_refclki | Diff grp - | No paths - | No paths - | No paths - +sgmii_ecp5|tx_pclk_inferred_clock sgmii_ecp5|tx_pclk_inferred_clock | 10.000 5.789 | No paths - | No paths - | No paths - +============================================================================================================================================================ + Note: 'No paths' indicates there are no paths in the design for that pair of clock edges. + 'Diff grp' indicates that paths exist but the starting clock and ending clock are in different clock groups. + + + +Interface Information +********************* + +No IO constraint found + + + +==================================== +Detailed Report for Clock: sgmii_ecp5|pll_refclki +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +-------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[2] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[2] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[3] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[3] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[17] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[17] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[19] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[19] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[1] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[1] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[4] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[4] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[5] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[5] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[6] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[6] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[7] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[7] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[8] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[8] 0.907 4.684 +==================================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +----------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[19] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[19] 9.946 4.079 +rsl_inst.genblk1\.plol_cnt[17] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[17] 9.946 4.139 +rsl_inst.genblk1\.plol_cnt[18] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[18] 9.946 4.139 +rsl_inst.genblk1\.plol_cnt[15] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[15] 9.946 4.200 +rsl_inst.genblk1\.plol_cnt[16] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[16] 9.946 4.200 +rsl_inst.genblk1\.plol_cnt[13] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[13] 9.946 4.261 +rsl_inst.genblk1\.plol_cnt[14] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[14] 9.946 4.261 +rsl_inst.genblk1\.plol_cnt[11] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[11] 9.946 4.322 +rsl_inst.genblk1\.plol_cnt[12] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[12] 9.946 4.322 +rsl_inst.genblk1\.plol_cnt[9] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[9] 9.946 4.383 +======================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 5.867 + - Clock delay at starting point: 0.000 (ideal) + = Slack (critical) : 4.079 + + Number of logic level(s): 15 + Starting point: rsl_inst.genblk1\.plol_cnt[2] / Q + Ending point: rsl_inst.genblk1\.plol_cnt[19] / D + The start point is clocked by sgmii_ecp5|pll_refclki [rising] on pin CK + The end point is clocked by sgmii_ecp5|pll_refclki [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[2] FD1S3DX Q Out 0.907 0.907 - +plol_cnt[2] Net - - - - 2 +rsl_inst.genblk1\.un1_plol_cnt_tc_10 ORCALUT4 A In 0.000 0.907 - +rsl_inst.genblk1\.un1_plol_cnt_tc_10 ORCALUT4 Z Out 0.606 1.513 - +un1_plol_cnt_tc_10 Net - - - - 1 +rsl_inst.genblk1\.un1_plol_cnt_tc_14 ORCALUT4 D In 0.000 1.513 - +rsl_inst.genblk1\.un1_plol_cnt_tc_14 ORCALUT4 Z Out 0.606 2.119 - +un1_plol_cnt_tc_14 Net - - - - 1 +rsl_inst.genblk1\.un1_plol_cnt_tc ORCALUT4 D In 0.000 2.119 - +rsl_inst.genblk1\.un1_plol_cnt_tc ORCALUT4 Z Out 0.762 2.881 - +un1_plol_cnt_tc Net - - - - 5 +rsl_inst.genblk1\.plol_cnt11_i ORCALUT4 B In 0.000 2.881 - +rsl_inst.genblk1\.plol_cnt11_i ORCALUT4 Z Out 0.840 3.721 - +plol_cnt Net - - - - 21 +rsl_inst.genblk1\.plol_cnt_cry_0[0] CCU2C A1 In 0.000 3.721 - +rsl_inst.genblk1\.plol_cnt_cry_0[0] CCU2C COUT Out 0.900 4.621 - +plol_cnt_cry[0] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[1] CCU2C CIN In 0.000 4.621 - +rsl_inst.genblk1\.plol_cnt_cry_0[1] CCU2C COUT Out 0.061 4.682 - +plol_cnt_cry[2] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[3] CCU2C CIN In 0.000 4.682 - +rsl_inst.genblk1\.plol_cnt_cry_0[3] CCU2C COUT Out 0.061 4.743 - +plol_cnt_cry[4] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[5] CCU2C CIN In 0.000 4.743 - +rsl_inst.genblk1\.plol_cnt_cry_0[5] CCU2C COUT Out 0.061 4.804 - +plol_cnt_cry[6] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[7] CCU2C CIN In 0.000 4.804 - +rsl_inst.genblk1\.plol_cnt_cry_0[7] CCU2C COUT Out 0.061 4.865 - +plol_cnt_cry[8] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[9] CCU2C CIN In 0.000 4.865 - +rsl_inst.genblk1\.plol_cnt_cry_0[9] CCU2C COUT Out 0.061 4.926 - +plol_cnt_cry[10] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[11] CCU2C CIN In 0.000 4.926 - +rsl_inst.genblk1\.plol_cnt_cry_0[11] CCU2C COUT Out 0.061 4.987 - +plol_cnt_cry[12] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[13] CCU2C CIN In 0.000 4.987 - +rsl_inst.genblk1\.plol_cnt_cry_0[13] CCU2C COUT Out 0.061 5.048 - +plol_cnt_cry[14] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[15] CCU2C CIN In 0.000 5.048 - +rsl_inst.genblk1\.plol_cnt_cry_0[15] CCU2C COUT Out 0.061 5.109 - +plol_cnt_cry[16] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[17] CCU2C CIN In 0.000 5.109 - +rsl_inst.genblk1\.plol_cnt_cry_0[17] CCU2C COUT Out 0.061 5.170 - +plol_cnt_cry[18] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_s_0[19] CCU2C CIN In 0.000 5.170 - +rsl_inst.genblk1\.plol_cnt_s_0[19] CCU2C S0 Out 0.698 5.867 - +plol_cnt_s[19] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt[19] FD1S3DX D In 0.000 5.867 - +======================================================================================================= + + + + +==================================== +Detailed Report for Clock: sgmii_ecp5|rxrefclk +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rlol1_cnt[7] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[7] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[8] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[8] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[9] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[9] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[10] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[10] 0.907 4.136 +rsl_inst.genblk2\.rlols0_cnt[1] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[1] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[2] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[2] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[3] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[3] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[4] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[4] 0.907 4.170 +rsl_inst.genblk2\.rxs_rst sgmii_ecp5|rxrefclk FD1P3DX Q rxs_rst 1.015 4.700 +rsl_inst.genblk2\.rlol1_cnt[0] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[0] 0.907 4.742 +=================================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------------------------------------------ +rsl_inst.genblk2\.rlol1_cnt[17] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[17] 9.946 4.136 +rsl_inst.genblk2\.rlol1_cnt[18] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[18] 9.946 4.136 +rsl_inst.genblk2\.rlols0_cnt[17] sgmii_ecp5|rxrefclk FD1P3DX D rlols0_cnt_s[17] 9.946 4.170 +rsl_inst.genblk2\.rlol1_cnt[15] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[15] 9.946 4.197 +rsl_inst.genblk2\.rlol1_cnt[16] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[16] 9.946 4.197 +rsl_inst.genblk2\.rlols0_cnt[15] sgmii_ecp5|rxrefclk FD1P3DX D rlols0_cnt_s[15] 9.946 4.231 +rsl_inst.genblk2\.rlols0_cnt[16] sgmii_ecp5|rxrefclk FD1P3DX D rlols0_cnt_s[16] 9.946 4.231 +rsl_inst.genblk2\.rlol1_cnt[13] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[13] 9.946 4.258 +rsl_inst.genblk2\.rlol1_cnt[14] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[14] 9.946 4.258 +rsl_inst.genblk2\.rlols0_cnt[13] sgmii_ecp5|rxrefclk FD1P3DX D rlols0_cnt_s[13] 9.946 4.292 +======================================================================================================================== + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 5.809 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : 4.136 + + Number of logic level(s): 14 + Starting point: rsl_inst.genblk2\.rlol1_cnt[7] / Q + Ending point: rsl_inst.genblk2\.rlol1_cnt[18] / D + The start point is clocked by sgmii_ecp5|rxrefclk [rising] on pin CK + The end point is clocked by sgmii_ecp5|rxrefclk [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +-------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rlol1_cnt[7] FD1P3DX Q Out 0.907 0.907 - +rlol1_cnt[7] Net - - - - 2 +rsl_inst.rlol1_cnt_tc_1_10 ORCALUT4 A In 0.000 0.907 - +rsl_inst.rlol1_cnt_tc_1_10 ORCALUT4 Z Out 0.606 1.513 - +rlol1_cnt_tc_1_10 Net - - - - 1 +rsl_inst.rlol1_cnt_tc_1_14 ORCALUT4 D In 0.000 1.513 - +rsl_inst.rlol1_cnt_tc_1_14 ORCALUT4 Z Out 0.606 2.119 - +rlol1_cnt_tc_1_14 Net - - - - 1 +rsl_inst.rlol1_cnt_tc_1 ORCALUT4 D In 0.000 2.119 - +rsl_inst.rlol1_cnt_tc_1 ORCALUT4 Z Out 0.768 2.887 - +rlol1_cnt_tc_1 Net - - - - 6 +rsl_inst.genblk2\.rlos_db_p1_RNIS0OP ORCALUT4 A In 0.000 2.887 - +rsl_inst.genblk2\.rlos_db_p1_RNIS0OP ORCALUT4 Z Out 0.837 3.724 - +rlol1_cnt Net - - - - 20 +rsl_inst.genblk2\.rlol1_cnt_cry_0[0] CCU2C A1 In 0.000 3.724 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[0] CCU2C COUT Out 0.900 4.624 - +rlol1_cnt_cry[0] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[1] CCU2C CIN In 0.000 4.624 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[1] CCU2C COUT Out 0.061 4.685 - +rlol1_cnt_cry[2] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[3] CCU2C CIN In 0.000 4.685 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[3] CCU2C COUT Out 0.061 4.746 - +rlol1_cnt_cry[4] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[5] CCU2C CIN In 0.000 4.746 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[5] CCU2C COUT Out 0.061 4.807 - +rlol1_cnt_cry[6] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[7] CCU2C CIN In 0.000 4.807 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[7] CCU2C COUT Out 0.061 4.868 - +rlol1_cnt_cry[8] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[9] CCU2C CIN In 0.000 4.868 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[9] CCU2C COUT Out 0.061 4.929 - +rlol1_cnt_cry[10] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[11] CCU2C CIN In 0.000 4.929 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[11] CCU2C COUT Out 0.061 4.990 - +rlol1_cnt_cry[12] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[13] CCU2C CIN In 0.000 4.990 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[13] CCU2C COUT Out 0.061 5.051 - +rlol1_cnt_cry[14] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[15] CCU2C CIN In 0.000 5.051 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[15] CCU2C COUT Out 0.061 5.112 - +rlol1_cnt_cry[16] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[17] CCU2C CIN In 0.000 5.112 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[17] CCU2C S1 Out 0.698 5.809 - +rlol1_cnt_s[18] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt[18] FD1P3DX D In 0.000 5.809 - +======================================================================================================== + + + + +==================================== +Detailed Report for Clock: sgmii_ecp5|tx_pclk_inferred_clock +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------------------------------------------ +sll_inst.ppul_sync_p1 sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q ppul_sync_p1 1.098 5.789 +sll_inst.ppul_sync_p2 sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q ppul_sync_p2 1.098 5.789 +sll_inst.pcount_diff[0] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_0 0.985 6.147 +sll_inst.pcount[0] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q pcount[0] 0.955 6.178 +sll_inst.pcount_diff[1] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_1 0.955 6.239 +sll_inst.pcount_diff[2] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_2 0.955 6.239 +sll_inst.pcount[1] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q pcount[1] 0.907 6.287 +sll_inst.pcount[2] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q pcount[2] 0.907 6.287 +sll_inst.pcount_diff[3] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_3 0.955 6.300 +sll_inst.pcount_diff[4] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_4 0.955 6.300 +======================================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +----------------------------------------------------------------------------------------------------------------------------------------- +sll_inst.pcount[21] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[21] 9.946 5.789 +sll_inst.pcount[19] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[19] 9.946 5.850 +sll_inst.pcount[20] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[20] 9.946 5.850 +sll_inst.pcount[17] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[17] 9.946 5.911 +sll_inst.pcount[18] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[18] 9.946 5.911 +sll_inst.pcount[15] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[15] 9.946 5.972 +sll_inst.pcount[16] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[16] 9.946 5.972 +sll_inst.pcount[13] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[13] 9.946 6.033 +sll_inst.pcount[14] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[14] 9.946 6.033 +sll_inst.pcount_diff[21] sgmii_ecp5|tx_pclk_inferred_clock FD1P3DX D un1_pcount_diff_1_s_21_0_S0 9.946 6.034 +========================================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 4.157 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : 5.789 + + Number of logic level(s): 13 + Starting point: sll_inst.ppul_sync_p1 / Q + Ending point: sll_inst.pcount[21] / D + The start point is clocked by sgmii_ecp5|tx_pclk_inferred_clock [rising] on pin CK + The end point is clocked by sgmii_ecp5|tx_pclk_inferred_clock [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +-------------------------------------------------------------------------------------------- +sll_inst.ppul_sync_p1 FD1S3DX Q Out 1.098 1.098 - +ppul_sync_p1 Net - - - - 25 +sll_inst.pcount10_0_o3 ORCALUT4 A In 0.000 1.098 - +sll_inst.pcount10_0_o3 ORCALUT4 Z Out 0.851 1.950 - +N_8 Net - - - - 25 +sll_inst.pcount_cry_0[0] CCU2C A1 In 0.000 1.950 - +sll_inst.pcount_cry_0[0] CCU2C COUT Out 0.900 2.850 - +pcount_cry[0] Net - - - - 1 +sll_inst.pcount_cry_0[1] CCU2C CIN In 0.000 2.850 - +sll_inst.pcount_cry_0[1] CCU2C COUT Out 0.061 2.911 - +pcount_cry[2] Net - - - - 1 +sll_inst.pcount_cry_0[3] CCU2C CIN In 0.000 2.911 - +sll_inst.pcount_cry_0[3] CCU2C COUT Out 0.061 2.972 - +pcount_cry[4] Net - - - - 1 +sll_inst.pcount_cry_0[5] CCU2C CIN In 0.000 2.972 - +sll_inst.pcount_cry_0[5] CCU2C COUT Out 0.061 3.033 - +pcount_cry[6] Net - - - - 1 +sll_inst.pcount_cry_0[7] CCU2C CIN In 0.000 3.033 - +sll_inst.pcount_cry_0[7] CCU2C COUT Out 0.061 3.094 - +pcount_cry[8] Net - - - - 1 +sll_inst.pcount_cry_0[9] CCU2C CIN In 0.000 3.094 - +sll_inst.pcount_cry_0[9] CCU2C COUT Out 0.061 3.155 - +pcount_cry[10] Net - - - - 1 +sll_inst.pcount_cry_0[11] CCU2C CIN In 0.000 3.155 - +sll_inst.pcount_cry_0[11] CCU2C COUT Out 0.061 3.216 - +pcount_cry[12] Net - - - - 1 +sll_inst.pcount_cry_0[13] CCU2C CIN In 0.000 3.216 - +sll_inst.pcount_cry_0[13] CCU2C COUT Out 0.061 3.277 - +pcount_cry[14] Net - - - - 1 +sll_inst.pcount_cry_0[15] CCU2C CIN In 0.000 3.277 - +sll_inst.pcount_cry_0[15] CCU2C COUT Out 0.061 3.338 - +pcount_cry[16] Net - - - - 1 +sll_inst.pcount_cry_0[17] CCU2C CIN In 0.000 3.338 - +sll_inst.pcount_cry_0[17] CCU2C COUT Out 0.061 3.399 - +pcount_cry[18] Net - - - - 1 +sll_inst.pcount_cry_0[19] CCU2C CIN In 0.000 3.399 - +sll_inst.pcount_cry_0[19] CCU2C COUT Out 0.061 3.460 - +pcount_cry[20] Net - - - - 1 +sll_inst.pcount_s_0[21] CCU2C CIN In 0.000 3.460 - +sll_inst.pcount_s_0[21] CCU2C S0 Out 0.698 4.157 - +pcount_s[21] Net - - - - 1 +sll_inst.pcount[21] FD1S3DX D In 0.000 4.157 - +============================================================================================ + + + + +==================================== +Detailed Report for Clock: System +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +---------------------------------------------------------------------------------------- +DCU0_inst System DCUA CH0_FFS_RLOL rx_cdr_lol_s 0.000 8.810 +DCU0_inst System DCUA CH0_FFS_RLOS rx_los_low_s 0.000 8.810 +======================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] System FD1P3DX SP un2_rdo_serdes_rst_dual_c_2_i 9.806 8.810 +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] System FD1P3DX D rxpr_appd_RNO[0] 9.946 9.556 +rsl_inst.genblk2\.rlol_p1 System FD1S3DX D rx_cdr_lol_s 9.946 9.946 +rsl_inst.genblk2\.rlos_p1 System FD1S3DX D rx_los_low_s 9.946 9.946 +============================================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.194 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.806 + + - Propagation time: 0.996 + - Clock delay at starting point: 0.000 (ideal) + - Estimated clock delay at start point: -0.000 + = Slack (non-critical) : 8.810 + + Number of logic level(s): 2 + Starting point: DCU0_inst / CH0_FFS_RLOL + Ending point: rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] / SP + The start point is clocked by System [rising] + The end point is clocked by sgmii_ecp5|rxrefclk [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +----------------------------------------------------------------------------------------------------------------------------------- +DCU0_inst DCUA CH0_FFS_RLOL Out 0.000 0.000 - +rx_cdr_lol_s Net - - - - 4 +rsl_inst.un2_rdo_serdes_rst_dual_c_1_1 ORCALUT4 A In 0.000 0.000 - +rsl_inst.un2_rdo_serdes_rst_dual_c_1_1 ORCALUT4 Z Out 0.606 0.606 - +un2_rdo_serdes_rst_dual_c_1_1 Net - - - - 1 +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd_RNO_0[0] ORCALUT4 B In 0.000 0.606 - +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd_RNO_0[0] ORCALUT4 Z Out 0.390 0.996 - +un2_rdo_serdes_rst_dual_c_2_i Net - - - - 1 +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] FD1P3DX SP In 0.000 0.996 - +=================================================================================================================================== + + + +##### END OF TIMING REPORT #####] + +Timing exceptions that could not be applied +None + +Finished final timing analysis (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB) + + +Finished timing report (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB) + +--------------------------------------- +Resource Usage Report +Part: lfe5um_25f-6 + +Register bits: 221 of 24288 (1%) +PIC Latch: 0 +I/O cells: 0 + + +Details: +CCU2C: 113 +DCUA: 1 +FD1P3BX: 20 +FD1P3DX: 92 +FD1S3BX: 12 +FD1S3DX: 97 +GSR: 1 +INV: 3 +ORCALUT4: 153 +PFUMX: 2 +PUR: 1 +VHI: 6 +VLO: 6 +Mapper successful! + +At Mapper Exit (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 35MB peak: 153MB) + +Process took 0h:00m:03s realtime, 0h:00m:03s cputime +# Fri May 10 11:59:02 2019 + +###########################################################] diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.srr.db b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.srr.db new file mode 100644 index 0000000000000000000000000000000000000000..26e7e9585d11b6aa8d19cde718e5ee796ef31ef8 GIT binary patch literal 40960 zcmeHQU2q)PRi4r4-x|&C+K%xWvv;-GU2CyN-90@cX}k-OwUTjSt$!rP>y@3R)qQ8C zqn_?|ch5+2vgdbMC$8@1DDS?XuxhQnKBu>XTgJxkNIV_zWS5M4})5 zkHY`fD+zD#v(^j$-s{z$IQNs^Ov6>l%x@*&U;K(G5K|zgKum#{0x<<*3d9tMDG*a2 zra(-Am;#@03i!#P6Q@rn8|Qs>&7@W8d1{$@t#jY}^@X{W1+p@C;qn4$eR{^wNnLfd zit3&vreUpj{%T&*`C#3!x-NF$mxkp}4gl4MGT%qqk7oWS^P|jvX8tYnFPR@^zCZH9 zFd51YzB%yO{+lVi?{4yg#BXzDQNuYpe4?@1xO*x!e_0Y{CZ;NOl}@R;YpB*#+3=@) zcP;N}Q$DRars~rv$F;vmHTax*zEWPJj^<5y<*H#QRCDrOZxzoj`KDbqv}}E%C{E{Q zi$ZY9Z_k+~aj6P41hNy=^Ng}prIzmz-zIB@Pehs6B~qr=nz^3Oy1G#+DVkk%l$vGQ z+WM-PFA8^>KP19gxLMioeCooRs$Hi#S=%DE;~Q1up6VO6mEBNX%dpCcKRMNKUWg{- z97o8{M-#Hd5%P1ef*4BQ>k$fnL~A6g9^+ zl&Y;OT1D~vELl?5De-D9C4L3Ma(;!vTNVCWcI(HWyi>PIbpsUP_MN6a0q#^I9(L+B+1*$TNW_dGwvbrKp1LZj&!UU&osg601+@O zu=Lhk)!iZ+w!7Y@=%@R!(F*rQ&lYB|(RdPtM>l%Q(spfTCI!u0Sb}E0UC0R`(l%SK z=o7`90F8r#Sm#+YkGwXPY%N0MW2? zJk}H7@nH7zdOVoxBXu|o>u?yl0f)gwI1I>e=zj$csiPR1KMIC@rjh9zchY~IJ~p;- z{9ozrm zMbl#Y|7qipvHc(0|2*ygz1+t5JT1IfIpm1@3ySGtI79zT#`ElKAxL2IYxJBJB;zhJw_3nIWx4 zji>ot;#LRFB(X>|0q>@^9vtvX(FD9()au}Xe<7NHcT1c(IN;OK1l&6?ck;mw4*2Jz z3AlHB4iRwm6a%~-u~B-rl$irFxcXuw@$Tj@J2>8xk;J=Oy3E1x{#+#S?v^ZbaJ(lX ziIX@p4l+s>dUVmz&1n9AkJRmw~>UKp#8<9qs?;6V*iKQ{!jT7slQ_VvT+{ z^0nb_4*kX8_XhrBpuhiQD%&@od>1Y`_^VNo8GY4=&G%yOgdd6lTFFHdYVTYh4pb?c zPmUfHpS~VRq#P8b@@tVq z%0W*mzZyxT9Mq)prz43pd@Tv>{}&QJNo0}_8MwU3@Vi$cDi>Ju zuVC}VTrR|>MmXuwqV=S_S$&f={UU$f1f!b_r`a}d zpgXu8$3DM${;<#mBbyAT9&}tsv^zzH?sMFEC(W>a1t(c-^9~rNY^YFTirc(2JInC# zAF-ui)PvK*BR0Z(iZSo@3~T!({=5msJPF1;p@%nIMK3!I3%_r0FETJI!Gd@=>{(#I z_4X(*P$@8eL@jtL@$jeTqX{*9e>&R#nZ!2|Dd1s`RCEU9r@PqpAG%_;9m~> zP5(cn{;=;il3#(ZBk*dJZ!o5CH}-nV1MXI{rCkrO?JX4xVVQf@3PZ}0*Lj+?Pl&XW z_}R=mkwOBz^U5*;-a+%}vc$7iO;6>=7Hivec%a&&M`W~LdtHhh;4EWKE+X(tB`^qK z;%4SAtI>l6HL0beZAmL?-LRo3Cls%&V-+8)+v3#V_8VYiqGib{cY=NCoka_?`DMwq ztL$Rmc8E#q)a){&cV4~DsI(ddD&-$XrKWh~KOQK@ynKgC}`r z`x5e(IJWC!)ld&a2;_*(O;9paaW@rBcfo&RD&A_2t>6KlN>B(YOXgVBQNk*e;$AF7 zg`%XLTfqlVp42LL2~zMa6bqtV64KbXdRWMr$|Qk9Y(L1+t7+OBT#;WnEaZ7qt2Z|=Os*v`=CeLU1mtt z3MNVN_&M^}=MIM~asm7l;3OCKK^8IV2Tse6ku0A*B(g~0oC439v`?~pywcM6;1VOt z^Vo^RS$=U9BuI-aSAtUDL50L-rEn}W9vBoTD@~%@K?Oo3nr(SLR#6nPWW^@ylsZj) z5Z7 zVe*gR>-hCB1@7rXC(@18^LZL8^rXhC1I(0oP@<=V*PyoV;XXfo{RfWwLCOqmZ zxDx<;d#+?`DrKnMsw?o70-c|_>@N-P;}LNJraRVco5e*)$uMblGN_;WU{V`Akv@-) zmgJf1HH(#%g&!2;b2yej^-$U@4EkW_r8N-oTRS)5>MN3z=VlIxGXj(*fby4c%CB^n ztaWU#Z*X@7!!&7GH36HCMVAmPc2chxV%IR*eC+F(y-uhNc5(u?$Wz8h-m9g3f=$m zNfjyd;lioZ(n?<9SSojRW(FyQr~D!mbih40O4P-0G~;_$z1MA~Mw;tN>k1{fVxwYc z6_hjIg{U0K=ZFVz0HOhOr2$%SN?4j%({YYLN*OSNWL;lVU}DgMzgRTikzh(eA4YKN z3WW3_lJ7ZGGfD=u3HPjkTd)}@m|23SSJf>7^Gh9`+AZ<8O9sj?IyBk>9o*X^*a7f& zs*W9m!h{9PQ87LbC2z|Xaj45SA%z(&OWHeR-2d{>uL5sweE2GF-gKqu?8O;()1@WN zTqhsl#q{(Zyg(N_<3%vnOSglBAAL=6#OQNkTw%RriZ>@%_t~vM1tMmfQIlD9WgTl6Lv>_V_}cYUIY+ zDE^j1gE2oS*^DEW;3=K)9h|G03iZ<=$B5`Q%p#b?6S!GzP;=3j8Z^smjqf|J-8nQu z%`^!Gao$G|%FztU>b&zKl+d0CpMp>mw;7>s@t3GvAs`f-W#M6oDpS?%bji@ANj?aX zURh;C0>zJaw}W&x*6rXdiw_e?H|nCukxJ4*s5J53VTqCq@faMO;QT020xC%yiIh7C zkzTz8M7p)3p(y1F5~B0p|+8(P~d?iSl)z$SFlcTuD6 zHK{P1)OOgm?W^Y8cq+*M|8Zjc2jc^2aqP~KUmyMI$Tx@oe(1l3QiDeaUhWrDbA4Bm z-%YM0e*CZr{LFr`T1SaG4gKz>C=`}qKL^v$41bHvqqi-vbr!+kCYlOHiV>(euz3r_ z^=clHTc;(pX8Nrh;Sv#@Mbt!KbCU;+L~ZC~x1K=+1+S*lyjCe(ezx6E2lkii&dI}oBH5VoFB!BNqY2s9O$o8i)x3nVZA zA%01z)iDFJ&`9TdS_m_zHkw&QyUCQ;3q&vU8~~SR7eCU>b|NkA7$B;^btr z13hR|U55DXGlck2u7LgHz5C4JeUyE-Z@jkiiIZsind9)mB-(oB@E%B_SF50P-oV)b z9Ktz%dP-pig62g$&IB$smMX_A^ll5ky5JDY0Pa=;165o{8gV)w?C1@rW?*HHvF0%Wq|R95u$we1Znp&UTKSML zfR1>U&G42_~e5B9@o(@3G5y%cV40hERKEd z7W;gF_W$76>xuFI9xtc=E-j7y9{dr%VhY3*h$#?LAf`Y}ftUg@1!4-s6!;`lz}v=n z671T(w33sg`BtuLGgQ{fH-spY1&MvF*wQ)QKG%8=Q769wS%98rYX(aaWD6lFcu$%35_~j`O$j>4{NvT)IDs~2~2~N zC1I~*!QIk0aTzFts0>>tqL38?%WKEknk9-L_a9p4o`X;$q{g-~L?NJM2ZfC$tYY)# z6YYG-2aRJ}*gB{bwXfFoq|b%WB&XPQ$L?m0Z=wLbzt3iMGAu)BQ|oqJ4cZyl0MEe1 z9hS`~g}O*ITd(L7MX>-$JM1V*7eFZ2*X&L5_WX@G%tEdjkPr<~c2tD*b zLJx%J@4w!9-`;$=GxwZ(*P1DrLSICg_UEKG3fhzkeEUeV^&GfpA)Q;}58o2TPvGU1pf# zgHug1K9yfQZ>~h~XrrR<X+EaRN0spB*XvuhVtIMySsxnGncX^^t+quQ;nR>FT^b! zBc!DS%b(;I<1#ZDN)+hoPfyFiwXZ#7?Gh6T>~NwW+#i9oc~goO7#vb&^cZZ@zj5My z@W-|OPMQvN3k`6YI8C5HBcLHub6!~o*v+YZtBVkoB38eX@q&#LbD^Qvx4}{J7}x@7 zGedOUZvNfkZmWk$Q68t!I1#qsLb7n#`5eUCJj&aWb$7&2A+zfbYXR}fOf9f9?*=q2 z@1I&JGRqPBWqR6y)1tm!6WvN?$MOog2{Kx3KsTv6lj|o>M%?-EY*X)EF00J8jpOzY z+Aky$M-DUq*Vk{2#wU8BfePYT0arNlDddQ2>`dTwRk9a0ivlGGqy_j1?R(u}?1bnp zcsT^M`EV$=s!{;_7Um(&G{)<~@mXptf{&?j1#(V23-J$d1s|=s&E9@R&TaIaafs9U zWBVXiRibBdh@zonKn*Yo5jfF`0=-&bM`~PjG4b_#e5{*bw)lu#Kt824TCq&ry_~^X z9V1Erg6RPlmAsPZOD2~F)C!+E2;wD@J^uN8AUxe&9QRdj!HQ7Xcp%XPCvn_5F?Ncj ziaWM7?p-`z&bVR0fDBi@oLNtVG+rMzw!0)KPjVd4o<%es$AMrgU9OFwwj;-{RY;GM zU0?nyueC83-a7aYah9x(+{S_}ZoQci$v^L`;9u(RK1AurD| z*>CO!#v|G!!rI#$JPyUu>k4;cd4Qss9I@@oe5fnL?C~m554$qYm^`)Urzi=x%W- zw}%M&wQ_&u5Yp8@S8&1R4auWhrejAGyIxq^!V>_UJcvJr$0vFZylFJF<=s=0?3I-Bt!&3Zv(64%O%Fo%IZjs=^+`gBzrsla zoux)T($GaOubm^IZakw3G;_jFFQEvBX z(-)HH9JhPQzJJs$e5x)|h&mGa!Dq(Fe9xg7U!=vQv+dqW#0}Z4EAc%3Nz)6#hp9_b ztumD(roPjkE{_wYw$s(&UmWRY7DL_O;}99PY1a#nHeg`UEcW~nT;jCaB-lC^1-~c? z0%3z?5zA-T=hJv4t&v+jidWUI!%n^zL%gy$T0EFPh&*h=JF5+NpwFDeUWT!~ryMh4 zHIsA1TJQR&Jc!$F7j^p7lL1Y-*Wc_8vKJ>5?(pYVi7CK47sO8&29A*PS&2PyZ9;s>qa0u90fj9ozQ!ewlCGsO z_>(@-8YZ=A*5AH`x!EPf)SP>tfBXK;H7+i;;o4g`^W|41t9&`f)e&(Pp8L;Fkm~H~ z=e93ueCpH0RA(PQOBtxaQuf3==)W(JF);=cLcvM$anxbl%x2lToO4(FM30y?;>L__ zdT7mQAClE6q-6_&9V>_wT1PxzhI7nwPEX8d26>rk>M~TB73{OBY>hqLy~#1IbX<)r?mML{FL1Z%4n1z zuRa+z{{bs2W7-vV#^iIqrSF4&r}psfJSrM1@f(#H(^gY-yv20L6Y2mOmjd6 zNO`{5#6UB)%o=6X)$!xR#YWFm!`r3YrRyjr+28~nJwm$o^jzf)s@Z?(Z%ok4t2q?m zj_9~XGo$%Z-=*kNTtBL#h;F&+!glPq=6*B|ySRuF&IuV}EuUJv2DHqbYu`&~{d8Ha zt%S$~knj2w8O)+uVWu>QHkUt3+dwZ;T@KVYXIJHZX%rZ>YevftdAyx?6SMUi-Wqk6 z6=>q8-Fcb6ECw;ns!H6?dRpFf#OpZTKg(T#V0&OQwpnF&`Mh&w*|eF= zyv!fDmF-7fmOxdW>P$jD_mk=dkmmo8_?#G0Ap6tiJy&_2!Q<{~21PJp(RI1;h0(Ui zPdqU2c$>G)kLV!8w9PZ%ff-v>qvrz-&p@V;l_j9wHX(EcI5HAY83yTG6lZufualy2 zOuwgJ9XL)yHc#B--~jomq@UvY{oZXBnUBG$d#3&0ko}k4##O1$XV)n2H?*HaXq5I>A+|NJUoks2o(1a}F{N0Co8Q z02RlSTYV-5!FDce1F;a4{9N?T86W;4gh!~Pm3qsMgA`nuF@<+&`lOLU=96)b^hivH`w-f1_(d!GYEor{kFn(u#`Xgb7!veByW^p);bx#}Np77^( zXEUk%_nj#CBpJMtJg4X!K3Vt}OvLN*72x>DVWXSLW^n%p1NZVv;JV*)U75z7XXi{u z8qKi#cv%zp+eqoxwv_>t`zL3QlSbhwWELU-^qH(ddsj=Nr_!xTgJ@jhMtT@OSn0_F z-`*Ys-Z#o!vLvZ_Yv_}6SPEEB{l`X^Z_c3}Geh)ls=RZLcq~(&2xqy*m!kWAUcW+A zGwa5mJHCwreA9`w+YxslZycLdC+tvi2mw`1#y5pv1p-!iLSG`UA=<`)L!t9zC(1fyV>IE!Nf3P&ckH4WQ z+!^3^2#EUPOt0W1TjS)-hvir?v-h5*1j~GzH|h|i?uUf9e>e?kGAP8`1l0KJa>8Jz z>>xt5E2(h+5#-CN+sm^4e>~P)zJ8^WF0J0q{2bxqv&%dYfJA0=L9D;Q25%pFAN8L_ zfZffd0Sqlu-``T(*vFWSLmGDJ{Fw?qoseQl+^2==J6j}X%L0h=1vhfMtQn?ZQNin@ z?~0_J*pXkhN?i*NP9VErf}}g-2v{VlRkC3At!qP`OCeghT>jZV7W&6hHgEo8srdg` ziu%po!f#)2F4Otgck%|@dZT?{+5gAMtAMGTw@VF-hqpbG0-_~46THju-M;I2ed`uF z$!DW^>n8VfE>54pMKRiw$>#g%2g&Xzs#_ZVz|S(F`*t0v(j?SyT!14saV6E}w6)Fi zPVn{I+li_VG1BBm7Rk5bp__9b5ZOCZFCKTu?{*Ylvqz{42vU6VzZ)BRIXaIA36T$&d-Tk&+90|J{GUjo<5Ng3P4b&9uUTU))eqb|$3* z*-olk*VGYQk>}mdy%=!iBX)BJwnT36%H1n)xrw^nnR_7*BI4t^rQ6)WydDmng)tr{ zX2ti&ncuoYWQo4U#A1an{{-%0OzXMH&B~JlLJLOxY1a4~hTQ|>I)bSkTK$35F*bL( zs=>uKOhfe(ISYJmgQ zyi4@_6SFGL?j#mzq8BNDmnHT!kIfE@m;~K^=+&6W8i+QQJeK*g``@D`8fUo@3hze! zY>!x@&x^Pc@;OjEgx6&6^qAuQl#ARc=ZBL3Iqa&H zr10{}qoh!Hd(_p&O7vb~21lnf1`l7;a(mZa4FSnYwiE-R2MRVZ;moNoSU%uzVb8+@ zNHIXaQ=ituLCC?}rR=HCfn`TOb1p28+kmjgX+XbresnVRL1J;;Y39B2vBg=_nlvhA z1)@;AU*F6A2KF{{+5zt7LsnWgdf}bIgme-cakg%)WCv}*P6Oj?nMV{qaDV$1f|d=C zMn=|zIesfE$)_(+>5F|`Zo7oBA1I~Xy~=86;knS@946h5w$IAJ8TsMaRjg8MeV%yb z-70&l02&u51AlJ2s|Wn4(Bh%oZ0M&}tK`~XyL!;|DsHhw6rH)-`?hUHY*xWxYv_;L zkj}z1?vu{~)2N!YjOJA?I`55l=P3=;j>@GBw-}>cgm=aoMLz|2BdvW_5JWf>YsjYx zO&V$6i_t(@X~D`a?}6j@2e@bRXNg>$)S?OcV|%Of?fxd0dcVHjplVVwY0pJ*49Dyj zmKwR!_M|#@g{n;q&+Wz-pg1BqYD|$#l5en_{bI$(`tK8q4()HYMC5FW`iCrd>8^(y zlVeJpM-CaZ44C#OXiMQi2NEl2H3h!L2F+WKrL)PJQ25ryqTQ;79fWgJ>$j`jj$j?B z7Dg=!q;|?BrePct2u03+gmngO8d>jF}Q4NCiS#FH$Sk=CFgw^}Y1e^yP z3>B~N%(+4K?cp_nztNkTVv9T|z!noE6harN+W{Rw0F@{!*%A%(fH)?vLwF-|2}C{iHjH<(8Dx6KfZhCZ_(OJC-jfm2Jdc&MM| zp=wGbQvS`tfIGirhx59pFqzK8-Fmr0tc_81zpgOduzTft>pwbwV`EFoA9K?8TP*vT zjklj<4;~zDzZ2_9p}OVxjX+jX^+2*@`~Go){+G!80@Y!Gr%)%Y^Xpx=wXd4&Bi`Gk zdiIN4uG@-B>$HcDXuSL3^Gq8{s`Y&|SN&jbaJl^mEI)bQUY6E%D=k0^uCcZ09a@>2 zdKFCPA?Kq~k#s@1wZz;B!zFuNMz|%*d?;ug>Ef zmE!FE<8130j~bVLE~Y-s#!dh>@lk)`BXlYuvw&Spp7_Ewi!4?%QsE1L`tY_CFBb_lK%~Rn%!ADL`X*n0uUM78fRZLaSMm2gq8Akhancq+H zcX+*VBcgI_pw(|doeo_(UTP~LjRkzGKxks63S#Y?T(rt>tsFysYrpK!v=a@lp?|Xk zji?*3hnD36X~_hnZ>9k|1TQh8JZ-Y>tXN!L*Ptvj8`d7Y@Ws;0DLO%4hr|+ z`&kPs8t%K430X?2`7w-RLa7&bQCU2pKiE#R&}xHy@R9!BN}fAw9F?cpP|L#@&JhH00s((TUn6tx7xG&h}2%PZ&dy}hWfw7H%H0SISO@|9sBMn)zu!jKV znZ?dGMfG(dHxEk2wxUJv(s`War)mH-<|sZ`V%dp@hlFu-3_#SX3f_0a1?ebJl7UrH zZ(J2UYQt%FcDlgy03OPf7?F*Uz8xQFznzJraOt$RiPJu%gb}t!lwLB^-H=}5{A>t$ zy}TUxX@MxC(MQtq@9|0e10KH70A(NQ{G0P+ClcTYc@vWm>eO?Z*d(rnb?4=Eww#M~cF6Cj-`07WwHRwm5*#sQ8s>bF+_MqdhV18AG{d( z(26Hsl)6zaUzB)oW+lS>NOCXyyEd>p+ZS<=7-T|&`E?uC63ls;2lx{$`1`_d?3?sE zKEV5nQ&Ci-*1YJU?TqU0qCf;}_xSj{JQGZF{dTN%WX1Ap-NLEoQCpO_zdxZXa=o$S zBBOaP4CqId&KB5GCY{G>yzP3bd%;3ztSn`E>WxlUUSPDk$nqbRaFsmfE$lc8G}vmb z8M`T=oCo8}wva3tUH6{hM`F5sh+FWycCel|DvVTFrM~6}&m4MC=Vip=Hxgu!&7E)6fJYN$1bR|T)f+$h%Xv)4P`=!FQp$*H;{PpffkmiQg zip8tRucobEvrhhWa-nTf?IIJeB!#MPI>=@>WFZ4&3y)OszAysMwBYl zC5#pKTLglp=)+G5opwm~z5{=xVuGKfjeIKBx%PjeN*PET2&F*&c;Qa}WTBVD{m%|1 zXrlOVH;zt4K`_weSJwD#oIN+G^D*0q9)j)bD@O`fX$R=|lih8UvTsE%-!T0LF;)ef zkaAbi7F&S{XOlajkX=6QtwGMS&(f6i9=y_L0SbKmNDWc3>)sq?){0ER_<@&ZzTOsi zqTk5f7tw}!3C@%Gv0|inEa;T^!m(_69aL)l&&jh-EerbdFFL-+hEe<}^6kq`F!j2Rcy>jnbw!u8 z;h>40;kKM9AF+QuMVFl~oMb0VtS9VHOUHCYmyL9IJyfbUSgMz-Wsnb-<|+ffF0+1F zR>)T7m0WZ#mc95^^(?5Uw%pk=+gSzep|Me7a$L_+mcgnjiu7rTx18Cmwb!=NO0}C& zoh;R{<*}McveK$TYsn1gv~4-+(#=@T$e?FrU^*rVGsST; z#c#^E;*VzZ^o$~E|1&Gpwv?hhJY$Nu{&&wZ2_Di0Itl6k4y5g2+^5ie7c|nI9UT$A zuSIF-_Mq}n==~V#;j}@6j}aVI3Y+;1_ncYA2xtPPY;M?Z!v}>ZBdoW4Ur+fPLb^XX zFHDsm&nJ01W+Q7jdxS-=1WW&2?r3$h7p;a`uI>XDbcy4S2%sM zmZ0(dj6d+Y<*Uo<3Ht0J(WJFXv}@%1?N2vMkJzvIx~JTE^FK|Cy?hVn|3iGA`@n#J z&PgqG!4$9L3|bS5_9c9t^(QvVbndwj{Oy>{tdK$BLcd?v$)h(FpfBG=DWs?~wr}ye zmo-ZD9Rd*y@#5bYWf15qGY3 zFLn%RJ7p4a%3?T4$g9@#S({(tL1A6%tk$kn+w7m@2C~(w%V|*{%cPS1sYoZgebYU1 z7+3^XSQUAiF6;|Cn#z}&DWwr*kP+RByi{Ie((QHksuJP<3~c_nycjCr8$vJYx-#U@ zuuxs~21}!+kqMxu9E}Lt9&BJwXN})3CLN3aQfHhQzk3ix;#1f>05Mp)&0f|)d_Rvk zZP|ex*bZP++upHG#oAcvRGd)c$FpW;(@S?eEecz)1PmzB`x+% zy9xeStGr2C*~I$8@D?#dYN=QKX&c*qnh-NbSo!aTAkMAX>@V@jd?R}=-TR^0Aj!F{!@WJ=Z?2x z6A`Kb?7_a=5eb?7De#_f)oZ?|5hst=?n?mjwq;L$Hvn?R$bMrB$|igqZ=0wD9k z`}j#$Th1M-a~>RHMhvgoR{xp||7{2+D^K;?D}XFEekeUho`?2A&hVGtdg%!kQ;k{JY_$rg^-zg#Vd}k=v1&si6Jo= zR3)6FC|VGub%d}vjQ|{r?)=qn>&oioYFkZ)ojbozT$?@W{P1L5>Rq&he?j&%hhXEf z4jZUQt7RVe?VUCY?!$O_N1t!jstO&mq?w#yJU_s`>5G!#rVy{B;|D{LQP!0z7WvPs zFR`O&x=Whu$t`aen1osk^)6g&g=*-+apt`{9?ATd#|)M|iS zrv*G+2dkVZmvbCSXfMeVHl?*G{%`hDUn)auXZd@T~H)n_Qb@9x<2+Tg1ea1(m!kt~jwzZlBR{$$;oEz*dw{6j1m;!jv~z#gyd zn$7-~Or-Bs;GQ@tm`1{6g*~}t0K5AmJW(W(2E@0xMiL9E=HP^ml%5e780O}2sssyU z753B3hQAj?_1=bLV>5fqNk-b9$XQM35=TkcyFv_ayoN;(lS2J94ewD}mc5oXDBq9Q zW@0dPC;B`?+CG&27X+bpu#=pnFPlL`7i@r=ZNQU+-G|(iwrW!~8`R*#6J3vCX1K+n-;G=@6>ZHtKK#Ez?dHILvM2n!Ux3S?v9@#3x zK;d%XbsCy6NzM^=y4!%>?80i*WdgufR#Z2Z)0jx+$V-KT>2ZKVX0R7-DalVmyQ)dP z%AdKnN6zPG_VOCgFZgdSQC5YZ_(}7a^|P~MW9gGy^Z8K|8o}qRuZJacGn$tYH+&-T zGcrSz(@h2ME<-0sS>nH3NrqJNATkb!PhynyI#@=-PYn2=9R#-;V|?}r@f01!s>%$q z+gxEqe|{{2Q{c=ht4^_jee}e6*vVq_8GSx^zlm7;}wUa zx4Z#8!_ldWUf+xNArDf#!W-A6@yvc1ie$zOr8Uf`d+D&<8CZ$tM(G`?OXR-Rp^4H}vF3 zr{NxZR$?u1JQZd1&Sdum`_ z0sZ;#SLc7S!oYgImIC9~134M%UX5!mrvj8)Z3$*4AA<^%Qn>V=4Op z$yty5KaZpOXN`0YapOnwUqSPZ$~^m|UH(1o>%hGCm!ym-3W& zqy4Qp_~9L?{Y`XD#TFW2Z(A!rjHpgIWsGuakG*&KvQ8GPRE(U+{}%*#BirOX&H1%b zjhvhGNe>2JRt29k+(Cx2Bh6Ajr`FVib7RvhYBKztc=q`HV(ykL6YmA4Sby!iYFpU! z%Oq8yGUj-o{PJdbP-ZiPMzqE3y54({>nGrEr^FeZ0a~RNDU#vOS2w|^@n2L_c4c#U zzpSXcewC^gmY8PsGz@d)i2Pyf6pG(!tHv`5r4#yPzKvGVI4mrSIhyQXAtR-z( zRh-v^hX7k-Nf7CRm5X>l}dw&!XfeUL7gz;)_{WKx#iUlPcgZL zgmbaKpnX;E+~t@pL&D^fjA~sTg|Fg?=EhgA(mn#8$lkm6>gkBG#Jl|;TM#O-pUUUR z>lHDNAjW;J?K9;aN9jW^6ZyJS+FhR<;#YlQ4Bac6s)<*9G4H+zlA+ZY3PCb@j`9<+ zmuWrTEzGVG3})(*Is*Z{151Nbx3&>@U!~5M%JUhd=*qc#+#xTFK`@xX)Q_#vhVBaL zrd!q{-3STiU~I=^Zhi=gFll2gJ#EG1@{>R%^*}zE{A|G}SqCZclK`rDfl(;Ekwaj0J5b^GMFEZf+wr=-|NDGYZ1x zno##{NZz&fE1zKMayw_gEJEojnZt+crX8rXLJ?Kcc@m}jqS*sgpyMM$X)&)7`W0-< zepMG9Yk5`tZ*eu|QIySLSP1~sOG&#Y%0x2!D~Aw^j=iDu|NG}(c8jPvu&WtIz}#(v zz0w$rh{MiB{b%!*9+<6(&XN7Kq`6_}T-xQPVX*V=i3UijZ^`r*xu4?)#JeK5A0*HD zGVA}4zlszTToBjmN7tTn2NvaI32nP2x4x*@mL$A%YyI5*#D%Y%wsS;7U^*&Wq&4b$ zY?vx0Ezm5fx%4w4-Cb*>{ZGYg&+ECrYQ5`CA+Cab0olV`!vkZEg3fB~a~M`^lN=3q zmDT}r=+c1|<{-s!rzTy6v3aUv&fxAIBH%DM#?J18P~TQWw^oyk$m+AKo= z6DeRY)6e}3TQd4Hp`Y7P*qXnKqF=sFeD1&kaex8V8H@>!j@1#j7796oC7nG@qTV@s zL0pL=o1f2aFK*8_ZX3dDT{5)YdAPUrbr~C@=T*0Sl7*ZzL^hs3cjrmkPB+eSD00h< zlH|KsGW_2#WIAuGo~*L~r=5eCwXcA6a`QIxK)G0KBZFYaj3HOQqZYlO$w5(|*XWJ5 zMgO*bak@j91wtE%1=|bHeUzT--ZL~9+VFaF@q1#*dg;KtGQuZBF8d;7(4lsHNj_=l zSAzB>KVm!;LrUPk$smnZ^S5q?QDUAD`+qtDT}wyR2IjL%FR5O;1?2vS&Fqnv{>?Xv z%t~w2T@~EI{VBrQfP2HPq5_0L0xl>8_ei15G{(b9ZSc20$Q@=3gAXX?YP`SM-!>S@ z1DeVZ$v|2QaQwQF$8+y11xh*WPD9RJsT=2ap;HPx&EBgl<8>c5)N1|qS1=h) z<^FHuF*tBc<&)H&ByU&EfKLO!I$_Ft7xyYB2VID*NHLz zHhk7MlIJe$=Pomafo0m42R8?5b3Q8n0X6UsC{-J2E|ZIeTkZj=W)E8e1^YlCliGyZCaXbvRF)W%&lp`vR5Sa! zNP-K7H#h5=an>E{26^Ug->j^$&KUsH%PlDB(2ghXC{)Qr5c{i;Uyfpb0B0j_7FkI| zpJNXm@NgUvyxupJwBc%1lh!%tzWdgtq`%6}JYcX{dd-!%>pALPZM#>&BfS!uT&cQg zSB)02_$?kTb!c7{e%pfxT?ZwG*RMv`pAWBkM7)CU|VV}Nr;`SDlK#eh_k zkO;%rF`4Tje0BVL5njJww_(g~mw?d5xOV?_gmYz@W5(9J#+;OGjYV&NmxjMYUvL5x zy5?VwxBhRL{bJD62lgjK=e_N|e5j1rx(R(O5_|V$Zn2AhU3;Gw*6~T&@t~I6Ayt}% z{A!tqWl7^YYHGd^^~hL9IpIcc<;;|}2LjB#sGxP2JHBiUtCAh1otq6c6RObr(zDV; zZ{FVg;b%<4L=2gS@@icx-p3C_cJf45cd}uJNL66p)zjk3r~bc~yJT{DL>CefVcH=Z z6{Jv(i1twI1KmCex`Whv_n(vIT(%k;Z~1_{1FFp}ch>3RQqT$6dU%u19Xj8{1}Z!@ ze2S1~aE%vi8VvjX*+-gdy>>ajNvAtk70&3%AkT%of%@h`XD4_ww;OIE^d-Wavtnjn ztq=`NTMIejV?%n5g~BcfiWi)ObGDPB+^_Zfu;stKnRRE4?&fW5&r5hN*m8nC*fZ=UpFiR3cE0Zu#2KW zAERWks?fMbyUby@P>fFo66ujm3|Vik4vmA^WsV_*bfs+~n+-e^M&pISE&L+a3pHXW zc`J)GO56T zq&t$KSAmrtDfBgjd71cDOnvE054OZ&bXV*H(0&y<-c-Vzu7BQEYFr7Hw^CI~$~P57({95Cd9lxif$IH$@U4n%)odBa{X?fS-akhiNgPI5APA3gSHQMAHt zj(E{i1!6o|*-p(?)E3R`6B73M3iAa5+rg-gA2sFyH3qSAaTi(&ko86m#YNSz8A%lE zh@+QKD!a3i$Vu(oz+{E8<=Z^Ug-7dp&+oNe{gOK|8gP5bc# zn#5gws0=|o^l$UJLXm#Ft1Mcvy4W-0U3-JRw{NxiX+fZ|s>G<_;QnkJzDN*0P7r&i z=$m)2uz#1#_GixTD7tmjk7-SG98R9oNLenABk<3@a2YTL;0t3{F1=RT7=17kO(VE= z8iA$*z^1?TQAn9G=!O{9=#7w6)HOiat8H^67%?UOzWOONA5YYWqQylzQp_y8o4h$N zLNEbM#*o_~d_On1uT$;cNbwPXy~hYh!+S8tCN-JF z`oq=5>Fk-ylo0ZbSnwvR!;@IPsy$tt(Po%l?+$p{$BM!G^IS5*3g_>C)WuZsbMEgb z=$QFfU+OMAO|U-@Z$G$oMd(;RJvbw<)1mF>oNx3TGbpT@&tbKJ4>NE_)T#~p%(6{# zG7pbErrS`^YSr#-4oI7$kuUvM5z#&^DAP{pTUfH)z`0dY-84duUUbwYau7&n-V$C> zJDy8?d~ST5Ww+KQta>SR|8W3<`oeg6MdqW#c6r$*eg|!k8zMUN@oiL2X>v#V_KA2D+b~jQywe$*l%zFFe;zG+uoC8!3{^{2jrBw&in8E@YUGxgkVIQqgOf| zjJ9C|$d~c3)$sbcs?GI)q`Bed;z7S#{whkJKwe<#r3F|5n*x6#Ts5Y+vMQsCw}nA% zGmONd=`K!5_scv$n$tM$Pc07W1P1K`t&wiqdrp)s_CY@{Em7zJW z*b!7Sd=AE)522$%G1I_qjy_+thG-tSmbW(+we7ehBfE`F+Obtz-rIhjLna0tevLfL z-jY9G18xkS!hi7VkKp0F=m(1z@XtcsaOyh~%4K>E#Rfm7*1$qV+-P9|8l^DZWtys%E3Wr=WSo#$)fE zH&RS5Nr)aTR-E`VJ=|xDWj%e&P%+zY;cvxuq8G(=6V4F!hAE^q_VA`dQluK1Cz&#b zdmStCHdaKQ$w|7OwQV@>E#Wci+ru*NO^h@cvxa`xE*^`fS<>=jO0MyGpxkf?VNu0! z8-0ulWSRUY9J_L9FonLSsE?$kw74TcxL8Ol!Ud!zJq(F@4JmL24B?GiK1vE2_(G3v zG`G|0qwAiyf0&jeEm%q*$4pmZrc-w!IXqoZ4pH+gOOg+M%gax zXm`72B|frY{|d1G=2Z-pZiD|&icQokNY6DOQaK&*%v^D)jylb1!yRa)vje?uY~BdHuG4 zJTFA*DCR%m+r!)704A8cv7B>Zo}*-1tFbqRAhH1jbso@j`80rWMeWabhDFEoc5$xW5v+D)Mt1 z*`hw3{$un}FJaDdQ*$T17Giv&E6?m>`WHMt8n<{fze&_~fYj?(5V@0J6UINs><%dA-+7(oGbb5}|tsH0XWFaNBma=BC#e6E3Ms~!gQQhyt9*I*^hE_U!X6)kv?!Yg(2MIh_NapjC6Qfa5B`83K*g^Zkiwr^{D9RG zTEiVSy)sO_e^BFlCgk@2>lss*s`}&RbP!~!Oh>c%9tAU*8 zI(9Eh;9_>P1>2xj*(gueF(341#ghPmROVd~p3AgABK`TL`KIi)8rD#q0^-L~!=`*C zm@khw&Dd4N+H#GLABYaE6@9(X7^xNiX=8kMrIdiYThToGh@{5A_EkR8aB~a2_NW;r z{+BT_NpP5qH*Ha6u#UHQ$RBM8auVNEMUMzSz1xjr5SbHb3gz1+A0R%G2uvXDRK1kJ zzuWSd#ID7fLh`-GFKq_yLY|o_Wrjc_D9HJWdA=u!+fgo@7v^M~ELxf~vEwZ#EhY}a zf5n5sJ=JX1I!!AbeOY%SELSUZ{nWzZf5ny+L%zB^nc0*3TkE_-`lZ6TmgS0OnaM3|77_j zo{mqMhJ2K$>Xh%Tltek2=YbK?hGrO}+_tGjN_A|DK>VfujY@uvctDuIG_dbtkiJ|K zA z@4fAd9DO5oVDNWj*v+gWZc%G4Zf7@A?=R_ot#G&E-1GALCf}nA9nHq)ea$~64~uv0 zSG!)D6TE6Mn_z+zd5_49)|`g+YMXA>pnOCQ;gTn7GYWR zbCkV7ywH$Cedf`Ycr{_1KI6xH@xoG-Po-WKZ7Sy4b|U*i8CvQ4o*(NJ-8GBEN+%7g zC_ihZ_lXxo>)-xU{C(|f{Bpvh>0fr7xls%hq(ZRtHGVtciN6|joo@g0+a-S8p!hQ7 z^`-p(b&ZZC8sX?LyV}ISja?q>RT25=+#G)88V}k^y&NmqOUPnHDRunQt~M$$exrTk zH;r9?eHM;6{ah>CfnUkGm?QhaCdt?8^$t}vrw?P2;QphiAwF4W9do0+G^E5gKbfEc z_t>ojGFm3jhvRyS0J1BV9g?Xv5o7%IEOGhUpH83PBMR-B+e+)22NJW!(~ML!W~6c- z8GK?D*=SyOP|-Y{>_Q+JMzj~C=W)y9JUhv)egl@>yuh7)SVr_5S?1rmoKqD=Es`e*6y1%;q7(HS;tr9 zT-11KCE)X;e?v8~4`F=jfWAhSH%m%tw2Ns}f;cZ=NmVMTcaQ&10Ie!g)f>54^5^UI zXg0q5WM{Wm)7uGMygWb9*>e1TRNdH56_d?ctJk> zZ6?2Ze~xCavrpG!`|2{A(%aj`!{mjIpJ$W57oW&E9{ozflQh`PG~|6W)$k{Dyof&i zeY&mP+;(%WZNu1LTmM|!hH=5Rz|*9Or)S2b;HRnN=lFr19FGEbcnWuQEGF6Fna+B> zWbwE1J8AfCHhhm7zK0Fp?S}80hVOdAcfaBLs<~g%7%eWdN$+_^|L!edgDdfOF`GR1 z7PMCzm*>R30FXXELo=_tF3 zybigF{HuT8&KFny^}k1x-2+-{}5rhm1-*(7~7a;%laNJ$sNOCA{tn zOqSQ|dHO)FOz+=i{fu_Iy@&bNuGcC3LC^GM-0jhfbpLY+eJS^`FEe_3-KE#;z9E3y z8+{wiv)LHmyHjtBZkLN*{qCl5r#tP^tOxe%6uS-U%k8JdSapX~myV~|VstwmeCjZm z4^z4rj6c=xSps@lS!eud;9X3y-IY1Lp}lNAQr+(~?T+cq)zq8=9q1=Q*jH0JB{$?; z8DQZ)_r1%`S8u&b z+?$M1&gbKq+WzN*=`Qw(d|4x%wE3I#e6iIjUT$+ zLob_5#*2vut+MXbi1GZvgXJUZ^|EjD>fy8Zy*Hmy+WVGySDzoUhe_`n&FJUs%9}rY zpMvOqyQ10WVh=Z-PZnd2i+-PjS@5zLe_o8Py54-YpwEjJ`gyb%cQbE10$oC<58to6 z-q-Q;`@9#@Yv@YW`wn2}w08|3pufHDgExjz8!te|eeX@Lz82;4(QPlovG>Nwv3-{H z05-N`bYFd+_QqfHKJ@0dqb#GD*X>F5Jz(l28;@sn(VNmEJ-2k;qoZsL66Vdv->2|) z%Y4P-Nf+DTQ*3jcUD0nZbMM<2W*+@M{SMRm>s1flGx42`-OPJHUVNR+XCrUiWqxAd zJB&te;Z4S+j|YZm1nRPj^9SV3*xq5(jCY6pez<}0LmzZLHl3{&51o|VtA6v{dq5ts zF^oQYNue{P@ryfJ=^FxA`8a0`Rs_nQ$)z}kqziCNc20Ul=Zo@t)XilW1iDK>#*ydI z*Zdpu?Yc)pTsicf=i9_ga{A;k_C3AefjriUXO?g{|0fUQahO!$XI%pD&BP4zxgpDd z`PCEgGTFg4evd755=~h_)5Z&v0+vJ*_dir+BJpf8(3xMMDnAr>XX9ErhB<=oJzyWw zMZS7|f#d4sn$F2L&&KzjH~#iLqeu_KX%;vuvgGBz<9T!0eVBK5qbuf1fABhNY-V5Q zGte?#_V6%S^d`VI52koFdg;=McQqO zQ}6$cB)t-KznHT8mG2pUpL^fw3#{sk#pm&tQ8$9cThb4BE+oqn!Z^yzmu@c_n+0vx zAt35f#9Ngggj1EBC^^E)j<7O>f#Zhr`AhF>37_kY3eJql}5=mvPq-$He*kMbh7}-~K+EANddO(j0fXU!?JH zzJ8JBw$qc}!Or?Jc0Azrr0g4SBaQ{0m56f~;ea*Jg}#-223o}VgnUQX(l{V}<8cP7 z51nzo@H#ktXkg?#IL?3ABaORVMyE6eNaxi!yPngRZ-_gCSt7`VlU2s#%vl9VLa?J( z`B_C5O?Vh2Ft)sJos6v?zy8hk5-<`Ei@#?*wg>+<>y>5PK8JCcKfs(Bfo0nxbPD!W z5?v;nsL<8D%kB%Tc3l`^b_Non5*KXc3@rE&C^m0;m2i21MQ=)HpSs!Pd9fH#Sc}HL zRPCi-vXNx(XP-vX&Xsp{eYMz(%=y1VlbF~44i{j}U;mq2gZ(vMZK6?PZ>~$Z1iR|_ z>&s&9ftp?=D^s++U%`lem^@RU>)-4y?R>w{eaO1dsjnSQ4}Gv-de399?6d!L$z?X^ zcBFlPcYV#)5a{~13@;>|kI8g!;Z3t=u!XxSTQj52)2!3&p$&|GGyMqS)V=D_XN>() z+Oz;K>yEBqAaI?y8b8nJV9~kArrtB|70$Iqd7WQ9k2|mhDDa|PcQv1OuLt8%ZBLMS zogD6%POrQ3G1_&A3k32T?m5PE@u>+H+6HuV%l8wAtJnQTnN5LvmjPWU@#U~{n-J;c z{lo7t5UlOru-*N&pEU8c_wWs52za^Z(M~=NS9JU^M%|}wa|OFNu&O$famg3ZRini% z9bbH^+y2j;Y>KwbZ8oB?@9OZehPA33N5K7e5;g2i>UBjJ4|KuCchUblN-lnF#@~Hd zh&;N2vHAwO1#GtQ_rF2MH}dFenvK7~$^q+f_xq7YfO|o&GF(%-O}MWL+}Yv^`AKmu zWU#6O(sFE{>D3(OZv*a0P1bR*b>(G~7Hws@pMYFU@^wVT=Sd-lXg_!t6Kvl`2Cooi zO$MQl_`Q`30v=HY@t)>MKDOE5>a%*DP0IZY;|1gKajrMY0*ptkt_Xw6NVNF7KS+L6 z_BRvyg}Onz`0e8V0{{U3|4J)K&B?Lma&QFz00960lzeS(t4Ol&=lEA3lMhBa%YY6t z#F3?AAef8{#ANJ~vv;Es;H(||hSPC!l}FEizg3OFfH||fGs>~)uD7nYu7bwjz3}^D zHb@79-a<I%x%Bh3H=8V zuDw`vMAw?wO6bHK&ketc#>1U`8)^je4P5cTzB9s(cI$t82>m-2%q`arJ2QU0Sv!X9 zT6245g|`nKKV;t=m+cRMf43r@54RfU_01En!Jlv9`>;#${`0Q;yYu_T@?C@Zd+&Ew zQGRFQq#sznD;qzymDu{7SicjH2A1^xZ+;s#vT>Id;Rl=q)r z_n%#oKM23sp5?E_7!=uxVWYU#w=m`Zby6-ft^3Zpj#=zE%vyWJ+C)X!*orGEmb*cW zZ(1s+Tqi7aTz3y1%Hee97kd2WI&8mL`IZ=VOZht8lGjEQ87QLVrbezK``g?R??JJA zCG`Ivx0MafeH=3f#r9*%c8x;+&fLEDVC}kptmlSng}8?QPcmJHq9=m8vD~rY+5WzO zCp~+%d*xcpn1|iO>dn)?8J&og7cQ|Jj0ER@Xo#U+IhyVSHVkW$r;bf z@w`?%uZGv3^*LUjSz|W83ha=vv1QMLE3}u(!f%RW1M}RyA8xE}F;}d0m#=k~;95Z$ z$Ao|SymiqI$~R^+a9j))iYp}^L(sLaZo`iIeeiv@nDquILr+tZ!8mZiR<1(+*}1yZ z)wrv;HgMi9@t)<<{?ZzPmg>EeA+WTMo4GK!Nn? z?PeV2pQH;h{C4eoz^<7eD-O%!?@~s%y~^n&Jm1X{%y-&mFm_Yr?FJ$E=YL9X(;d6F zN=Z*6da^crv14~DZ!*D3rhA^%R$-!yhL zhPN=i;h+D7tOQ@7M}ANAX6&>E>y0rkmkWl7sT42%8~ZV?R|Xah1Q+x$cavUlzcduIIot;5D-QRS9{0W8U^yP(nrsK|@sEk&*a2I_zx!JdTjeX} zyC9zZU`Bp0)9mFy#H^{TeMJnBDu^50e{kOtq0Ls+`HIb!vn97#F90Q2du)v>4V5*j z1=gO}mUn_cf%Tes6`A@ojIKdH)q>tYaZb2O7zD_FEqbl;5I=|b-HN%M`gu(CG0$^7 zvA_WPq$dMo3-w_CN>9anO(u$$zN`hifr6W@hwBbWcG2~qBVPKOf-Cc|SgFxi5RC<= zVc>?1TIMut!}=u+wEsyCH>Z&hjYJcZfz2=~P%-?oqg>+KU6HbeQsmYC0RKmS@11h` z`kuw;iD=6YO`9{C)m!eU?gH`i^xOZ=H{ocF6;zQ62nf0+dX@-Pdf zUE3sg@%>kFg5??Z+CS@Hr(w;rLme!Mj|i4c^IR@l{A*gpeBnPb(%GHrADRy>k7!zL z^$*ztWv$3T`vb|5a5+ND=AXBg-In_T(FN<)F7=UcePAI(`Y?cT`EQxgii`1JoPD0l z+)qw2d-pjme*Vf9_g&@{F-wk)vhOI~0@nqei0HE|-tslOWxVxr-aX>&2iNz6eEMw7 zVfWX**j2nDK6X4e?`9Mq7M9PV0oZkfA`>xROk$%|e#2r`EP`=6DRsBxx?2ur_8`Xn zgx7-DF`d7++24+Bm@_MI?W?m5dnu;o9^aF3i!gjwoP@Sje!sP?wtOn$KIcwE-@dhS znRa6Rn?S_|+&|g%uk46&v#xP{))V=7Zzi*bp4fk+C)TQ`Wv-{?GOz0@ zdSd@ZPwYZZvpg5iFc^3OZ?`hl&)&BO(YGw{P`z_s+hgM^_iw$< zKGfD8kSv&auvb{%m>>Gz#0Mm6&9Sr){k_%?<=y_a<9Xp)L(SS$muL#s=GuQw`wcYt zzmOXi8n4Ygtj&FRuy89-=6l;0Wi9M?c6FVgZRDFb?LU@XCfWZBy}W_E_$%4Jv+%n{ zy)M>xG6uxoGd1S1v-9};tbu-T!X{_fqyd{WVf$y;egn4Ogx#HCcMaHG6SjAT?KNO~P1qU2qAjj&-qO+* z5IyNbm{t8DLMH@o$^EfPZ`oplbTiEFhwyRjJl+DUjfWTaJZf@ipp`ycjLGLQt!1o) zTeQF}THulvxTFQH-vZZff!npf?ONb^EpWXSxLFI_tOah_0=H~|OF_PXtBj>*-Cx3K zEpT!RoZJGpXn|YQ;mj!rFcenY_b88;p9m*R1#eaO9tS%L2pQ>@u+yU{2%twR5NdQy zI8IFgqS6P^FOMdeFcnNMs?k=bBUni<@Kl9WO&G0U`hxkgMi==Ugi!_u^F3Ql->d8U z)!b>FDh?iK4Z_fjYWIXX5R~hASEnmDWC#^C<^0S>upMoWhoSje*VpGLJ8rk5*MnK( zIRX{+^ZAL}!?C%xPt*^5ZZq##*YoG+bc=aeYUu5AJH?!hdAv&h08;cJz!r2t@}ADQ z0;eS55P|-&6`K01;6%U1i5j}oUqI77ge@j7>8ZB%7k#RIXiXV7n)LpJ&UKIouVyFO z0}tL8;43IIJk%q@fy>d7bpN$_```h$MA*s%y)dxsW?E;Q%W^lAb_q z_@Gq5EBmoPfl_t}q$W=EWbV z3{{STY-OqRF*JobJ^aw4;UVRHzt0RM_1|vv&Ld1!^GBo~4x%%9S%ImEk<`icl zIT)7roZdR}&7-P=sZW0#7SUnI@B7@dqF$)*N=jZylUKjWt6$}{tMS^MdG+eNdIc~2 zpi5#p415=iH-n|MajhKJYU6S_F4x8v<@lmDo|NNBZMA-^c`tP2Nw7<1;?_dJzW_ zW&#jaBXt^O!|Ab>_uA&jPvEc;Myo@)7S!zlcN7e!v=*ooRfmU^~=>Dh){x)TqE&nbWlLU8{VTE8iED?@8r*zw&)o z`QEF1pH;putGv84mvai{YN%;tKH5I(U&H9gpZz|@+&7=U^le1@rq+X^&)crPq9Hve zCcn~3yp;#ZOd}qn2%Dn_GI%{kE8MNLp$Cszz1M?iOFf|60gd!SetA^CGC`M7_1=Qh zIYv)emcbSq$1U}H;3e9*#+J}GAoE^_eWFqHa5%wxu%(v}Po9@0Ue7=CeofoKxki(o zo~bYE551IV6#YO!0}ZNG>->VBra`s#<1}XZ8Y}%n&JX%>P3G)qzAh`UBpcRmIo(B# z?y;?xEXEVB-&miXj)yGIqv=hl58m6PNV{L5Em04oF?yD)`PE)V;(g}slD1sZmK(HX zq}^-MUU1rr25ss!XP2~-l6KOdognRHlXjoe?l)*tznOZwChc8Gd)J`78}4d$NyveuuFn1p3~O)K+bpR!LIJx)Kd~p@w~R^bx-sthIdVy zQa_n`TFtjOtcI|=IxO{+y;9B!tcu&1SUSn4e`uXhQXAgo-6rT%i! z2HQv2qz+3xX1@(~hp>&c_4wLaV0#GLSlf)Rtp#>AoHf_BC7niUy z+HKZc8}*(2HdqZ|FYG4c+FD>`guSqvjPhRigN$~YRpLse{t?^F?QkV{pvh&!cRGNfnhYkJ0B z#9eJ3^Knw-f0cSn)7(lgf;9YEmCxTRe9f&1FOndAVc)*2#Gs0C`#BwbehOQVuwcR* zUDJ&;diuT!$BVkI@)Ae+5~m|svkj!GJ)frp7Yo61kiCdqWwNCVuyMb z)Qc>cTY-<~Iah0pYZO0JTS<9ekW&3?zeqSo>%4X)uU(T@uga^(c}=m#7o#D6#`>t_HR5&!Uui`9 zEw^4%CJ+`8)L&(e_K0hu)6-3d{5D0&Buv4L3pD*%`NwxXTiEw>Z^Ygxf=0+)OIC zGY=N>8Fx8cP;8%YY42N54lS>78>z@ed)R_vtGr&|b+2-r;PtF>-N)-?<$8zpZd$p< zx}N;Dyq@8;T)AH2buOP|3ZL2VbsA$BvcQ_#ohz63Ku4bEGOUqzT5+~(?E&_NO!Ohf ze>Nd>jX>P2EmxWNbd+NQ!J5vqCP5rSn9l`@8;8mNmUA&q7IO(ka~PL%@kZN+fdLz9 zEh>I2?+s+J4mRTdT1xrdwG{8cRRTjPuM_7XDDkj;wS(lrK^{!pgGF$__Lkv=aC&x1 zXKq8qfN=m1&K2Olh8r^M0I%j4I~&JBTrsv3JFpptBRnI%_ku}y$273qJs98zR^Z`v z+PFT?)7gpu?ouqF_HJPKbdDp`f;-qV3%rSMP``W^2C0Pt`Y`cClp(Nl8k0Tv;2DlM zpQ8?QKFzT}qsLz^)?8N`%Q3OoBGNmUoNm6ZGgT%&7S1$_(%-wND(?%J8eiiox>)-|~n4PPl}`+Aa(+N z72YWtjAO%cLQD~8GsPMkG1{Bs7|PhPV#f7Ve5Y|=8E@R!M&0MJRlTNpI?FiT_!t#F zw-wbhK5WK5-8!^FI%BZ`f6T0te*ds7n4_P7r6?Pg+rK&1fGcu{jk@A-kD4oT#28R3 z!G`CC^LHF)inYO$Evmz}=n3PB{*NP;YRDPI|><7d2iZ8g#aV&e`*P zih?5%7L3uAuk!U_sq_GvR_1p)7p*;LWqv>P4aNSz&-<40=5u$-wOGhO4+@++5w5E` zbU5eW4_Y_LL+6YC2x>I!@WC$eZ4n+$enE4kY=l?HMSe>A0&YKJqDyw!SZF)L!u4_7 z*t<7)UWtL-PmDb0(7AWbeb9>iitK{iH*?X`>;~fXm(y_I5M;N{d?kRr!8X$#~8+%9Izrk z5nOXDCjYj)!nb43uxhfiy6iO5TgSCI~>;_`%{18n|*DSFYh|Rb1_a z>up@vyD=!JkhF2la~#4Z$ilZgIulFuIWK_3nt1$R>fJ`m`B^e}wm-4*T*!IKXeZyA zilz8YhZ30RDAU&WXS3|`fgwI7FpfT}%(-leSWmt2n& z*TsHEyow&CkY|JO8yeiE%1O_>@8Pu?+8Zl{z~6&SwMyDDMsO2sT?-qhjq73_cg%qH z`Zz^FCZc`i1i74hg!9fmgEFC`d8J?Bnh9RCaIKEwdZ!u`M<|bAVxZHN>F%? zqqB|d!BUERcA8`Lxx5}l`t6@Fw^J^C-3e``}oNWr2VhsCI-eW5hm+C2-dLYVqNX(#v@$?*) zdU0{Go*@jk{hfinvA@Hd!myK8NO^y9&+jbN+6}hYp9WDIG(7)YZ}nhk;O^9!EfD6v9b2)rgLceTwk( z&d-6QVRv$y(!0B^zJ=_^0Y0SeYnXP8gwuT1VG8fhAFl@~G!Xw*&SAe`q)um}NB}jf z($K+_kWPl<5si1#T(%L?$s+R==S(1IMeZnV(CAm44!r%fO!;}j_#pPh1H8BMex)%9$k(fRcQp7DhN|E+Fr={E*yjv9gi6``EWcl+rGAq zBho0$>hc!nz`%Szyl2x~hgykOJ!8~d|C0dkhY#se2PPa|PlYY<>%jt)PMYFBOOLmjn`OHVk{O6$ky&^oSz(9Xj&BRGzJ z9zs>Et+hCx^%F)%^`O?)lck{QA21!Mhpa2q=|vw0Q$`UBn`kv3`iQ`MPENL|(fmNa zL&Y71eE( z1uqkQzmNs>G)~ig$xDZ?&n=iA@NvNSSBc-EJD->QKEHJMFt;Cv1D8ea&K4JQqkK;5 z_ROlyFimVt{S~I&7w$JzpELCrFa@&~>$C<5gg-NQ$<$DY$UapZLHHAzevPpxe4y

    xdK4^MW~B?+FkvMCk*T(zZ?=|Imxp5&;&t@`wF^+O*u`B%;lHsdP# z5F`krC-ezpS&fYkv~NMbvi9gj$K@ZTT7JxJ6iMm}WSB(KA{SGdF6EB&mkiXYW(vQg zJ5@1@3Nq?7BidR;9$fT`YGzYGUF15^DluN+o%|K=ewDY@#yd5`FNxyg7xNmQC!7C5 z_5#0Ec5?w=U8x>NRoTCA&*HLc?XpYeSF7G4{m`mY{V6|Z+4K|X-};HvgwJ5Ba=U1a ze57Wy%f4`UoUFzc;h3TDXH6fJ%MnBU3D2q!UB*`S1Y1G9jGaFpg-PLn-g*$^uv_t8Q^LIcMCX@r-;t|1KiXneH%;_`?ENC1wz_%HBR%W>Y}PmWRzILlKHqD5 zk&gS<&+X_KsRz9gOFErO5DwY2s+SXw=_>jX)Fk7%LDRGv9~IRme64cX>UjESs^a2a zrd_@6yEtd+$m_JfYE}8Zwk!0vf>(V_$LW_YubygqBjI4|2;JkQ4h|}MX7s{+I!)_y z(PyTI2eY=PI-q4@$g43SWTC{ydnqzJc)2ZzFRHhfy}Ym^=B9`SE&L52HW66VI)l$2sc5 zsMjvqMUHV#sDH?dC_Zh18!#Sdl`$)ak;_)TD*Lo_X|K9BNOf3C`FEui0b535i z4ceyq@g*eD^d&U6HQLykQM|8SrjdDy>l)5`^pB4=T5@zegzxpdiMja;^T6>#d#}aK zS+?ZZ{Rio3aXEgx96w^6K=A0AT0>s*cucCbO~D%*^DSqza#S3H_a6mjnJ=DJR%I!76FU!nNgvN#DCo`ux4rWHykK zgnkYO#n7~cJrMaju>VrH-1k=w3pe84wOk0qxNp;K5@6OpYz=&NZE05cz#P}!+hLCP zsB}cIT{aXI{@D?gM_0_>^&i?-weuJ>ZpXnDy`M*)V&~B|TyWt*ru*UioVWcbx~Jz- zwXx#9+0d}~xoM)sg4m_|E3)-A7^XMgZ%M-ciuvL`k!SI9*C?M8+qN@2ouA;oK)?Sb z!kXUr1{V81F1{PYF@JtX&%#0_i06hoKgsj}zP)xlJBY7BWA4uR^CJZFZPZg3T*b7m z0F=;;jrqeI{Iv~UU^`bv7`rf^6F$EWhdkU3-T51XA1YQ%cd6*PmI48b?a-ztVTz@= zp|_8VXTi5&m)nqje~R01vE(+S_sD-`Ll*bN(uQ)~hV&Z=CmS+Ya~skFy4;5J8!YE{ z;rZ_th{5pU9fb8Gb1T=w;2k$a}@PzI3^kB zePfcn@&3_Ux)|KhdH&?L{BQglyO4?fJDFHrCW0@1N9hg3Hu&=FW&vNEH~a-W9h~F- zL-0trX)|tzrfnYs)P>(2*0VD>U;Hr zw}r-Te&fISP{5HNIk_#^(75LQNxu#8c%92zeXpgB<{M}@rv29TK3OjN`8OIC0na1# z-yM+O2ES=HoG-n%e!~4_?(pM#mnpfP;xKmT9yrMxUx)XK@ABWP2o3siMn^g6Ftp DATA_P1, + CK => pll_refclki, + CD => sli_rst, + Q => pdiff_sync); +DATA_P1_REG_Z12: FD1S3DX port map ( + D => ppul_sync, + CK => pll_refclki, + CD => sli_rst, + Q => DATA_P1); +VCC_0: VHI port map ( + Z => VCC); +II_GND: VLO port map ( + Z => GND); +end beh; + +-- +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; +library synplify; +use synplify.components.all; +library pmi; +use pmi.pmi_components.all; +library ecp5um; +use ecp5um.components.all; + +entity sync_0s_6 is +port( +rtc_pul : in std_logic; +ppul_sync : out std_logic; +sli_rst : in std_logic; +tx_pclk : in std_logic); +end sync_0s_6; + +architecture beh of sync_0s_6 is +signal DATA_P1 : std_logic ; +signal DATA_P2_QN : std_logic ; +signal VCC : std_logic ; +signal DATA_P1_QN : std_logic ; +signal GND : std_logic ; +begin +DATA_P2_REG_Z10: FD1S3DX port map ( + D => DATA_P1, + CK => tx_pclk, + CD => sli_rst, + Q => ppul_sync); +DATA_P1_REG_Z12: FD1S3DX port map ( + D => rtc_pul, + CK => tx_pclk, + CD => sli_rst, + Q => DATA_P1); +VCC_0: VHI port map ( + Z => VCC); +II_GND: VLO port map ( + Z => GND); +end beh; + +-- +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; +library synplify; +use synplify.components.all; +library pmi; +use pmi.pmi_components.all; +library ecp5um; +use ecp5um.components.all; + +entity sync_0s is +port( +phb : in std_logic; +rhb_sync : out std_logic; +sli_rst : in std_logic; +pll_refclki : in std_logic); +end sync_0s; + +architecture beh of sync_0s is +signal DATA_P1 : std_logic ; +signal DATA_P2_QN_0 : std_logic ; +signal VCC : std_logic ; +signal DATA_P1_QN_0 : std_logic ; +signal GND : std_logic ; +begin +DATA_P2_REG_Z10: FD1S3DX port map ( +D => DATA_P1, +CK => pll_refclki, +CD => sli_rst, +Q => rhb_sync); +DATA_P1_REG_Z12: FD1S3DX port map ( +D => phb, +CK => pll_refclki, +CD => sli_rst, +Q => DATA_P1); +VCC_0: VHI port map ( +Z => VCC); +II_GND: VLO port map ( +Z => GND); +end beh; + +-- +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; +library synplify; +use synplify.components.all; +library pmi; +use pmi.pmi_components.all; +library ecp5um; +use ecp5um.components.all; + +entity sgmii_ecp5rsl_core_Z2_layer1 is +port( +rx_pcs_rst_c : in std_logic; +tx_pcs_rst_c : in std_logic; +serdes_rst_dual_c : in std_logic; +tx_serdes_rst_c : in std_logic; +rsl_rx_pcs_rst_c : out std_logic; +rsl_tx_pcs_rst_c : out std_logic; +rsl_tx_serdes_rst_c : out std_logic; +rsl_tx_rdy : out std_logic; +pll_lock_i : in std_logic; +pll_refclki : in std_logic; +rsl_rx_rdy : out std_logic; +rsl_rst : in std_logic; +rxrefclk : in std_logic; +rsl_disable : in std_logic; +rx_serdes_rst_c : in std_logic; +rst_dual_c : in std_logic; +rx_cdr_lol_s : in std_logic; +rx_los_low_s : in std_logic; +rsl_rx_serdes_rst_c : out std_logic; +rsl_serdes_rst_dual_c : out std_logic); +end sgmii_ecp5rsl_core_Z2_layer1; + +architecture beh of sgmii_ecp5rsl_core_Z2_layer1 is +signal RXS_CNT : std_logic_vector(1 downto 0); +signal RXS_CNT_3 : std_logic_vector(1 downto 0); +signal RXPR_APPD_RNO : std_logic_vector(0 to 0); +signal PLOL0_CNT : std_logic_vector(2 downto 0); +signal PLOL0_CNT_3 : std_logic_vector(2 downto 0); +signal RXSR_APPD : std_logic_vector(0 to 0); +signal RXS_CNT_QN : std_logic_vector(1 downto 0); +signal RLOS_DB_CNT : std_logic_vector(3 downto 0); +signal RLOS_DB_CNT_QN : std_logic_vector(3 downto 0); +signal RLOLS0_CNT_S : std_logic_vector(17 downto 0); +signal RLOLS0_CNT : std_logic_vector(17 downto 0); +signal RLOLS0_CNT_QN : std_logic_vector(17 downto 0); +signal RLOL_DB_CNT : std_logic_vector(3 downto 0); +signal RLOL_DB_CNT_QN : std_logic_vector(3 downto 0); +signal RLOL1_CNT_S : std_logic_vector(18 downto 0); +signal RLOL1_CNT : std_logic_vector(18 downto 0); +signal RLOL1_CNT_QN : std_logic_vector(18 downto 0); +signal RXR_WT_CNT_S : std_logic_vector(11 downto 0); +signal RXR_WT_CNT : std_logic_vector(11 downto 0); +signal RXR_WT_CNT_QN : std_logic_vector(11 downto 0); +signal RXSR_APPD_QN : std_logic_vector(0 to 0); +signal RXPR_APPD : std_logic_vector(0 to 0); +signal RXPR_APPD_QN : std_logic_vector(0 to 0); +signal TXS_CNT : std_logic_vector(1 downto 0); +signal TXS_CNT_QN : std_logic_vector(1 downto 0); +signal TXS_CNT_RNO : std_logic_vector(1 to 1); +signal TXP_CNT : std_logic_vector(1 downto 0); +signal TXP_CNT_QN : std_logic_vector(1 downto 0); +signal TXP_CNT_RNO : std_logic_vector(1 to 1); +signal PLOL_CNT_S : std_logic_vector(19 downto 0); +signal PLOL_CNT : std_logic_vector(19 downto 0); +signal PLOL_CNT_QN : std_logic_vector(19 downto 0); +signal PLOL0_CNT_QN : std_logic_vector(2 downto 0); +signal TXR_WT_CNT_S : std_logic_vector(11 downto 0); +signal TXR_WT_CNT : std_logic_vector(11 downto 0); +signal TXR_WT_CNT_QN : std_logic_vector(11 downto 0); +signal TXPR_APPD : std_logic_vector(0 to 0); +signal TXPR_APPD_QN : std_logic_vector(0 to 0); +signal UN1_RLOL_DB_CNT_ZERO : std_logic_vector(0 to 0); +signal UN1_RLOS_DB_CNT_ZERO : std_logic_vector(0 to 0); +signal UN1_RLOL_DB_CNT_ZERO_BM : std_logic_vector(0 to 0); +signal UN1_RLOL_DB_CNT_ZERO_AM : std_logic_vector(0 to 0); +signal UN1_RLOS_DB_CNT_ZERO_BM : std_logic_vector(0 to 0); +signal UN1_RLOS_DB_CNT_ZERO_AM : std_logic_vector(0 to 0); +signal RLOL1_CNT_CRY : std_logic_vector(16 downto 0); +signal RLOL1_CNT_CRY_0_S0 : std_logic_vector(0 to 0); +signal RLOL1_CNT_CRY_0_COUT : std_logic_vector(17 to 17); +signal RLOLS0_CNT_CRY : std_logic_vector(16 downto 0); +signal RLOLS0_CNT_CRY_0_S0 : std_logic_vector(0 to 0); +signal RLOLS0_CNT_S_0_COUT : std_logic_vector(17 to 17); +signal RLOLS0_CNT_S_0_S1 : std_logic_vector(17 to 17); +signal TXR_WT_CNT_CRY : std_logic_vector(10 downto 0); +signal TXR_WT_CNT_CRY_0_S0 : std_logic_vector(0 to 0); +signal TXR_WT_CNT_S_0_COUT : std_logic_vector(11 to 11); +signal TXR_WT_CNT_S_0_S1 : std_logic_vector(11 to 11); +signal RXR_WT_CNT_CRY : std_logic_vector(10 downto 0); +signal RXR_WT_CNT_CRY_0_S0 : std_logic_vector(0 to 0); +signal RXR_WT_CNT_S_0_COUT : std_logic_vector(11 to 11); +signal RXR_WT_CNT_S_0_S1 : std_logic_vector(11 to 11); +signal PLOL_CNT_CRY : std_logic_vector(18 downto 0); +signal PLOL_CNT_CRY_0_S0 : std_logic_vector(0 to 0); +signal PLOL_CNT_S_0_COUT : std_logic_vector(19 to 19); +signal PLOL_CNT_S_0_S1 : std_logic_vector(19 to 19); +signal RXS_RST : std_logic ; +signal VCC : std_logic ; +signal RSL_SERDES_RST_DUAL_C_10 : std_logic ; +signal RSL_RX_SERDES_RST_C_9 : std_logic ; +signal RLOS_DB_P1 : std_logic ; +signal RLOS_DB : std_logic ; +signal RXP_RST25 : std_logic ; +signal RLOL_DB : std_logic ; +signal UN1_RUI_RST_DUAL_C_1_1 : std_logic ; +signal PLOL0_CNT9 : std_logic ; +signal WAITA_PLOL0 : std_logic ; +signal RX_ANY_RST : std_logic ; +signal UN3_RX_ALL_WELL_2 : std_logic ; +signal UN17_RXR_WT_TC : std_logic ; +signal RX_ALL_WELL : std_logic ; +signal UN3_RX_ALL_WELL_1 : std_logic ; +signal RXR_WT_CNT9 : std_logic ; +signal UN1_RUI_RST_DUAL_C_1_I : std_logic ; +signal RLOL1_CNT_TC_1 : std_logic ; +signal \RLOL1_CNT_\ : std_logic ; +signal RXR_WT_EN : std_logic ; +signal RXR_WT_CNTE : std_logic ; +signal UN18_TXR_WT_TC : std_logic ; +signal TX_ANY_RST : std_logic ; +signal PLL_LOL_P2 : std_logic ; +signal UN2_PLOL_FEDGE_5_I : std_logic ; +signal N_2160_0 : std_logic ; +signal WAITA_RLOLS06 : std_logic ; +signal UN1_RLOLS0_CNT_TC : std_logic ; +signal WAITA_RLOLS0 : std_logic ; +signal WAITA_RLOLS0_QN : std_logic ; +signal WAIT_CALIB_RNO : std_logic ; +signal UN1_RLOS_FEDGE_1 : std_logic ; +signal WAIT_CALIB : std_logic ; +signal WAIT_CALIB_QN : std_logic ; +signal RXS_RST6 : std_logic ; +signal UN1_RXS_CNT_TC : std_logic ; +signal RXS_RST_QN : std_logic ; +signal UN2_RLOS_REDGE_1_I : std_logic ; +signal RXP_RST2 : std_logic ; +signal RXP_RST2_QN : std_logic ; +signal RLOS_P1 : std_logic ; +signal RLOS_P2 : std_logic ; +signal RLOS_P2_QN : std_logic ; +signal RLOS_P1_QN : std_logic ; +signal RLOS_DB_P1_QN : std_logic ; +signal RLOS_DB_CNT_AXB_0 : std_logic ; +signal RLOS_DB_CNT_CRY_1_0_S0 : std_logic ; +signal RLOS_DB_CNT_CRY_1_0_S1 : std_logic ; +signal RLOS_DB_CNT_S_3_0_S0 : std_logic ; +signal UN1_RLOS_DB_CNT_MAX : std_logic ; +signal RLOS_DB_QN : std_logic ; +signal RLOLS0_CNTE : std_logic ; +signal RLOL_P1 : std_logic ; +signal RLOL_P2 : std_logic ; +signal RLOL_P2_QN : std_logic ; +signal RLOL_P1_QN : std_logic ; +signal RLOL_DB_P1 : std_logic ; +signal RLOL_DB_P1_QN : std_logic ; +signal RLOL_DB_CNT_AXB_0 : std_logic ; +signal RLOL_DB_CNT_CRY_1_0_S0 : std_logic ; +signal RLOL_DB_CNT_CRY_1_0_S1 : std_logic ; +signal RLOL_DB_CNT_S_3_0_S0 : std_logic ; +signal UN1_RLOL_DB_CNT_MAX : std_logic ; +signal RLOL_DB_QN : std_logic ; +signal RLOL1_CNTE : std_logic ; +signal RXSDR_APPD_2 : std_logic ; +signal RXSDR_APPD : std_logic ; +signal RXSDR_APPD_QN : std_logic ; +signal UN1_DUAL_OR_RSERD_RST_2_I : std_logic ; +signal RXR_WT_EN_QN : std_logic ; +signal RXDPR_APPD : std_logic ; +signal RXDPR_APPD_QN : std_logic ; +signal RSL_RX_RDY_8 : std_logic ; +signal RUO_RX_RDYR_QN : std_logic ; +signal UN2_RDO_SERDES_RST_DUAL_C_2_I : std_logic ; +signal PLOL_FEDGE : std_logic ; +signal UN1_PLOL0_CNT_TC_1_I : std_logic ; +signal WAITA_PLOL0_QN : std_logic ; +signal UN1_PLOL_CNT_TC : std_logic ; +signal UN2_PLOL_CNT_TC : std_logic ; +signal TXS_RST : std_logic ; +signal TXS_RST_QN : std_logic ; +signal N_10_I : std_logic ; +signal UN9_PLOL0_CNT_TC : std_logic ; +signal UN1_PLOL0_CNT_TC_1 : std_logic ; +signal TXP_RST : std_logic ; +signal TXP_RST_QN : std_logic ; +signal N_11_I : std_logic ; +signal PLL_LOL_P3 : std_logic ; +signal PLL_LOL_P3_QN : std_logic ; +signal PLL_LOL_P1 : std_logic ; +signal PLL_LOL_P2_QN : std_logic ; +signal PLL_LOL_P1_QN : std_logic ; +signal TXSR_APPD_2 : std_logic ; +signal TXSR_APPD : std_logic ; +signal TXSR_APPD_QN : std_logic ; +signal UN1_DUAL_OR_SERD_RST_1_1 : std_logic ; +signal UN1_DUAL_OR_SERD_RST_1_I : std_logic ; +signal TXR_WT_EN : std_logic ; +signal TXR_WT_EN_QN : std_logic ; +signal TXR_WT_CNTE : std_logic ; +signal UN2_PLOL_FEDGE_2 : std_logic ; +signal UN2_PLOL_FEDGE_3_I : std_logic ; +signal TXDPR_APPD : std_logic ; +signal TXDPR_APPD_QN : std_logic ; +signal UN2_PLOL_FEDGE_5_1 : std_logic ; +signal RSL_TX_RDY_7 : std_logic ; +signal RUO_TX_RDYR_QN : std_logic ; +signal UN2_PLOL_FEDGE_8_I : std_logic ; +signal RLOLS0_CNT_TC_1 : std_logic ; +signal RLOS_REDGE : std_logic ; +signal RLOLS0_CNT11_0 : std_logic ; +signal RSL_TX_SERDES_RST_C_6 : std_logic ; +signal \PLOL_CNT_\ : std_logic ; +signal \RLOLS0_CNT_\ : std_logic ; +signal UN8_RXS_CNT_TC : std_logic ; +signal UN1_TXSR_APPD : std_logic ; +signal UN1_DUAL_OR_RSERD_RST_2_0 : std_logic ; +signal UN1_RXSDR_OR_SR_APPD : std_logic ; +signal UN2_RDO_SERDES_RST_DUAL_C_1_1 : std_logic ; +signal RLOLS0_CNT_TC_1_10 : std_logic ; +signal RLOLS0_CNT_TC_1_11 : std_logic ; +signal RLOLS0_CNT_TC_1_12 : std_logic ; +signal RLOLS0_CNT_TC_1_13 : std_logic ; +signal RLOL1_CNT_TC_1_11 : std_logic ; +signal RLOL1_CNT_TC_1_12 : std_logic ; +signal RLOL1_CNT_TC_1_13 : std_logic ; +signal RLOL1_CNT_TC_1_14 : std_logic ; +signal UN1_PLOL_CNT_TC_11 : std_logic ; +signal UN1_PLOL_CNT_TC_12 : std_logic ; +signal UN1_PLOL_CNT_TC_13 : std_logic ; +signal UN1_PLOL_CNT_TC_14 : std_logic ; +signal CO0_2 : std_logic ; +signal TXSR_APPD_4 : std_logic ; +signal RSL_TX_PCS_RST_C_5 : std_logic ; +signal UN17_RXR_WT_TC_6 : std_logic ; +signal UN17_RXR_WT_TC_7 : std_logic ; +signal UN17_RXR_WT_TC_8 : std_logic ; +signal RSL_RX_PCS_RST_C_4 : std_logic ; +signal UN18_TXR_WT_TC_6 : std_logic ; +signal UN18_TXR_WT_TC_7 : std_logic ; +signal UN18_TXR_WT_TC_8 : std_logic ; +signal RXSDR_APPD_4 : std_logic ; +signal RLOLS0_CNT_TC_1_9 : std_logic ; +signal UN1_PLOL_CNT_TC_10 : std_logic ; +signal RLOL1_CNT_TC_1_10 : std_logic ; +signal \TXR_WT_CNT_\ : std_logic ; +signal RLOS_DB_CNT_CRY_0 : std_logic ; +signal RLOS_DB_CNT_CRY_0_0_S0 : std_logic ; +signal RLOS_DB_CNT_CRY_0_0_S1 : std_logic ; +signal RLOS_DB_CNT_CRY_2 : std_logic ; +signal RLOS_DB_CNT_S_3_0_COUT : std_logic ; +signal RLOS_DB_CNT_S_3_0_S1 : std_logic ; +signal RLOL_DB_CNT_CRY_0 : std_logic ; +signal RLOL_DB_CNT_CRY_0_0_S0 : std_logic ; +signal RLOL_DB_CNT_CRY_0_0_S1 : std_logic ; +signal RLOL_DB_CNT_CRY_2 : std_logic ; +signal RLOL_DB_CNT_S_3_0_COUT : std_logic ; +signal RLOL_DB_CNT_S_3_0_S1 : std_logic ; +signal GND : std_logic ; +signal N_1 : std_logic ; +signal N_2 : std_logic ; +signal N_3 : std_logic ; +signal N_4 : std_logic ; +signal N_5 : std_logic ; +signal N_6 : std_logic ; +signal N_7 : std_logic ; +begin +\GENBLK2.RXS_CNT_RNO[0]\: LUT4 +generic map( + init => X"2626" +) +port map ( +A => RXS_RST, +B => RXS_CNT(0), +C => RXS_CNT(1), +D => VCC, +Z => RXS_CNT_3(0)); +\GENBLK2.GENBLK3.LFOR[0].RXPR_APPD_RNO[0]\: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RSL_SERDES_RST_DUAL_C_10, +B => RSL_RX_SERDES_RST_C_9, +C => rx_los_low_s, +D => rx_cdr_lol_s, +Z => RXPR_APPD_RNO(0)); +\GENBLK2.RXP_RST2_RNO\: LUT4 +generic map( + init => X"EFEE" +) +port map ( +A => RSL_SERDES_RST_DUAL_C_10, +B => RSL_RX_SERDES_RST_C_9, +C => RLOS_DB_P1, +D => RLOS_DB, +Z => RXP_RST25); +\GENBLK2.GENBLK3.RXDPR_APPD_RNO\: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RSL_SERDES_RST_DUAL_C_10, +B => RSL_RX_SERDES_RST_C_9, +C => RLOS_DB, +D => RLOL_DB, +Z => UN1_RUI_RST_DUAL_C_1_1); +\GENBLK1.PLOL0_CNT_RNO[1]\: LUT4 +generic map( + init => X"1222" +) +port map ( +A => PLOL0_CNT(1), +B => PLOL0_CNT9, +C => WAITA_PLOL0, +D => PLOL0_CNT(0), +Z => PLOL0_CNT_3(1)); +\GENBLK2.GENBLK3.RUO_RX_RDYR_RNO\: LUT4 +generic map( + init => X"0101" +) +port map ( +A => RX_ANY_RST, +B => RLOS_DB, +C => RLOL_DB, +D => VCC, +Z => UN3_RX_ALL_WELL_2); +\GENBLK2.GENBLK3.RXR_WT_EN_RNO\: LUT4 +generic map( + init => X"0100" +) +port map ( +A => UN17_RXR_WT_TC, +B => RSL_SERDES_RST_DUAL_C_10, +C => RSL_RX_SERDES_RST_C_9, +D => RX_ALL_WELL, +Z => UN3_RX_ALL_WELL_1); +RX_ANY_RST_RNIFD021: LUT4 +generic map( + init => X"FFFE" +) +port map ( +A => RX_ANY_RST, +B => UN17_RXR_WT_TC, +C => RLOS_DB, +D => RLOL_DB, +Z => RXR_WT_CNT9); +\GENBLK2.GENBLK3.RXDPR_APPD_RNO_0\: LUT4 +generic map( + init => X"FEFF" +) +port map ( +A => rst_dual_c, +B => RSL_SERDES_RST_DUAL_C_10, +C => RSL_RX_SERDES_RST_C_9, +D => RX_ALL_WELL, +Z => UN1_RUI_RST_DUAL_C_1_I); +\GENBLK2.RLOS_DB_P1_RNIS0OP\: LUT4 +generic map( + init => X"1011" +) +port map ( +A => RLOL1_CNT_TC_1, +B => RXS_RST, +C => RLOS_DB_P1, +D => RLOS_DB, +Z => \RLOL1_CNT_\); +\GENBLK2.GENBLK3.RXR_WT_EN_RNIQF0H1\: LUT4 +generic map( + init => X"FFEF" +) +port map ( +A => RXR_WT_EN, +B => RX_ANY_RST, +C => RX_ALL_WELL, +D => UN17_RXR_WT_TC, +Z => RXR_WT_CNTE); +\GENBLK1.GENBLK2.RUO_TX_RDYR_RNO\: LUT4 +generic map( + init => X"FEFE" +) +port map ( +A => UN18_TXR_WT_TC, +B => TX_ANY_RST, +C => PLL_LOL_P2, +D => VCC, +Z => UN2_PLOL_FEDGE_5_I); +\GENBLK2.GENBLK3.LFOR[0].RXSR_APPD_RNO[0]\: LUT4 +generic map( + init => X"EEFE" +) +port map ( +A => RXSR_APPD(0), +B => rx_serdes_rst_c, +C => RXS_RST, +D => rsl_disable, +Z => N_2160_0); +\GENBLK2.WAITA_RLOLS0_REG_Z616\: FD1P3DX port map ( +D => WAITA_RLOLS06, +SP => UN1_RLOLS0_CNT_TC, +CK => rxrefclk, +CD => rsl_rst, +Q => WAITA_RLOLS0); +\GENBLK2.WAIT_CALIB_REG_Z618\: FD1P3BX port map ( +D => WAIT_CALIB_RNO, +SP => UN1_RLOS_FEDGE_1, +CK => rxrefclk, +PD => rsl_rst, +Q => WAIT_CALIB); +\GENBLK2.RXS_RST_REG_Z620\: FD1P3DX port map ( +D => RXS_RST6, +SP => UN1_RXS_CNT_TC, +CK => rxrefclk, +CD => rsl_rst, +Q => RXS_RST); +\GENBLK2.RXS_CNT[0]_REG_Z622\: FD1S3DX port map ( +D => RXS_CNT_3(0), +CK => rxrefclk, +CD => rsl_rst, +Q => RXS_CNT(0)); +\GENBLK2.RXS_CNT[1]_REG_Z624\: FD1S3DX port map ( +D => RXS_CNT_3(1), +CK => rxrefclk, +CD => rsl_rst, +Q => RXS_CNT(1)); +\GENBLK2.RXP_RST2_REG_Z626\: FD1P3BX port map ( +D => RXP_RST25, +SP => UN2_RLOS_REDGE_1_I, +CK => rxrefclk, +PD => rsl_rst, +Q => RXP_RST2); +\GENBLK2.RLOS_P2_REG_Z628\: FD1S3DX port map ( +D => RLOS_P1, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOS_P2); +\GENBLK2.RLOS_P1_REG_Z630\: FD1S3DX port map ( +D => rx_los_low_s, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOS_P1); +\GENBLK2.RLOS_DB_P1_REG_Z632\: FD1S3BX port map ( +D => RLOS_DB, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOS_DB_P1); +\GENBLK2.RLOS_DB_CNT[0]_REG_Z634\: FD1S3BX port map ( +D => RLOS_DB_CNT_AXB_0, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOS_DB_CNT(0)); +\GENBLK2.RLOS_DB_CNT[1]_REG_Z636\: FD1S3BX port map ( +D => RLOS_DB_CNT_CRY_1_0_S0, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOS_DB_CNT(1)); +\GENBLK2.RLOS_DB_CNT[2]_REG_Z638\: FD1S3BX port map ( +D => RLOS_DB_CNT_CRY_1_0_S1, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOS_DB_CNT(2)); +\GENBLK2.RLOS_DB_CNT[3]_REG_Z640\: FD1S3BX port map ( +D => RLOS_DB_CNT_S_3_0_S0, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOS_DB_CNT(3)); +\GENBLK2.RLOS_DB_REG_Z642\: FD1P3BX port map ( +D => RLOS_DB_CNT(1), +SP => UN1_RLOS_DB_CNT_MAX, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOS_DB); +\GENBLK2.RLOLS0_CNT[0]_REG_Z644\: FD1P3DX port map ( +D => RLOLS0_CNT_S(0), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(0)); +\GENBLK2.RLOLS0_CNT[1]_REG_Z646\: FD1P3DX port map ( +D => RLOLS0_CNT_S(1), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(1)); +\GENBLK2.RLOLS0_CNT[2]_REG_Z648\: FD1P3DX port map ( +D => RLOLS0_CNT_S(2), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(2)); +\GENBLK2.RLOLS0_CNT[3]_REG_Z650\: FD1P3DX port map ( +D => RLOLS0_CNT_S(3), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(3)); +\GENBLK2.RLOLS0_CNT[4]_REG_Z652\: FD1P3DX port map ( +D => RLOLS0_CNT_S(4), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(4)); +\GENBLK2.RLOLS0_CNT[5]_REG_Z654\: FD1P3DX port map ( +D => RLOLS0_CNT_S(5), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(5)); +\GENBLK2.RLOLS0_CNT[6]_REG_Z656\: FD1P3DX port map ( +D => RLOLS0_CNT_S(6), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(6)); +\GENBLK2.RLOLS0_CNT[7]_REG_Z658\: FD1P3DX port map ( +D => RLOLS0_CNT_S(7), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(7)); +\GENBLK2.RLOLS0_CNT[8]_REG_Z660\: FD1P3DX port map ( +D => RLOLS0_CNT_S(8), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(8)); +\GENBLK2.RLOLS0_CNT[9]_REG_Z662\: FD1P3DX port map ( +D => RLOLS0_CNT_S(9), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(9)); +\GENBLK2.RLOLS0_CNT[10]_REG_Z664\: FD1P3DX port map ( +D => RLOLS0_CNT_S(10), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(10)); +\GENBLK2.RLOLS0_CNT[11]_REG_Z666\: FD1P3DX port map ( +D => RLOLS0_CNT_S(11), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(11)); +\GENBLK2.RLOLS0_CNT[12]_REG_Z668\: FD1P3DX port map ( +D => RLOLS0_CNT_S(12), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(12)); +\GENBLK2.RLOLS0_CNT[13]_REG_Z670\: FD1P3DX port map ( +D => RLOLS0_CNT_S(13), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(13)); +\GENBLK2.RLOLS0_CNT[14]_REG_Z672\: FD1P3DX port map ( +D => RLOLS0_CNT_S(14), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(14)); +\GENBLK2.RLOLS0_CNT[15]_REG_Z674\: FD1P3DX port map ( +D => RLOLS0_CNT_S(15), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(15)); +\GENBLK2.RLOLS0_CNT[16]_REG_Z676\: FD1P3DX port map ( +D => RLOLS0_CNT_S(16), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(16)); +\GENBLK2.RLOLS0_CNT[17]_REG_Z678\: FD1P3DX port map ( +D => RLOLS0_CNT_S(17), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(17)); +\GENBLK2.RLOL_P2_REG_Z680\: FD1S3DX port map ( +D => RLOL_P1, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL_P2); +\GENBLK2.RLOL_P1_REG_Z682\: FD1S3DX port map ( +D => rx_cdr_lol_s, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL_P1); +\GENBLK2.RLOL_DB_P1_REG_Z684\: FD1S3BX port map ( +D => RLOL_DB, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOL_DB_P1); +\GENBLK2.RLOL_DB_CNT[0]_REG_Z686\: FD1S3BX port map ( +D => RLOL_DB_CNT_AXB_0, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOL_DB_CNT(0)); +\GENBLK2.RLOL_DB_CNT[1]_REG_Z688\: FD1S3BX port map ( +D => RLOL_DB_CNT_CRY_1_0_S0, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOL_DB_CNT(1)); +\GENBLK2.RLOL_DB_CNT[2]_REG_Z690\: FD1S3BX port map ( +D => RLOL_DB_CNT_CRY_1_0_S1, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOL_DB_CNT(2)); +\GENBLK2.RLOL_DB_CNT[3]_REG_Z692\: FD1S3BX port map ( +D => RLOL_DB_CNT_S_3_0_S0, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOL_DB_CNT(3)); +\GENBLK2.RLOL_DB_REG_Z694\: FD1P3BX port map ( +D => RLOL_DB_CNT(1), +SP => UN1_RLOL_DB_CNT_MAX, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOL_DB); +\GENBLK2.RLOL1_CNT[0]_REG_Z696\: FD1P3DX port map ( +D => RLOL1_CNT_S(0), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(0)); +\GENBLK2.RLOL1_CNT[1]_REG_Z698\: FD1P3DX port map ( +D => RLOL1_CNT_S(1), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(1)); +\GENBLK2.RLOL1_CNT[2]_REG_Z700\: FD1P3DX port map ( +D => RLOL1_CNT_S(2), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(2)); +\GENBLK2.RLOL1_CNT[3]_REG_Z702\: FD1P3DX port map ( +D => RLOL1_CNT_S(3), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(3)); +\GENBLK2.RLOL1_CNT[4]_REG_Z704\: FD1P3DX port map ( +D => RLOL1_CNT_S(4), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(4)); +\GENBLK2.RLOL1_CNT[5]_REG_Z706\: FD1P3DX port map ( +D => RLOL1_CNT_S(5), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(5)); +\GENBLK2.RLOL1_CNT[6]_REG_Z708\: FD1P3DX port map ( +D => RLOL1_CNT_S(6), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(6)); +\GENBLK2.RLOL1_CNT[7]_REG_Z710\: FD1P3DX port map ( +D => RLOL1_CNT_S(7), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(7)); +\GENBLK2.RLOL1_CNT[8]_REG_Z712\: FD1P3DX port map ( +D => RLOL1_CNT_S(8), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(8)); +\GENBLK2.RLOL1_CNT[9]_REG_Z714\: FD1P3DX port map ( +D => RLOL1_CNT_S(9), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(9)); +\GENBLK2.RLOL1_CNT[10]_REG_Z716\: FD1P3DX port map ( +D => RLOL1_CNT_S(10), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(10)); +\GENBLK2.RLOL1_CNT[11]_REG_Z718\: FD1P3DX port map ( +D => RLOL1_CNT_S(11), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(11)); +\GENBLK2.RLOL1_CNT[12]_REG_Z720\: FD1P3DX port map ( +D => RLOL1_CNT_S(12), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(12)); +\GENBLK2.RLOL1_CNT[13]_REG_Z722\: FD1P3DX port map ( +D => RLOL1_CNT_S(13), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(13)); +\GENBLK2.RLOL1_CNT[14]_REG_Z724\: FD1P3DX port map ( +D => RLOL1_CNT_S(14), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(14)); +\GENBLK2.RLOL1_CNT[15]_REG_Z726\: FD1P3DX port map ( +D => RLOL1_CNT_S(15), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(15)); +\GENBLK2.RLOL1_CNT[16]_REG_Z728\: FD1P3DX port map ( +D => RLOL1_CNT_S(16), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(16)); +\GENBLK2.RLOL1_CNT[17]_REG_Z730\: FD1P3DX port map ( +D => RLOL1_CNT_S(17), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(17)); +\GENBLK2.RLOL1_CNT[18]_REG_Z732\: FD1P3DX port map ( +D => RLOL1_CNT_S(18), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(18)); +\GENBLK2.GENBLK3.RXSDR_APPD_REG_Z734\: FD1S3BX port map ( +D => RXSDR_APPD_2, +CK => rxrefclk, +PD => rsl_rst, +Q => RXSDR_APPD); +\GENBLK2.GENBLK3.RXR_WT_EN_REG_Z736\: FD1P3DX port map ( +D => UN3_RX_ALL_WELL_1, +SP => UN1_DUAL_OR_RSERD_RST_2_I, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_EN); +\GENBLK2.GENBLK3.RXR_WT_CNT[0]_REG_Z738\: FD1P3DX port map ( +D => RXR_WT_CNT_S(0), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(0)); +\GENBLK2.GENBLK3.RXR_WT_CNT[1]_REG_Z740\: FD1P3DX port map ( +D => RXR_WT_CNT_S(1), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(1)); +\GENBLK2.GENBLK3.RXR_WT_CNT[2]_REG_Z742\: FD1P3DX port map ( +D => RXR_WT_CNT_S(2), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(2)); +\GENBLK2.GENBLK3.RXR_WT_CNT[3]_REG_Z744\: FD1P3DX port map ( +D => RXR_WT_CNT_S(3), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(3)); +\GENBLK2.GENBLK3.RXR_WT_CNT[4]_REG_Z746\: FD1P3DX port map ( +D => RXR_WT_CNT_S(4), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(4)); +\GENBLK2.GENBLK3.RXR_WT_CNT[5]_REG_Z748\: FD1P3DX port map ( +D => RXR_WT_CNT_S(5), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(5)); +\GENBLK2.GENBLK3.RXR_WT_CNT[6]_REG_Z750\: FD1P3DX port map ( +D => RXR_WT_CNT_S(6), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(6)); +\GENBLK2.GENBLK3.RXR_WT_CNT[7]_REG_Z752\: FD1P3DX port map ( +D => RXR_WT_CNT_S(7), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(7)); +\GENBLK2.GENBLK3.RXR_WT_CNT[8]_REG_Z754\: FD1P3DX port map ( +D => RXR_WT_CNT_S(8), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(8)); +\GENBLK2.GENBLK3.RXR_WT_CNT[9]_REG_Z756\: FD1P3DX port map ( +D => RXR_WT_CNT_S(9), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(9)); +\GENBLK2.GENBLK3.RXR_WT_CNT[10]_REG_Z758\: FD1P3DX port map ( +D => RXR_WT_CNT_S(10), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(10)); +\GENBLK2.GENBLK3.RXR_WT_CNT[11]_REG_Z760\: FD1P3DX port map ( +D => RXR_WT_CNT_S(11), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(11)); +\GENBLK2.GENBLK3.RXDPR_APPD_REG_Z762\: FD1P3DX port map ( +D => UN1_RUI_RST_DUAL_C_1_1, +SP => UN1_RUI_RST_DUAL_C_1_I, +CK => rxrefclk, +CD => rsl_rst, +Q => RXDPR_APPD); +\GENBLK2.GENBLK3.RUO_RX_RDYR_REG_Z764\: FD1P3DX port map ( +D => UN3_RX_ALL_WELL_2, +SP => RXR_WT_CNT9, +CK => rxrefclk, +CD => rsl_rst, +Q => RSL_RX_RDY_8); +\GENBLK2.GENBLK3.LFOR[0].RXSR_APPD[0]_REG_Z766\: FD1S3DX port map ( +D => N_2160_0, +CK => rxrefclk, +CD => rsl_rst, +Q => RXSR_APPD(0)); +\GENBLK2.GENBLK3.LFOR[0].RXPR_APPD[0]_REG_Z768\: FD1P3DX port map ( +D => RXPR_APPD_RNO(0), +SP => UN2_RDO_SERDES_RST_DUAL_C_2_I, +CK => rxrefclk, +CD => rsl_rst, +Q => RXPR_APPD(0)); +\GENBLK1.WAITA_PLOL0_REG_Z770\: FD1P3DX port map ( +D => PLOL_FEDGE, +SP => UN1_PLOL0_CNT_TC_1_I, +CK => pll_refclki, +CD => rsl_rst, +Q => WAITA_PLOL0); +\GENBLK1.TXS_RST_REG_Z772\: FD1P3DX port map ( +D => UN1_PLOL_CNT_TC, +SP => UN2_PLOL_CNT_TC, +CK => pll_refclki, +CD => rsl_rst, +Q => TXS_RST); +\GENBLK1.TXS_CNT[0]_REG_Z774\: FD1S3DX port map ( +D => N_10_I, +CK => pll_refclki, +CD => rsl_rst, +Q => TXS_CNT(0)); +\GENBLK1.TXS_CNT[1]_REG_Z776\: FD1S3DX port map ( +D => TXS_CNT_RNO(1), +CK => pll_refclki, +CD => rsl_rst, +Q => TXS_CNT(1)); +\GENBLK1.TXP_RST_REG_Z778\: FD1P3DX port map ( +D => UN9_PLOL0_CNT_TC, +SP => UN1_PLOL0_CNT_TC_1, +CK => pll_refclki, +CD => rsl_rst, +Q => TXP_RST); +\GENBLK1.TXP_CNT[0]_REG_Z780\: FD1S3DX port map ( +D => N_11_I, +CK => pll_refclki, +CD => rsl_rst, +Q => TXP_CNT(0)); +\GENBLK1.TXP_CNT[1]_REG_Z782\: FD1S3DX port map ( +D => TXP_CNT_RNO(1), +CK => pll_refclki, +CD => rsl_rst, +Q => TXP_CNT(1)); +\GENBLK1.PLOL_CNT[0]_REG_Z784\: FD1S3DX port map ( +D => PLOL_CNT_S(0), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(0)); +\GENBLK1.PLOL_CNT[1]_REG_Z786\: FD1S3DX port map ( +D => PLOL_CNT_S(1), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(1)); +\GENBLK1.PLOL_CNT[2]_REG_Z788\: FD1S3DX port map ( +D => PLOL_CNT_S(2), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(2)); +\GENBLK1.PLOL_CNT[3]_REG_Z790\: FD1S3DX port map ( +D => PLOL_CNT_S(3), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(3)); +\GENBLK1.PLOL_CNT[4]_REG_Z792\: FD1S3DX port map ( +D => PLOL_CNT_S(4), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(4)); +\GENBLK1.PLOL_CNT[5]_REG_Z794\: FD1S3DX port map ( +D => PLOL_CNT_S(5), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(5)); +\GENBLK1.PLOL_CNT[6]_REG_Z796\: FD1S3DX port map ( +D => PLOL_CNT_S(6), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(6)); +\GENBLK1.PLOL_CNT[7]_REG_Z798\: FD1S3DX port map ( +D => PLOL_CNT_S(7), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(7)); +\GENBLK1.PLOL_CNT[8]_REG_Z800\: FD1S3DX port map ( +D => PLOL_CNT_S(8), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(8)); +\GENBLK1.PLOL_CNT[9]_REG_Z802\: FD1S3DX port map ( +D => PLOL_CNT_S(9), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(9)); +\GENBLK1.PLOL_CNT[10]_REG_Z804\: FD1S3DX port map ( +D => PLOL_CNT_S(10), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(10)); +\GENBLK1.PLOL_CNT[11]_REG_Z806\: FD1S3DX port map ( +D => PLOL_CNT_S(11), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(11)); +\GENBLK1.PLOL_CNT[12]_REG_Z808\: FD1S3DX port map ( +D => PLOL_CNT_S(12), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(12)); +\GENBLK1.PLOL_CNT[13]_REG_Z810\: FD1S3DX port map ( +D => PLOL_CNT_S(13), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(13)); +\GENBLK1.PLOL_CNT[14]_REG_Z812\: FD1S3DX port map ( +D => PLOL_CNT_S(14), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(14)); +\GENBLK1.PLOL_CNT[15]_REG_Z814\: FD1S3DX port map ( +D => PLOL_CNT_S(15), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(15)); +\GENBLK1.PLOL_CNT[16]_REG_Z816\: FD1S3DX port map ( +D => PLOL_CNT_S(16), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(16)); +\GENBLK1.PLOL_CNT[17]_REG_Z818\: FD1S3DX port map ( +D => PLOL_CNT_S(17), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(17)); +\GENBLK1.PLOL_CNT[18]_REG_Z820\: FD1S3DX port map ( +D => PLOL_CNT_S(18), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(18)); +\GENBLK1.PLOL_CNT[19]_REG_Z822\: FD1S3DX port map ( +D => PLOL_CNT_S(19), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(19)); +\GENBLK1.PLOL0_CNT[0]_REG_Z824\: FD1S3DX port map ( +D => PLOL0_CNT_3(0), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL0_CNT(0)); +\GENBLK1.PLOL0_CNT[1]_REG_Z826\: FD1S3DX port map ( +D => PLOL0_CNT_3(1), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL0_CNT(1)); +\GENBLK1.PLOL0_CNT[2]_REG_Z828\: FD1S3DX port map ( +D => PLOL0_CNT_3(2), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL0_CNT(2)); +\GENBLK1.PLL_LOL_P3_REG_Z830\: FD1S3DX port map ( +D => PLL_LOL_P2, +CK => pll_refclki, +CD => rsl_rst, +Q => PLL_LOL_P3); +\GENBLK1.PLL_LOL_P2_REG_Z832\: FD1S3DX port map ( +D => PLL_LOL_P1, +CK => pll_refclki, +CD => rsl_rst, +Q => PLL_LOL_P2); +\GENBLK1.PLL_LOL_P1_REG_Z834\: FD1S3DX port map ( +D => pll_lock_i, +CK => pll_refclki, +CD => rsl_rst, +Q => PLL_LOL_P1); +\GENBLK1.GENBLK2.TXSR_APPD_REG_Z836\: FD1S3BX port map ( +D => TXSR_APPD_2, +CK => pll_refclki, +PD => rsl_rst, +Q => TXSR_APPD); +\GENBLK1.GENBLK2.TXR_WT_EN_REG_Z838\: FD1P3DX port map ( +D => UN1_DUAL_OR_SERD_RST_1_1, +SP => UN1_DUAL_OR_SERD_RST_1_I, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_EN); +\GENBLK1.GENBLK2.TXR_WT_CNT[0]_REG_Z840\: FD1P3DX port map ( +D => TXR_WT_CNT_S(0), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(0)); +\GENBLK1.GENBLK2.TXR_WT_CNT[1]_REG_Z842\: FD1P3DX port map ( +D => TXR_WT_CNT_S(1), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(1)); +\GENBLK1.GENBLK2.TXR_WT_CNT[2]_REG_Z844\: FD1P3DX port map ( +D => TXR_WT_CNT_S(2), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(2)); +\GENBLK1.GENBLK2.TXR_WT_CNT[3]_REG_Z846\: FD1P3DX port map ( +D => TXR_WT_CNT_S(3), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(3)); +\GENBLK1.GENBLK2.TXR_WT_CNT[4]_REG_Z848\: FD1P3DX port map ( +D => TXR_WT_CNT_S(4), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(4)); +\GENBLK1.GENBLK2.TXR_WT_CNT[5]_REG_Z850\: FD1P3DX port map ( +D => TXR_WT_CNT_S(5), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(5)); +\GENBLK1.GENBLK2.TXR_WT_CNT[6]_REG_Z852\: FD1P3DX port map ( +D => TXR_WT_CNT_S(6), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(6)); +\GENBLK1.GENBLK2.TXR_WT_CNT[7]_REG_Z854\: FD1P3DX port map ( +D => TXR_WT_CNT_S(7), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(7)); +\GENBLK1.GENBLK2.TXR_WT_CNT[8]_REG_Z856\: FD1P3DX port map ( +D => TXR_WT_CNT_S(8), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(8)); +\GENBLK1.GENBLK2.TXR_WT_CNT[9]_REG_Z858\: FD1P3DX port map ( +D => TXR_WT_CNT_S(9), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(9)); +\GENBLK1.GENBLK2.TXR_WT_CNT[10]_REG_Z860\: FD1P3DX port map ( +D => TXR_WT_CNT_S(10), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(10)); +\GENBLK1.GENBLK2.TXR_WT_CNT[11]_REG_Z862\: FD1P3DX port map ( +D => TXR_WT_CNT_S(11), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(11)); +\GENBLK1.GENBLK2.TXDPR_APPD_REG_Z864\: FD1P3DX port map ( +D => UN2_PLOL_FEDGE_2, +SP => UN2_PLOL_FEDGE_3_I, +CK => pll_refclki, +CD => rsl_rst, +Q => TXDPR_APPD); +\GENBLK1.GENBLK2.RUO_TX_RDYR_REG_Z866\: FD1P3DX port map ( +D => UN2_PLOL_FEDGE_5_1, +SP => UN2_PLOL_FEDGE_5_I, +CK => pll_refclki, +CD => rsl_rst, +Q => RSL_TX_RDY_7); +\GENBLK1.GENBLK2.MFOR[0].TXPR_APPD[0]_REG_Z868\: FD1P3DX port map ( +D => UN2_PLOL_FEDGE_2, +SP => UN2_PLOL_FEDGE_8_I, +CK => pll_refclki, +CD => rsl_rst, +Q => TXPR_APPD(0)); +\GENBLK1.TXS_CNT_RNO[0]\: LUT4 +generic map( + init => X"A6A6" +) +port map ( +A => TXS_CNT(0), +B => TXS_RST, +C => UN1_PLOL_CNT_TC, +D => VCC, +Z => N_10_I); +\GENBLK1.TXS_CNT_RNO[1]\: LUT4 +generic map( + init => X"CC6C" +) +port map ( +A => TXS_CNT(0), +B => TXS_CNT(1), +C => TXS_RST, +D => UN1_PLOL_CNT_TC, +Z => TXS_CNT_RNO(1)); +\GENBLK2.RXP_RST2_RNO_0\: LUT4 +generic map( + init => X"FFFE" +) +port map ( +A => RLOLS0_CNT_TC_1, +B => RLOS_REDGE, +C => RSL_RX_SERDES_RST_C_9, +D => RSL_SERDES_RST_DUAL_C_10, +Z => UN2_RLOS_REDGE_1_I); +\GENBLK1.GENBLK2.TXR_WT_EN_RNO\: LUT4 +generic map( + init => X"0F2F" +) +port map ( +A => TXPR_APPD(0), +B => PLL_LOL_P2, +C => UN1_DUAL_OR_SERD_RST_1_1, +D => RSL_TX_RDY_7, +Z => UN1_DUAL_OR_SERD_RST_1_I); +\GENBLK2.RXS_RST6\: LUT4 +generic map( + init => X"2020" +) +port map ( +A => RLOL_DB, +B => RLOS_DB, +C => RLOL1_CNT_TC_1, +D => VCC, +Z => RXS_RST6); +\GENBLK2.WAIT_CALIB_RNIKRP81\: LUT4 +generic map( + init => X"FFFE" +) +port map ( +A => RXS_RST, +B => WAIT_CALIB, +C => RLOL1_CNT_TC_1, +D => RLOS_REDGE, +Z => RLOL1_CNTE); +\GENBLK2.WAITA_RLOLS0_RNI266C\: LUT4 +generic map( + init => X"FEFE" +) +port map ( +A => RLOLS0_CNT11_0, +B => WAITA_RLOLS0, +C => RLOLS0_CNT_TC_1, +D => VCC, +Z => RLOLS0_CNTE); +\GENBLK1.PLOL_CNT11_I\: LUT4 +generic map( + init => X"0202" +) +port map ( +A => PLL_LOL_P2, +B => UN1_PLOL_CNT_TC, +C => RSL_TX_SERDES_RST_C_6, +D => VCC, +Z => \PLOL_CNT_\); +\GENBLK2.RLOLS0_CNT11_I\: LUT4 +generic map( + init => X"1111" +) +port map ( +A => RLOLS0_CNT11_0, +B => RLOLS0_CNT_TC_1, +C => VCC, +D => VCC, +Z => \RLOLS0_CNT_\); +\GENBLK2.UN1_RXS_CNT_TC\: LUT4 +generic map( + init => X"FEFC" +) +port map ( +A => RLOL_DB, +B => RLOS_DB, +C => UN8_RXS_CNT_TC, +D => RLOL1_CNT_TC_1, +Z => UN1_RXS_CNT_TC); +\GENBLK2.WAIT_CALIB_RNO\: LUT4 +generic map( + init => X"A3A3" +) +port map ( +A => RLOL_DB, +B => RLOS_DB, +C => RLOL1_CNT_TC_1, +D => VCC, +Z => WAIT_CALIB_RNO); +\GENBLK1.GENBLK2.MFOR[0].TXPR_APPD_RNO[0]\: LUT4 +generic map( + init => X"FFFE" +) +port map ( +A => UN1_TXSR_APPD, +B => PLL_LOL_P2, +C => RSL_SERDES_RST_DUAL_C_10, +D => RSL_TX_SERDES_RST_C_6, +Z => UN2_PLOL_FEDGE_8_I); +\GENBLK2.GENBLK3.RXR_WT_EN_RNO_0\: LUT4 +generic map( + init => X"FFFB" +) +port map ( +A => UN17_RXR_WT_TC, +B => UN1_DUAL_OR_RSERD_RST_2_0, +C => RSL_RX_SERDES_RST_C_9, +D => RSL_SERDES_RST_DUAL_C_10, +Z => UN1_DUAL_OR_RSERD_RST_2_I); +\GENBLK2.GENBLK3.LFOR[0].RXPR_APPD_RNO_0[0]\: LUT4 +generic map( + init => X"FFFB" +) +port map ( +A => UN1_RXSDR_OR_SR_APPD, +B => UN2_RDO_SERDES_RST_DUAL_C_1_1, +C => RSL_RX_SERDES_RST_C_9, +D => RSL_SERDES_RST_DUAL_C_10, +Z => UN2_RDO_SERDES_RST_DUAL_C_2_I); +\GENBLK1.GENBLK2.TXR_WT_EN_RNICEBT\: LUT4 +generic map( + init => X"FEFE" +) +port map ( +A => TXR_WT_EN, +B => UN18_TXR_WT_TC, +C => TX_ANY_RST, +D => VCC, +Z => TXR_WT_CNTE); +\GENBLK1.UN2_PLOL_CNT_TC\: LUT4 +generic map( + init => X"F8F8" +) +port map ( +A => TXS_CNT(0), +B => TXS_CNT(1), +C => UN1_PLOL_CNT_TC, +D => VCC, +Z => UN2_PLOL_CNT_TC); +\GENBLK2.UN1_RLOS_FEDGE_1\: LUT4 +generic map( + init => X"F6F6" +) +port map ( +A => RLOS_DB, +B => RLOS_DB_P1, +C => RLOL1_CNT_TC_1, +D => VCC, +Z => UN1_RLOS_FEDGE_1); +\GENBLK2.UN1_RLOLS0_CNT_TC\: LUT4 +generic map( + init => X"FEFE" +) +port map ( +A => RLOLS0_CNT11_0, +B => WAITA_RLOLS06, +C => RLOLS0_CNT_TC_1, +D => VCC, +Z => UN1_RLOLS0_CNT_TC); +\GENBLK1.GENBLK2.TXDPR_APPD_RNO\: LUT4 +generic map( + init => X"FFFE" +) +port map ( +A => PLL_LOL_P2, +B => RSL_SERDES_RST_DUAL_C_10, +C => RSL_TX_SERDES_RST_C_6, +D => rst_dual_c, +Z => UN2_PLOL_FEDGE_3_I); +\GENBLK1.TXP_CNT_RNO[0]\: LUT4 +generic map( + init => X"A6A6" +) +port map ( +A => TXP_CNT(0), +B => TXP_RST, +C => UN9_PLOL0_CNT_TC, +D => VCC, +Z => N_11_I); +\GENBLK1.TXP_CNT_RNO[1]\: LUT4 +generic map( + init => X"CC6C" +) +port map ( +A => TXP_CNT(0), +B => TXP_CNT(1), +C => TXP_RST, +D => UN9_PLOL0_CNT_TC, +Z => TXP_CNT_RNO(1)); +UN1_DUAL_OR_SERD_RST_1_1_Z890: LUT4 +generic map( + init => X"0101" +) +port map ( +A => UN18_TXR_WT_TC, +B => RSL_SERDES_RST_DUAL_C_10, +C => RSL_TX_SERDES_RST_C_6, +D => VCC, +Z => UN1_DUAL_OR_SERD_RST_1_1); +UN2_PLOL_FEDGE_5_1_Z891: LUT4 +generic map( + init => X"1111" +) +port map ( +A => PLL_LOL_P2, +B => TX_ANY_RST, +C => VCC, +D => VCC, +Z => UN2_PLOL_FEDGE_5_1); +RLOLS0_CNT_TC_1_Z892: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RLOLS0_CNT_TC_1_10, +B => RLOLS0_CNT_TC_1_11, +C => RLOLS0_CNT_TC_1_12, +D => RLOLS0_CNT_TC_1_13, +Z => RLOLS0_CNT_TC_1); +RLOL1_CNT_TC_1_Z893: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RLOL1_CNT_TC_1_11, +B => RLOL1_CNT_TC_1_12, +C => RLOL1_CNT_TC_1_13, +D => RLOL1_CNT_TC_1_14, +Z => RLOL1_CNT_TC_1); +\GENBLK1.UN1_PLOL_CNT_TC\: LUT4 +generic map( + init => X"8000" +) +port map ( +A => UN1_PLOL_CNT_TC_11, +B => UN1_PLOL_CNT_TC_12, +C => UN1_PLOL_CNT_TC_13, +D => UN1_PLOL_CNT_TC_14, +Z => UN1_PLOL_CNT_TC); +\UN1_GENBLK2.RLOL_DB_CNT_AXB_0\: LUT4 +generic map( + init => X"9999" +) +port map ( +A => RLOL_DB_CNT(0), +B => UN1_RLOL_DB_CNT_ZERO(0), +C => VCC, +D => VCC, +Z => RLOL_DB_CNT_AXB_0); +\UN1_GENBLK2.RLOS_DB_CNT_AXB_0\: LUT4 +generic map( + init => X"9999" +) +port map ( +A => RLOS_DB_CNT(0), +B => UN1_RLOS_DB_CNT_ZERO(0), +C => VCC, +D => VCC, +Z => RLOS_DB_CNT_AXB_0); +\GENBLK1.WAITA_PLOL0_RNO\: LUT4 +generic map( + init => X"F6F6" +) +port map ( +A => PLL_LOL_P2, +B => PLL_LOL_P3, +C => UN9_PLOL0_CNT_TC, +D => VCC, +Z => UN1_PLOL0_CNT_TC_1_I); +\GENBLK1.PLOL0_CNT_3[2]\: LUT4 +generic map( + init => X"1320" +) +port map ( +A => CO0_2, +B => PLOL0_CNT9, +C => PLOL0_CNT(1), +D => PLOL0_CNT(2), +Z => PLOL0_CNT_3(2)); +\GENBLK1.PLOL0_CNT_3[0]\: LUT4 +generic map( + init => X"1414" +) +port map ( +A => PLOL0_CNT9, +B => PLOL0_CNT(0), +C => WAITA_PLOL0, +D => VCC, +Z => PLOL0_CNT_3(0)); +\GENBLK1.GENBLK2.TXSR_APPD_2\: LUT4 +generic map( + init => X"FEFE" +) +port map ( +A => TXSR_APPD_4, +B => RSL_SERDES_RST_DUAL_C_10, +C => RSL_TX_SERDES_RST_C_6, +D => VCC, +Z => TXSR_APPD_2); +\GENBLK1.GENBLK2.MFOR[0].UN1_TXSR_APPD\: LUT4 +generic map( + init => X"C8C8" +) +port map ( +A => TXDPR_APPD, +B => TXSR_APPD_4, +C => RSL_TX_PCS_RST_C_5, +D => VCC, +Z => UN1_TXSR_APPD); +\GENBLK2.GENBLK3.UN17_RXR_WT_TC\: LUT4 +generic map( + init => X"8080" +) +port map ( +A => UN17_RXR_WT_TC_6, +B => UN17_RXR_WT_TC_7, +C => UN17_RXR_WT_TC_8, +D => VCC, +Z => UN17_RXR_WT_TC); +RX_ANY_RST_Z903: LUT4 +generic map( + init => X"FFFE" +) +port map ( +A => RSL_RX_PCS_RST_C_4, +B => RSL_RX_SERDES_RST_C_9, +C => RSL_SERDES_RST_DUAL_C_10, +D => rst_dual_c, +Z => RX_ANY_RST); +TX_ANY_RST_Z904: LUT4 +generic map( + init => X"FFFE" +) +port map ( +A => RSL_SERDES_RST_DUAL_C_10, +B => RSL_TX_PCS_RST_C_5, +C => RSL_TX_SERDES_RST_C_6, +D => rst_dual_c, +Z => TX_ANY_RST); +UN2_PLOL_FEDGE_2_Z905: LUT4 +generic map( + init => X"0101" +) +port map ( +A => PLL_LOL_P2, +B => RSL_SERDES_RST_DUAL_C_10, +C => RSL_TX_SERDES_RST_C_6, +D => VCC, +Z => UN2_PLOL_FEDGE_2); +\GENBLK1.GENBLK2.UN18_TXR_WT_TC\: LUT4 +generic map( + init => X"8080" +) +port map ( +A => UN18_TXR_WT_TC_6, +B => UN18_TXR_WT_TC_7, +C => UN18_TXR_WT_TC_8, +D => VCC, +Z => UN18_TXR_WT_TC); +\UN1_RLOL_DB_CNT_ZERO_BM[0]_Z907\: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RLOL_DB_CNT(0), +B => RLOL_DB_CNT(1), +C => RLOL_DB_CNT(2), +D => RLOL_DB_CNT(3), +Z => UN1_RLOL_DB_CNT_ZERO_BM(0)); +\UN1_RLOL_DB_CNT_ZERO[0]_Z908\: PFUMX port map ( +ALUT => UN1_RLOL_DB_CNT_ZERO_BM(0), +BLUT => UN1_RLOL_DB_CNT_ZERO_AM(0), +C0 => RLOL_P2, +Z => UN1_RLOL_DB_CNT_ZERO(0)); +\UN1_RLOS_DB_CNT_ZERO_BM[0]_Z909\: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RLOS_DB_CNT(0), +B => RLOS_DB_CNT(1), +C => RLOS_DB_CNT(2), +D => RLOS_DB_CNT(3), +Z => UN1_RLOS_DB_CNT_ZERO_BM(0)); +\UN1_RLOS_DB_CNT_ZERO[0]_Z910\: PFUMX port map ( +ALUT => UN1_RLOS_DB_CNT_ZERO_BM(0), +BLUT => UN1_RLOS_DB_CNT_ZERO_AM(0), +C0 => RLOS_P2, +Z => UN1_RLOS_DB_CNT_ZERO(0)); +\GENBLK2.UN1_RLOL_DB_CNT_MAX\: LUT4 +generic map( + init => X"8001" +) +port map ( +A => RLOL_DB_CNT(0), +B => RLOL_DB_CNT(1), +C => RLOL_DB_CNT(2), +D => RLOL_DB_CNT(3), +Z => UN1_RLOL_DB_CNT_MAX); +\GENBLK2.UN1_RLOS_DB_CNT_MAX\: LUT4 +generic map( + init => X"8001" +) +port map ( +A => RLOS_DB_CNT(0), +B => RLOS_DB_CNT(1), +C => RLOS_DB_CNT(2), +D => RLOS_DB_CNT(3), +Z => UN1_RLOS_DB_CNT_MAX); +\GENBLK1.UN1_PLOL0_CNT_TC_1\: LUT4 +generic map( + init => X"F8F8" +) +port map ( +A => TXP_CNT(0), +B => TXP_CNT(1), +C => UN9_PLOL0_CNT_TC, +D => VCC, +Z => UN1_PLOL0_CNT_TC_1); +\GENBLK2.WAITA_RLOLS06\: LUT4 +generic map( + init => X"0504" +) +port map ( +A => RLOL_DB, +B => RLOL_DB_P1, +C => RLOS_DB, +D => RLOS_DB_P1, +Z => WAITA_RLOLS06); +\RXS_CNT_3[1]_Z915\: LUT4 +generic map( + init => X"6464" +) +port map ( +A => RXS_CNT(0), +B => RXS_CNT(1), +C => RXS_RST, +D => VCC, +Z => RXS_CNT_3(1)); +\GENBLK2.GENBLK3.LFOR[0].UN1_RXSDR_OR_SR_APPD\: LUT4 +generic map( + init => X"3200" +) +port map ( +A => RXSR_APPD(0), +B => RX_ALL_WELL, +C => RXSDR_APPD_4, +D => RSL_RX_PCS_RST_C_4, +Z => UN1_RXSDR_OR_SR_APPD); +RLOLS0_CNT_TC_1_13_Z917: LUT4 +generic map( + init => X"1010" +) +port map ( +A => RLOLS0_CNT(16), +B => RLOLS0_CNT(17), +C => RLOLS0_CNT_TC_1_9, +D => VCC, +Z => RLOLS0_CNT_TC_1_13); +\GENBLK1.UN1_PLOL_CNT_TC_14\: LUT4 +generic map( + init => X"0100" +) +port map ( +A => PLOL_CNT(4), +B => PLOL_CNT(5), +C => PLOL_CNT(18), +D => UN1_PLOL_CNT_TC_10, +Z => UN1_PLOL_CNT_TC_14); +RLOL1_CNT_TC_1_14_Z919: LUT4 +generic map( + init => X"0100" +) +port map ( +A => RLOL1_CNT(11), +B => RLOL1_CNT(12), +C => RLOL1_CNT(18), +D => RLOL1_CNT_TC_1_10, +Z => RLOL1_CNT_TC_1_14); +UN1_DUAL_OR_RSERD_RST_2_0_Z920: LUT4 +generic map( + init => X"F010" +) +port map ( +A => RXPR_APPD(0), +B => RXDPR_APPD, +C => RX_ALL_WELL, +D => RSL_RX_RDY_8, +Z => UN1_DUAL_OR_RSERD_RST_2_0); +RDO_TX_SERDES_RST_C: LUT4 +generic map( + init => X"F4F4" +) +port map ( +A => rsl_disable, +B => TXS_RST, +C => tx_serdes_rst_c, +D => VCC, +Z => RSL_TX_SERDES_RST_C_6); +RDO_SERDES_RST_DUAL_C: LUT4 +generic map( + init => X"F4F4" +) +port map ( +A => rsl_disable, +B => rsl_rst, +C => serdes_rst_dual_c, +D => VCC, +Z => RSL_SERDES_RST_DUAL_C_10); +\RDO_TX_PCS_RST_C_1[0]\: LUT4 +generic map( + init => X"F4F4" +) +port map ( +A => rsl_disable, +B => TXP_RST, +C => tx_pcs_rst_c, +D => VCC, +Z => RSL_TX_PCS_RST_C_5); +\RDO_RX_SERDES_RST_C_1[0]\: LUT4 +generic map( + init => X"F4F4" +) +port map ( +A => rsl_disable, +B => RXS_RST, +C => rx_serdes_rst_c, +D => VCC, +Z => RSL_RX_SERDES_RST_C_9); +\RDO_RX_PCS_RST_C_1[0]\: LUT4 +generic map( + init => X"F4F4" +) +port map ( +A => rsl_disable, +B => RXP_RST2, +C => rx_pcs_rst_c, +D => VCC, +Z => RSL_RX_PCS_RST_C_4); +\GENBLK1.UN9_PLOL0_CNT_TC\: LUT4 +generic map( + init => X"1010" +) +port map ( +A => PLOL0_CNT(0), +B => PLOL0_CNT(1), +C => PLOL0_CNT(2), +D => VCC, +Z => UN9_PLOL0_CNT_TC); +\GENBLK1.GENBLK2.UN18_TXR_WT_TC_6\: LUT4 +generic map( + init => X"4000" +) +port map ( +A => TXR_WT_CNT(0), +B => TXR_WT_CNT(8), +C => TXR_WT_CNT(9), +D => TXR_WT_CNT(11), +Z => UN18_TXR_WT_TC_6); +\GENBLK1.GENBLK2.UN18_TXR_WT_TC_7\: LUT4 +generic map( + init => X"8000" +) +port map ( +A => TXR_WT_CNT(3), +B => TXR_WT_CNT(4), +C => TXR_WT_CNT(5), +D => TXR_WT_CNT(7), +Z => UN18_TXR_WT_TC_7); +\GENBLK1.GENBLK2.UN18_TXR_WT_TC_8\: LUT4 +generic map( + init => X"0001" +) +port map ( +A => TXR_WT_CNT(1), +B => TXR_WT_CNT(2), +C => TXR_WT_CNT(6), +D => TXR_WT_CNT(10), +Z => UN18_TXR_WT_TC_8); +\GENBLK2.GENBLK3.UN17_RXR_WT_TC_6\: LUT4 +generic map( + init => X"4000" +) +port map ( +A => RXR_WT_CNT(0), +B => RXR_WT_CNT(8), +C => RXR_WT_CNT(9), +D => RXR_WT_CNT(11), +Z => UN17_RXR_WT_TC_6); +\GENBLK2.GENBLK3.UN17_RXR_WT_TC_7\: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RXR_WT_CNT(3), +B => RXR_WT_CNT(4), +C => RXR_WT_CNT(5), +D => RXR_WT_CNT(7), +Z => UN17_RXR_WT_TC_7); +\GENBLK2.GENBLK3.UN17_RXR_WT_TC_8\: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RXR_WT_CNT(1), +B => RXR_WT_CNT(2), +C => RXR_WT_CNT(6), +D => RXR_WT_CNT(10), +Z => UN17_RXR_WT_TC_8); +RLOLS0_CNT_TC_1_9_Z933: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RLOLS0_CNT(1), +B => RLOLS0_CNT(2), +C => RLOLS0_CNT(3), +D => RLOLS0_CNT(4), +Z => RLOLS0_CNT_TC_1_9); +RLOLS0_CNT_TC_1_10_Z934: LUT4 +generic map( + init => X"4000" +) +port map ( +A => RLOLS0_CNT(0), +B => RLOLS0_CNT(10), +C => RLOLS0_CNT(14), +D => RLOLS0_CNT(15), +Z => RLOLS0_CNT_TC_1_10); +RLOLS0_CNT_TC_1_11_Z935: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RLOLS0_CNT(9), +B => RLOLS0_CNT(11), +C => RLOLS0_CNT(12), +D => RLOLS0_CNT(13), +Z => RLOLS0_CNT_TC_1_11); +RLOLS0_CNT_TC_1_12_Z936: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RLOLS0_CNT(5), +B => RLOLS0_CNT(6), +C => RLOLS0_CNT(7), +D => RLOLS0_CNT(8), +Z => RLOLS0_CNT_TC_1_12); +\GENBLK1.UN1_PLOL_CNT_TC_10\: LUT4 +generic map( + init => X"1000" +) +port map ( +A => PLOL_CNT(2), +B => PLOL_CNT(3), +C => PLOL_CNT(17), +D => PLOL_CNT(19), +Z => UN1_PLOL_CNT_TC_10); +\GENBLK1.UN1_PLOL_CNT_TC_11\: LUT4 +generic map( + init => X"8000" +) +port map ( +A => PLOL_CNT(13), +B => PLOL_CNT(14), +C => PLOL_CNT(15), +D => PLOL_CNT(16), +Z => UN1_PLOL_CNT_TC_11); +\GENBLK1.UN1_PLOL_CNT_TC_12\: LUT4 +generic map( + init => X"8000" +) +port map ( +A => PLOL_CNT(7), +B => PLOL_CNT(8), +C => PLOL_CNT(9), +D => PLOL_CNT(11), +Z => UN1_PLOL_CNT_TC_12); +\GENBLK1.UN1_PLOL_CNT_TC_13\: LUT4 +generic map( + init => X"0008" +) +port map ( +A => PLOL_CNT(1), +B => PLOL_CNT(6), +C => PLOL_CNT(10), +D => PLOL_CNT(12), +Z => UN1_PLOL_CNT_TC_13); +RLOL1_CNT_TC_1_10_Z941: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RLOL1_CNT(7), +B => RLOL1_CNT(8), +C => RLOL1_CNT(9), +D => RLOL1_CNT(10), +Z => RLOL1_CNT_TC_1_10); +RLOL1_CNT_TC_1_11_Z942: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RLOL1_CNT(3), +B => RLOL1_CNT(4), +C => RLOL1_CNT(5), +D => RLOL1_CNT(6), +Z => RLOL1_CNT_TC_1_11); +RLOL1_CNT_TC_1_12_Z943: LUT4 +generic map( + init => X"0100" +) +port map ( +A => RLOL1_CNT(0), +B => RLOL1_CNT(1), +C => RLOL1_CNT(2), +D => RLOL1_CNT(17), +Z => RLOL1_CNT_TC_1_12); +RLOL1_CNT_TC_1_13_Z944: LUT4 +generic map( + init => X"0040" +) +port map ( +A => RLOL1_CNT(13), +B => RLOL1_CNT(14), +C => RLOL1_CNT(15), +D => RLOL1_CNT(16), +Z => RLOL1_CNT_TC_1_13); +\GENBLK1.PLOL0_CNT_3_RNO[2]\: LUT4 +generic map( + init => X"8888" +) +port map ( +A => PLOL0_CNT(0), +B => WAITA_PLOL0, +C => VCC, +D => VCC, +Z => CO0_2); +PLOL_FEDGE_Z946: LUT4 +generic map( + init => X"4444" +) +port map ( +A => PLL_LOL_P2, +B => PLL_LOL_P3, +C => VCC, +D => VCC, +Z => PLOL_FEDGE); +RX_ALL_WELL_Z947: LUT4 +generic map( + init => X"1111" +) +port map ( +A => RLOL_DB, +B => RLOS_DB, +C => VCC, +D => VCC, +Z => RX_ALL_WELL); +\GENBLK2.GENBLK3.RXSDR_APPD_2\: LUT4 +generic map( + init => X"EEEE" +) +port map ( +A => RXSDR_APPD_4, +B => serdes_rst_dual_c, +C => VCC, +D => VCC, +Z => RXSDR_APPD_2); +\GENBLK2.UN8_RXS_CNT_TC\: LUT4 +generic map( + init => X"8888" +) +port map ( +A => RXS_CNT(0), +B => RXS_CNT(1), +C => VCC, +D => VCC, +Z => UN8_RXS_CNT_TC); +RLOS_REDGE_Z950: LUT4 +generic map( + init => X"2222" +) +port map ( +A => RLOS_DB, +B => RLOS_DB_P1, +C => VCC, +D => VCC, +Z => RLOS_REDGE); +UN2_RDO_SERDES_RST_DUAL_C_1_1_Z951: LUT4 +generic map( + init => X"1111" +) +port map ( +A => rx_cdr_lol_s, +B => rx_los_low_s, +C => VCC, +D => VCC, +Z => UN2_RDO_SERDES_RST_DUAL_C_1_1); +\UN1_RLOS_DB_CNT_ZERO_AM[0]_Z952\: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RLOS_DB_CNT(0), +B => RLOS_DB_CNT(1), +C => RLOS_DB_CNT(2), +D => RLOS_DB_CNT(3), +Z => UN1_RLOS_DB_CNT_ZERO_AM(0)); +\UN1_RLOL_DB_CNT_ZERO_AM[0]_Z953\: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RLOL_DB_CNT(0), +B => RLOL_DB_CNT(1), +C => RLOL_DB_CNT(2), +D => RLOL_DB_CNT(3), +Z => UN1_RLOL_DB_CNT_ZERO_AM(0)); +\GENBLK1.PLOL0_CNT9\: LUT4 +generic map( + init => X"AAAE" +) +port map ( +A => PLL_LOL_P2, +B => PLOL0_CNT(2), +C => PLOL0_CNT(1), +D => PLOL0_CNT(0), +Z => PLOL0_CNT9); +\GENBLK2.RLOLS0_CNT11_0\: LUT4 +generic map( + init => X"4F44" +) +port map ( +A => RLOL_DB_P1, +B => RLOL_DB, +C => RLOS_DB_P1, +D => RLOS_DB, +Z => RLOLS0_CNT11_0); +\GENBLK1.GENBLK2.TXR_WT_CNT9_I\: LUT4 +generic map( + init => X"1555" +) +port map ( +A => TX_ANY_RST, +B => UN18_TXR_WT_TC_8, +C => UN18_TXR_WT_TC_7, +D => UN18_TXR_WT_TC_6, +Z => \TXR_WT_CNT_\); +\GENBLK2.RLOL1_CNT_CRY_0[0]\: CCU2C +generic map( + INIT0 => X"500c", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => \RLOL1_CNT_\, +C0 => VCC, +D0 => VCC, +A1 => \RLOL1_CNT_\, +B1 => RLOL1_CNT(0), +C1 => VCC, +D1 => VCC, +CIN => N_7, +COUT => RLOL1_CNT_CRY(0), +S0 => RLOL1_CNT_CRY_0_S0(0), +S1 => RLOL1_CNT_S(0)); +\GENBLK2.RLOL1_CNT_CRY_0[1]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOL1_CNT_\, +B0 => RLOL1_CNT(1), +C0 => VCC, +D0 => VCC, +A1 => \RLOL1_CNT_\, +B1 => RLOL1_CNT(2), +C1 => VCC, +D1 => VCC, +CIN => RLOL1_CNT_CRY(0), +COUT => RLOL1_CNT_CRY(2), +S0 => RLOL1_CNT_S(1), +S1 => RLOL1_CNT_S(2)); +\GENBLK2.RLOL1_CNT_CRY_0[3]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOL1_CNT_\, +B0 => RLOL1_CNT(3), +C0 => VCC, +D0 => VCC, +A1 => \RLOL1_CNT_\, +B1 => RLOL1_CNT(4), +C1 => VCC, +D1 => VCC, +CIN => RLOL1_CNT_CRY(2), +COUT => RLOL1_CNT_CRY(4), +S0 => RLOL1_CNT_S(3), +S1 => RLOL1_CNT_S(4)); +\GENBLK2.RLOL1_CNT_CRY_0[5]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOL1_CNT_\, +B0 => RLOL1_CNT(5), +C0 => VCC, +D0 => VCC, +A1 => \RLOL1_CNT_\, +B1 => RLOL1_CNT(6), +C1 => VCC, +D1 => VCC, +CIN => RLOL1_CNT_CRY(4), +COUT => RLOL1_CNT_CRY(6), +S0 => RLOL1_CNT_S(5), +S1 => RLOL1_CNT_S(6)); +\GENBLK2.RLOL1_CNT_CRY_0[7]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOL1_CNT_\, +B0 => RLOL1_CNT(7), +C0 => VCC, +D0 => VCC, +A1 => \RLOL1_CNT_\, +B1 => RLOL1_CNT(8), +C1 => VCC, +D1 => VCC, +CIN => RLOL1_CNT_CRY(6), +COUT => RLOL1_CNT_CRY(8), +S0 => RLOL1_CNT_S(7), +S1 => RLOL1_CNT_S(8)); +\GENBLK2.RLOL1_CNT_CRY_0[9]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOL1_CNT_\, +B0 => RLOL1_CNT(9), +C0 => VCC, +D0 => VCC, +A1 => \RLOL1_CNT_\, +B1 => RLOL1_CNT(10), +C1 => VCC, +D1 => VCC, +CIN => RLOL1_CNT_CRY(8), +COUT => RLOL1_CNT_CRY(10), +S0 => RLOL1_CNT_S(9), +S1 => RLOL1_CNT_S(10)); +\GENBLK2.RLOL1_CNT_CRY_0[11]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOL1_CNT_\, +B0 => RLOL1_CNT(11), +C0 => VCC, +D0 => VCC, +A1 => \RLOL1_CNT_\, +B1 => RLOL1_CNT(12), +C1 => VCC, +D1 => VCC, +CIN => RLOL1_CNT_CRY(10), +COUT => RLOL1_CNT_CRY(12), +S0 => RLOL1_CNT_S(11), +S1 => RLOL1_CNT_S(12)); +\GENBLK2.RLOL1_CNT_CRY_0[13]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOL1_CNT_\, +B0 => RLOL1_CNT(13), +C0 => VCC, +D0 => VCC, +A1 => \RLOL1_CNT_\, +B1 => RLOL1_CNT(14), +C1 => VCC, +D1 => VCC, +CIN => RLOL1_CNT_CRY(12), +COUT => RLOL1_CNT_CRY(14), +S0 => RLOL1_CNT_S(13), +S1 => RLOL1_CNT_S(14)); +\GENBLK2.RLOL1_CNT_CRY_0[15]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOL1_CNT_\, +B0 => RLOL1_CNT(15), +C0 => VCC, +D0 => VCC, +A1 => \RLOL1_CNT_\, +B1 => RLOL1_CNT(16), +C1 => VCC, +D1 => VCC, +CIN => RLOL1_CNT_CRY(14), +COUT => RLOL1_CNT_CRY(16), +S0 => RLOL1_CNT_S(15), +S1 => RLOL1_CNT_S(16)); +\GENBLK2.RLOL1_CNT_CRY_0[17]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"800a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOL1_CNT_\, +B0 => RLOL1_CNT(17), +C0 => VCC, +D0 => VCC, +A1 => \RLOL1_CNT_\, +B1 => RLOL1_CNT(18), +C1 => VCC, +D1 => VCC, +CIN => RLOL1_CNT_CRY(16), +COUT => RLOL1_CNT_CRY_0_COUT(17), +S0 => RLOL1_CNT_S(17), +S1 => RLOL1_CNT_S(18)); +\GENBLK2.RLOLS0_CNT_CRY_0[0]\: CCU2C +generic map( + INIT0 => X"500c", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => \RLOLS0_CNT_\, +C0 => VCC, +D0 => VCC, +A1 => \RLOLS0_CNT_\, +B1 => RLOLS0_CNT(0), +C1 => VCC, +D1 => VCC, +CIN => N_6, +COUT => RLOLS0_CNT_CRY(0), +S0 => RLOLS0_CNT_CRY_0_S0(0), +S1 => RLOLS0_CNT_S(0)); +\GENBLK2.RLOLS0_CNT_CRY_0[1]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOLS0_CNT_\, +B0 => RLOLS0_CNT(1), +C0 => VCC, +D0 => VCC, +A1 => \RLOLS0_CNT_\, +B1 => RLOLS0_CNT(2), +C1 => VCC, +D1 => VCC, +CIN => RLOLS0_CNT_CRY(0), +COUT => RLOLS0_CNT_CRY(2), +S0 => RLOLS0_CNT_S(1), +S1 => RLOLS0_CNT_S(2)); +\GENBLK2.RLOLS0_CNT_CRY_0[3]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOLS0_CNT_\, +B0 => RLOLS0_CNT(3), +C0 => VCC, +D0 => VCC, +A1 => \RLOLS0_CNT_\, +B1 => RLOLS0_CNT(4), +C1 => VCC, +D1 => VCC, +CIN => RLOLS0_CNT_CRY(2), +COUT => RLOLS0_CNT_CRY(4), +S0 => RLOLS0_CNT_S(3), +S1 => RLOLS0_CNT_S(4)); +\GENBLK2.RLOLS0_CNT_CRY_0[5]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOLS0_CNT_\, +B0 => RLOLS0_CNT(5), +C0 => VCC, +D0 => VCC, +A1 => \RLOLS0_CNT_\, +B1 => RLOLS0_CNT(6), +C1 => VCC, +D1 => VCC, +CIN => RLOLS0_CNT_CRY(4), +COUT => RLOLS0_CNT_CRY(6), +S0 => RLOLS0_CNT_S(5), +S1 => RLOLS0_CNT_S(6)); +\GENBLK2.RLOLS0_CNT_CRY_0[7]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOLS0_CNT_\, +B0 => RLOLS0_CNT(7), +C0 => VCC, +D0 => VCC, +A1 => \RLOLS0_CNT_\, +B1 => RLOLS0_CNT(8), +C1 => VCC, +D1 => VCC, +CIN => RLOLS0_CNT_CRY(6), +COUT => RLOLS0_CNT_CRY(8), +S0 => RLOLS0_CNT_S(7), +S1 => RLOLS0_CNT_S(8)); +\GENBLK2.RLOLS0_CNT_CRY_0[9]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOLS0_CNT_\, +B0 => RLOLS0_CNT(9), +C0 => VCC, +D0 => VCC, +A1 => \RLOLS0_CNT_\, +B1 => RLOLS0_CNT(10), +C1 => VCC, +D1 => VCC, +CIN => RLOLS0_CNT_CRY(8), +COUT => RLOLS0_CNT_CRY(10), +S0 => RLOLS0_CNT_S(9), +S1 => RLOLS0_CNT_S(10)); +\GENBLK2.RLOLS0_CNT_CRY_0[11]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOLS0_CNT_\, +B0 => RLOLS0_CNT(11), +C0 => VCC, +D0 => VCC, +A1 => \RLOLS0_CNT_\, +B1 => RLOLS0_CNT(12), +C1 => VCC, +D1 => VCC, +CIN => RLOLS0_CNT_CRY(10), +COUT => RLOLS0_CNT_CRY(12), +S0 => RLOLS0_CNT_S(11), +S1 => RLOLS0_CNT_S(12)); +\GENBLK2.RLOLS0_CNT_CRY_0[13]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOLS0_CNT_\, +B0 => RLOLS0_CNT(13), +C0 => VCC, +D0 => VCC, +A1 => \RLOLS0_CNT_\, +B1 => RLOLS0_CNT(14), +C1 => VCC, +D1 => VCC, +CIN => RLOLS0_CNT_CRY(12), +COUT => RLOLS0_CNT_CRY(14), +S0 => RLOLS0_CNT_S(13), +S1 => RLOLS0_CNT_S(14)); +\GENBLK2.RLOLS0_CNT_CRY_0[15]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOLS0_CNT_\, +B0 => RLOLS0_CNT(15), +C0 => VCC, +D0 => VCC, +A1 => \RLOLS0_CNT_\, +B1 => RLOLS0_CNT(16), +C1 => VCC, +D1 => VCC, +CIN => RLOLS0_CNT_CRY(14), +COUT => RLOLS0_CNT_CRY(16), +S0 => RLOLS0_CNT_S(15), +S1 => RLOLS0_CNT_S(16)); +\GENBLK2.RLOLS0_CNT_S_0[17]\: CCU2C +generic map( + INIT0 => X"800a", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOLS0_CNT_\, +B0 => RLOLS0_CNT(17), +C0 => VCC, +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => RLOLS0_CNT_CRY(16), +COUT => RLOLS0_CNT_S_0_COUT(17), +S0 => RLOLS0_CNT_S(17), +S1 => RLOLS0_CNT_S_0_S1(17)); +\GENBLK1.GENBLK2.TXR_WT_CNT_CRY_0[0]\: CCU2C +generic map( + INIT0 => X"500c", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => \TXR_WT_CNT_\, +C0 => VCC, +D0 => VCC, +A1 => \TXR_WT_CNT_\, +B1 => TXR_WT_CNT(0), +C1 => VCC, +D1 => VCC, +CIN => N_5, +COUT => TXR_WT_CNT_CRY(0), +S0 => TXR_WT_CNT_CRY_0_S0(0), +S1 => TXR_WT_CNT_S(0)); +\GENBLK1.GENBLK2.TXR_WT_CNT_CRY_0[1]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \TXR_WT_CNT_\, +B0 => TXR_WT_CNT(1), +C0 => VCC, +D0 => VCC, +A1 => \TXR_WT_CNT_\, +B1 => TXR_WT_CNT(2), +C1 => VCC, +D1 => VCC, +CIN => TXR_WT_CNT_CRY(0), +COUT => TXR_WT_CNT_CRY(2), +S0 => TXR_WT_CNT_S(1), +S1 => TXR_WT_CNT_S(2)); +\GENBLK1.GENBLK2.TXR_WT_CNT_CRY_0[3]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \TXR_WT_CNT_\, +B0 => TXR_WT_CNT(3), +C0 => VCC, +D0 => VCC, +A1 => \TXR_WT_CNT_\, +B1 => TXR_WT_CNT(4), +C1 => VCC, +D1 => VCC, +CIN => TXR_WT_CNT_CRY(2), +COUT => TXR_WT_CNT_CRY(4), +S0 => TXR_WT_CNT_S(3), +S1 => TXR_WT_CNT_S(4)); +\GENBLK1.GENBLK2.TXR_WT_CNT_CRY_0[5]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \TXR_WT_CNT_\, +B0 => TXR_WT_CNT(5), +C0 => VCC, +D0 => VCC, +A1 => \TXR_WT_CNT_\, +B1 => TXR_WT_CNT(6), +C1 => VCC, +D1 => VCC, +CIN => TXR_WT_CNT_CRY(4), +COUT => TXR_WT_CNT_CRY(6), +S0 => TXR_WT_CNT_S(5), +S1 => TXR_WT_CNT_S(6)); +\GENBLK1.GENBLK2.TXR_WT_CNT_CRY_0[7]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \TXR_WT_CNT_\, +B0 => TXR_WT_CNT(7), +C0 => VCC, +D0 => VCC, +A1 => \TXR_WT_CNT_\, +B1 => TXR_WT_CNT(8), +C1 => VCC, +D1 => VCC, +CIN => TXR_WT_CNT_CRY(6), +COUT => TXR_WT_CNT_CRY(8), +S0 => TXR_WT_CNT_S(7), +S1 => TXR_WT_CNT_S(8)); +\GENBLK1.GENBLK2.TXR_WT_CNT_CRY_0[9]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \TXR_WT_CNT_\, +B0 => TXR_WT_CNT(9), +C0 => VCC, +D0 => VCC, +A1 => \TXR_WT_CNT_\, +B1 => TXR_WT_CNT(10), +C1 => VCC, +D1 => VCC, +CIN => TXR_WT_CNT_CRY(8), +COUT => TXR_WT_CNT_CRY(10), +S0 => TXR_WT_CNT_S(9), +S1 => TXR_WT_CNT_S(10)); +\GENBLK1.GENBLK2.TXR_WT_CNT_S_0[11]\: CCU2C +generic map( + INIT0 => X"800a", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \TXR_WT_CNT_\, +B0 => TXR_WT_CNT(11), +C0 => VCC, +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => TXR_WT_CNT_CRY(10), +COUT => TXR_WT_CNT_S_0_COUT(11), +S0 => TXR_WT_CNT_S(11), +S1 => TXR_WT_CNT_S_0_S1(11)); +\GENBLK2.GENBLK3.RXR_WT_CNT_CRY_0[0]\: CCU2C +generic map( + INIT0 => X"5003", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => RXR_WT_CNT9, +C0 => VCC, +D0 => VCC, +A1 => RXR_WT_CNT9, +B1 => RXR_WT_CNT(0), +C1 => VCC, +D1 => VCC, +CIN => N_4, +COUT => RXR_WT_CNT_CRY(0), +S0 => RXR_WT_CNT_CRY_0_S0(0), +S1 => RXR_WT_CNT_S(0)); +\GENBLK2.GENBLK3.RXR_WT_CNT_CRY_0[1]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => RXR_WT_CNT9, +B0 => RXR_WT_CNT(1), +C0 => VCC, +D0 => VCC, +A1 => RXR_WT_CNT9, +B1 => RXR_WT_CNT(2), +C1 => VCC, +D1 => VCC, +CIN => RXR_WT_CNT_CRY(0), +COUT => RXR_WT_CNT_CRY(2), +S0 => RXR_WT_CNT_S(1), +S1 => RXR_WT_CNT_S(2)); +\GENBLK2.GENBLK3.RXR_WT_CNT_CRY_0[3]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => RXR_WT_CNT9, +B0 => RXR_WT_CNT(3), +C0 => VCC, +D0 => VCC, +A1 => RXR_WT_CNT9, +B1 => RXR_WT_CNT(4), +C1 => VCC, +D1 => VCC, +CIN => RXR_WT_CNT_CRY(2), +COUT => RXR_WT_CNT_CRY(4), +S0 => RXR_WT_CNT_S(3), +S1 => RXR_WT_CNT_S(4)); +\GENBLK2.GENBLK3.RXR_WT_CNT_CRY_0[5]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => RXR_WT_CNT9, +B0 => RXR_WT_CNT(5), +C0 => VCC, +D0 => VCC, +A1 => RXR_WT_CNT9, +B1 => RXR_WT_CNT(6), +C1 => VCC, +D1 => VCC, +CIN => RXR_WT_CNT_CRY(4), +COUT => RXR_WT_CNT_CRY(6), +S0 => RXR_WT_CNT_S(5), +S1 => RXR_WT_CNT_S(6)); +\GENBLK2.GENBLK3.RXR_WT_CNT_CRY_0[7]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => RXR_WT_CNT9, +B0 => RXR_WT_CNT(7), +C0 => VCC, +D0 => VCC, +A1 => RXR_WT_CNT9, +B1 => RXR_WT_CNT(8), +C1 => VCC, +D1 => VCC, +CIN => RXR_WT_CNT_CRY(6), +COUT => RXR_WT_CNT_CRY(8), +S0 => RXR_WT_CNT_S(7), +S1 => RXR_WT_CNT_S(8)); +\GENBLK2.GENBLK3.RXR_WT_CNT_CRY_0[9]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => RXR_WT_CNT9, +B0 => RXR_WT_CNT(9), +C0 => VCC, +D0 => VCC, +A1 => RXR_WT_CNT9, +B1 => RXR_WT_CNT(10), +C1 => VCC, +D1 => VCC, +CIN => RXR_WT_CNT_CRY(8), +COUT => RXR_WT_CNT_CRY(10), +S0 => RXR_WT_CNT_S(9), +S1 => RXR_WT_CNT_S(10)); +\GENBLK2.GENBLK3.RXR_WT_CNT_S_0[11]\: CCU2C +generic map( + INIT0 => X"4005", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => RXR_WT_CNT9, +B0 => RXR_WT_CNT(11), +C0 => VCC, +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => RXR_WT_CNT_CRY(10), +COUT => RXR_WT_CNT_S_0_COUT(11), +S0 => RXR_WT_CNT_S(11), +S1 => RXR_WT_CNT_S_0_S1(11)); +\GENBLK1.PLOL_CNT_CRY_0[0]\: CCU2C +generic map( + INIT0 => X"500c", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => \PLOL_CNT_\, +C0 => VCC, +D0 => VCC, +A1 => \PLOL_CNT_\, +B1 => PLOL_CNT(0), +C1 => VCC, +D1 => VCC, +CIN => N_3, +COUT => PLOL_CNT_CRY(0), +S0 => PLOL_CNT_CRY_0_S0(0), +S1 => PLOL_CNT_S(0)); +\GENBLK1.PLOL_CNT_CRY_0[1]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \PLOL_CNT_\, +B0 => PLOL_CNT(1), +C0 => VCC, +D0 => VCC, +A1 => \PLOL_CNT_\, +B1 => PLOL_CNT(2), +C1 => VCC, +D1 => VCC, +CIN => PLOL_CNT_CRY(0), +COUT => PLOL_CNT_CRY(2), +S0 => PLOL_CNT_S(1), +S1 => PLOL_CNT_S(2)); +\GENBLK1.PLOL_CNT_CRY_0[3]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \PLOL_CNT_\, +B0 => PLOL_CNT(3), +C0 => VCC, +D0 => VCC, +A1 => \PLOL_CNT_\, +B1 => PLOL_CNT(4), +C1 => VCC, +D1 => VCC, +CIN => PLOL_CNT_CRY(2), +COUT => PLOL_CNT_CRY(4), +S0 => PLOL_CNT_S(3), +S1 => PLOL_CNT_S(4)); +\GENBLK1.PLOL_CNT_CRY_0[5]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \PLOL_CNT_\, +B0 => PLOL_CNT(5), +C0 => VCC, +D0 => VCC, +A1 => \PLOL_CNT_\, +B1 => PLOL_CNT(6), +C1 => VCC, +D1 => VCC, +CIN => PLOL_CNT_CRY(4), +COUT => PLOL_CNT_CRY(6), +S0 => PLOL_CNT_S(5), +S1 => PLOL_CNT_S(6)); +\GENBLK1.PLOL_CNT_CRY_0[7]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \PLOL_CNT_\, +B0 => PLOL_CNT(7), +C0 => VCC, +D0 => VCC, +A1 => \PLOL_CNT_\, +B1 => PLOL_CNT(8), +C1 => VCC, +D1 => VCC, +CIN => PLOL_CNT_CRY(6), +COUT => PLOL_CNT_CRY(8), +S0 => PLOL_CNT_S(7), +S1 => PLOL_CNT_S(8)); +\GENBLK1.PLOL_CNT_CRY_0[9]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \PLOL_CNT_\, +B0 => PLOL_CNT(9), +C0 => VCC, +D0 => VCC, +A1 => \PLOL_CNT_\, +B1 => PLOL_CNT(10), +C1 => VCC, +D1 => VCC, +CIN => PLOL_CNT_CRY(8), +COUT => PLOL_CNT_CRY(10), +S0 => PLOL_CNT_S(9), +S1 => PLOL_CNT_S(10)); +\GENBLK1.PLOL_CNT_CRY_0[11]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \PLOL_CNT_\, +B0 => PLOL_CNT(11), +C0 => VCC, +D0 => VCC, +A1 => \PLOL_CNT_\, +B1 => PLOL_CNT(12), +C1 => VCC, +D1 => VCC, +CIN => PLOL_CNT_CRY(10), +COUT => PLOL_CNT_CRY(12), +S0 => PLOL_CNT_S(11), +S1 => PLOL_CNT_S(12)); +\GENBLK1.PLOL_CNT_CRY_0[13]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \PLOL_CNT_\, +B0 => PLOL_CNT(13), +C0 => VCC, +D0 => VCC, +A1 => \PLOL_CNT_\, +B1 => PLOL_CNT(14), +C1 => VCC, +D1 => VCC, +CIN => PLOL_CNT_CRY(12), +COUT => PLOL_CNT_CRY(14), +S0 => PLOL_CNT_S(13), +S1 => PLOL_CNT_S(14)); +\GENBLK1.PLOL_CNT_CRY_0[15]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \PLOL_CNT_\, +B0 => PLOL_CNT(15), +C0 => VCC, +D0 => VCC, +A1 => \PLOL_CNT_\, +B1 => PLOL_CNT(16), +C1 => VCC, +D1 => VCC, +CIN => PLOL_CNT_CRY(14), +COUT => PLOL_CNT_CRY(16), +S0 => PLOL_CNT_S(15), +S1 => PLOL_CNT_S(16)); +\GENBLK1.PLOL_CNT_CRY_0[17]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \PLOL_CNT_\, +B0 => PLOL_CNT(17), +C0 => VCC, +D0 => VCC, +A1 => \PLOL_CNT_\, +B1 => PLOL_CNT(18), +C1 => VCC, +D1 => VCC, +CIN => PLOL_CNT_CRY(16), +COUT => PLOL_CNT_CRY(18), +S0 => PLOL_CNT_S(17), +S1 => PLOL_CNT_S(18)); +\GENBLK1.PLOL_CNT_S_0[19]\: CCU2C +generic map( + INIT0 => X"800a", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \PLOL_CNT_\, +B0 => PLOL_CNT(19), +C0 => VCC, +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => PLOL_CNT_CRY(18), +COUT => PLOL_CNT_S_0_COUT(19), +S0 => PLOL_CNT_S(19), +S1 => PLOL_CNT_S_0_S1(19)); +\UN1_GENBLK2.RLOS_DB_CNT_CRY_0_0\: CCU2C +generic map( + INIT0 => X"5003", + INIT1 => X"900a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => RLOS_DB_CNT(0), +B1 => UN1_RLOS_DB_CNT_ZERO(0), +C1 => VCC, +D1 => VCC, +CIN => N_2, +COUT => RLOS_DB_CNT_CRY_0, +S0 => RLOS_DB_CNT_CRY_0_0_S0, +S1 => RLOS_DB_CNT_CRY_0_0_S1); +\UN1_GENBLK2.RLOS_DB_CNT_CRY_1_0\: CCU2C +generic map( + INIT0 => X"e101", + INIT1 => X"e101", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_RLOS_DB_CNT_ZERO(0), +B0 => RLOS_P2, +C0 => RLOS_DB_CNT(1), +D0 => VCC, +A1 => UN1_RLOS_DB_CNT_ZERO(0), +B1 => RLOS_P2, +C1 => RLOS_DB_CNT(2), +D1 => VCC, +CIN => RLOS_DB_CNT_CRY_0, +COUT => RLOS_DB_CNT_CRY_2, +S0 => RLOS_DB_CNT_CRY_1_0_S0, +S1 => RLOS_DB_CNT_CRY_1_0_S1); +\UN1_GENBLK2.RLOS_DB_CNT_S_3_0\: CCU2C +generic map( + INIT0 => X"a90a", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => RLOS_DB_CNT(3), +B0 => RLOS_P2, +C0 => UN1_RLOS_DB_CNT_ZERO(0), +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => RLOS_DB_CNT_CRY_2, +COUT => RLOS_DB_CNT_S_3_0_COUT, +S0 => RLOS_DB_CNT_S_3_0_S0, +S1 => RLOS_DB_CNT_S_3_0_S1); +\UN1_GENBLK2.RLOL_DB_CNT_CRY_0_0\: CCU2C +generic map( + INIT0 => X"5003", + INIT1 => X"900a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => RLOL_DB_CNT(0), +B1 => UN1_RLOL_DB_CNT_ZERO(0), +C1 => VCC, +D1 => VCC, +CIN => N_1, +COUT => RLOL_DB_CNT_CRY_0, +S0 => RLOL_DB_CNT_CRY_0_0_S0, +S1 => RLOL_DB_CNT_CRY_0_0_S1); +\UN1_GENBLK2.RLOL_DB_CNT_CRY_1_0\: CCU2C +generic map( + INIT0 => X"e101", + INIT1 => X"e101", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_RLOL_DB_CNT_ZERO(0), +B0 => RLOL_P2, +C0 => RLOL_DB_CNT(1), +D0 => VCC, +A1 => UN1_RLOL_DB_CNT_ZERO(0), +B1 => RLOL_P2, +C1 => RLOL_DB_CNT(2), +D1 => VCC, +CIN => RLOL_DB_CNT_CRY_0, +COUT => RLOL_DB_CNT_CRY_2, +S0 => RLOL_DB_CNT_CRY_1_0_S0, +S1 => RLOL_DB_CNT_CRY_1_0_S1); +\UN1_GENBLK2.RLOL_DB_CNT_S_3_0\: CCU2C +generic map( + INIT0 => X"a90a", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => RLOL_DB_CNT(3), +B0 => RLOL_P2, +C0 => UN1_RLOL_DB_CNT_ZERO(0), +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => RLOL_DB_CNT_CRY_2, +COUT => RLOL_DB_CNT_S_3_0_COUT, +S0 => RLOL_DB_CNT_S_3_0_S0, +S1 => RLOL_DB_CNT_S_3_0_S1); +RXSDR_APPD_4 <= RXSDR_APPD; +TXSR_APPD_4 <= TXSR_APPD; +VCC_0: VHI port map ( +Z => VCC); +II_GND: VLO port map ( +Z => GND); +rsl_rx_pcs_rst_c <= RSL_RX_PCS_RST_C_4; +rsl_tx_pcs_rst_c <= RSL_TX_PCS_RST_C_5; +rsl_tx_serdes_rst_c <= RSL_TX_SERDES_RST_C_6; +rsl_tx_rdy <= RSL_TX_RDY_7; +rsl_rx_rdy <= RSL_RX_RDY_8; +rsl_rx_serdes_rst_c <= RSL_RX_SERDES_RST_C_9; +rsl_serdes_rst_dual_c <= RSL_SERDES_RST_DUAL_C_10; +end beh; + +-- +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; +library synplify; +use synplify.components.all; +library pmi; +use pmi.pmi_components.all; +library ecp5um; +use ecp5um.components.all; + +entity sgmii_ecp5sll_core_Z1_layer1 is +port( +tx_pclk : in std_logic; +sli_rst : in std_logic; +pll_refclki : in std_logic; +pll_lock_i : out std_logic); +end sgmii_ecp5sll_core_Z1_layer1; + +architecture beh of sgmii_ecp5sll_core_Z1_layer1 is +signal PHB_CNT : std_logic_vector(2 downto 0); +signal PHB_CNT_I : std_logic_vector(2 downto 0); +signal RCOUNT : std_logic_vector(15 downto 0); +signal PCOUNT : std_logic_vector(21 downto 0); +signal UN1_PCOUNT_DIFF_I : std_logic_vector(0 to 0); +signal SLL_STATE : std_logic_vector(1 downto 0); +signal SLL_STATE_QN : std_logic_vector(1 downto 0); +signal RHB_WAIT_CNT_S : std_logic_vector(7 downto 0); +signal RHB_WAIT_CNT : std_logic_vector(7 downto 0); +signal RHB_WAIT_CNT_QN : std_logic_vector(7 downto 0); +signal RCOUNT_S : std_logic_vector(15 downto 0); +signal RCOUNT_QN : std_logic_vector(15 downto 0); +signal PHB_CNT_QN : std_logic_vector(2 downto 0); +signal PHB_CNT_RNO : std_logic_vector(2 downto 1); +signal PCOUNT_S : std_logic_vector(21 downto 0); +signal PCOUNT_QN : std_logic_vector(21 downto 0); +signal PCOUNT_DIFF_QN : std_logic_vector(21 downto 0); +signal RDIFF_COMP_LOCK : std_logic_vector(2 to 2); +signal RDIFF_COMP_LOCK_QN : std_logic_vector(2 to 2); +signal UN1_PCOUNT_DIFF : std_logic_vector(0 to 0); +signal PCOUNT_CRY : std_logic_vector(20 downto 0); +signal PCOUNT_CRY_0_S0 : std_logic_vector(0 to 0); +signal PCOUNT_S_0_COUT : std_logic_vector(21 to 21); +signal PCOUNT_S_0_S1 : std_logic_vector(21 to 21); +signal RCOUNT_CRY : std_logic_vector(14 downto 0); +signal RCOUNT_CRY_0_S0 : std_logic_vector(0 to 0); +signal RCOUNT_S_0_COUT : std_logic_vector(15 to 15); +signal RCOUNT_S_0_S1 : std_logic_vector(15 to 15); +signal RHB_WAIT_CNT_CRY : std_logic_vector(6 downto 0); +signal RHB_WAIT_CNT_CRY_0_S0 : std_logic_vector(0 to 0); +signal RHB_WAIT_CNT_S_0_COUT : std_logic_vector(7 to 7); +signal RHB_WAIT_CNT_S_0_S1 : std_logic_vector(7 to 7); +signal PLL_LOCK : std_logic ; +signal RTC_CTRL4_0_A3_1 : std_logic ; +signal UN13_LOCK_20 : std_logic ; +signal PPUL_SYNC_P2 : std_logic ; +signal PPUL_SYNC_P1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_20 : std_logic ; +signal UN13_LOCK_19 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_19 : std_logic ; +signal UN13_LOCK_18 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_18 : std_logic ; +signal UN13_LOCK_17 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_17 : std_logic ; +signal UN13_LOCK_16 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_15_0_RNO_0 : std_logic ; +signal UN13_LOCK_15 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_15 : std_logic ; +signal UN13_LOCK_14 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_14 : std_logic ; +signal UN13_LOCK_13 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_13 : std_logic ; +signal UN13_LOCK_12 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_12 : std_logic ; +signal UN13_LOCK_11 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_11 : std_logic ; +signal UN13_LOCK_10 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_10 : std_logic ; +signal UN13_LOCK_9 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_9 : std_logic ; +signal UN13_LOCK_8 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_8 : std_logic ; +signal UN13_LOCK_7 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_7 : std_logic ; +signal UN13_LOCK_6 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_6 : std_logic ; +signal UN13_LOCK_5 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_5 : std_logic ; +signal UN13_LOCK_4 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_4 : std_logic ; +signal UN13_LOCK_3 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_3 : std_logic ; +signal UN13_LOCK_2 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_2 : std_logic ; +signal UN13_LOCK_1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_1 : std_logic ; +signal UN13_LOCK_21 : std_logic ; +signal PPUL_SYNC_P3 : std_logic ; +signal N_7 : std_logic ; +signal UN13_LOCK_0 : std_logic ; +signal RTC_CTRL4 : std_logic ; +signal RTC_CTRL : std_logic ; +signal VCC : std_logic ; +signal N_2121_0 : std_logic ; +signal UNLOCK_5 : std_logic ; +signal UNLOCK_1_SQMUXA_I : std_logic ; +signal UNLOCK : std_logic ; +signal UNLOCK_QN : std_logic ; +signal N_95_I : std_logic ; +signal N_97_I : std_logic ; +signal RTC_PUL : std_logic ; +signal RTC_PUL_P1 : std_logic ; +signal RTC_PUL_P1_QN : std_logic ; +signal RTC_PUL5 : std_logic ; +signal RTC_PUL_QN : std_logic ; +signal RTC_CTRL_QN : std_logic ; +signal RSTAT_PCLK_2 : std_logic ; +signal RSTAT_PCLK : std_logic ; +signal RSTAT_PCLK_QN : std_logic ; +signal RHB_SYNC_P1 : std_logic ; +signal RHB_SYNC_P2 : std_logic ; +signal RHB_SYNC_P2_QN : std_logic ; +signal RHB_SYNC : std_logic ; +signal RHB_SYNC_P1_QN : std_logic ; +signal PPUL_SYNC_P3_QN : std_logic ; +signal PPUL_SYNC_P2_QN : std_logic ; +signal PPUL_SYNC : std_logic ; +signal PPUL_SYNC_P1_QN : std_logic ; +signal N_53_I : std_logic ; +signal PLL_LOCK_QN : std_logic ; +signal PHB : std_logic ; +signal PHB_QN : std_logic ; +signal PDIFF_SYNC : std_logic ; +signal PDIFF_SYNC_P1 : std_logic ; +signal PDIFF_SYNC_P1_QN : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_1_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_1_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_3_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_3_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_5_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_5_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_7_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_7_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_9_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_9_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_11_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_11_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_13_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_13_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_15_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_15_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_17_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_17_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_19_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_19_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_S_21_0_S0 : std_logic ; +signal LOCK_5 : std_logic ; +signal LOCK_1_SQMUXA_I : std_logic ; +signal LOCK : std_logic ; +signal LOCK_QN : std_logic ; +signal N_98 : std_logic ; +signal RTC_PUL5_0_O3 : std_logic ; +signal RTC_PUL5_0_A3_6 : std_logic ; +signal RTC_PUL5_0_A3_7 : std_logic ; +signal UN1_RCOUNT_1_0_A3 : std_logic ; +signal RHB_WAIT_CNT12 : std_logic ; +signal UN1_RHB_WAIT_CNT_4 : std_logic ; +signal UN1_RHB_WAIT_CNT_5 : std_logic ; +signal N_99 : std_logic ; +signal RTC_CTRL4_0_A3_12_4 : std_logic ; +signal RTC_CTRL4_0_A3_12_5 : std_logic ; +signal RTC_CTRL4_10 : std_logic ; +signal UN1_RCOUNT_1_0_A3_1 : std_logic ; +signal N_6 : std_logic ; +signal RTC_PUL5_0_A3_5 : std_logic ; +signal N_8 : std_logic ; +signal UN13_UNLOCK_CRY_21 : std_logic ; +signal UN13_LOCK_CRY_21_I : std_logic ; +signal \RHB_WAIT_CNT_\ : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_0_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_0_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_2 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_4 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_6 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_8 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_10 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_12 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_14 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_16 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_18 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_20 : std_logic ; +signal UN1_PCOUNT_DIFF_1_S_21_0_COUT : std_logic ; +signal UN1_PCOUNT_DIFF_1_S_21_0_S1 : std_logic ; +signal UN13_LOCK_CRY_0 : std_logic ; +signal UN13_LOCK_CRY_0_0_S0 : std_logic ; +signal UN13_LOCK_CRY_0_0_S1 : std_logic ; +signal UN13_LOCK_CRY_2 : std_logic ; +signal UN13_LOCK_CRY_1_0_S0 : std_logic ; +signal UN13_LOCK_CRY_1_0_S1 : std_logic ; +signal UN13_LOCK_CRY_4 : std_logic ; +signal UN13_LOCK_CRY_3_0_S0 : std_logic ; +signal UN13_LOCK_CRY_3_0_S1 : std_logic ; +signal UN13_LOCK_CRY_6 : std_logic ; +signal UN13_LOCK_CRY_5_0_S0 : std_logic ; +signal UN13_LOCK_CRY_5_0_S1 : std_logic ; +signal UN13_LOCK_CRY_8 : std_logic ; +signal UN13_LOCK_CRY_7_0_S0 : std_logic ; +signal UN13_LOCK_CRY_7_0_S1 : std_logic ; +signal UN13_LOCK_CRY_10 : std_logic ; +signal UN13_LOCK_CRY_9_0_S0 : std_logic ; +signal UN13_LOCK_CRY_9_0_S1 : std_logic ; +signal UN13_LOCK_CRY_12 : std_logic ; +signal UN13_LOCK_CRY_11_0_S0 : std_logic ; +signal UN13_LOCK_CRY_11_0_S1 : std_logic ; +signal UN13_LOCK_CRY_14 : std_logic ; +signal UN13_LOCK_CRY_13_0_S0 : std_logic ; +signal UN13_LOCK_CRY_13_0_S1 : std_logic ; +signal UN13_LOCK_CRY_16 : std_logic ; +signal UN13_LOCK_CRY_15_0_S0 : std_logic ; +signal UN13_LOCK_CRY_15_0_S1 : std_logic ; +signal UN13_LOCK_CRY_18 : std_logic ; +signal UN13_LOCK_CRY_17_0_S0 : std_logic ; +signal UN13_LOCK_CRY_17_0_S1 : std_logic ; +signal UN13_LOCK_CRY_20 : std_logic ; +signal UN13_LOCK_CRY_19_0_S0 : std_logic ; +signal UN13_LOCK_CRY_19_0_S1 : std_logic ; +signal UN13_LOCK_CRY_21_0_COUT : std_logic ; +signal UN13_LOCK_CRY_21_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_0 : std_logic ; +signal UN13_UNLOCK_CRY_0_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_0_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_2 : std_logic ; +signal UN13_UNLOCK_CRY_1_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_1_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_4 : std_logic ; +signal UN13_UNLOCK_CRY_3_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_3_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_6 : std_logic ; +signal UN13_UNLOCK_CRY_5_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_5_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_8 : std_logic ; +signal UN13_UNLOCK_CRY_7_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_7_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_10 : std_logic ; +signal UN13_UNLOCK_CRY_9_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_9_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_12 : std_logic ; +signal UN13_UNLOCK_CRY_11_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_11_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_14 : std_logic ; +signal UN13_UNLOCK_CRY_13_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_13_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_16 : std_logic ; +signal UN13_UNLOCK_CRY_15_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_15_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_18 : std_logic ; +signal UN13_UNLOCK_CRY_17_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_17_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_20 : std_logic ; +signal UN13_UNLOCK_CRY_19_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_19_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_21_0_COUT : std_logic ; +signal UN13_UNLOCK_CRY_21_0_S0 : std_logic ; +signal N_21 : std_logic ; +signal N_20 : std_logic ; +signal N_19 : std_logic ; +signal N_18 : std_logic ; +signal N_14 : std_logic ; +signal GND : std_logic ; +signal N_1 : std_logic ; +signal N_2 : std_logic ; +signal N_3 : std_logic ; +signal N_4 : std_logic ; +signal N_5 : std_logic ; +signal N_9 : std_logic ; +component sync_0s +port( +phb : in std_logic; +rhb_sync : out std_logic; +sli_rst : in std_logic; +pll_refclki : in std_logic ); +end component; +component sync_0s_6 +port( +rtc_pul : in std_logic; +ppul_sync : out std_logic; +sli_rst : in std_logic; +tx_pclk : in std_logic ); +end component; +component sync_0s_0 +port( +ppul_sync : in std_logic; +pdiff_sync : out std_logic; +sli_rst : in std_logic; +pll_refclki : in std_logic ); +end component; +begin +PHB_RNO: INV port map ( +A => PHB_CNT(2), +Z => PHB_CNT_I(2)); +\PHB_CNT_RNO[0]\: INV port map ( +A => PHB_CNT(0), +Z => PHB_CNT_I(0)); +PLL_LOCK_RNI6JK9: INV port map ( +A => PLL_LOCK, +Z => pll_lock_i); +RTC_CTRL4_0_A3_RNO: LUT4 +generic map( + init => X"2000" +) +port map ( +A => RCOUNT(2), +B => RCOUNT(0), +C => RCOUNT(5), +D => RCOUNT(4), +Z => RTC_CTRL4_0_A3_1); +UN1_PCOUNT_DIFF_1_CRY_19_0_RNO_0: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_20, +B => PCOUNT(20), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_20); +UN1_PCOUNT_DIFF_1_CRY_19_0_RNO: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_19, +B => PCOUNT(19), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_19); +UN1_PCOUNT_DIFF_1_CRY_17_0_RNO_0: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_18, +B => PCOUNT(18), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_18); +UN1_PCOUNT_DIFF_1_CRY_17_0_RNO: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_17, +B => PCOUNT(17), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_17); +UN1_PCOUNT_DIFF_1_CRY_15_0_RNO_0_Z478: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_16, +B => PCOUNT(16), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_CRY_15_0_RNO_0); +UN1_PCOUNT_DIFF_1_CRY_15_0_RNO: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_15, +B => PCOUNT(15), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_15); +UN1_PCOUNT_DIFF_1_CRY_13_0_RNO_0: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_14, +B => PCOUNT(14), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_14); +UN1_PCOUNT_DIFF_1_CRY_13_0_RNO: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_13, +B => PCOUNT(13), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_13); +UN1_PCOUNT_DIFF_1_CRY_11_0_RNO_0: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_12, +B => PCOUNT(12), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_12); +UN1_PCOUNT_DIFF_1_CRY_11_0_RNO: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_11, +B => PCOUNT(11), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_11); +UN1_PCOUNT_DIFF_1_CRY_9_0_RNO_0: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_10, +B => PCOUNT(10), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_10); +UN1_PCOUNT_DIFF_1_CRY_9_0_RNO: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_9, +B => PCOUNT(9), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_9); +UN1_PCOUNT_DIFF_1_CRY_7_0_RNO_0: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_8, +B => PCOUNT(8), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_8); +UN1_PCOUNT_DIFF_1_CRY_7_0_RNO: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_7, +B => PCOUNT(7), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_7); +UN1_PCOUNT_DIFF_1_CRY_5_0_RNO_0: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_6, +B => PCOUNT(6), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_6); +UN1_PCOUNT_DIFF_1_CRY_5_0_RNO: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_5, +B => PCOUNT(5), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_5); +UN1_PCOUNT_DIFF_1_CRY_3_0_RNO_0: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_4, +B => PCOUNT(4), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_4); +UN1_PCOUNT_DIFF_1_CRY_3_0_RNO: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_3, +B => PCOUNT(3), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_3); +UN1_PCOUNT_DIFF_1_CRY_1_0_RNO_0: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_2, +B => PCOUNT(2), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_2); +UN1_PCOUNT_DIFF_1_CRY_1_0_RNO: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_1, +B => PCOUNT(1), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_1); +PPUL_SYNC_P3_RNIU65C: LUT4 +generic map( + init => X"2F20" +) +port map ( +A => UN13_LOCK_21, +B => PPUL_SYNC_P3, +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => N_7); +\PCOUNT_DIFF_RNO[0]\: LUT4 +generic map( + init => X"FD20" +) +port map ( +A => PPUL_SYNC_P1, +B => PPUL_SYNC_P2, +C => PCOUNT(0), +D => UN13_LOCK_0, +Z => UN1_PCOUNT_DIFF_I(0)); +RTC_CTRL_0: LUT4 +generic map( + init => X"EEEE" +) +port map ( +A => RTC_CTRL4, +B => RTC_CTRL, +C => VCC, +D => VCC, +Z => N_2121_0); +UNLOCK_REG_Z498: FD1P3DX port map ( +D => UNLOCK_5, +SP => UNLOCK_1_SQMUXA_I, +CK => pll_refclki, +CD => sli_rst, +Q => UNLOCK); +\SLL_STATE[0]_REG_Z500\: FD1S3DX port map ( +D => N_95_I, +CK => pll_refclki, +CD => sli_rst, +Q => SLL_STATE(0)); +\SLL_STATE[1]_REG_Z502\: FD1S3DX port map ( +D => N_97_I, +CK => pll_refclki, +CD => sli_rst, +Q => SLL_STATE(1)); +RTC_PUL_P1_REG_Z504: FD1S3DX port map ( +D => RTC_PUL, +CK => pll_refclki, +CD => sli_rst, +Q => RTC_PUL_P1); +RTC_PUL_REG_Z506: FD1P3DX port map ( +D => RTC_PUL5, +SP => RTC_CTRL, +CK => pll_refclki, +CD => sli_rst, +Q => RTC_PUL); +RTC_CTRL_REG_Z508: FD1S3DX port map ( +D => N_2121_0, +CK => pll_refclki, +CD => sli_rst, +Q => RTC_CTRL); +RSTAT_PCLK_REG_Z510: FD1P3DX port map ( +D => RSTAT_PCLK_2, +SP => RTC_CTRL, +CK => pll_refclki, +CD => sli_rst, +Q => RSTAT_PCLK); +\RHB_WAIT_CNT[0]_REG_Z512\: FD1P3DX port map ( +D => RHB_WAIT_CNT_S(0), +SP => RTC_CTRL, +CK => pll_refclki, +CD => sli_rst, +Q => RHB_WAIT_CNT(0)); +\RHB_WAIT_CNT[1]_REG_Z514\: FD1P3DX port map ( +D => RHB_WAIT_CNT_S(1), +SP => RTC_CTRL, +CK => pll_refclki, +CD => sli_rst, +Q => RHB_WAIT_CNT(1)); +\RHB_WAIT_CNT[2]_REG_Z516\: FD1P3DX port map ( +D => RHB_WAIT_CNT_S(2), +SP => RTC_CTRL, +CK => pll_refclki, +CD => sli_rst, +Q => RHB_WAIT_CNT(2)); +\RHB_WAIT_CNT[3]_REG_Z518\: FD1P3DX port map ( +D => RHB_WAIT_CNT_S(3), +SP => RTC_CTRL, +CK => pll_refclki, +CD => sli_rst, +Q => RHB_WAIT_CNT(3)); +\RHB_WAIT_CNT[4]_REG_Z520\: FD1P3DX port map ( +D => RHB_WAIT_CNT_S(4), +SP => RTC_CTRL, +CK => pll_refclki, +CD => sli_rst, +Q => RHB_WAIT_CNT(4)); +\RHB_WAIT_CNT[5]_REG_Z522\: FD1P3DX port map ( +D => RHB_WAIT_CNT_S(5), +SP => RTC_CTRL, +CK => pll_refclki, +CD => sli_rst, +Q => RHB_WAIT_CNT(5)); +\RHB_WAIT_CNT[6]_REG_Z524\: FD1P3DX port map ( +D => RHB_WAIT_CNT_S(6), +SP => RTC_CTRL, +CK => pll_refclki, +CD => sli_rst, +Q => RHB_WAIT_CNT(6)); +\RHB_WAIT_CNT[7]_REG_Z526\: FD1P3DX port map ( +D => RHB_WAIT_CNT_S(7), +SP => RTC_CTRL, +CK => pll_refclki, +CD => sli_rst, +Q => RHB_WAIT_CNT(7)); +RHB_SYNC_P2_REG_Z528: FD1S3DX port map ( +D => RHB_SYNC_P1, +CK => pll_refclki, +CD => sli_rst, +Q => RHB_SYNC_P2); +RHB_SYNC_P1_REG_Z530: FD1S3DX port map ( +D => RHB_SYNC, +CK => pll_refclki, +CD => sli_rst, +Q => RHB_SYNC_P1); +\RCOUNT[0]_REG_Z532\: FD1S3DX port map ( +D => RCOUNT_S(0), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(0)); +\RCOUNT[1]_REG_Z534\: FD1S3DX port map ( +D => RCOUNT_S(1), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(1)); +\RCOUNT[2]_REG_Z536\: FD1S3DX port map ( +D => RCOUNT_S(2), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(2)); +\RCOUNT[3]_REG_Z538\: FD1S3DX port map ( +D => RCOUNT_S(3), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(3)); +\RCOUNT[4]_REG_Z540\: FD1S3DX port map ( +D => RCOUNT_S(4), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(4)); +\RCOUNT[5]_REG_Z542\: FD1S3DX port map ( +D => RCOUNT_S(5), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(5)); +\RCOUNT[6]_REG_Z544\: FD1S3DX port map ( +D => RCOUNT_S(6), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(6)); +\RCOUNT[7]_REG_Z546\: FD1S3DX port map ( +D => RCOUNT_S(7), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(7)); +\RCOUNT[8]_REG_Z548\: FD1S3DX port map ( +D => RCOUNT_S(8), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(8)); +\RCOUNT[9]_REG_Z550\: FD1S3DX port map ( +D => RCOUNT_S(9), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(9)); +\RCOUNT[10]_REG_Z552\: FD1S3DX port map ( +D => RCOUNT_S(10), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(10)); +\RCOUNT[11]_REG_Z554\: FD1S3DX port map ( +D => RCOUNT_S(11), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(11)); +\RCOUNT[12]_REG_Z556\: FD1S3DX port map ( +D => RCOUNT_S(12), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(12)); +\RCOUNT[13]_REG_Z558\: FD1S3DX port map ( +D => RCOUNT_S(13), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(13)); +\RCOUNT[14]_REG_Z560\: FD1S3DX port map ( +D => RCOUNT_S(14), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(14)); +\RCOUNT[15]_REG_Z562\: FD1S3DX port map ( +D => RCOUNT_S(15), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(15)); +PPUL_SYNC_P3_REG_Z564: FD1S3DX port map ( +D => PPUL_SYNC_P2, +CK => tx_pclk, +CD => sli_rst, +Q => PPUL_SYNC_P3); +PPUL_SYNC_P2_REG_Z566: FD1S3DX port map ( +D => PPUL_SYNC_P1, +CK => tx_pclk, +CD => sli_rst, +Q => PPUL_SYNC_P2); +PPUL_SYNC_P1_REG_Z568: FD1S3DX port map ( +D => PPUL_SYNC, +CK => tx_pclk, +CD => sli_rst, +Q => PPUL_SYNC_P1); +PLL_LOCK_REG_Z570: FD1S3DX port map ( +D => N_53_I, +CK => pll_refclki, +CD => sli_rst, +Q => PLL_LOCK); +\PHB_CNT[0]_REG_Z572\: FD1S3DX port map ( +D => PHB_CNT_I(0), +CK => tx_pclk, +CD => sli_rst, +Q => PHB_CNT(0)); +\PHB_CNT[1]_REG_Z574\: FD1S3DX port map ( +D => PHB_CNT_RNO(1), +CK => tx_pclk, +CD => sli_rst, +Q => PHB_CNT(1)); +\PHB_CNT[2]_REG_Z576\: FD1S3DX port map ( +D => PHB_CNT_RNO(2), +CK => tx_pclk, +CD => sli_rst, +Q => PHB_CNT(2)); +PHB_REG_Z578: FD1S3DX port map ( +D => PHB_CNT_I(2), +CK => tx_pclk, +CD => sli_rst, +Q => PHB); +PDIFF_SYNC_P1_REG_Z580: FD1S3DX port map ( +D => PDIFF_SYNC, +CK => pll_refclki, +CD => sli_rst, +Q => PDIFF_SYNC_P1); +\PCOUNT[0]_REG_Z582\: FD1S3DX port map ( +D => PCOUNT_S(0), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(0)); +\PCOUNT_DIFF[0]_REG_Z584\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_I(0), +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_0); +\PCOUNT[1]_REG_Z586\: FD1S3DX port map ( +D => PCOUNT_S(1), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(1)); +\PCOUNT_DIFF[1]_REG_Z588\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_1_0_S0, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_1); +\PCOUNT_DIFF[2]_REG_Z590\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_1_0_S1, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_2); +\PCOUNT[2]_REG_Z592\: FD1S3DX port map ( +D => PCOUNT_S(2), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(2)); +\PCOUNT_DIFF[3]_REG_Z594\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_3_0_S0, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_3); +\PCOUNT[3]_REG_Z596\: FD1S3DX port map ( +D => PCOUNT_S(3), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(3)); +\PCOUNT_DIFF[4]_REG_Z598\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_3_0_S1, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_4); +\PCOUNT[4]_REG_Z600\: FD1S3DX port map ( +D => PCOUNT_S(4), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(4)); +\PCOUNT_DIFF[5]_REG_Z602\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_5_0_S0, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_5); +\PCOUNT[5]_REG_Z604\: FD1S3DX port map ( +D => PCOUNT_S(5), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(5)); +\PCOUNT[6]_REG_Z606\: FD1S3DX port map ( +D => PCOUNT_S(6), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(6)); +\PCOUNT_DIFF[6]_REG_Z608\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_5_0_S1, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_6); +\PCOUNT[7]_REG_Z610\: FD1S3DX port map ( +D => PCOUNT_S(7), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(7)); +\PCOUNT_DIFF[7]_REG_Z612\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_7_0_S0, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_7); +\PCOUNT[8]_REG_Z614\: FD1S3DX port map ( +D => PCOUNT_S(8), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(8)); +\PCOUNT_DIFF[8]_REG_Z616\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_7_0_S1, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_8); +\PCOUNT_DIFF[9]_REG_Z618\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_9_0_S0, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_9); +\PCOUNT[9]_REG_Z620\: FD1S3DX port map ( +D => PCOUNT_S(9), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(9)); +\PCOUNT[10]_REG_Z622\: FD1S3DX port map ( +D => PCOUNT_S(10), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(10)); +\PCOUNT_DIFF[10]_REG_Z624\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_9_0_S1, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_10); +\PCOUNT_DIFF[11]_REG_Z626\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_11_0_S0, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_11); +\PCOUNT[11]_REG_Z628\: FD1S3DX port map ( +D => PCOUNT_S(11), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(11)); +\PCOUNT[12]_REG_Z630\: FD1S3DX port map ( +D => PCOUNT_S(12), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(12)); +\PCOUNT_DIFF[12]_REG_Z632\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_11_0_S1, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_12); +\PCOUNT_DIFF[13]_REG_Z634\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_13_0_S0, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_13); +\PCOUNT[13]_REG_Z636\: FD1S3DX port map ( +D => PCOUNT_S(13), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(13)); +\PCOUNT_DIFF[14]_REG_Z638\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_13_0_S1, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_14); +\PCOUNT[14]_REG_Z640\: FD1S3DX port map ( +D => PCOUNT_S(14), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(14)); +\PCOUNT[15]_REG_Z642\: FD1S3DX port map ( +D => PCOUNT_S(15), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(15)); +\PCOUNT_DIFF[15]_REG_Z644\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_15_0_S0, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_15); +\PCOUNT[16]_REG_Z646\: FD1S3DX port map ( +D => PCOUNT_S(16), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(16)); +\PCOUNT_DIFF[16]_REG_Z648\: FD1P3DX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_15_0_S1, +SP => N_7, +CK => tx_pclk, +CD => sli_rst, +Q => UN13_LOCK_16); +\PCOUNT_DIFF[17]_REG_Z650\: FD1P3DX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_17_0_S0, +SP => N_7, +CK => tx_pclk, +CD => sli_rst, +Q => UN13_LOCK_17); +\PCOUNT[17]_REG_Z652\: FD1S3DX port map ( +D => PCOUNT_S(17), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(17)); +\PCOUNT_DIFF[18]_REG_Z654\: FD1P3DX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_17_0_S1, +SP => N_7, +CK => tx_pclk, +CD => sli_rst, +Q => UN13_LOCK_18); +\PCOUNT[18]_REG_Z656\: FD1S3DX port map ( +D => PCOUNT_S(18), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(18)); +\PCOUNT[19]_REG_Z658\: FD1S3DX port map ( +D => PCOUNT_S(19), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(19)); +\PCOUNT_DIFF[19]_REG_Z660\: FD1P3DX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_19_0_S0, +SP => N_7, +CK => tx_pclk, +CD => sli_rst, +Q => UN13_LOCK_19); +\PCOUNT[20]_REG_Z662\: FD1S3DX port map ( +D => PCOUNT_S(20), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(20)); +\PCOUNT_DIFF[20]_REG_Z664\: FD1P3DX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_19_0_S1, +SP => N_7, +CK => tx_pclk, +CD => sli_rst, +Q => UN13_LOCK_20); +\PCOUNT_DIFF[21]_REG_Z666\: FD1P3DX port map ( +D => UN1_PCOUNT_DIFF_1_S_21_0_S0, +SP => N_7, +CK => tx_pclk, +CD => sli_rst, +Q => UN13_LOCK_21); +\PCOUNT[21]_REG_Z668\: FD1S3DX port map ( +D => PCOUNT_S(21), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(21)); +LOCK_REG_Z670: FD1P3DX port map ( +D => LOCK_5, +SP => LOCK_1_SQMUXA_I, +CK => pll_refclki, +CD => sli_rst, +Q => LOCK); +\GENBLK5.RDIFF_COMP_LOCK[2]_REG_Z672\: FD1S3DX port map ( +D => VCC, +CK => pll_refclki, +CD => sli_rst, +Q => RDIFF_COMP_LOCK(2)); +\SLL_STATE_RNO[0]\: LUT4 +generic map( + init => X"E050" +) +port map ( +A => N_98, +B => LOCK, +C => RSTAT_PCLK, +D => SLL_STATE(0), +Z => N_95_I); +RTC_PUL5_0_0: LUT4 +generic map( + init => X"FF80" +) +port map ( +A => RTC_PUL5_0_O3, +B => RTC_PUL5_0_A3_6, +C => RTC_PUL5_0_A3_7, +D => UN1_RCOUNT_1_0_A3, +Z => RTC_PUL5); +RSTAT_PCLK_2_IV: LUT4 +generic map( + init => X"AEEE" +) +port map ( +A => RHB_WAIT_CNT12, +B => RSTAT_PCLK, +C => UN1_RHB_WAIT_CNT_4, +D => UN1_RHB_WAIT_CNT_5, +Z => RSTAT_PCLK_2); +\SLL_STATE_RNO[1]\: LUT4 +generic map( + init => X"8088" +) +port map ( +A => N_99, +B => RSTAT_PCLK, +C => SLL_STATE(1), +D => UNLOCK, +Z => N_97_I); +RTC_CTRL4_0_A3: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RTC_CTRL4_0_A3_1, +B => RTC_CTRL4_0_A3_12_4, +C => RTC_CTRL4_0_A3_12_5, +D => RTC_CTRL4_10, +Z => RTC_CTRL4); +UN1_RCOUNT_1_0_A3_Z678: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RTC_CTRL4_0_A3_12_4, +B => RTC_CTRL4_0_A3_12_5, +C => RTC_CTRL4_10, +D => UN1_RCOUNT_1_0_A3_1, +Z => UN1_RCOUNT_1_0_A3); +LOCK_1_SQMUXA_I_Z679: LUT4 +generic map( + init => X"7575" +) +port map ( +A => LOCK, +B => PDIFF_SYNC, +C => PDIFF_SYNC_P1, +D => VCC, +Z => LOCK_1_SQMUXA_I); +UNLOCK_1_SQMUXA_I_Z680: LUT4 +generic map( + init => X"4F4F" +) +port map ( +A => PDIFF_SYNC, +B => PDIFF_SYNC_P1, +C => UNLOCK, +D => VCC, +Z => UNLOCK_1_SQMUXA_I); +RTC_PUL5_0_O3_Z681: LUT4 +generic map( + init => X"AAAB" +) +port map ( +A => N_6, +B => RCOUNT(1), +C => RCOUNT(2), +D => RCOUNT(3), +Z => RTC_PUL5_0_O3); +RTC_PUL5_0_A3_7_Z682: LUT4 +generic map( + init => X"1010" +) +port map ( +A => RCOUNT(7), +B => RCOUNT(8), +C => RTC_PUL5_0_A3_5, +D => VCC, +Z => RTC_PUL5_0_A3_7); +\SLL_STATE_NS_I_M4[1]\: LUT4 +generic map( + init => X"EF20" +) +port map ( +A => LOCK, +B => RTC_PUL, +C => RTC_PUL_P1, +D => SLL_STATE(1), +Z => N_99); +PLL_LOCK_RNO: LUT4 +generic map( + init => X"8888" +) +port map ( +A => SLL_STATE(0), +B => SLL_STATE(1), +C => VCC, +D => VCC, +Z => N_53_I); +\PHB_CNT_RNO[2]_Z685\: LUT4 +generic map( + init => X"7878" +) +port map ( +A => PHB_CNT(0), +B => PHB_CNT(1), +C => PHB_CNT(2), +D => VCC, +Z => PHB_CNT_RNO(2)); +\SLL_STATE_NS_I_O4[0]\: LUT4 +generic map( + init => X"BFBF" +) +port map ( +A => RTC_PUL, +B => RTC_PUL_P1, +C => SLL_STATE(1), +D => VCC, +Z => N_98); +RTC_CTRL4_0_A3_10: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RCOUNT(1), +B => RCOUNT(3), +C => RCOUNT(6), +D => RCOUNT(15), +Z => RTC_CTRL4_10); +UN1_RHB_WAIT_CNT_4_Z688: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RHB_WAIT_CNT(4), +B => RHB_WAIT_CNT(5), +C => RHB_WAIT_CNT(6), +D => RHB_WAIT_CNT(7), +Z => UN1_RHB_WAIT_CNT_4); +UN1_RHB_WAIT_CNT_5_Z689: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RHB_WAIT_CNT(0), +B => RHB_WAIT_CNT(1), +C => RHB_WAIT_CNT(2), +D => RHB_WAIT_CNT(3), +Z => UN1_RHB_WAIT_CNT_5); +RTC_CTRL4_0_A3_12_4_Z690: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RCOUNT(11), +B => RCOUNT(12), +C => RCOUNT(13), +D => RCOUNT(14), +Z => RTC_CTRL4_0_A3_12_4); +RTC_CTRL4_0_A3_12_5_Z691: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RCOUNT(7), +B => RCOUNT(8), +C => RCOUNT(9), +D => RCOUNT(10), +Z => RTC_CTRL4_0_A3_12_5); +RTC_PUL5_0_A3_5_Z692: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RCOUNT(6), +B => RCOUNT(13), +C => RCOUNT(14), +D => RCOUNT(15), +Z => RTC_PUL5_0_A3_5); +RTC_PUL5_0_A3_6_Z693: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RCOUNT(9), +B => RCOUNT(10), +C => RCOUNT(11), +D => RCOUNT(12), +Z => RTC_PUL5_0_A3_6); +PCOUNT10_0_O3: LUT4 +generic map( + init => X"DDDD" +) +port map ( +A => PPUL_SYNC_P1, +B => PPUL_SYNC_P2, +C => VCC, +D => VCC, +Z => N_8); +\PHB_CNT_RNO[1]_Z695\: LUT4 +generic map( + init => X"6666" +) +port map ( +A => PHB_CNT(0), +B => PHB_CNT(1), +C => VCC, +D => VCC, +Z => PHB_CNT_RNO(1)); +RTC_CTRL4_0_O3: LUT4 +generic map( + init => X"7777" +) +port map ( +A => RCOUNT(4), +B => RCOUNT(5), +C => VCC, +D => VCC, +Z => N_6); +UNLOCK_5_Z697: LUT4 +generic map( + init => X"8888" +) +port map ( +A => PDIFF_SYNC, +B => UN13_UNLOCK_CRY_21, +C => VCC, +D => VCC, +Z => UNLOCK_5); +LOCK_5_Z698: LUT4 +generic map( + init => X"8888" +) +port map ( +A => PDIFF_SYNC, +B => UN13_LOCK_CRY_21_I, +C => VCC, +D => VCC, +Z => LOCK_5); +RHB_WAIT_CNT12_Z699: LUT4 +generic map( + init => X"2222" +) +port map ( +A => RHB_SYNC_P1, +B => RHB_SYNC_P2, +C => VCC, +D => VCC, +Z => RHB_WAIT_CNT12); +\UN1_PCOUNT_DIFF[0]_Z700\: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_0, +B => PCOUNT(0), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF(0)); +UN1_RCOUNT_1_0_A3_1_Z701: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RCOUNT(2), +B => RCOUNT(0), +C => RCOUNT(5), +D => RCOUNT(4), +Z => UN1_RCOUNT_1_0_A3_1); +RHB_SYNC_P2_RNIU9TG1: LUT4 +generic map( + init => X"7077" +) +port map ( +A => UN1_RHB_WAIT_CNT_5, +B => UN1_RHB_WAIT_CNT_4, +C => RHB_SYNC_P2, +D => RHB_SYNC_P1, +Z => \RHB_WAIT_CNT_\); +\PCOUNT_CRY_0[0]\: CCU2C +generic map( + INIT0 => X"500c", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => N_8, +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(0), +C1 => VCC, +D1 => VCC, +CIN => N_9, +COUT => PCOUNT_CRY(0), +S0 => PCOUNT_CRY_0_S0(0), +S1 => PCOUNT_S(0)); +\PCOUNT_CRY_0[1]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(1), +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(2), +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(0), +COUT => PCOUNT_CRY(2), +S0 => PCOUNT_S(1), +S1 => PCOUNT_S(2)); +\PCOUNT_CRY_0[3]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(3), +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(4), +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(2), +COUT => PCOUNT_CRY(4), +S0 => PCOUNT_S(3), +S1 => PCOUNT_S(4)); +\PCOUNT_CRY_0[5]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(5), +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(6), +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(4), +COUT => PCOUNT_CRY(6), +S0 => PCOUNT_S(5), +S1 => PCOUNT_S(6)); +\PCOUNT_CRY_0[7]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(7), +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(8), +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(6), +COUT => PCOUNT_CRY(8), +S0 => PCOUNT_S(7), +S1 => PCOUNT_S(8)); +\PCOUNT_CRY_0[9]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(9), +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(10), +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(8), +COUT => PCOUNT_CRY(10), +S0 => PCOUNT_S(9), +S1 => PCOUNT_S(10)); +\PCOUNT_CRY_0[11]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(11), +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(12), +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(10), +COUT => PCOUNT_CRY(12), +S0 => PCOUNT_S(11), +S1 => PCOUNT_S(12)); +\PCOUNT_CRY_0[13]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(13), +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(14), +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(12), +COUT => PCOUNT_CRY(14), +S0 => PCOUNT_S(13), +S1 => PCOUNT_S(14)); +\PCOUNT_CRY_0[15]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(15), +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(16), +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(14), +COUT => PCOUNT_CRY(16), +S0 => PCOUNT_S(15), +S1 => PCOUNT_S(16)); +\PCOUNT_CRY_0[17]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(17), +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(18), +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(16), +COUT => PCOUNT_CRY(18), +S0 => PCOUNT_S(17), +S1 => PCOUNT_S(18)); +\PCOUNT_CRY_0[19]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(19), +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(20), +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(18), +COUT => PCOUNT_CRY(20), +S0 => PCOUNT_S(19), +S1 => PCOUNT_S(20)); +\PCOUNT_S_0[21]\: CCU2C +generic map( + INIT0 => X"800a", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(21), +C0 => VCC, +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(20), +COUT => PCOUNT_S_0_COUT(21), +S0 => PCOUNT_S(21), +S1 => PCOUNT_S_0_S1(21)); +\RCOUNT_CRY_0[0]\: CCU2C +generic map( + INIT0 => X"5003", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => UN1_RCOUNT_1_0_A3, +C0 => VCC, +D0 => VCC, +A1 => UN1_RCOUNT_1_0_A3, +B1 => RCOUNT(0), +C1 => VCC, +D1 => VCC, +CIN => N_5, +COUT => RCOUNT_CRY(0), +S0 => RCOUNT_CRY_0_S0(0), +S1 => RCOUNT_S(0)); +\RCOUNT_CRY_0[1]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_RCOUNT_1_0_A3, +B0 => RCOUNT(1), +C0 => VCC, +D0 => VCC, +A1 => UN1_RCOUNT_1_0_A3, +B1 => RCOUNT(2), +C1 => VCC, +D1 => VCC, +CIN => RCOUNT_CRY(0), +COUT => RCOUNT_CRY(2), +S0 => RCOUNT_S(1), +S1 => RCOUNT_S(2)); +\RCOUNT_CRY_0[3]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_RCOUNT_1_0_A3, +B0 => RCOUNT(3), +C0 => VCC, +D0 => VCC, +A1 => UN1_RCOUNT_1_0_A3, +B1 => RCOUNT(4), +C1 => VCC, +D1 => VCC, +CIN => RCOUNT_CRY(2), +COUT => RCOUNT_CRY(4), +S0 => RCOUNT_S(3), +S1 => RCOUNT_S(4)); +\RCOUNT_CRY_0[5]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_RCOUNT_1_0_A3, +B0 => RCOUNT(5), +C0 => VCC, +D0 => VCC, +A1 => UN1_RCOUNT_1_0_A3, +B1 => RCOUNT(6), +C1 => VCC, +D1 => VCC, +CIN => RCOUNT_CRY(4), +COUT => RCOUNT_CRY(6), +S0 => RCOUNT_S(5), +S1 => RCOUNT_S(6)); +\RCOUNT_CRY_0[7]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_RCOUNT_1_0_A3, +B0 => RCOUNT(7), +C0 => VCC, +D0 => VCC, +A1 => UN1_RCOUNT_1_0_A3, +B1 => RCOUNT(8), +C1 => VCC, +D1 => VCC, +CIN => RCOUNT_CRY(6), +COUT => RCOUNT_CRY(8), +S0 => RCOUNT_S(7), +S1 => RCOUNT_S(8)); +\RCOUNT_CRY_0[9]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_RCOUNT_1_0_A3, +B0 => RCOUNT(9), +C0 => VCC, +D0 => VCC, +A1 => UN1_RCOUNT_1_0_A3, +B1 => RCOUNT(10), +C1 => VCC, +D1 => VCC, +CIN => RCOUNT_CRY(8), +COUT => RCOUNT_CRY(10), +S0 => RCOUNT_S(9), +S1 => RCOUNT_S(10)); +\RCOUNT_CRY_0[11]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_RCOUNT_1_0_A3, +B0 => RCOUNT(11), +C0 => VCC, +D0 => VCC, +A1 => UN1_RCOUNT_1_0_A3, +B1 => RCOUNT(12), +C1 => VCC, +D1 => VCC, +CIN => RCOUNT_CRY(10), +COUT => RCOUNT_CRY(12), +S0 => RCOUNT_S(11), +S1 => RCOUNT_S(12)); +\RCOUNT_CRY_0[13]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_RCOUNT_1_0_A3, +B0 => RCOUNT(13), +C0 => VCC, +D0 => VCC, +A1 => UN1_RCOUNT_1_0_A3, +B1 => RCOUNT(14), +C1 => VCC, +D1 => VCC, +CIN => RCOUNT_CRY(12), +COUT => RCOUNT_CRY(14), +S0 => RCOUNT_S(13), +S1 => RCOUNT_S(14)); +\RCOUNT_S_0[15]\: CCU2C +generic map( + INIT0 => X"4005", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_RCOUNT_1_0_A3, +B0 => RCOUNT(15), +C0 => VCC, +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => RCOUNT_CRY(14), +COUT => RCOUNT_S_0_COUT(15), +S0 => RCOUNT_S(15), +S1 => RCOUNT_S_0_S1(15)); +\RHB_WAIT_CNT_CRY_0[0]\: CCU2C +generic map( + INIT0 => X"500c", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => \RHB_WAIT_CNT_\, +C0 => VCC, +D0 => VCC, +A1 => \RHB_WAIT_CNT_\, +B1 => RHB_WAIT_CNT(0), +C1 => VCC, +D1 => VCC, +CIN => N_4, +COUT => RHB_WAIT_CNT_CRY(0), +S0 => RHB_WAIT_CNT_CRY_0_S0(0), +S1 => RHB_WAIT_CNT_S(0)); +\RHB_WAIT_CNT_CRY_0[1]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RHB_WAIT_CNT_\, +B0 => RHB_WAIT_CNT(1), +C0 => VCC, +D0 => VCC, +A1 => \RHB_WAIT_CNT_\, +B1 => RHB_WAIT_CNT(2), +C1 => VCC, +D1 => VCC, +CIN => RHB_WAIT_CNT_CRY(0), +COUT => RHB_WAIT_CNT_CRY(2), +S0 => RHB_WAIT_CNT_S(1), +S1 => RHB_WAIT_CNT_S(2)); +\RHB_WAIT_CNT_CRY_0[3]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RHB_WAIT_CNT_\, +B0 => RHB_WAIT_CNT(3), +C0 => VCC, +D0 => VCC, +A1 => \RHB_WAIT_CNT_\, +B1 => RHB_WAIT_CNT(4), +C1 => VCC, +D1 => VCC, +CIN => RHB_WAIT_CNT_CRY(2), +COUT => RHB_WAIT_CNT_CRY(4), +S0 => RHB_WAIT_CNT_S(3), +S1 => RHB_WAIT_CNT_S(4)); +\RHB_WAIT_CNT_CRY_0[5]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RHB_WAIT_CNT_\, +B0 => RHB_WAIT_CNT(5), +C0 => VCC, +D0 => VCC, +A1 => \RHB_WAIT_CNT_\, +B1 => RHB_WAIT_CNT(6), +C1 => VCC, +D1 => VCC, +CIN => RHB_WAIT_CNT_CRY(4), +COUT => RHB_WAIT_CNT_CRY(6), +S0 => RHB_WAIT_CNT_S(5), +S1 => RHB_WAIT_CNT_S(6)); +\RHB_WAIT_CNT_S_0[7]\: CCU2C +generic map( + INIT0 => X"800a", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RHB_WAIT_CNT_\, +B0 => RHB_WAIT_CNT(7), +C0 => VCC, +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => RHB_WAIT_CNT_CRY(6), +COUT => RHB_WAIT_CNT_S_0_COUT(7), +S0 => RHB_WAIT_CNT_S(7), +S1 => RHB_WAIT_CNT_S_0_S1(7)); +UN1_PCOUNT_DIFF_1_CRY_0_0: CCU2C +generic map( + INIT0 => X"5003", + INIT1 => X"500f", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF(0), +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => N_3, +COUT => UN1_PCOUNT_DIFF_1_CRY_0, +S0 => UN1_PCOUNT_DIFF_1_CRY_0_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_0_0_S1); +UN1_PCOUNT_DIFF_1_CRY_1_0: CCU2C +generic map( + INIT0 => X"a003", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_PCOUNT_DIFF_1_AXB_1, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF_1_AXB_2, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_0, +COUT => UN1_PCOUNT_DIFF_1_CRY_2, +S0 => UN1_PCOUNT_DIFF_1_CRY_1_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_1_0_S1); +UN1_PCOUNT_DIFF_1_CRY_3_0: CCU2C +generic map( + INIT0 => X"a003", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_PCOUNT_DIFF_1_AXB_3, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF_1_AXB_4, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_2, +COUT => UN1_PCOUNT_DIFF_1_CRY_4, +S0 => UN1_PCOUNT_DIFF_1_CRY_3_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_3_0_S1); +UN1_PCOUNT_DIFF_1_CRY_5_0: CCU2C +generic map( + INIT0 => X"a003", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_PCOUNT_DIFF_1_AXB_5, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF_1_AXB_6, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_4, +COUT => UN1_PCOUNT_DIFF_1_CRY_6, +S0 => UN1_PCOUNT_DIFF_1_CRY_5_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_5_0_S1); +UN1_PCOUNT_DIFF_1_CRY_7_0: CCU2C +generic map( + INIT0 => X"a003", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_PCOUNT_DIFF_1_AXB_7, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF_1_AXB_8, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_6, +COUT => UN1_PCOUNT_DIFF_1_CRY_8, +S0 => UN1_PCOUNT_DIFF_1_CRY_7_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_7_0_S1); +UN1_PCOUNT_DIFF_1_CRY_9_0: CCU2C +generic map( + INIT0 => X"a003", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_PCOUNT_DIFF_1_AXB_9, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF_1_AXB_10, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_8, +COUT => UN1_PCOUNT_DIFF_1_CRY_10, +S0 => UN1_PCOUNT_DIFF_1_CRY_9_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_9_0_S1); +UN1_PCOUNT_DIFF_1_CRY_11_0: CCU2C +generic map( + INIT0 => X"a003", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_PCOUNT_DIFF_1_AXB_11, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF_1_AXB_12, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_10, +COUT => UN1_PCOUNT_DIFF_1_CRY_12, +S0 => UN1_PCOUNT_DIFF_1_CRY_11_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_11_0_S1); +UN1_PCOUNT_DIFF_1_CRY_13_0: CCU2C +generic map( + INIT0 => X"a003", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_PCOUNT_DIFF_1_AXB_13, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF_1_AXB_14, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_12, +COUT => UN1_PCOUNT_DIFF_1_CRY_14, +S0 => UN1_PCOUNT_DIFF_1_CRY_13_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_13_0_S1); +UN1_PCOUNT_DIFF_1_CRY_15_0: CCU2C +generic map( + INIT0 => X"a003", + INIT1 => X"b404", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_PCOUNT_DIFF_1_AXB_15, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => RDIFF_COMP_LOCK(2), +C1 => UN1_PCOUNT_DIFF_1_CRY_15_0_RNO_0, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_14, +COUT => UN1_PCOUNT_DIFF_1_CRY_16, +S0 => UN1_PCOUNT_DIFF_1_CRY_15_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_15_0_S1); +UN1_PCOUNT_DIFF_1_CRY_17_0: CCU2C +generic map( + INIT0 => X"a003", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_PCOUNT_DIFF_1_AXB_17, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF_1_AXB_18, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_16, +COUT => UN1_PCOUNT_DIFF_1_CRY_18, +S0 => UN1_PCOUNT_DIFF_1_CRY_17_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_17_0_S1); +UN1_PCOUNT_DIFF_1_CRY_19_0: CCU2C +generic map( + INIT0 => X"a003", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_PCOUNT_DIFF_1_AXB_19, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF_1_AXB_20, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_18, +COUT => UN1_PCOUNT_DIFF_1_CRY_20, +S0 => UN1_PCOUNT_DIFF_1_CRY_19_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_19_0_S1); +UN1_PCOUNT_DIFF_1_S_21_0: CCU2C +generic map( + INIT0 => X"350a", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => PCOUNT(21), +B0 => UN13_LOCK_21, +C0 => N_8, +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_20, +COUT => UN1_PCOUNT_DIFF_1_S_21_0_COUT, +S0 => UN1_PCOUNT_DIFF_1_S_21_0_S0, +S1 => UN1_PCOUNT_DIFF_1_S_21_0_S1); +UN13_LOCK_CRY_0_0: CCU2C +generic map( + INIT0 => X"5003", + INIT1 => X"900a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_0, +B1 => RDIFF_COMP_LOCK(2), +C1 => VCC, +D1 => VCC, +CIN => N_2, +COUT => UN13_LOCK_CRY_0, +S0 => UN13_LOCK_CRY_0_0_S0, +S1 => UN13_LOCK_CRY_0_0_S1); +UN13_LOCK_CRY_1_0: CCU2C +generic map( + INIT0 => X"900a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_1, +B0 => RDIFF_COMP_LOCK(2), +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_2, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_0, +COUT => UN13_LOCK_CRY_2, +S0 => UN13_LOCK_CRY_1_0_S0, +S1 => UN13_LOCK_CRY_1_0_S1); +UN13_LOCK_CRY_3_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"900a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_3, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_4, +B1 => RDIFF_COMP_LOCK(2), +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_2, +COUT => UN13_LOCK_CRY_4, +S0 => UN13_LOCK_CRY_3_0_S0, +S1 => UN13_LOCK_CRY_3_0_S1); +UN13_LOCK_CRY_5_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_5, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_6, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_4, +COUT => UN13_LOCK_CRY_6, +S0 => UN13_LOCK_CRY_5_0_S0, +S1 => UN13_LOCK_CRY_5_0_S1); +UN13_LOCK_CRY_7_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_7, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_8, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_6, +COUT => UN13_LOCK_CRY_8, +S0 => UN13_LOCK_CRY_7_0_S0, +S1 => UN13_LOCK_CRY_7_0_S1); +UN13_LOCK_CRY_9_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_9, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_10, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_8, +COUT => UN13_LOCK_CRY_10, +S0 => UN13_LOCK_CRY_9_0_S0, +S1 => UN13_LOCK_CRY_9_0_S1); +UN13_LOCK_CRY_11_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_11, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_12, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_10, +COUT => UN13_LOCK_CRY_12, +S0 => UN13_LOCK_CRY_11_0_S0, +S1 => UN13_LOCK_CRY_11_0_S1); +UN13_LOCK_CRY_13_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_13, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_14, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_12, +COUT => UN13_LOCK_CRY_14, +S0 => UN13_LOCK_CRY_13_0_S0, +S1 => UN13_LOCK_CRY_13_0_S1); +UN13_LOCK_CRY_15_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_15, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_16, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_14, +COUT => UN13_LOCK_CRY_16, +S0 => UN13_LOCK_CRY_15_0_S0, +S1 => UN13_LOCK_CRY_15_0_S1); +UN13_LOCK_CRY_17_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_17, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_18, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_16, +COUT => UN13_LOCK_CRY_18, +S0 => UN13_LOCK_CRY_17_0_S0, +S1 => UN13_LOCK_CRY_17_0_S1); +UN13_LOCK_CRY_19_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_19, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_20, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_18, +COUT => UN13_LOCK_CRY_20, +S0 => UN13_LOCK_CRY_19_0_S0, +S1 => UN13_LOCK_CRY_19_0_S1); +UN13_LOCK_CRY_21_0: CCU2C +generic map( + INIT0 => X"500f", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_21, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_20, +COUT => UN13_LOCK_CRY_21_0_COUT, +S0 => UN13_LOCK_CRY_21_0_S0, +S1 => UN13_LOCK_CRY_21_I); +UN13_UNLOCK_CRY_0_0: CCU2C +generic map( + INIT0 => X"5003", + INIT1 => X"900a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_0, +B1 => RDIFF_COMP_LOCK(2), +C1 => VCC, +D1 => VCC, +CIN => N_1, +COUT => UN13_UNLOCK_CRY_0, +S0 => UN13_UNLOCK_CRY_0_0_S0, +S1 => UN13_UNLOCK_CRY_0_0_S1); +UN13_UNLOCK_CRY_1_0: CCU2C +generic map( + INIT0 => X"900a", + INIT1 => X"900a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_1, +B0 => RDIFF_COMP_LOCK(2), +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_2, +B1 => RDIFF_COMP_LOCK(2), +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_0, +COUT => UN13_UNLOCK_CRY_2, +S0 => UN13_UNLOCK_CRY_1_0_S0, +S1 => UN13_UNLOCK_CRY_1_0_S1); +UN13_UNLOCK_CRY_3_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_3, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_4, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_2, +COUT => UN13_UNLOCK_CRY_4, +S0 => UN13_UNLOCK_CRY_3_0_S0, +S1 => UN13_UNLOCK_CRY_3_0_S1); +UN13_UNLOCK_CRY_5_0: CCU2C +generic map( + INIT0 => X"900a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_5, +B0 => RDIFF_COMP_LOCK(2), +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_6, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_4, +COUT => UN13_UNLOCK_CRY_6, +S0 => UN13_UNLOCK_CRY_5_0_S0, +S1 => UN13_UNLOCK_CRY_5_0_S1); +UN13_UNLOCK_CRY_7_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_7, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_8, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_6, +COUT => UN13_UNLOCK_CRY_8, +S0 => UN13_UNLOCK_CRY_7_0_S0, +S1 => UN13_UNLOCK_CRY_7_0_S1); +UN13_UNLOCK_CRY_9_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_9, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_10, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_8, +COUT => UN13_UNLOCK_CRY_10, +S0 => UN13_UNLOCK_CRY_9_0_S0, +S1 => UN13_UNLOCK_CRY_9_0_S1); +UN13_UNLOCK_CRY_11_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_11, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_12, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_10, +COUT => UN13_UNLOCK_CRY_12, +S0 => UN13_UNLOCK_CRY_11_0_S0, +S1 => UN13_UNLOCK_CRY_11_0_S1); +UN13_UNLOCK_CRY_13_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_13, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_14, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_12, +COUT => UN13_UNLOCK_CRY_14, +S0 => UN13_UNLOCK_CRY_13_0_S0, +S1 => UN13_UNLOCK_CRY_13_0_S1); +UN13_UNLOCK_CRY_15_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_15, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_16, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_14, +COUT => UN13_UNLOCK_CRY_16, +S0 => UN13_UNLOCK_CRY_15_0_S0, +S1 => UN13_UNLOCK_CRY_15_0_S1); +UN13_UNLOCK_CRY_17_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_17, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_18, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_16, +COUT => UN13_UNLOCK_CRY_18, +S0 => UN13_UNLOCK_CRY_17_0_S0, +S1 => UN13_UNLOCK_CRY_17_0_S1); +UN13_UNLOCK_CRY_19_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_19, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_20, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_18, +COUT => UN13_UNLOCK_CRY_20, +S0 => UN13_UNLOCK_CRY_19_0_S0, +S1 => UN13_UNLOCK_CRY_19_0_S1); +UN13_UNLOCK_CRY_21_0: CCU2C +generic map( + INIT0 => X"500f", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_21, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_20, +COUT => UN13_UNLOCK_CRY_21_0_COUT, +S0 => UN13_UNLOCK_CRY_21_0_S0, +S1 => UN13_UNLOCK_CRY_21); +PHB_SYNC_INST: sync_0s port map ( +phb => PHB, +rhb_sync => RHB_SYNC, +sli_rst => sli_rst, +pll_refclki => pll_refclki); +RTC_SYNC_INST: sync_0s_6 port map ( +rtc_pul => RTC_PUL, +ppul_sync => PPUL_SYNC, +sli_rst => sli_rst, +tx_pclk => tx_pclk); +PDIFF_SYNC_INST: sync_0s_0 port map ( +ppul_sync => PPUL_SYNC, +pdiff_sync => PDIFF_SYNC, +sli_rst => sli_rst, +pll_refclki => pll_refclki); +VCC_0: VHI port map ( +Z => VCC); +II_GND: VLO port map ( +Z => GND); +end beh; + +-- +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; +library synplify; +use synplify.components.all; +library pmi; +use pmi.pmi_components.all; +library ecp5um; +use ecp5um.components.all; + +entity sgmii_ecp5 is +port( +hdoutp : out std_logic; +hdoutn : out std_logic; +hdinp : in std_logic; +hdinn : in std_logic; +rxrefclk : in std_logic; +tx_pclk : out std_logic; +txi_clk : in std_logic; +txdata : in std_logic_vector(7 downto 0); +tx_k : in std_logic_vector(0 downto 0); +xmit : in std_logic_vector(0 downto 0); +tx_disp_correct : in std_logic_vector(0 downto 0); +rxdata : out std_logic_vector(7 downto 0); +rx_k : out std_logic_vector(0 downto 0); +rx_disp_err : out std_logic_vector(0 downto 0); +rx_cv_err : out std_logic_vector(0 downto 0); +signal_detect_c : in std_logic; +rx_los_low_s : out std_logic; +lsm_status_s : out std_logic; +ctc_urun_s : out std_logic; +ctc_orun_s : out std_logic; +rx_cdr_lol_s : out std_logic; +ctc_ins_s : out std_logic; +ctc_del_s : out std_logic; +sli_rst : in std_logic; +tx_pwrup_c : in std_logic; +rx_pwrup_c : in std_logic; +sci_wrdata : in std_logic_vector(7 downto 0); +sci_addr : in std_logic_vector(5 downto 0); +sci_rddata : out std_logic_vector(7 downto 0); +sci_en_dual : in std_logic; +sci_sel_dual : in std_logic; +sci_en : in std_logic; +sci_sel : in std_logic; +sci_rd : in std_logic; +sci_wrn : in std_logic; +sci_int : out std_logic; +cyawstn : in std_logic; +serdes_pdb : in std_logic; +pll_refclki : in std_logic; +rsl_disable : in std_logic; +rsl_rst : in std_logic; +serdes_rst_dual_c : in std_logic; +rst_dual_c : in std_logic; +tx_serdes_rst_c : in std_logic; +tx_pcs_rst_c : in std_logic; +pll_lol : out std_logic; +rsl_tx_rdy : out std_logic; +rx_serdes_rst_c : in std_logic; +rx_pcs_rst_c : in std_logic; +rsl_rx_rdy : out std_logic); +end sgmii_ecp5; + +architecture beh of sgmii_ecp5 is +signal TX_PCLK_11 : std_logic ; +signal RX_LOS_LOW_S_12 : std_logic ; +signal RX_CDR_LOL_S_13 : std_logic ; +signal RSL_TX_PCS_RST_C : std_logic ; +signal RSL_RX_PCS_RST_C : std_logic ; +signal RSL_RX_SERDES_RST_C : std_logic ; +signal RSL_SERDES_RST_DUAL_C : std_logic ; +signal RSL_TX_SERDES_RST_C : std_logic ; +signal N47_1 : std_logic ; +signal N48_1 : std_logic ; +signal N1_1 : std_logic ; +signal N2_1 : std_logic ; +signal N3_1 : std_logic ; +signal N4_1 : std_logic ; +signal N5_1 : std_logic ; +signal N49_1 : std_logic ; +signal N6_1 : std_logic ; +signal N50_1 : std_logic ; +signal N7_1 : std_logic ; +signal N51_1 : std_logic ; +signal N8_1 : std_logic ; +signal N52_1 : std_logic ; +signal N9_1 : std_logic ; +signal N53_1 : std_logic ; +signal N54_1 : std_logic ; +signal N55_1 : std_logic ; +signal N56_1 : std_logic ; +signal N57_1 : std_logic ; +signal N58_1 : std_logic ; +signal N59_1 : std_logic ; +signal N60_1 : std_logic ; +signal N61_1 : std_logic ; +signal N62_1 : std_logic ; +signal N63_1 : std_logic ; +signal N64_1 : std_logic ; +signal N65_1 : std_logic ; +signal N10_1 : std_logic ; +signal N66_1 : std_logic ; +signal N67_1 : std_logic ; +signal N68_1 : std_logic ; +signal N69_1 : std_logic ; +signal N70_1 : std_logic ; +signal N71_1 : std_logic ; +signal N72_1 : std_logic ; +signal N73_1 : std_logic ; +signal N74_1 : std_logic ; +signal N75_1 : std_logic ; +signal N76_1 : std_logic ; +signal N77_1 : std_logic ; +signal N78_1 : std_logic ; +signal N79_1 : std_logic ; +signal N80_1 : std_logic ; +signal N81_1 : std_logic ; +signal N82_1 : std_logic ; +signal N83_1 : std_logic ; +signal N84_1 : std_logic ; +signal N85_1 : std_logic ; +signal N86_1 : std_logic ; +signal N87_1 : std_logic ; +signal N88_1 : std_logic ; +signal N11_1 : std_logic ; +signal N89_1 : std_logic ; +signal N12_1 : std_logic ; +signal N90_1 : std_logic ; +signal N13_1 : std_logic ; +signal N91_1 : std_logic ; +signal N92_1 : std_logic ; +signal N93_1 : std_logic ; +signal N94_1 : std_logic ; +signal N95_1 : std_logic ; +signal N14_1 : std_logic ; +signal N96_1 : std_logic ; +signal N15_1 : std_logic ; +signal N97_1 : std_logic ; +signal N98_1 : std_logic ; +signal N99_1 : std_logic ; +signal N100_1 : std_logic ; +signal N101_1 : std_logic ; +signal N112_1 : std_logic ; +signal N16_1 : std_logic ; +signal N17_1 : std_logic ; +signal N18_1 : std_logic ; +signal N19_1 : std_logic ; +signal N20_1 : std_logic ; +signal N21_1 : std_logic ; +signal N22_1 : std_logic ; +signal N23_1 : std_logic ; +signal N24_1 : std_logic ; +signal N25_1 : std_logic ; +signal N26_1 : std_logic ; +signal N27_1 : std_logic ; +signal N28_1 : std_logic ; +signal N29_1 : std_logic ; +signal N30_1 : std_logic ; +signal N31_1 : std_logic ; +signal N32_1 : std_logic ; +signal N33_1 : std_logic ; +signal N34_1 : std_logic ; +signal N35_1 : std_logic ; +signal N36_1 : std_logic ; +signal N37_1 : std_logic ; +signal N38_1 : std_logic ; +signal N39_1 : std_logic ; +signal N40_1 : std_logic ; +signal N41_1 : std_logic ; +signal N42_1 : std_logic ; +signal N43_1 : std_logic ; +signal N46_1 : std_logic ; +signal TX_PCLK_I : std_logic ; +signal GND : std_logic ; +signal VCC : std_logic ; +signal \SLL_INST.PLL_LOCK_I_14\ : std_logic ; +component sgmii_ecp5sll_core_Z1_layer1 +port( +tx_pclk : in std_logic; +sli_rst : in std_logic; +pll_refclki : in std_logic; +pll_lock_i : out std_logic ); +end component; +component sgmii_ecp5rsl_core_Z2_layer1 +port( +rx_pcs_rst_c : in std_logic; +tx_pcs_rst_c : in std_logic; +serdes_rst_dual_c : in std_logic; +tx_serdes_rst_c : in std_logic; +rsl_rx_pcs_rst_c : out std_logic; +rsl_tx_pcs_rst_c : out std_logic; +rsl_tx_serdes_rst_c : out std_logic; +rsl_tx_rdy : out std_logic; +pll_lock_i : in std_logic; +pll_refclki : in std_logic; +rsl_rx_rdy : out std_logic; +rsl_rst : in std_logic; +rxrefclk : in std_logic; +rsl_disable : in std_logic; +rx_serdes_rst_c : in std_logic; +rst_dual_c : in std_logic; +rx_cdr_lol_s : in std_logic; +rx_los_low_s : in std_logic; +rsl_rx_serdes_rst_c : out std_logic; +rsl_serdes_rst_dual_c : out std_logic ); +end component; +begin +VCC_0: VHI port map ( +Z => VCC); +GND_0: VLO port map ( +Z => GND); +PUR_INST: PUR port map ( +PUR => VCC); +GSR_INST: GSR port map ( +GSR => VCC); +TX_PCLK_11 <= TX_PCLK_I; +DCU0_INST: DCUA +generic map( + D_MACROPDB => "0b1", + D_IB_PWDNB => "0b1", + D_XGE_MODE => "0b0", + D_LOW_MARK => "0d4", + D_HIGH_MARK => "0d12", + D_BUS8BIT_SEL => "0b0", + D_CDR_LOL_SET => "0b00", + D_BITCLK_LOCAL_EN => "0b1", + D_BITCLK_ND_EN => "0b0", + D_BITCLK_FROM_ND_EN => "0b0", + D_SYNC_LOCAL_EN => "0b1", + D_SYNC_ND_EN => "0b0", + CH0_UC_MODE => "0b0", + CH0_PCIE_MODE => "0b0", + CH0_RIO_MODE => "0b0", + CH0_WA_MODE => "0b0", + CH0_INVERT_RX => "0b0", + CH0_INVERT_TX => "0b0", + CH0_PRBS_SELECTION => "0b0", + CH0_GE_AN_ENABLE => "0b0", + CH0_PRBS_LOCK => "0b0", + CH0_PRBS_ENABLE => "0b0", + CH0_ENABLE_CG_ALIGN => "0b1", + CH0_TX_GEAR_MODE => "0b0", + CH0_RX_GEAR_MODE => "0b0", + CH0_PCS_DET_TIME_SEL => "0b00", + CH0_PCIE_EI_EN => "0b0", + CH0_TX_GEAR_BYPASS => "0b0", + CH0_ENC_BYPASS => "0b0", + CH0_SB_BYPASS => "0b0", + CH0_RX_SB_BYPASS => "0b0", + CH0_WA_BYPASS => "0b0", + CH0_DEC_BYPASS => "0b0", + CH0_CTC_BYPASS => "0b0", + CH0_RX_GEAR_BYPASS => "0b0", + CH0_LSM_DISABLE => "0b0", + CH0_MATCH_2_ENABLE => "0b1", + CH0_MATCH_4_ENABLE => "0b0", + CH0_MIN_IPG_CNT => "0b11", + CH0_CC_MATCH_1 => "0x000", + CH0_CC_MATCH_2 => "0x000", + CH0_CC_MATCH_3 => "0x1BC", + CH0_CC_MATCH_4 => "0x050", + CH0_UDF_COMMA_MASK => "0x3ff", + CH0_UDF_COMMA_A => "0x283", + CH0_UDF_COMMA_B => "0x17C", + CH0_RX_DCO_CK_DIV => "0b000", + CH0_RCV_DCC_EN => "0b0", + CH0_REQ_LVL_SET => "0b00", + CH0_REQ_EN => "0b1", + CH0_RTERM_RX => "0d22", + CH0_PDEN_SEL => "0b1", + CH0_LDR_RX2CORE_SEL => "0b0", + CH0_LDR_CORE2TX_SEL => "0b0", + CH0_TPWDNB => "0b1", + CH0_RATE_MODE_TX => "0b0", + CH0_RTERM_TX => "0d19", + CH0_TX_CM_SEL => "0b00", + CH0_TDRV_PRE_EN => "0b0", + CH0_TDRV_SLICE0_SEL => "0b01", + CH0_TDRV_SLICE1_SEL => "0b00", + CH0_TDRV_SLICE2_SEL => "0b01", + CH0_TDRV_SLICE3_SEL => "0b01", + CH0_TDRV_SLICE4_SEL => "0b01", + CH0_TDRV_SLICE5_SEL => "0b01", + CH0_TDRV_SLICE0_CUR => "0b101", + CH0_TDRV_SLICE1_CUR => "0b000", + CH0_TDRV_SLICE2_CUR => "0b11", + CH0_TDRV_SLICE3_CUR => "0b11", + CH0_TDRV_SLICE4_CUR => "0b11", + CH0_TDRV_SLICE5_CUR => "0b00", + CH0_TDRV_DAT_SEL => "0b00", + CH0_TX_DIV11_SEL => "0b0", + CH0_RPWDNB => "0b1", + CH0_RATE_MODE_RX => "0b0", + CH0_RLOS_SEL => "0b1", + CH0_RX_LOS_LVL => "0b010", + CH0_RX_LOS_CEQ => "0b11", + CH0_RX_LOS_HYST_EN => "0b0", + CH0_RX_LOS_EN => "0b1", + CH0_RX_DIV11_SEL => "0b0", + CH0_SEL_SD_RX_CLK => "0b0", + CH0_FF_RX_H_CLK_EN => "0b0", + CH0_FF_RX_F_CLK_DIS => "0b0", + CH0_FF_TX_H_CLK_EN => "0b0", + CH0_FF_TX_F_CLK_DIS => "0b0", + CH0_RX_RATE_SEL => "0d8", + CH0_TDRV_POST_EN => "0b0", + CH0_TX_POST_SIGN => "0b0", + CH0_TX_PRE_SIGN => "0b0", + CH0_RXTERM_CM => "0b11", + CH0_RXIN_CM => "0b11", + CH0_LEQ_OFFSET_SEL => "0b0", + CH0_LEQ_OFFSET_TRIM => "0b000", + D_TX_MAX_RATE => "2", + CH0_CDR_MAX_RATE => "2", + CH0_TXAMPLITUDE => "0d1100", + CH0_TXDEPRE => "DISABLED", + CH0_TXDEPOST => "DISABLED", + CH0_PROTOCOL => "GBE", + D_ISETLOS => "0d0", + D_SETIRPOLY_AUX => "0b00", + D_SETICONST_AUX => "0b00", + D_SETIRPOLY_CH => "0b00", + D_SETICONST_CH => "0b00", + D_REQ_ISET => "0b000", + D_PD_ISET => "0b00", + D_DCO_CALIB_TIME_SEL => "0b00", + CH0_DCOCTLGI => "0b010", + CH0_DCOATDDLY => "0b00", + CH0_DCOATDCFG => "0b00", + CH0_DCOBYPSATD => "0b1", + CH0_DCOSCALEI => "0b00", + CH0_DCOITUNE4LSB => "0b111", + CH0_DCOIOSTUNE => "0b000", + CH0_DCODISBDAVOID => "0b0", + CH0_DCOCALDIV => "0b001", + CH0_DCONUOFLSB => "0b101", + CH0_DCOIUPDNX2 => "0b1", + CH0_DCOSTEP => "0b00", + CH0_DCOSTARTVAL => "0b000", + CH0_DCOFLTDAC => "0b01", + CH0_DCOITUNE => "0b00", + CH0_DCOFTNRG => "0b110", + CH0_CDR_CNT4SEL => "0b00", + CH0_CDR_CNT8SEL => "0b00", + CH0_BAND_THRESHOLD => "0d0", + CH0_AUTO_FACQ_EN => "0b1", + CH0_AUTO_CALIB_EN => "0b1", + CH0_CALIB_CK_MODE => "0b0", + CH0_REG_BAND_OFFSET => "0d0", + CH0_REG_BAND_SEL => "0d0", + CH0_REG_IDAC_SEL => "0d0", + CH0_REG_IDAC_EN => "0b0", + D_TXPLL_PWDNB => "0b1", + D_SETPLLRC => "0d1", + D_REFCK_MODE => "0b001", + D_TX_VCO_CK_DIV => "0b000", + D_PLL_LOL_SET => "0b00", + D_RG_EN => "0b0", + D_RG_SET => "0b00", + D_CMUSETISCL4VCO => "0b000", + D_CMUSETI4VCO => "0b00", + D_CMUSETINITVCT => "0b00", + D_CMUSETZGM => "0b000", + D_CMUSETP2AGM => "0b000", + D_CMUSETP1GM => "0b000", + D_CMUSETI4CPZ => "0d3", + D_CMUSETI4CPP => "0d3", + D_CMUSETICP4Z => "0b101", + D_CMUSETICP4P => "0b01", + D_CMUSETBIASI => "0b00" +) +port map ( +CH0_HDINP => hdinp, +CH1_HDINP => GND, +CH0_HDINN => hdinn, +CH1_HDINN => GND, +D_TXBIT_CLKP_FROM_ND => GND, +D_TXBIT_CLKN_FROM_ND => GND, +D_SYNC_ND => GND, +D_TXPLL_LOL_FROM_ND => GND, +CH0_RX_REFCLK => rxrefclk, +CH1_RX_REFCLK => GND, +CH0_FF_RXI_CLK => TX_PCLK_11, +CH1_FF_RXI_CLK => VCC, +CH0_FF_TXI_CLK => txi_clk, +CH1_FF_TXI_CLK => VCC, +CH0_FF_EBRD_CLK => TX_PCLK_11, +CH1_FF_EBRD_CLK => VCC, +CH0_FF_TX_D_0 => txdata(0), +CH1_FF_TX_D_0 => GND, +CH0_FF_TX_D_1 => txdata(1), +CH1_FF_TX_D_1 => GND, +CH0_FF_TX_D_2 => txdata(2), +CH1_FF_TX_D_2 => GND, +CH0_FF_TX_D_3 => txdata(3), +CH1_FF_TX_D_3 => GND, +CH0_FF_TX_D_4 => txdata(4), +CH1_FF_TX_D_4 => GND, +CH0_FF_TX_D_5 => txdata(5), +CH1_FF_TX_D_5 => GND, +CH0_FF_TX_D_6 => txdata(6), +CH1_FF_TX_D_6 => GND, +CH0_FF_TX_D_7 => txdata(7), +CH1_FF_TX_D_7 => GND, +CH0_FF_TX_D_8 => tx_k(0), +CH1_FF_TX_D_8 => GND, +CH0_FF_TX_D_9 => GND, +CH1_FF_TX_D_9 => GND, +CH0_FF_TX_D_10 => xmit(0), +CH1_FF_TX_D_10 => GND, +CH0_FF_TX_D_11 => tx_disp_correct(0), +CH1_FF_TX_D_11 => GND, +CH0_FF_TX_D_12 => GND, +CH1_FF_TX_D_12 => GND, +CH0_FF_TX_D_13 => GND, +CH1_FF_TX_D_13 => GND, +CH0_FF_TX_D_14 => GND, +CH1_FF_TX_D_14 => GND, +CH0_FF_TX_D_15 => GND, +CH1_FF_TX_D_15 => GND, +CH0_FF_TX_D_16 => GND, +CH1_FF_TX_D_16 => GND, +CH0_FF_TX_D_17 => GND, +CH1_FF_TX_D_17 => GND, +CH0_FF_TX_D_18 => GND, +CH1_FF_TX_D_18 => GND, +CH0_FF_TX_D_19 => GND, +CH1_FF_TX_D_19 => GND, +CH0_FF_TX_D_20 => GND, +CH1_FF_TX_D_20 => GND, +CH0_FF_TX_D_21 => GND, +CH1_FF_TX_D_21 => GND, +CH0_FF_TX_D_22 => GND, +CH1_FF_TX_D_22 => GND, +CH0_FF_TX_D_23 => GND, +CH1_FF_TX_D_23 => GND, +CH0_FFC_EI_EN => GND, +CH1_FFC_EI_EN => GND, +CH0_FFC_PCIE_DET_EN => GND, +CH1_FFC_PCIE_DET_EN => GND, +CH0_FFC_PCIE_CT => GND, +CH1_FFC_PCIE_CT => GND, +CH0_FFC_SB_INV_RX => GND, +CH1_FFC_SB_INV_RX => GND, +CH0_FFC_ENABLE_CGALIGN => GND, +CH1_FFC_ENABLE_CGALIGN => GND, +CH0_FFC_SIGNAL_DETECT => signal_detect_c, +CH1_FFC_SIGNAL_DETECT => GND, +CH0_FFC_FB_LOOPBACK => GND, +CH1_FFC_FB_LOOPBACK => GND, +CH0_FFC_SB_PFIFO_LP => GND, +CH1_FFC_SB_PFIFO_LP => GND, +CH0_FFC_PFIFO_CLR => GND, +CH1_FFC_PFIFO_CLR => GND, +CH0_FFC_RATE_MODE_RX => GND, +CH1_FFC_RATE_MODE_RX => GND, +CH0_FFC_RATE_MODE_TX => GND, +CH1_FFC_RATE_MODE_TX => GND, +CH0_FFC_DIV11_MODE_RX => GND, +CH1_FFC_DIV11_MODE_RX => GND, +CH0_FFC_RX_GEAR_MODE => GND, +CH1_FFC_RX_GEAR_MODE => GND, +CH0_FFC_TX_GEAR_MODE => GND, +CH1_FFC_TX_GEAR_MODE => GND, +CH0_FFC_DIV11_MODE_TX => GND, +CH1_FFC_DIV11_MODE_TX => GND, +CH0_FFC_LDR_CORE2TX_EN => GND, +CH1_FFC_LDR_CORE2TX_EN => GND, +CH0_FFC_LANE_TX_RST => RSL_TX_PCS_RST_C, +CH1_FFC_LANE_TX_RST => GND, +CH0_FFC_LANE_RX_RST => RSL_RX_PCS_RST_C, +CH1_FFC_LANE_RX_RST => GND, +CH0_FFC_RRST => RSL_RX_SERDES_RST_C, +CH1_FFC_RRST => GND, +CH0_FFC_TXPWDNB => tx_pwrup_c, +CH1_FFC_TXPWDNB => GND, +CH0_FFC_RXPWDNB => rx_pwrup_c, +CH1_FFC_RXPWDNB => GND, +CH0_LDR_CORE2TX => GND, +CH1_LDR_CORE2TX => GND, +D_SCIWDATA0 => sci_wrdata(0), +D_SCIWDATA1 => sci_wrdata(1), +D_SCIWDATA2 => sci_wrdata(2), +D_SCIWDATA3 => sci_wrdata(3), +D_SCIWDATA4 => sci_wrdata(4), +D_SCIWDATA5 => sci_wrdata(5), +D_SCIWDATA6 => sci_wrdata(6), +D_SCIWDATA7 => sci_wrdata(7), +D_SCIADDR0 => sci_addr(0), +D_SCIADDR1 => sci_addr(1), +D_SCIADDR2 => sci_addr(2), +D_SCIADDR3 => sci_addr(3), +D_SCIADDR4 => sci_addr(4), +D_SCIADDR5 => sci_addr(5), +D_SCIENAUX => sci_en_dual, +D_SCISELAUX => sci_sel_dual, +CH0_SCIEN => sci_en, +CH1_SCIEN => GND, +CH0_SCISEL => sci_sel, +CH1_SCISEL => GND, +D_SCIRD => sci_rd, +D_SCIWSTN => sci_wrn, +D_CYAWSTN => cyawstn, +D_FFC_SYNC_TOGGLE => GND, +D_FFC_DUAL_RST => rst_dual_c, +D_FFC_MACRO_RST => RSL_SERDES_RST_DUAL_C, +D_FFC_MACROPDB => serdes_pdb, +D_FFC_TRST => RSL_TX_SERDES_RST_C, +CH0_FFC_CDR_EN_BITSLIP => GND, +CH1_FFC_CDR_EN_BITSLIP => GND, +D_SCAN_ENABLE => GND, +D_SCAN_IN_0 => GND, +D_SCAN_IN_1 => GND, +D_SCAN_IN_2 => GND, +D_SCAN_IN_3 => GND, +D_SCAN_IN_4 => GND, +D_SCAN_IN_5 => GND, +D_SCAN_IN_6 => GND, +D_SCAN_IN_7 => GND, +D_SCAN_MODE => GND, +D_SCAN_RESET => GND, +D_CIN0 => GND, +D_CIN1 => GND, +D_CIN2 => GND, +D_CIN3 => GND, +D_CIN4 => GND, +D_CIN5 => GND, +D_CIN6 => GND, +D_CIN7 => GND, +D_CIN8 => GND, +D_CIN9 => GND, +D_CIN10 => GND, +D_CIN11 => GND, +CH0_HDOUTP => hdoutp, +CH1_HDOUTP => N47_1, +CH0_HDOUTN => hdoutn, +CH1_HDOUTN => N48_1, +D_TXBIT_CLKP_TO_ND => N1_1, +D_TXBIT_CLKN_TO_ND => N2_1, +D_SYNC_PULSE2ND => N3_1, +D_TXPLL_LOL_TO_ND => N4_1, +CH0_FF_RX_F_CLK => N5_1, +CH1_FF_RX_F_CLK => N49_1, +CH0_FF_RX_H_CLK => N6_1, +CH1_FF_RX_H_CLK => N50_1, +CH0_FF_TX_F_CLK => N7_1, +CH1_FF_TX_F_CLK => N51_1, +CH0_FF_TX_H_CLK => N8_1, +CH1_FF_TX_H_CLK => N52_1, +CH0_FF_RX_PCLK => N9_1, +CH1_FF_RX_PCLK => N53_1, +CH0_FF_TX_PCLK => TX_PCLK_I, +CH1_FF_TX_PCLK => N54_1, +CH0_FF_RX_D_0 => rxdata(0), +CH1_FF_RX_D_0 => N55_1, +CH0_FF_RX_D_1 => rxdata(1), +CH1_FF_RX_D_1 => N56_1, +CH0_FF_RX_D_2 => rxdata(2), +CH1_FF_RX_D_2 => N57_1, +CH0_FF_RX_D_3 => rxdata(3), +CH1_FF_RX_D_3 => N58_1, +CH0_FF_RX_D_4 => rxdata(4), +CH1_FF_RX_D_4 => N59_1, +CH0_FF_RX_D_5 => rxdata(5), +CH1_FF_RX_D_5 => N60_1, +CH0_FF_RX_D_6 => rxdata(6), +CH1_FF_RX_D_6 => N61_1, +CH0_FF_RX_D_7 => rxdata(7), +CH1_FF_RX_D_7 => N62_1, +CH0_FF_RX_D_8 => rx_k(0), +CH1_FF_RX_D_8 => N63_1, +CH0_FF_RX_D_9 => rx_disp_err(0), +CH1_FF_RX_D_9 => N64_1, +CH0_FF_RX_D_10 => rx_cv_err(0), +CH1_FF_RX_D_10 => N65_1, +CH0_FF_RX_D_11 => N10_1, +CH1_FF_RX_D_11 => N66_1, +CH0_FF_RX_D_12 => N67_1, +CH1_FF_RX_D_12 => N68_1, +CH0_FF_RX_D_13 => N69_1, +CH1_FF_RX_D_13 => N70_1, +CH0_FF_RX_D_14 => N71_1, +CH1_FF_RX_D_14 => N72_1, +CH0_FF_RX_D_15 => N73_1, +CH1_FF_RX_D_15 => N74_1, +CH0_FF_RX_D_16 => N75_1, +CH1_FF_RX_D_16 => N76_1, +CH0_FF_RX_D_17 => N77_1, +CH1_FF_RX_D_17 => N78_1, +CH0_FF_RX_D_18 => N79_1, +CH1_FF_RX_D_18 => N80_1, +CH0_FF_RX_D_19 => N81_1, +CH1_FF_RX_D_19 => N82_1, +CH0_FF_RX_D_20 => N83_1, +CH1_FF_RX_D_20 => N84_1, +CH0_FF_RX_D_21 => N85_1, +CH1_FF_RX_D_21 => N86_1, +CH0_FF_RX_D_22 => N87_1, +CH1_FF_RX_D_22 => N88_1, +CH0_FF_RX_D_23 => N11_1, +CH1_FF_RX_D_23 => N89_1, +CH0_FFS_PCIE_DONE => N12_1, +CH1_FFS_PCIE_DONE => N90_1, +CH0_FFS_PCIE_CON => N13_1, +CH1_FFS_PCIE_CON => N91_1, +CH0_FFS_RLOS => RX_LOS_LOW_S_12, +CH1_FFS_RLOS => N92_1, +CH0_FFS_LS_SYNC_STATUS => lsm_status_s, +CH1_FFS_LS_SYNC_STATUS => N93_1, +CH0_FFS_CC_UNDERRUN => ctc_urun_s, +CH1_FFS_CC_UNDERRUN => N94_1, +CH0_FFS_CC_OVERRUN => ctc_orun_s, +CH1_FFS_CC_OVERRUN => N95_1, +CH0_FFS_RXFBFIFO_ERROR => N14_1, +CH1_FFS_RXFBFIFO_ERROR => N96_1, +CH0_FFS_TXFBFIFO_ERROR => N15_1, +CH1_FFS_TXFBFIFO_ERROR => N97_1, +CH0_FFS_RLOL => RX_CDR_LOL_S_13, +CH1_FFS_RLOL => N98_1, +CH0_FFS_SKP_ADDED => ctc_ins_s, +CH1_FFS_SKP_ADDED => N99_1, +CH0_FFS_SKP_DELETED => ctc_del_s, +CH1_FFS_SKP_DELETED => N100_1, +CH0_LDR_RX2CORE => N101_1, +CH1_LDR_RX2CORE => N112_1, +D_SCIRDATA0 => sci_rddata(0), +D_SCIRDATA1 => sci_rddata(1), +D_SCIRDATA2 => sci_rddata(2), +D_SCIRDATA3 => sci_rddata(3), +D_SCIRDATA4 => sci_rddata(4), +D_SCIRDATA5 => sci_rddata(5), +D_SCIRDATA6 => sci_rddata(6), +D_SCIRDATA7 => sci_rddata(7), +D_SCIINT => sci_int, +D_SCAN_OUT_0 => N16_1, +D_SCAN_OUT_1 => N17_1, +D_SCAN_OUT_2 => N18_1, +D_SCAN_OUT_3 => N19_1, +D_SCAN_OUT_4 => N20_1, +D_SCAN_OUT_5 => N21_1, +D_SCAN_OUT_6 => N22_1, +D_SCAN_OUT_7 => N23_1, +D_COUT0 => N24_1, +D_COUT1 => N25_1, +D_COUT2 => N26_1, +D_COUT3 => N27_1, +D_COUT4 => N28_1, +D_COUT5 => N29_1, +D_COUT6 => N30_1, +D_COUT7 => N31_1, +D_COUT8 => N32_1, +D_COUT9 => N33_1, +D_COUT10 => N34_1, +D_COUT11 => N35_1, +D_COUT12 => N36_1, +D_COUT13 => N37_1, +D_COUT14 => N38_1, +D_COUT15 => N39_1, +D_COUT16 => N40_1, +D_COUT17 => N41_1, +D_COUT18 => N42_1, +D_COUT19 => N43_1, +D_REFCLKI => pll_refclki, +D_FFS_PLOL => N46_1); +SLL_INST: sgmii_ecp5sll_core_Z1_layer1 port map ( +tx_pclk => TX_PCLK_11, +sli_rst => sli_rst, +pll_refclki => pll_refclki, +pll_lock_i => \SLL_INST.PLL_LOCK_I_14\); +RSL_INST: sgmii_ecp5rsl_core_Z2_layer1 port map ( +rx_pcs_rst_c => rx_pcs_rst_c, +tx_pcs_rst_c => tx_pcs_rst_c, +serdes_rst_dual_c => serdes_rst_dual_c, +tx_serdes_rst_c => tx_serdes_rst_c, +rsl_rx_pcs_rst_c => RSL_RX_PCS_RST_C, +rsl_tx_pcs_rst_c => RSL_TX_PCS_RST_C, +rsl_tx_serdes_rst_c => RSL_TX_SERDES_RST_C, +rsl_tx_rdy => rsl_tx_rdy, +pll_lock_i => \SLL_INST.PLL_LOCK_I_14\, +pll_refclki => pll_refclki, +rsl_rx_rdy => rsl_rx_rdy, +rsl_rst => rsl_rst, +rxrefclk => rxrefclk, +rsl_disable => rsl_disable, +rx_serdes_rst_c => rx_serdes_rst_c, +rst_dual_c => rst_dual_c, +rx_cdr_lol_s => RX_CDR_LOL_S_13, +rx_los_low_s => RX_LOS_LOW_S_12, +rsl_rx_serdes_rst_c => RSL_RX_SERDES_RST_C, +rsl_serdes_rst_dual_c => RSL_SERDES_RST_DUAL_C); +tx_pclk <= TX_PCLK_11; +rx_los_low_s <= RX_LOS_LOW_S_12; +rx_cdr_lol_s <= RX_CDR_LOL_S_13; +pll_lol <= \SLL_INST.PLL_LOCK_I_14\; +end beh; + diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.vm b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.vm new file mode 100644 index 0000000..be4d326 --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.vm @@ -0,0 +1,6617 @@ +// +// Written by Synplify Pro +// Product Version "M-2017.03L-SP1-1" +// Program "Synplify Pro", Mapper "maplat, Build 1796R" +// Fri May 10 11:59:01 2019 +// +// Source file index table: +// Object locations will have the form : +// file 0 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd " +// file 1 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/snps_haps_pkg.vhd " +// file 2 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std1164.vhd " +// file 3 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/numeric.vhd " +// file 4 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/umr_capim.vhd " +// file 5 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/arith.vhd " +// file 6 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/unsigned.vhd " +// file 7 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/hyperents.vhd " +// file 8 "\/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5.vhd " +// file 9 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd " +// file 10 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v " +// file 11 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v " +// file 12 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v " +// file 13 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v " +// file 14 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v " +// file 15 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh " +// file 16 "\/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v " +// file 17 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/nlconst.dat " +// file 18 "\/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5.fdc " + +`timescale 100 ps/100 ps +module sync_0s ( + phb, + rhb_sync, + sli_rst, + pll_refclki +) +; +input phb ; +output rhb_sync ; +input sli_rst ; +input pll_refclki ; +wire phb ; +wire rhb_sync ; +wire sli_rst ; +wire pll_refclki ; +wire data_p1 ; +wire data_p2_QN_0 ; +wire VCC ; +wire data_p1_QN_0 ; +wire GND ; +// @16:1988 + FD1S3DX data_p2 ( + .D(data_p1), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_sync) +); +// @16:1988 + FD1S3DX data_p1_reg ( + .D(phb), + .CK(pll_refclki), + .CD(sli_rst), + .Q(data_p1) +); + VHI VCC_0 ( + .Z(VCC) +); +// @16:865 + VLO GND_cZ ( + .Z(GND) +); +endmodule /* sync_0s */ + +module sync_0s_6 ( + rtc_pul, + ppul_sync, + sli_rst, + tx_pclk +) +; +input rtc_pul ; +output ppul_sync ; +input sli_rst ; +input tx_pclk ; +wire rtc_pul ; +wire ppul_sync ; +wire sli_rst ; +wire tx_pclk ; +wire data_p1 ; +wire data_p2_QN ; +wire VCC ; +wire data_p1_QN ; +wire GND ; +// @16:1988 + FD1S3DX data_p2 ( + .D(data_p1), + .CK(tx_pclk), + .CD(sli_rst), + .Q(ppul_sync) +); +// @16:1988 + FD1S3DX data_p1_reg ( + .D(rtc_pul), + .CK(tx_pclk), + .CD(sli_rst), + .Q(data_p1) +); + VHI VCC_0 ( + .Z(VCC) +); +// @16:865 + VLO GND_cZ ( + .Z(GND) +); +endmodule /* sync_0s_6 */ + +module sync_0s_0 ( + ppul_sync, + pdiff_sync, + sli_rst, + pll_refclki +) +; +input ppul_sync ; +output pdiff_sync ; +input sli_rst ; +input pll_refclki ; +wire ppul_sync ; +wire pdiff_sync ; +wire sli_rst ; +wire pll_refclki ; +wire data_p1 ; +wire data_p2_QN_1 ; +wire VCC ; +wire data_p1_QN_1 ; +wire GND ; +// @16:1988 + FD1S3DX data_p2 ( + .D(data_p1), + .CK(pll_refclki), + .CD(sli_rst), + .Q(pdiff_sync) +); +// @16:1988 + FD1S3DX data_p1_reg ( + .D(ppul_sync), + .CK(pll_refclki), + .CD(sli_rst), + .Q(data_p1) +); + VHI VCC_0 ( + .Z(VCC) +); +// @16:865 + VLO GND_cZ ( + .Z(GND) +); +endmodule /* sync_0s_0 */ + +module sgmii_ecp5sll_core_Z1_layer1 ( + tx_pclk, + sli_rst, + pll_refclki, + pll_lock_i +) +; +input tx_pclk ; +input sli_rst ; +input pll_refclki ; +output pll_lock_i ; +wire tx_pclk ; +wire sli_rst ; +wire pll_refclki ; +wire pll_lock_i ; +wire [2:0] phb_cnt; +wire [2:0] phb_cnt_i; +wire [15:0] rcount; +wire [21:0] pcount; +wire [0:0] un1_pcount_diff_i; +wire [1:0] sll_state; +wire [1:0] sll_state_QN; +wire [7:0] rhb_wait_cnt_s; +wire [7:0] rhb_wait_cnt; +wire [7:0] rhb_wait_cnt_QN; +wire [15:0] rcount_s; +wire [15:0] rcount_QN; +wire [2:0] phb_cnt_QN; +wire [2:1] phb_cnt_RNO; +wire [21:0] pcount_s; +wire [21:0] pcount_QN; +wire [21:0] pcount_diff_QN; +wire [2:2] rdiff_comp_lock; +wire [2:2] rdiff_comp_lock_QN; +wire [0:0] un1_pcount_diff; +wire [20:0] pcount_cry; +wire [0:0] pcount_cry_0_S0; +wire [21:21] pcount_s_0_COUT; +wire [21:21] pcount_s_0_S1; +wire [14:0] rcount_cry; +wire [0:0] rcount_cry_0_S0; +wire [15:15] rcount_s_0_COUT; +wire [15:15] rcount_s_0_S1; +wire [6:0] rhb_wait_cnt_cry; +wire [0:0] rhb_wait_cnt_cry_0_S0; +wire [7:7] rhb_wait_cnt_s_0_COUT; +wire [7:7] rhb_wait_cnt_s_0_S1; +wire pll_lock ; +wire rtc_ctrl4_0_a3_1 ; +wire un13_lock_20 ; +wire ppul_sync_p2 ; +wire ppul_sync_p1 ; +wire un1_pcount_diff_1_axb_20 ; +wire un13_lock_19 ; +wire un1_pcount_diff_1_axb_19 ; +wire un13_lock_18 ; +wire un1_pcount_diff_1_axb_18 ; +wire un13_lock_17 ; +wire un1_pcount_diff_1_axb_17 ; +wire un13_lock_16 ; +wire un1_pcount_diff_1_cry_15_0_RNO_0 ; +wire un13_lock_15 ; +wire un1_pcount_diff_1_axb_15 ; +wire un13_lock_14 ; +wire un1_pcount_diff_1_axb_14 ; +wire un13_lock_13 ; +wire un1_pcount_diff_1_axb_13 ; +wire un13_lock_12 ; +wire un1_pcount_diff_1_axb_12 ; +wire un13_lock_11 ; +wire un1_pcount_diff_1_axb_11 ; +wire un13_lock_10 ; +wire un1_pcount_diff_1_axb_10 ; +wire un13_lock_9 ; +wire un1_pcount_diff_1_axb_9 ; +wire un13_lock_8 ; +wire un1_pcount_diff_1_axb_8 ; +wire un13_lock_7 ; +wire un1_pcount_diff_1_axb_7 ; +wire un13_lock_6 ; +wire un1_pcount_diff_1_axb_6 ; +wire un13_lock_5 ; +wire un1_pcount_diff_1_axb_5 ; +wire un13_lock_4 ; +wire un1_pcount_diff_1_axb_4 ; +wire un13_lock_3 ; +wire un1_pcount_diff_1_axb_3 ; +wire un13_lock_2 ; +wire un1_pcount_diff_1_axb_2 ; +wire un13_lock_1 ; +wire un1_pcount_diff_1_axb_1 ; +wire un13_lock_21 ; +wire ppul_sync_p3 ; +wire N_7 ; +wire un13_lock_0 ; +wire rtc_ctrl4 ; +wire rtc_ctrl ; +wire VCC ; +wire N_2121_0 ; +wire unlock_5 ; +wire unlock_1_sqmuxa_i ; +wire unlock ; +wire unlock_QN ; +wire N_95_i ; +wire N_97_i ; +wire rtc_pul ; +wire rtc_pul_p1 ; +wire rtc_pul_p1_QN ; +wire rtc_pul5 ; +wire rtc_pul_QN ; +wire rtc_ctrl_QN ; +wire rstat_pclk_2 ; +wire rstat_pclk ; +wire rstat_pclk_QN ; +wire rhb_sync_p1 ; +wire rhb_sync_p2 ; +wire rhb_sync_p2_QN ; +wire rhb_sync ; +wire rhb_sync_p1_QN ; +wire ppul_sync_p3_QN ; +wire ppul_sync_p2_QN ; +wire ppul_sync ; +wire ppul_sync_p1_QN ; +wire N_53_i ; +wire pll_lock_QN ; +wire phb ; +wire phb_QN ; +wire pdiff_sync ; +wire pdiff_sync_p1 ; +wire pdiff_sync_p1_QN ; +wire un1_pcount_diff_1_cry_1_0_S0 ; +wire un1_pcount_diff_1_cry_1_0_S1 ; +wire un1_pcount_diff_1_cry_3_0_S0 ; +wire un1_pcount_diff_1_cry_3_0_S1 ; +wire un1_pcount_diff_1_cry_5_0_S0 ; +wire un1_pcount_diff_1_cry_5_0_S1 ; +wire un1_pcount_diff_1_cry_7_0_S0 ; +wire un1_pcount_diff_1_cry_7_0_S1 ; +wire un1_pcount_diff_1_cry_9_0_S0 ; +wire un1_pcount_diff_1_cry_9_0_S1 ; +wire un1_pcount_diff_1_cry_11_0_S0 ; +wire un1_pcount_diff_1_cry_11_0_S1 ; +wire un1_pcount_diff_1_cry_13_0_S0 ; +wire un1_pcount_diff_1_cry_13_0_S1 ; +wire un1_pcount_diff_1_cry_15_0_S0 ; +wire un1_pcount_diff_1_cry_15_0_S1 ; +wire un1_pcount_diff_1_cry_17_0_S0 ; +wire un1_pcount_diff_1_cry_17_0_S1 ; +wire un1_pcount_diff_1_cry_19_0_S0 ; +wire un1_pcount_diff_1_cry_19_0_S1 ; +wire un1_pcount_diff_1_s_21_0_S0 ; +wire lock_5 ; +wire lock_1_sqmuxa_i ; +wire lock ; +wire lock_QN ; +wire N_98 ; +wire rtc_pul5_0_o3 ; +wire rtc_pul5_0_a3_6 ; +wire rtc_pul5_0_a3_7 ; +wire un1_rcount_1_0_a3 ; +wire rhb_wait_cnt12 ; +wire un1_rhb_wait_cnt_4 ; +wire un1_rhb_wait_cnt_5 ; +wire N_99 ; +wire rtc_ctrl4_0_a3_12_4 ; +wire rtc_ctrl4_0_a3_12_5 ; +wire rtc_ctrl4_10 ; +wire un1_rcount_1_0_a3_1 ; +wire N_6 ; +wire rtc_pul5_0_a3_5 ; +wire N_8 ; +wire un13_unlock_cry_21 ; +wire un13_lock_cry_21_i ; +wire rhb_wait_cnt_scalar ; +wire un1_pcount_diff_1_cry_0 ; +wire un1_pcount_diff_1_cry_0_0_S0 ; +wire un1_pcount_diff_1_cry_0_0_S1 ; +wire un1_pcount_diff_1_cry_2 ; +wire un1_pcount_diff_1_cry_4 ; +wire un1_pcount_diff_1_cry_6 ; +wire un1_pcount_diff_1_cry_8 ; +wire un1_pcount_diff_1_cry_10 ; +wire un1_pcount_diff_1_cry_12 ; +wire un1_pcount_diff_1_cry_14 ; +wire un1_pcount_diff_1_cry_16 ; +wire un1_pcount_diff_1_cry_18 ; +wire un1_pcount_diff_1_cry_20 ; +wire un1_pcount_diff_1_s_21_0_COUT ; +wire un1_pcount_diff_1_s_21_0_S1 ; +wire un13_lock_cry_0 ; +wire un13_lock_cry_0_0_S0 ; +wire un13_lock_cry_0_0_S1 ; +wire un13_lock_cry_2 ; +wire un13_lock_cry_1_0_S0 ; +wire un13_lock_cry_1_0_S1 ; +wire un13_lock_cry_4 ; +wire un13_lock_cry_3_0_S0 ; +wire un13_lock_cry_3_0_S1 ; +wire un13_lock_cry_6 ; +wire un13_lock_cry_5_0_S0 ; +wire un13_lock_cry_5_0_S1 ; +wire un13_lock_cry_8 ; +wire un13_lock_cry_7_0_S0 ; +wire un13_lock_cry_7_0_S1 ; +wire un13_lock_cry_10 ; +wire un13_lock_cry_9_0_S0 ; +wire un13_lock_cry_9_0_S1 ; +wire un13_lock_cry_12 ; +wire un13_lock_cry_11_0_S0 ; +wire un13_lock_cry_11_0_S1 ; +wire un13_lock_cry_14 ; +wire un13_lock_cry_13_0_S0 ; +wire un13_lock_cry_13_0_S1 ; +wire un13_lock_cry_16 ; +wire un13_lock_cry_15_0_S0 ; +wire un13_lock_cry_15_0_S1 ; +wire un13_lock_cry_18 ; +wire un13_lock_cry_17_0_S0 ; +wire un13_lock_cry_17_0_S1 ; +wire un13_lock_cry_20 ; +wire un13_lock_cry_19_0_S0 ; +wire un13_lock_cry_19_0_S1 ; +wire un13_lock_cry_21_0_COUT ; +wire un13_lock_cry_21_0_S0 ; +wire un13_unlock_cry_0 ; +wire un13_unlock_cry_0_0_S0 ; +wire un13_unlock_cry_0_0_S1 ; +wire un13_unlock_cry_2 ; +wire un13_unlock_cry_1_0_S0 ; +wire un13_unlock_cry_1_0_S1 ; +wire un13_unlock_cry_4 ; +wire un13_unlock_cry_3_0_S0 ; +wire un13_unlock_cry_3_0_S1 ; +wire un13_unlock_cry_6 ; +wire un13_unlock_cry_5_0_S0 ; +wire un13_unlock_cry_5_0_S1 ; +wire un13_unlock_cry_8 ; +wire un13_unlock_cry_7_0_S0 ; +wire un13_unlock_cry_7_0_S1 ; +wire un13_unlock_cry_10 ; +wire un13_unlock_cry_9_0_S0 ; +wire un13_unlock_cry_9_0_S1 ; +wire un13_unlock_cry_12 ; +wire un13_unlock_cry_11_0_S0 ; +wire un13_unlock_cry_11_0_S1 ; +wire un13_unlock_cry_14 ; +wire un13_unlock_cry_13_0_S0 ; +wire un13_unlock_cry_13_0_S1 ; +wire un13_unlock_cry_16 ; +wire un13_unlock_cry_15_0_S0 ; +wire un13_unlock_cry_15_0_S1 ; +wire un13_unlock_cry_18 ; +wire un13_unlock_cry_17_0_S0 ; +wire un13_unlock_cry_17_0_S1 ; +wire un13_unlock_cry_20 ; +wire un13_unlock_cry_19_0_S0 ; +wire un13_unlock_cry_19_0_S1 ; +wire un13_unlock_cry_21_0_COUT ; +wire un13_unlock_cry_21_0_S0 ; +wire N_21 ; +wire N_20 ; +wire N_19 ; +wire N_18 ; +wire N_14 ; +wire GND ; +wire N_1 ; +wire N_2 ; +wire N_3 ; +wire N_4 ; +wire N_5 ; +wire N_9 ; + INV phb_RNO ( + .A(phb_cnt[2]), + .Z(phb_cnt_i[2]) +); + INV \phb_cnt_RNO[0] ( + .A(phb_cnt[0]), + .Z(phb_cnt_i[0]) +); + INV pll_lock_RNI6JK9 ( + .A(pll_lock), + .Z(pll_lock_i) +); + LUT4 rtc_ctrl4_0_a3_RNO ( + .A(rcount[2]), + .B(rcount[0]), + .C(rcount[5]), + .D(rcount[4]), + .Z(rtc_ctrl4_0_a3_1) +); +defparam rtc_ctrl4_0_a3_RNO.init=16'h2000; + LUT4 un1_pcount_diff_1_cry_19_0_RNO_0 ( + .A(un13_lock_20), + .B(pcount[20]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_20) +); +defparam un1_pcount_diff_1_cry_19_0_RNO_0.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_19_0_RNO ( + .A(un13_lock_19), + .B(pcount[19]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_19) +); +defparam un1_pcount_diff_1_cry_19_0_RNO.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_17_0_RNO_0 ( + .A(un13_lock_18), + .B(pcount[18]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_18) +); +defparam un1_pcount_diff_1_cry_17_0_RNO_0.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_17_0_RNO ( + .A(un13_lock_17), + .B(pcount[17]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_17) +); +defparam un1_pcount_diff_1_cry_17_0_RNO.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_15_0_RNO_0_cZ ( + .A(un13_lock_16), + .B(pcount[16]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_cry_15_0_RNO_0) +); +defparam un1_pcount_diff_1_cry_15_0_RNO_0_cZ.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_15_0_RNO ( + .A(un13_lock_15), + .B(pcount[15]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_15) +); +defparam un1_pcount_diff_1_cry_15_0_RNO.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_13_0_RNO_0 ( + .A(un13_lock_14), + .B(pcount[14]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_14) +); +defparam un1_pcount_diff_1_cry_13_0_RNO_0.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_13_0_RNO ( + .A(un13_lock_13), + .B(pcount[13]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_13) +); +defparam un1_pcount_diff_1_cry_13_0_RNO.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_11_0_RNO_0 ( + .A(un13_lock_12), + .B(pcount[12]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_12) +); +defparam un1_pcount_diff_1_cry_11_0_RNO_0.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_11_0_RNO ( + .A(un13_lock_11), + .B(pcount[11]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_11) +); +defparam un1_pcount_diff_1_cry_11_0_RNO.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_9_0_RNO_0 ( + .A(un13_lock_10), + .B(pcount[10]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_10) +); +defparam un1_pcount_diff_1_cry_9_0_RNO_0.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_9_0_RNO ( + .A(un13_lock_9), + .B(pcount[9]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_9) +); +defparam un1_pcount_diff_1_cry_9_0_RNO.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_7_0_RNO_0 ( + .A(un13_lock_8), + .B(pcount[8]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_8) +); +defparam un1_pcount_diff_1_cry_7_0_RNO_0.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_7_0_RNO ( + .A(un13_lock_7), + .B(pcount[7]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_7) +); +defparam un1_pcount_diff_1_cry_7_0_RNO.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_5_0_RNO_0 ( + .A(un13_lock_6), + .B(pcount[6]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_6) +); +defparam un1_pcount_diff_1_cry_5_0_RNO_0.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_5_0_RNO ( + .A(un13_lock_5), + .B(pcount[5]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_5) +); +defparam un1_pcount_diff_1_cry_5_0_RNO.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_3_0_RNO_0 ( + .A(un13_lock_4), + .B(pcount[4]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_4) +); +defparam un1_pcount_diff_1_cry_3_0_RNO_0.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_3_0_RNO ( + .A(un13_lock_3), + .B(pcount[3]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_3) +); +defparam un1_pcount_diff_1_cry_3_0_RNO.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_1_0_RNO_0 ( + .A(un13_lock_2), + .B(pcount[2]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_2) +); +defparam un1_pcount_diff_1_cry_1_0_RNO_0.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_1_0_RNO ( + .A(un13_lock_1), + .B(pcount[1]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_1) +); +defparam un1_pcount_diff_1_cry_1_0_RNO.init=16'h5355; + LUT4 ppul_sync_p3_RNIU65C ( + .A(un13_lock_21), + .B(ppul_sync_p3), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(N_7) +); +defparam ppul_sync_p3_RNIU65C.init=16'h2F20; + LUT4 \pcount_diff_RNO[0] ( + .A(ppul_sync_p1), + .B(ppul_sync_p2), + .C(pcount[0]), + .D(un13_lock_0), + .Z(un1_pcount_diff_i[0]) +); +defparam \pcount_diff_RNO[0] .init=16'hFD20; +// @16:1304 + LUT4 rtc_ctrl_0 ( + .A(rtc_ctrl4), + .B(rtc_ctrl), + .C(VCC), + .D(VCC), + .Z(N_2121_0) +); +defparam rtc_ctrl_0.init=16'hEEEE; +// @16:1278 + FD1P3DX unlock_reg ( + .D(unlock_5), + .SP(unlock_1_sqmuxa_i), + .CK(pll_refclki), + .CD(sli_rst), + .Q(unlock) +); +// @16:1801 + FD1S3DX \sll_state_reg[0] ( + .D(N_95_i), + .CK(pll_refclki), + .CD(sli_rst), + .Q(sll_state[0]) +); +// @16:1801 + FD1S3DX \sll_state_reg[1] ( + .D(N_97_i), + .CK(pll_refclki), + .CD(sli_rst), + .Q(sll_state[1]) +); +// @16:1304 + FD1S3DX rtc_pul_p1_reg ( + .D(rtc_pul), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rtc_pul_p1) +); +// @16:1304 + FD1P3DX rtc_pul_reg ( + .D(rtc_pul5), + .SP(rtc_ctrl), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rtc_pul) +); +// @16:1304 + FD1S3DX rtc_ctrl_reg ( + .D(N_2121_0), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rtc_ctrl) +); +// @16:1350 + FD1P3DX rstat_pclk_reg ( + .D(rstat_pclk_2), + .SP(rtc_ctrl), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rstat_pclk) +); +// @16:1350 + FD1P3DX \rhb_wait_cnt_reg[0] ( + .D(rhb_wait_cnt_s[0]), + .SP(rtc_ctrl), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_wait_cnt[0]) +); +// @16:1350 + FD1P3DX \rhb_wait_cnt_reg[1] ( + .D(rhb_wait_cnt_s[1]), + .SP(rtc_ctrl), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_wait_cnt[1]) +); +// @16:1350 + FD1P3DX \rhb_wait_cnt_reg[2] ( + .D(rhb_wait_cnt_s[2]), + .SP(rtc_ctrl), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_wait_cnt[2]) +); +// @16:1350 + FD1P3DX \rhb_wait_cnt_reg[3] ( + .D(rhb_wait_cnt_s[3]), + .SP(rtc_ctrl), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_wait_cnt[3]) +); +// @16:1350 + FD1P3DX \rhb_wait_cnt_reg[4] ( + .D(rhb_wait_cnt_s[4]), + .SP(rtc_ctrl), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_wait_cnt[4]) +); +// @16:1350 + FD1P3DX \rhb_wait_cnt_reg[5] ( + .D(rhb_wait_cnt_s[5]), + .SP(rtc_ctrl), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_wait_cnt[5]) +); +// @16:1350 + FD1P3DX \rhb_wait_cnt_reg[6] ( + .D(rhb_wait_cnt_s[6]), + .SP(rtc_ctrl), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_wait_cnt[6]) +); +// @16:1350 + FD1P3DX \rhb_wait_cnt_reg[7] ( + .D(rhb_wait_cnt_s[7]), + .SP(rtc_ctrl), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_wait_cnt[7]) +); +// @16:1350 + FD1S3DX rhb_sync_p2_reg ( + .D(rhb_sync_p1), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_sync_p2) +); +// @16:1350 + FD1S3DX rhb_sync_p1_reg ( + .D(rhb_sync), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_sync_p1) +); +// @16:1304 + FD1S3DX \rcount_reg[0] ( + .D(rcount_s[0]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[0]) +); +// @16:1304 + FD1S3DX \rcount_reg[1] ( + .D(rcount_s[1]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[1]) +); +// @16:1304 + FD1S3DX \rcount_reg[2] ( + .D(rcount_s[2]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[2]) +); +// @16:1304 + FD1S3DX \rcount_reg[3] ( + .D(rcount_s[3]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[3]) +); +// @16:1304 + FD1S3DX \rcount_reg[4] ( + .D(rcount_s[4]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[4]) +); +// @16:1304 + FD1S3DX \rcount_reg[5] ( + .D(rcount_s[5]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[5]) +); +// @16:1304 + FD1S3DX \rcount_reg[6] ( + .D(rcount_s[6]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[6]) +); +// @16:1304 + FD1S3DX \rcount_reg[7] ( + .D(rcount_s[7]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[7]) +); +// @16:1304 + FD1S3DX \rcount_reg[8] ( + .D(rcount_s[8]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[8]) +); +// @16:1304 + FD1S3DX \rcount_reg[9] ( + .D(rcount_s[9]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[9]) +); +// @16:1304 + FD1S3DX \rcount_reg[10] ( + .D(rcount_s[10]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[10]) +); +// @16:1304 + FD1S3DX \rcount_reg[11] ( + .D(rcount_s[11]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[11]) +); +// @16:1304 + FD1S3DX \rcount_reg[12] ( + .D(rcount_s[12]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[12]) +); +// @16:1304 + FD1S3DX \rcount_reg[13] ( + .D(rcount_s[13]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[13]) +); +// @16:1304 + FD1S3DX \rcount_reg[14] ( + .D(rcount_s[14]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[14]) +); +// @16:1304 + FD1S3DX \rcount_reg[15] ( + .D(rcount_s[15]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[15]) +); +// @16:1408 + FD1S3DX ppul_sync_p3_reg ( + .D(ppul_sync_p2), + .CK(tx_pclk), + .CD(sli_rst), + .Q(ppul_sync_p3) +); +// @16:1408 + FD1S3DX ppul_sync_p2_reg ( + .D(ppul_sync_p1), + .CK(tx_pclk), + .CD(sli_rst), + .Q(ppul_sync_p2) +); +// @16:1408 + FD1S3DX ppul_sync_p1_reg ( + .D(ppul_sync), + .CK(tx_pclk), + .CD(sli_rst), + .Q(ppul_sync_p1) +); +// @16:1879 + FD1S3DX pll_lock_reg ( + .D(N_53_i), + .CK(pll_refclki), + .CD(sli_rst), + .Q(pll_lock) +); +// @16:1759 + FD1S3DX \phb_cnt_reg[0] ( + .D(phb_cnt_i[0]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(phb_cnt[0]) +); +// @16:1759 + FD1S3DX \phb_cnt_reg[1] ( + .D(phb_cnt_RNO[1]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(phb_cnt[1]) +); +// @16:1759 + FD1S3DX \phb_cnt_reg[2] ( + .D(phb_cnt_RNO[2]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(phb_cnt[2]) +); +// @16:1759 + FD1S3DX phb_reg ( + .D(phb_cnt_i[2]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(phb) +); +// @16:1278 + FD1S3DX pdiff_sync_p1_reg ( + .D(pdiff_sync), + .CK(pll_refclki), + .CD(sli_rst), + .Q(pdiff_sync_p1) +); +// @16:1759 + FD1S3DX \pcount_reg[0] ( + .D(pcount_s[0]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[0]) +); +// @16:1759 + FD1P3BX \pcount_diff[0] ( + .D(un1_pcount_diff_i[0]), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_0) +); +// @16:1759 + FD1S3DX \pcount_reg[1] ( + .D(pcount_s[1]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[1]) +); +// @16:1759 + FD1P3BX \pcount_diff[1] ( + .D(un1_pcount_diff_1_cry_1_0_S0), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_1) +); +// @16:1759 + FD1P3BX \pcount_diff[2] ( + .D(un1_pcount_diff_1_cry_1_0_S1), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_2) +); +// @16:1759 + FD1S3DX \pcount_reg[2] ( + .D(pcount_s[2]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[2]) +); +// @16:1759 + FD1P3BX \pcount_diff[3] ( + .D(un1_pcount_diff_1_cry_3_0_S0), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_3) +); +// @16:1759 + FD1S3DX \pcount_reg[3] ( + .D(pcount_s[3]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[3]) +); +// @16:1759 + FD1P3BX \pcount_diff[4] ( + .D(un1_pcount_diff_1_cry_3_0_S1), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_4) +); +// @16:1759 + FD1S3DX \pcount_reg[4] ( + .D(pcount_s[4]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[4]) +); +// @16:1759 + FD1P3BX \pcount_diff[5] ( + .D(un1_pcount_diff_1_cry_5_0_S0), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_5) +); +// @16:1759 + FD1S3DX \pcount_reg[5] ( + .D(pcount_s[5]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[5]) +); +// @16:1759 + FD1S3DX \pcount_reg[6] ( + .D(pcount_s[6]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[6]) +); +// @16:1759 + FD1P3BX \pcount_diff[6] ( + .D(un1_pcount_diff_1_cry_5_0_S1), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_6) +); +// @16:1759 + FD1S3DX \pcount_reg[7] ( + .D(pcount_s[7]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[7]) +); +// @16:1759 + FD1P3BX \pcount_diff[7] ( + .D(un1_pcount_diff_1_cry_7_0_S0), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_7) +); +// @16:1759 + FD1S3DX \pcount_reg[8] ( + .D(pcount_s[8]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[8]) +); +// @16:1759 + FD1P3BX \pcount_diff[8] ( + .D(un1_pcount_diff_1_cry_7_0_S1), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_8) +); +// @16:1759 + FD1P3BX \pcount_diff[9] ( + .D(un1_pcount_diff_1_cry_9_0_S0), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_9) +); +// @16:1759 + FD1S3DX \pcount_reg[9] ( + .D(pcount_s[9]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[9]) +); +// @16:1759 + FD1S3DX \pcount_reg[10] ( + .D(pcount_s[10]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[10]) +); +// @16:1759 + FD1P3BX \pcount_diff[10] ( + .D(un1_pcount_diff_1_cry_9_0_S1), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_10) +); +// @16:1759 + FD1P3BX \pcount_diff[11] ( + .D(un1_pcount_diff_1_cry_11_0_S0), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_11) +); +// @16:1759 + FD1S3DX \pcount_reg[11] ( + .D(pcount_s[11]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[11]) +); +// @16:1759 + FD1S3DX \pcount_reg[12] ( + .D(pcount_s[12]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[12]) +); +// @16:1759 + FD1P3BX \pcount_diff[12] ( + .D(un1_pcount_diff_1_cry_11_0_S1), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_12) +); +// @16:1759 + FD1P3BX \pcount_diff[13] ( + .D(un1_pcount_diff_1_cry_13_0_S0), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_13) +); +// @16:1759 + FD1S3DX \pcount_reg[13] ( + .D(pcount_s[13]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[13]) +); +// @16:1759 + FD1P3BX \pcount_diff[14] ( + .D(un1_pcount_diff_1_cry_13_0_S1), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_14) +); +// @16:1759 + FD1S3DX \pcount_reg[14] ( + .D(pcount_s[14]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[14]) +); +// @16:1759 + FD1S3DX \pcount_reg[15] ( + .D(pcount_s[15]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[15]) +); +// @16:1759 + FD1P3BX \pcount_diff[15] ( + .D(un1_pcount_diff_1_cry_15_0_S0), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_15) +); +// @16:1759 + FD1S3DX \pcount_reg[16] ( + .D(pcount_s[16]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[16]) +); +// @16:1759 + FD1P3DX \pcount_diff[16] ( + .D(un1_pcount_diff_1_cry_15_0_S1), + .SP(N_7), + .CK(tx_pclk), + .CD(sli_rst), + .Q(un13_lock_16) +); +// @16:1759 + FD1P3DX \pcount_diff[17] ( + .D(un1_pcount_diff_1_cry_17_0_S0), + .SP(N_7), + .CK(tx_pclk), + .CD(sli_rst), + .Q(un13_lock_17) +); +// @16:1759 + FD1S3DX \pcount_reg[17] ( + .D(pcount_s[17]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[17]) +); +// @16:1759 + FD1P3DX \pcount_diff[18] ( + .D(un1_pcount_diff_1_cry_17_0_S1), + .SP(N_7), + .CK(tx_pclk), + .CD(sli_rst), + .Q(un13_lock_18) +); +// @16:1759 + FD1S3DX \pcount_reg[18] ( + .D(pcount_s[18]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[18]) +); +// @16:1759 + FD1S3DX \pcount_reg[19] ( + .D(pcount_s[19]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[19]) +); +// @16:1759 + FD1P3DX \pcount_diff[19] ( + .D(un1_pcount_diff_1_cry_19_0_S0), + .SP(N_7), + .CK(tx_pclk), + .CD(sli_rst), + .Q(un13_lock_19) +); +// @16:1759 + FD1S3DX \pcount_reg[20] ( + .D(pcount_s[20]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[20]) +); +// @16:1759 + FD1P3DX \pcount_diff[20] ( + .D(un1_pcount_diff_1_cry_19_0_S1), + .SP(N_7), + .CK(tx_pclk), + .CD(sli_rst), + .Q(un13_lock_20) +); +// @16:1759 + FD1P3DX \pcount_diff[21] ( + .D(un1_pcount_diff_1_s_21_0_S0), + .SP(N_7), + .CK(tx_pclk), + .CD(sli_rst), + .Q(un13_lock_21) +); +// @16:1759 + FD1S3DX \pcount_reg[21] ( + .D(pcount_s[21]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[21]) +); +// @16:1278 + FD1P3DX lock_reg ( + .D(lock_5), + .SP(lock_1_sqmuxa_i), + .CK(pll_refclki), + .CD(sli_rst), + .Q(lock) +); +// @16:1739 + FD1S3DX \genblk5.rdiff_comp_lock[2] ( + .D(VCC), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rdiff_comp_lock[2]) +); +// @16:1801 + LUT4 \sll_state_RNO[0] ( + .A(N_98), + .B(lock), + .C(rstat_pclk), + .D(sll_state[0]), + .Z(N_95_i) +); +defparam \sll_state_RNO[0] .init=16'hE050; +// @16:1334 + LUT4 rtc_pul5_0_0 ( + .A(rtc_pul5_0_o3), + .B(rtc_pul5_0_a3_6), + .C(rtc_pul5_0_a3_7), + .D(un1_rcount_1_0_a3), + .Z(rtc_pul5) +); +defparam rtc_pul5_0_0.init=16'hFF80; +// @16:1389 + LUT4 rstat_pclk_2_iv ( + .A(rhb_wait_cnt12), + .B(rstat_pclk), + .C(un1_rhb_wait_cnt_4), + .D(un1_rhb_wait_cnt_5), + .Z(rstat_pclk_2) +); +defparam rstat_pclk_2_iv.init=16'hAEEE; +// @16:1801 + LUT4 \sll_state_RNO[1] ( + .A(N_99), + .B(rstat_pclk), + .C(sll_state[1]), + .D(unlock), + .Z(N_97_i) +); +defparam \sll_state_RNO[1] .init=16'h8088; +// @16:1328 + LUT4 rtc_ctrl4_0_a3 ( + .A(rtc_ctrl4_0_a3_1), + .B(rtc_ctrl4_0_a3_12_4), + .C(rtc_ctrl4_0_a3_12_5), + .D(rtc_ctrl4_10), + .Z(rtc_ctrl4) +); +defparam rtc_ctrl4_0_a3.init=16'h8000; +// @16:1319 + LUT4 un1_rcount_1_0_a3_cZ ( + .A(rtc_ctrl4_0_a3_12_4), + .B(rtc_ctrl4_0_a3_12_5), + .C(rtc_ctrl4_10), + .D(un1_rcount_1_0_a3_1), + .Z(un1_rcount_1_0_a3) +); +defparam un1_rcount_1_0_a3_cZ.init=16'h8000; +// @16:1278 + LUT4 lock_1_sqmuxa_i_cZ ( + .A(lock), + .B(pdiff_sync), + .C(pdiff_sync_p1), + .D(VCC), + .Z(lock_1_sqmuxa_i) +); +defparam lock_1_sqmuxa_i_cZ.init=16'h7575; +// @16:1278 + LUT4 unlock_1_sqmuxa_i_cZ ( + .A(pdiff_sync), + .B(pdiff_sync_p1), + .C(unlock), + .D(VCC), + .Z(unlock_1_sqmuxa_i) +); +defparam unlock_1_sqmuxa_i_cZ.init=16'h4F4F; +// @16:1334 + LUT4 rtc_pul5_0_o3_cZ ( + .A(N_6), + .B(rcount[1]), + .C(rcount[2]), + .D(rcount[3]), + .Z(rtc_pul5_0_o3) +); +defparam rtc_pul5_0_o3_cZ.init=16'hAAAB; +// @16:1334 + LUT4 rtc_pul5_0_a3_7_cZ ( + .A(rcount[7]), + .B(rcount[8]), + .C(rtc_pul5_0_a3_5), + .D(VCC), + .Z(rtc_pul5_0_a3_7) +); +defparam rtc_pul5_0_a3_7_cZ.init=16'h1010; +// @16:1801 + LUT4 \sll_state_ns_i_m4[1] ( + .A(lock), + .B(rtc_pul), + .C(rtc_pul_p1), + .D(sll_state[1]), + .Z(N_99) +); +defparam \sll_state_ns_i_m4[1] .init=16'hEF20; +// @16:1879 + LUT4 pll_lock_RNO ( + .A(sll_state[0]), + .B(sll_state[1]), + .C(VCC), + .D(VCC), + .Z(N_53_i) +); +defparam pll_lock_RNO.init=16'h8888; +// @16:1776 + LUT4 \phb_cnt_RNO_cZ[2] ( + .A(phb_cnt[0]), + .B(phb_cnt[1]), + .C(phb_cnt[2]), + .D(VCC), + .Z(phb_cnt_RNO[2]) +); +defparam \phb_cnt_RNO_cZ[2] .init=16'h7878; +// @16:1801 + LUT4 \sll_state_ns_i_o4[0] ( + .A(rtc_pul), + .B(rtc_pul_p1), + .C(sll_state[1]), + .D(VCC), + .Z(N_98) +); +defparam \sll_state_ns_i_o4[0] .init=16'hBFBF; +// @16:1328 + LUT4 rtc_ctrl4_0_a3_10 ( + .A(rcount[1]), + .B(rcount[3]), + .C(rcount[6]), + .D(rcount[15]), + .Z(rtc_ctrl4_10) +); +defparam rtc_ctrl4_0_a3_10.init=16'h8000; +// @16:1393 + LUT4 un1_rhb_wait_cnt_4_cZ ( + .A(rhb_wait_cnt[4]), + .B(rhb_wait_cnt[5]), + .C(rhb_wait_cnt[6]), + .D(rhb_wait_cnt[7]), + .Z(un1_rhb_wait_cnt_4) +); +defparam un1_rhb_wait_cnt_4_cZ.init=16'h8000; +// @16:1393 + LUT4 un1_rhb_wait_cnt_5_cZ ( + .A(rhb_wait_cnt[0]), + .B(rhb_wait_cnt[1]), + .C(rhb_wait_cnt[2]), + .D(rhb_wait_cnt[3]), + .Z(un1_rhb_wait_cnt_5) +); +defparam un1_rhb_wait_cnt_5_cZ.init=16'h8000; +// @16:1328 + LUT4 rtc_ctrl4_0_a3_12_4_cZ ( + .A(rcount[11]), + .B(rcount[12]), + .C(rcount[13]), + .D(rcount[14]), + .Z(rtc_ctrl4_0_a3_12_4) +); +defparam rtc_ctrl4_0_a3_12_4_cZ.init=16'h8000; +// @16:1328 + LUT4 rtc_ctrl4_0_a3_12_5_cZ ( + .A(rcount[7]), + .B(rcount[8]), + .C(rcount[9]), + .D(rcount[10]), + .Z(rtc_ctrl4_0_a3_12_5) +); +defparam rtc_ctrl4_0_a3_12_5_cZ.init=16'h8000; +// @16:1334 + LUT4 rtc_pul5_0_a3_5_cZ ( + .A(rcount[6]), + .B(rcount[13]), + .C(rcount[14]), + .D(rcount[15]), + .Z(rtc_pul5_0_a3_5) +); +defparam rtc_pul5_0_a3_5_cZ.init=16'h0001; +// @16:1334 + LUT4 rtc_pul5_0_a3_6_cZ ( + .A(rcount[9]), + .B(rcount[10]), + .C(rcount[11]), + .D(rcount[12]), + .Z(rtc_pul5_0_a3_6) +); +defparam rtc_pul5_0_a3_6_cZ.init=16'h0001; +// @16:1768 + LUT4 pcount10_0_o3 ( + .A(ppul_sync_p1), + .B(ppul_sync_p2), + .C(VCC), + .D(VCC), + .Z(N_8) +); +defparam pcount10_0_o3.init=16'hDDDD; +// @16:1776 + LUT4 \phb_cnt_RNO_cZ[1] ( + .A(phb_cnt[0]), + .B(phb_cnt[1]), + .C(VCC), + .D(VCC), + .Z(phb_cnt_RNO[1]) +); +defparam \phb_cnt_RNO_cZ[1] .init=16'h6666; +// @16:1328 + LUT4 rtc_ctrl4_0_o3 ( + .A(rcount[4]), + .B(rcount[5]), + .C(VCC), + .D(VCC), + .Z(N_6) +); +defparam rtc_ctrl4_0_o3.init=16'h7777; +// @16:1286 + LUT4 unlock_5_cZ ( + .A(pdiff_sync), + .B(un13_unlock_cry_21), + .C(VCC), + .D(VCC), + .Z(unlock_5) +); +defparam unlock_5_cZ.init=16'h8888; +// @16:1292 + LUT4 lock_5_cZ ( + .A(pdiff_sync), + .B(un13_lock_cry_21_i), + .C(VCC), + .D(VCC), + .Z(lock_5) +); +defparam lock_5_cZ.init=16'h8888; +// @16:1389 + LUT4 rhb_wait_cnt12_cZ ( + .A(rhb_sync_p1), + .B(rhb_sync_p2), + .C(VCC), + .D(VCC), + .Z(rhb_wait_cnt12) +); +defparam rhb_wait_cnt12_cZ.init=16'h2222; +// @16:1786 + LUT4 \un1_pcount_diff_cZ[0] ( + .A(un13_lock_0), + .B(pcount[0]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff[0]) +); +defparam \un1_pcount_diff_cZ[0] .init=16'h5355; +// @16:1319 + LUT4 un1_rcount_1_0_a3_1_cZ ( + .A(rcount[2]), + .B(rcount[0]), + .C(rcount[5]), + .D(rcount[4]), + .Z(un1_rcount_1_0_a3_1) +); +defparam un1_rcount_1_0_a3_1_cZ.init=16'h8000; +// @16:1350 + LUT4 rhb_sync_p2_RNIU9TG1 ( + .A(un1_rhb_wait_cnt_5), + .B(un1_rhb_wait_cnt_4), + .C(rhb_sync_p2), + .D(rhb_sync_p1), + .Z(rhb_wait_cnt_scalar) +); +defparam rhb_sync_p2_RNIU9TG1.init=16'h7077; + CCU2C \pcount_cry_0[0] ( + .A0(VCC), + .B0(N_8), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_9), + .COUT(pcount_cry[0]), + .S0(pcount_cry_0_S0[0]), + .S1(pcount_s[0]) +); +defparam \pcount_cry_0[0] .INIT0=16'h500c; +defparam \pcount_cry_0[0] .INIT1=16'h8000; +defparam \pcount_cry_0[0] .INJECT1_0="NO"; +defparam \pcount_cry_0[0] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_cry_0[1] ( + .A0(N_8), + .B0(pcount[1]), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[2]), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[0]), + .COUT(pcount_cry[2]), + .S0(pcount_s[1]), + .S1(pcount_s[2]) +); +defparam \pcount_cry_0[1] .INIT0=16'h8000; +defparam \pcount_cry_0[1] .INIT1=16'h8000; +defparam \pcount_cry_0[1] .INJECT1_0="NO"; +defparam \pcount_cry_0[1] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_cry_0[3] ( + .A0(N_8), + .B0(pcount[3]), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[4]), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[2]), + .COUT(pcount_cry[4]), + .S0(pcount_s[3]), + .S1(pcount_s[4]) +); +defparam \pcount_cry_0[3] .INIT0=16'h8000; +defparam \pcount_cry_0[3] .INIT1=16'h8000; +defparam \pcount_cry_0[3] .INJECT1_0="NO"; +defparam \pcount_cry_0[3] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_cry_0[5] ( + .A0(N_8), + .B0(pcount[5]), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[6]), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[4]), + .COUT(pcount_cry[6]), + .S0(pcount_s[5]), + .S1(pcount_s[6]) +); +defparam \pcount_cry_0[5] .INIT0=16'h8000; +defparam \pcount_cry_0[5] .INIT1=16'h8000; +defparam \pcount_cry_0[5] .INJECT1_0="NO"; +defparam \pcount_cry_0[5] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_cry_0[7] ( + .A0(N_8), + .B0(pcount[7]), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[8]), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[6]), + .COUT(pcount_cry[8]), + .S0(pcount_s[7]), + .S1(pcount_s[8]) +); +defparam \pcount_cry_0[7] .INIT0=16'h8000; +defparam \pcount_cry_0[7] .INIT1=16'h8000; +defparam \pcount_cry_0[7] .INJECT1_0="NO"; +defparam \pcount_cry_0[7] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_cry_0[9] ( + .A0(N_8), + .B0(pcount[9]), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[10]), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[8]), + .COUT(pcount_cry[10]), + .S0(pcount_s[9]), + .S1(pcount_s[10]) +); +defparam \pcount_cry_0[9] .INIT0=16'h8000; +defparam \pcount_cry_0[9] .INIT1=16'h8000; +defparam \pcount_cry_0[9] .INJECT1_0="NO"; +defparam \pcount_cry_0[9] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_cry_0[11] ( + .A0(N_8), + .B0(pcount[11]), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[12]), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[10]), + .COUT(pcount_cry[12]), + .S0(pcount_s[11]), + .S1(pcount_s[12]) +); +defparam \pcount_cry_0[11] .INIT0=16'h8000; +defparam \pcount_cry_0[11] .INIT1=16'h8000; +defparam \pcount_cry_0[11] .INJECT1_0="NO"; +defparam \pcount_cry_0[11] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_cry_0[13] ( + .A0(N_8), + .B0(pcount[13]), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[14]), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[12]), + .COUT(pcount_cry[14]), + .S0(pcount_s[13]), + .S1(pcount_s[14]) +); +defparam \pcount_cry_0[13] .INIT0=16'h8000; +defparam \pcount_cry_0[13] .INIT1=16'h8000; +defparam \pcount_cry_0[13] .INJECT1_0="NO"; +defparam \pcount_cry_0[13] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_cry_0[15] ( + .A0(N_8), + .B0(pcount[15]), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[16]), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[14]), + .COUT(pcount_cry[16]), + .S0(pcount_s[15]), + .S1(pcount_s[16]) +); +defparam \pcount_cry_0[15] .INIT0=16'h8000; +defparam \pcount_cry_0[15] .INIT1=16'h8000; +defparam \pcount_cry_0[15] .INJECT1_0="NO"; +defparam \pcount_cry_0[15] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_cry_0[17] ( + .A0(N_8), + .B0(pcount[17]), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[18]), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[16]), + .COUT(pcount_cry[18]), + .S0(pcount_s[17]), + .S1(pcount_s[18]) +); +defparam \pcount_cry_0[17] .INIT0=16'h8000; +defparam \pcount_cry_0[17] .INIT1=16'h8000; +defparam \pcount_cry_0[17] .INJECT1_0="NO"; +defparam \pcount_cry_0[17] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_cry_0[19] ( + .A0(N_8), + .B0(pcount[19]), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[20]), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[18]), + .COUT(pcount_cry[20]), + .S0(pcount_s[19]), + .S1(pcount_s[20]) +); +defparam \pcount_cry_0[19] .INIT0=16'h8000; +defparam \pcount_cry_0[19] .INIT1=16'h8000; +defparam \pcount_cry_0[19] .INJECT1_0="NO"; +defparam \pcount_cry_0[19] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_s_0[21] ( + .A0(N_8), + .B0(pcount[21]), + .C0(VCC), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[20]), + .COUT(pcount_s_0_COUT[21]), + .S0(pcount_s[21]), + .S1(pcount_s_0_S1[21]) +); +defparam \pcount_s_0[21] .INIT0=16'h800a; +defparam \pcount_s_0[21] .INIT1=16'h5003; +defparam \pcount_s_0[21] .INJECT1_0="NO"; +defparam \pcount_s_0[21] .INJECT1_1="NO"; + CCU2C \rcount_cry_0[0] ( + .A0(VCC), + .B0(un1_rcount_1_0_a3), + .C0(VCC), + .D0(VCC), + .A1(un1_rcount_1_0_a3), + .B1(rcount[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_5), + .COUT(rcount_cry[0]), + .S0(rcount_cry_0_S0[0]), + .S1(rcount_s[0]) +); +defparam \rcount_cry_0[0] .INIT0=16'h5003; +defparam \rcount_cry_0[0] .INIT1=16'h4000; +defparam \rcount_cry_0[0] .INJECT1_0="NO"; +defparam \rcount_cry_0[0] .INJECT1_1="NO"; +// @16:1304 + CCU2C \rcount_cry_0[1] ( + .A0(un1_rcount_1_0_a3), + .B0(rcount[1]), + .C0(VCC), + .D0(VCC), + .A1(un1_rcount_1_0_a3), + .B1(rcount[2]), + .C1(VCC), + .D1(VCC), + .CIN(rcount_cry[0]), + .COUT(rcount_cry[2]), + .S0(rcount_s[1]), + .S1(rcount_s[2]) +); +defparam \rcount_cry_0[1] .INIT0=16'h4000; +defparam \rcount_cry_0[1] .INIT1=16'h4000; +defparam \rcount_cry_0[1] .INJECT1_0="NO"; +defparam \rcount_cry_0[1] .INJECT1_1="NO"; +// @16:1304 + CCU2C \rcount_cry_0[3] ( + .A0(un1_rcount_1_0_a3), + .B0(rcount[3]), + .C0(VCC), + .D0(VCC), + .A1(un1_rcount_1_0_a3), + .B1(rcount[4]), + .C1(VCC), + .D1(VCC), + .CIN(rcount_cry[2]), + .COUT(rcount_cry[4]), + .S0(rcount_s[3]), + .S1(rcount_s[4]) +); +defparam \rcount_cry_0[3] .INIT0=16'h4000; +defparam \rcount_cry_0[3] .INIT1=16'h4000; +defparam \rcount_cry_0[3] .INJECT1_0="NO"; +defparam \rcount_cry_0[3] .INJECT1_1="NO"; +// @16:1304 + CCU2C \rcount_cry_0[5] ( + .A0(un1_rcount_1_0_a3), + .B0(rcount[5]), + .C0(VCC), + .D0(VCC), + .A1(un1_rcount_1_0_a3), + .B1(rcount[6]), + .C1(VCC), + .D1(VCC), + .CIN(rcount_cry[4]), + .COUT(rcount_cry[6]), + .S0(rcount_s[5]), + .S1(rcount_s[6]) +); +defparam \rcount_cry_0[5] .INIT0=16'h4000; +defparam \rcount_cry_0[5] .INIT1=16'h4000; +defparam \rcount_cry_0[5] .INJECT1_0="NO"; +defparam \rcount_cry_0[5] .INJECT1_1="NO"; +// @16:1304 + CCU2C \rcount_cry_0[7] ( + .A0(un1_rcount_1_0_a3), + .B0(rcount[7]), + .C0(VCC), + .D0(VCC), + .A1(un1_rcount_1_0_a3), + .B1(rcount[8]), + .C1(VCC), + .D1(VCC), + .CIN(rcount_cry[6]), + .COUT(rcount_cry[8]), + .S0(rcount_s[7]), + .S1(rcount_s[8]) +); +defparam \rcount_cry_0[7] .INIT0=16'h4000; +defparam \rcount_cry_0[7] .INIT1=16'h4000; +defparam \rcount_cry_0[7] .INJECT1_0="NO"; +defparam \rcount_cry_0[7] .INJECT1_1="NO"; +// @16:1304 + CCU2C \rcount_cry_0[9] ( + .A0(un1_rcount_1_0_a3), + .B0(rcount[9]), + .C0(VCC), + .D0(VCC), + .A1(un1_rcount_1_0_a3), + .B1(rcount[10]), + .C1(VCC), + .D1(VCC), + .CIN(rcount_cry[8]), + .COUT(rcount_cry[10]), + .S0(rcount_s[9]), + .S1(rcount_s[10]) +); +defparam \rcount_cry_0[9] .INIT0=16'h4000; +defparam \rcount_cry_0[9] .INIT1=16'h4000; +defparam \rcount_cry_0[9] .INJECT1_0="NO"; +defparam \rcount_cry_0[9] .INJECT1_1="NO"; +// @16:1304 + CCU2C \rcount_cry_0[11] ( + .A0(un1_rcount_1_0_a3), + .B0(rcount[11]), + .C0(VCC), + .D0(VCC), + .A1(un1_rcount_1_0_a3), + .B1(rcount[12]), + .C1(VCC), + .D1(VCC), + .CIN(rcount_cry[10]), + .COUT(rcount_cry[12]), + .S0(rcount_s[11]), + .S1(rcount_s[12]) +); +defparam \rcount_cry_0[11] .INIT0=16'h4000; +defparam \rcount_cry_0[11] .INIT1=16'h4000; +defparam \rcount_cry_0[11] .INJECT1_0="NO"; +defparam \rcount_cry_0[11] .INJECT1_1="NO"; +// @16:1304 + CCU2C \rcount_cry_0[13] ( + .A0(un1_rcount_1_0_a3), + .B0(rcount[13]), + .C0(VCC), + .D0(VCC), + .A1(un1_rcount_1_0_a3), + .B1(rcount[14]), + .C1(VCC), + .D1(VCC), + .CIN(rcount_cry[12]), + .COUT(rcount_cry[14]), + .S0(rcount_s[13]), + .S1(rcount_s[14]) +); +defparam \rcount_cry_0[13] .INIT0=16'h4000; +defparam \rcount_cry_0[13] .INIT1=16'h4000; +defparam \rcount_cry_0[13] .INJECT1_0="NO"; +defparam \rcount_cry_0[13] .INJECT1_1="NO"; +// @16:1304 + CCU2C \rcount_s_0[15] ( + .A0(un1_rcount_1_0_a3), + .B0(rcount[15]), + .C0(VCC), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(rcount_cry[14]), + .COUT(rcount_s_0_COUT[15]), + .S0(rcount_s[15]), + .S1(rcount_s_0_S1[15]) +); +defparam \rcount_s_0[15] .INIT0=16'h4005; +defparam \rcount_s_0[15] .INIT1=16'h5003; +defparam \rcount_s_0[15] .INJECT1_0="NO"; +defparam \rcount_s_0[15] .INJECT1_1="NO"; + CCU2C \rhb_wait_cnt_cry_0[0] ( + .A0(VCC), + .B0(rhb_wait_cnt_scalar), + .C0(VCC), + .D0(VCC), + .A1(rhb_wait_cnt_scalar), + .B1(rhb_wait_cnt[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_4), + .COUT(rhb_wait_cnt_cry[0]), + .S0(rhb_wait_cnt_cry_0_S0[0]), + .S1(rhb_wait_cnt_s[0]) +); +defparam \rhb_wait_cnt_cry_0[0] .INIT0=16'h500c; +defparam \rhb_wait_cnt_cry_0[0] .INIT1=16'h8000; +defparam \rhb_wait_cnt_cry_0[0] .INJECT1_0="NO"; +defparam \rhb_wait_cnt_cry_0[0] .INJECT1_1="NO"; +// @16:1350 + CCU2C \rhb_wait_cnt_cry_0[1] ( + .A0(rhb_wait_cnt_scalar), + .B0(rhb_wait_cnt[1]), + .C0(VCC), + .D0(VCC), + .A1(rhb_wait_cnt_scalar), + .B1(rhb_wait_cnt[2]), + .C1(VCC), + .D1(VCC), + .CIN(rhb_wait_cnt_cry[0]), + .COUT(rhb_wait_cnt_cry[2]), + .S0(rhb_wait_cnt_s[1]), + .S1(rhb_wait_cnt_s[2]) +); +defparam \rhb_wait_cnt_cry_0[1] .INIT0=16'h8000; +defparam \rhb_wait_cnt_cry_0[1] .INIT1=16'h8000; +defparam \rhb_wait_cnt_cry_0[1] .INJECT1_0="NO"; +defparam \rhb_wait_cnt_cry_0[1] .INJECT1_1="NO"; +// @16:1350 + CCU2C \rhb_wait_cnt_cry_0[3] ( + .A0(rhb_wait_cnt_scalar), + .B0(rhb_wait_cnt[3]), + .C0(VCC), + .D0(VCC), + .A1(rhb_wait_cnt_scalar), + .B1(rhb_wait_cnt[4]), + .C1(VCC), + .D1(VCC), + .CIN(rhb_wait_cnt_cry[2]), + .COUT(rhb_wait_cnt_cry[4]), + .S0(rhb_wait_cnt_s[3]), + .S1(rhb_wait_cnt_s[4]) +); +defparam \rhb_wait_cnt_cry_0[3] .INIT0=16'h8000; +defparam \rhb_wait_cnt_cry_0[3] .INIT1=16'h8000; +defparam \rhb_wait_cnt_cry_0[3] .INJECT1_0="NO"; +defparam \rhb_wait_cnt_cry_0[3] .INJECT1_1="NO"; +// @16:1350 + CCU2C \rhb_wait_cnt_cry_0[5] ( + .A0(rhb_wait_cnt_scalar), + .B0(rhb_wait_cnt[5]), + .C0(VCC), + .D0(VCC), + .A1(rhb_wait_cnt_scalar), + .B1(rhb_wait_cnt[6]), + .C1(VCC), + .D1(VCC), + .CIN(rhb_wait_cnt_cry[4]), + .COUT(rhb_wait_cnt_cry[6]), + .S0(rhb_wait_cnt_s[5]), + .S1(rhb_wait_cnt_s[6]) +); +defparam \rhb_wait_cnt_cry_0[5] .INIT0=16'h8000; +defparam \rhb_wait_cnt_cry_0[5] .INIT1=16'h8000; +defparam \rhb_wait_cnt_cry_0[5] .INJECT1_0="NO"; +defparam \rhb_wait_cnt_cry_0[5] .INJECT1_1="NO"; +// @16:1350 + CCU2C \rhb_wait_cnt_s_0[7] ( + .A0(rhb_wait_cnt_scalar), + .B0(rhb_wait_cnt[7]), + .C0(VCC), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(rhb_wait_cnt_cry[6]), + .COUT(rhb_wait_cnt_s_0_COUT[7]), + .S0(rhb_wait_cnt_s[7]), + .S1(rhb_wait_cnt_s_0_S1[7]) +); +defparam \rhb_wait_cnt_s_0[7] .INIT0=16'h800a; +defparam \rhb_wait_cnt_s_0[7] .INIT1=16'h5003; +defparam \rhb_wait_cnt_s_0[7] .INJECT1_0="NO"; +defparam \rhb_wait_cnt_s_0[7] .INJECT1_1="NO"; + CCU2C un1_pcount_diff_1_cry_0_0 ( + .A0(VCC), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un1_pcount_diff[0]), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(N_3), + .COUT(un1_pcount_diff_1_cry_0), + .S0(un1_pcount_diff_1_cry_0_0_S0), + .S1(un1_pcount_diff_1_cry_0_0_S1) +); +defparam un1_pcount_diff_1_cry_0_0.INIT0=16'h5003; +defparam un1_pcount_diff_1_cry_0_0.INIT1=16'h500f; +defparam un1_pcount_diff_1_cry_0_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_0_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_cry_1_0 ( + .A0(un1_pcount_diff_1_axb_1), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un1_pcount_diff_1_axb_2), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_0), + .COUT(un1_pcount_diff_1_cry_2), + .S0(un1_pcount_diff_1_cry_1_0_S0), + .S1(un1_pcount_diff_1_cry_1_0_S1) +); +defparam un1_pcount_diff_1_cry_1_0.INIT0=16'ha003; +defparam un1_pcount_diff_1_cry_1_0.INIT1=16'ha003; +defparam un1_pcount_diff_1_cry_1_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_1_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_cry_3_0 ( + .A0(un1_pcount_diff_1_axb_3), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un1_pcount_diff_1_axb_4), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_2), + .COUT(un1_pcount_diff_1_cry_4), + .S0(un1_pcount_diff_1_cry_3_0_S0), + .S1(un1_pcount_diff_1_cry_3_0_S1) +); +defparam un1_pcount_diff_1_cry_3_0.INIT0=16'ha003; +defparam un1_pcount_diff_1_cry_3_0.INIT1=16'ha003; +defparam un1_pcount_diff_1_cry_3_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_3_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_cry_5_0 ( + .A0(un1_pcount_diff_1_axb_5), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un1_pcount_diff_1_axb_6), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_4), + .COUT(un1_pcount_diff_1_cry_6), + .S0(un1_pcount_diff_1_cry_5_0_S0), + .S1(un1_pcount_diff_1_cry_5_0_S1) +); +defparam un1_pcount_diff_1_cry_5_0.INIT0=16'ha003; +defparam un1_pcount_diff_1_cry_5_0.INIT1=16'ha003; +defparam un1_pcount_diff_1_cry_5_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_5_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_cry_7_0 ( + .A0(un1_pcount_diff_1_axb_7), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un1_pcount_diff_1_axb_8), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_6), + .COUT(un1_pcount_diff_1_cry_8), + .S0(un1_pcount_diff_1_cry_7_0_S0), + .S1(un1_pcount_diff_1_cry_7_0_S1) +); +defparam un1_pcount_diff_1_cry_7_0.INIT0=16'ha003; +defparam un1_pcount_diff_1_cry_7_0.INIT1=16'ha003; +defparam un1_pcount_diff_1_cry_7_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_7_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_cry_9_0 ( + .A0(un1_pcount_diff_1_axb_9), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un1_pcount_diff_1_axb_10), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_8), + .COUT(un1_pcount_diff_1_cry_10), + .S0(un1_pcount_diff_1_cry_9_0_S0), + .S1(un1_pcount_diff_1_cry_9_0_S1) +); +defparam un1_pcount_diff_1_cry_9_0.INIT0=16'ha003; +defparam un1_pcount_diff_1_cry_9_0.INIT1=16'ha003; +defparam un1_pcount_diff_1_cry_9_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_9_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_cry_11_0 ( + .A0(un1_pcount_diff_1_axb_11), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un1_pcount_diff_1_axb_12), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_10), + .COUT(un1_pcount_diff_1_cry_12), + .S0(un1_pcount_diff_1_cry_11_0_S0), + .S1(un1_pcount_diff_1_cry_11_0_S1) +); +defparam un1_pcount_diff_1_cry_11_0.INIT0=16'ha003; +defparam un1_pcount_diff_1_cry_11_0.INIT1=16'ha003; +defparam un1_pcount_diff_1_cry_11_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_11_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_cry_13_0 ( + .A0(un1_pcount_diff_1_axb_13), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un1_pcount_diff_1_axb_14), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_12), + .COUT(un1_pcount_diff_1_cry_14), + .S0(un1_pcount_diff_1_cry_13_0_S0), + .S1(un1_pcount_diff_1_cry_13_0_S1) +); +defparam un1_pcount_diff_1_cry_13_0.INIT0=16'ha003; +defparam un1_pcount_diff_1_cry_13_0.INIT1=16'ha003; +defparam un1_pcount_diff_1_cry_13_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_13_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_cry_15_0 ( + .A0(un1_pcount_diff_1_axb_15), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(rdiff_comp_lock[2]), + .C1(un1_pcount_diff_1_cry_15_0_RNO_0), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_14), + .COUT(un1_pcount_diff_1_cry_16), + .S0(un1_pcount_diff_1_cry_15_0_S0), + .S1(un1_pcount_diff_1_cry_15_0_S1) +); +defparam un1_pcount_diff_1_cry_15_0.INIT0=16'ha003; +defparam un1_pcount_diff_1_cry_15_0.INIT1=16'hb404; +defparam un1_pcount_diff_1_cry_15_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_15_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_cry_17_0 ( + .A0(un1_pcount_diff_1_axb_17), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un1_pcount_diff_1_axb_18), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_16), + .COUT(un1_pcount_diff_1_cry_18), + .S0(un1_pcount_diff_1_cry_17_0_S0), + .S1(un1_pcount_diff_1_cry_17_0_S1) +); +defparam un1_pcount_diff_1_cry_17_0.INIT0=16'ha003; +defparam un1_pcount_diff_1_cry_17_0.INIT1=16'ha003; +defparam un1_pcount_diff_1_cry_17_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_17_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_cry_19_0 ( + .A0(un1_pcount_diff_1_axb_19), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un1_pcount_diff_1_axb_20), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_18), + .COUT(un1_pcount_diff_1_cry_20), + .S0(un1_pcount_diff_1_cry_19_0_S0), + .S1(un1_pcount_diff_1_cry_19_0_S1) +); +defparam un1_pcount_diff_1_cry_19_0.INIT0=16'ha003; +defparam un1_pcount_diff_1_cry_19_0.INIT1=16'ha003; +defparam un1_pcount_diff_1_cry_19_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_19_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_s_21_0 ( + .A0(pcount[21]), + .B0(un13_lock_21), + .C0(N_8), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_20), + .COUT(un1_pcount_diff_1_s_21_0_COUT), + .S0(un1_pcount_diff_1_s_21_0_S0), + .S1(un1_pcount_diff_1_s_21_0_S1) +); +defparam un1_pcount_diff_1_s_21_0.INIT0=16'h350a; +defparam un1_pcount_diff_1_s_21_0.INIT1=16'h5003; +defparam un1_pcount_diff_1_s_21_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_s_21_0.INJECT1_1="NO"; + CCU2C un13_lock_cry_0_0 ( + .A0(VCC), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_0), + .B1(rdiff_comp_lock[2]), + .C1(VCC), + .D1(VCC), + .CIN(N_2), + .COUT(un13_lock_cry_0), + .S0(un13_lock_cry_0_0_S0), + .S1(un13_lock_cry_0_0_S1) +); +defparam un13_lock_cry_0_0.INIT0=16'h5003; +defparam un13_lock_cry_0_0.INIT1=16'h900a; +defparam un13_lock_cry_0_0.INJECT1_0="NO"; +defparam un13_lock_cry_0_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_1_0 ( + .A0(un13_lock_1), + .B0(rdiff_comp_lock[2]), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_2), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_0), + .COUT(un13_lock_cry_2), + .S0(un13_lock_cry_1_0_S0), + .S1(un13_lock_cry_1_0_S1) +); +defparam un13_lock_cry_1_0.INIT0=16'h900a; +defparam un13_lock_cry_1_0.INIT1=16'h500a; +defparam un13_lock_cry_1_0.INJECT1_0="NO"; +defparam un13_lock_cry_1_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_3_0 ( + .A0(un13_lock_3), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_4), + .B1(rdiff_comp_lock[2]), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_2), + .COUT(un13_lock_cry_4), + .S0(un13_lock_cry_3_0_S0), + .S1(un13_lock_cry_3_0_S1) +); +defparam un13_lock_cry_3_0.INIT0=16'h500a; +defparam un13_lock_cry_3_0.INIT1=16'h900a; +defparam un13_lock_cry_3_0.INJECT1_0="NO"; +defparam un13_lock_cry_3_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_5_0 ( + .A0(un13_lock_5), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_6), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_4), + .COUT(un13_lock_cry_6), + .S0(un13_lock_cry_5_0_S0), + .S1(un13_lock_cry_5_0_S1) +); +defparam un13_lock_cry_5_0.INIT0=16'h500a; +defparam un13_lock_cry_5_0.INIT1=16'h500a; +defparam un13_lock_cry_5_0.INJECT1_0="NO"; +defparam un13_lock_cry_5_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_7_0 ( + .A0(un13_lock_7), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_8), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_6), + .COUT(un13_lock_cry_8), + .S0(un13_lock_cry_7_0_S0), + .S1(un13_lock_cry_7_0_S1) +); +defparam un13_lock_cry_7_0.INIT0=16'h500a; +defparam un13_lock_cry_7_0.INIT1=16'h500a; +defparam un13_lock_cry_7_0.INJECT1_0="NO"; +defparam un13_lock_cry_7_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_9_0 ( + .A0(un13_lock_9), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_10), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_8), + .COUT(un13_lock_cry_10), + .S0(un13_lock_cry_9_0_S0), + .S1(un13_lock_cry_9_0_S1) +); +defparam un13_lock_cry_9_0.INIT0=16'h500a; +defparam un13_lock_cry_9_0.INIT1=16'h500a; +defparam un13_lock_cry_9_0.INJECT1_0="NO"; +defparam un13_lock_cry_9_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_11_0 ( + .A0(un13_lock_11), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_12), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_10), + .COUT(un13_lock_cry_12), + .S0(un13_lock_cry_11_0_S0), + .S1(un13_lock_cry_11_0_S1) +); +defparam un13_lock_cry_11_0.INIT0=16'h500a; +defparam un13_lock_cry_11_0.INIT1=16'h500a; +defparam un13_lock_cry_11_0.INJECT1_0="NO"; +defparam un13_lock_cry_11_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_13_0 ( + .A0(un13_lock_13), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_14), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_12), + .COUT(un13_lock_cry_14), + .S0(un13_lock_cry_13_0_S0), + .S1(un13_lock_cry_13_0_S1) +); +defparam un13_lock_cry_13_0.INIT0=16'h500a; +defparam un13_lock_cry_13_0.INIT1=16'h500a; +defparam un13_lock_cry_13_0.INJECT1_0="NO"; +defparam un13_lock_cry_13_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_15_0 ( + .A0(un13_lock_15), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_16), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_14), + .COUT(un13_lock_cry_16), + .S0(un13_lock_cry_15_0_S0), + .S1(un13_lock_cry_15_0_S1) +); +defparam un13_lock_cry_15_0.INIT0=16'h500a; +defparam un13_lock_cry_15_0.INIT1=16'h500a; +defparam un13_lock_cry_15_0.INJECT1_0="NO"; +defparam un13_lock_cry_15_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_17_0 ( + .A0(un13_lock_17), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_18), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_16), + .COUT(un13_lock_cry_18), + .S0(un13_lock_cry_17_0_S0), + .S1(un13_lock_cry_17_0_S1) +); +defparam un13_lock_cry_17_0.INIT0=16'h500a; +defparam un13_lock_cry_17_0.INIT1=16'h500a; +defparam un13_lock_cry_17_0.INJECT1_0="NO"; +defparam un13_lock_cry_17_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_19_0 ( + .A0(un13_lock_19), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_20), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_18), + .COUT(un13_lock_cry_20), + .S0(un13_lock_cry_19_0_S0), + .S1(un13_lock_cry_19_0_S1) +); +defparam un13_lock_cry_19_0.INIT0=16'h500a; +defparam un13_lock_cry_19_0.INIT1=16'h500a; +defparam un13_lock_cry_19_0.INJECT1_0="NO"; +defparam un13_lock_cry_19_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_21_0 ( + .A0(un13_lock_21), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_20), + .COUT(un13_lock_cry_21_0_COUT), + .S0(un13_lock_cry_21_0_S0), + .S1(un13_lock_cry_21_i) +); +defparam un13_lock_cry_21_0.INIT0=16'h500f; +defparam un13_lock_cry_21_0.INIT1=16'ha003; +defparam un13_lock_cry_21_0.INJECT1_0="NO"; +defparam un13_lock_cry_21_0.INJECT1_1="NO"; + CCU2C un13_unlock_cry_0_0 ( + .A0(VCC), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_0), + .B1(rdiff_comp_lock[2]), + .C1(VCC), + .D1(VCC), + .CIN(N_1), + .COUT(un13_unlock_cry_0), + .S0(un13_unlock_cry_0_0_S0), + .S1(un13_unlock_cry_0_0_S1) +); +defparam un13_unlock_cry_0_0.INIT0=16'h5003; +defparam un13_unlock_cry_0_0.INIT1=16'h900a; +defparam un13_unlock_cry_0_0.INJECT1_0="NO"; +defparam un13_unlock_cry_0_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_1_0 ( + .A0(un13_lock_1), + .B0(rdiff_comp_lock[2]), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_2), + .B1(rdiff_comp_lock[2]), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_0), + .COUT(un13_unlock_cry_2), + .S0(un13_unlock_cry_1_0_S0), + .S1(un13_unlock_cry_1_0_S1) +); +defparam un13_unlock_cry_1_0.INIT0=16'h900a; +defparam un13_unlock_cry_1_0.INIT1=16'h900a; +defparam un13_unlock_cry_1_0.INJECT1_0="NO"; +defparam un13_unlock_cry_1_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_3_0 ( + .A0(un13_lock_3), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_4), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_2), + .COUT(un13_unlock_cry_4), + .S0(un13_unlock_cry_3_0_S0), + .S1(un13_unlock_cry_3_0_S1) +); +defparam un13_unlock_cry_3_0.INIT0=16'h500a; +defparam un13_unlock_cry_3_0.INIT1=16'h500a; +defparam un13_unlock_cry_3_0.INJECT1_0="NO"; +defparam un13_unlock_cry_3_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_5_0 ( + .A0(un13_lock_5), + .B0(rdiff_comp_lock[2]), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_6), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_4), + .COUT(un13_unlock_cry_6), + .S0(un13_unlock_cry_5_0_S0), + .S1(un13_unlock_cry_5_0_S1) +); +defparam un13_unlock_cry_5_0.INIT0=16'h900a; +defparam un13_unlock_cry_5_0.INIT1=16'h500a; +defparam un13_unlock_cry_5_0.INJECT1_0="NO"; +defparam un13_unlock_cry_5_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_7_0 ( + .A0(un13_lock_7), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_8), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_6), + .COUT(un13_unlock_cry_8), + .S0(un13_unlock_cry_7_0_S0), + .S1(un13_unlock_cry_7_0_S1) +); +defparam un13_unlock_cry_7_0.INIT0=16'h500a; +defparam un13_unlock_cry_7_0.INIT1=16'h500a; +defparam un13_unlock_cry_7_0.INJECT1_0="NO"; +defparam un13_unlock_cry_7_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_9_0 ( + .A0(un13_lock_9), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_10), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_8), + .COUT(un13_unlock_cry_10), + .S0(un13_unlock_cry_9_0_S0), + .S1(un13_unlock_cry_9_0_S1) +); +defparam un13_unlock_cry_9_0.INIT0=16'h500a; +defparam un13_unlock_cry_9_0.INIT1=16'h500a; +defparam un13_unlock_cry_9_0.INJECT1_0="NO"; +defparam un13_unlock_cry_9_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_11_0 ( + .A0(un13_lock_11), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_12), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_10), + .COUT(un13_unlock_cry_12), + .S0(un13_unlock_cry_11_0_S0), + .S1(un13_unlock_cry_11_0_S1) +); +defparam un13_unlock_cry_11_0.INIT0=16'h500a; +defparam un13_unlock_cry_11_0.INIT1=16'h500a; +defparam un13_unlock_cry_11_0.INJECT1_0="NO"; +defparam un13_unlock_cry_11_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_13_0 ( + .A0(un13_lock_13), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_14), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_12), + .COUT(un13_unlock_cry_14), + .S0(un13_unlock_cry_13_0_S0), + .S1(un13_unlock_cry_13_0_S1) +); +defparam un13_unlock_cry_13_0.INIT0=16'h500a; +defparam un13_unlock_cry_13_0.INIT1=16'h500a; +defparam un13_unlock_cry_13_0.INJECT1_0="NO"; +defparam un13_unlock_cry_13_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_15_0 ( + .A0(un13_lock_15), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_16), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_14), + .COUT(un13_unlock_cry_16), + .S0(un13_unlock_cry_15_0_S0), + .S1(un13_unlock_cry_15_0_S1) +); +defparam un13_unlock_cry_15_0.INIT0=16'h500a; +defparam un13_unlock_cry_15_0.INIT1=16'h500a; +defparam un13_unlock_cry_15_0.INJECT1_0="NO"; +defparam un13_unlock_cry_15_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_17_0 ( + .A0(un13_lock_17), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_18), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_16), + .COUT(un13_unlock_cry_18), + .S0(un13_unlock_cry_17_0_S0), + .S1(un13_unlock_cry_17_0_S1) +); +defparam un13_unlock_cry_17_0.INIT0=16'h500a; +defparam un13_unlock_cry_17_0.INIT1=16'h500a; +defparam un13_unlock_cry_17_0.INJECT1_0="NO"; +defparam un13_unlock_cry_17_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_19_0 ( + .A0(un13_lock_19), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_20), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_18), + .COUT(un13_unlock_cry_20), + .S0(un13_unlock_cry_19_0_S0), + .S1(un13_unlock_cry_19_0_S1) +); +defparam un13_unlock_cry_19_0.INIT0=16'h500a; +defparam un13_unlock_cry_19_0.INIT1=16'h500a; +defparam un13_unlock_cry_19_0.INJECT1_0="NO"; +defparam un13_unlock_cry_19_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_21_0 ( + .A0(un13_lock_21), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_20), + .COUT(un13_unlock_cry_21_0_COUT), + .S0(un13_unlock_cry_21_0_S0), + .S1(un13_unlock_cry_21) +); +defparam un13_unlock_cry_21_0.INIT0=16'h500f; +defparam un13_unlock_cry_21_0.INIT1=16'h5003; +defparam un13_unlock_cry_21_0.INJECT1_0="NO"; +defparam un13_unlock_cry_21_0.INJECT1_1="NO"; +//@16:1801 +//@8:424 +// @16:1211 + sync_0s phb_sync_inst ( + .phb(phb), + .rhb_sync(rhb_sync), + .sli_rst(sli_rst), + .pll_refclki(pll_refclki) +); +// @16:1220 + sync_0s_6 rtc_sync_inst ( + .rtc_pul(rtc_pul), + .ppul_sync(ppul_sync), + .sli_rst(sli_rst), + .tx_pclk(tx_pclk) +); +// @16:1228 + sync_0s_0 pdiff_sync_inst ( + .ppul_sync(ppul_sync), + .pdiff_sync(pdiff_sync), + .sli_rst(sli_rst), + .pll_refclki(pll_refclki) +); + VHI VCC_0 ( + .Z(VCC) +); +// @16:865 + VLO GND_cZ ( + .Z(GND) +); +endmodule /* sgmii_ecp5sll_core_Z1_layer1 */ + +module sgmii_ecp5rsl_core_Z2_layer1 ( + rx_pcs_rst_c, + tx_pcs_rst_c, + serdes_rst_dual_c, + tx_serdes_rst_c, + rsl_rx_pcs_rst_c, + rsl_tx_pcs_rst_c, + rsl_tx_serdes_rst_c, + rsl_tx_rdy, + pll_lock_i, + pll_refclki, + rsl_rx_rdy, + rsl_rst, + rxrefclk, + rsl_disable, + rx_serdes_rst_c, + rst_dual_c, + rx_cdr_lol_s, + rx_los_low_s, + rsl_rx_serdes_rst_c, + rsl_serdes_rst_dual_c +) +; +input rx_pcs_rst_c ; +input tx_pcs_rst_c ; +input serdes_rst_dual_c ; +input tx_serdes_rst_c ; +output rsl_rx_pcs_rst_c ; +output rsl_tx_pcs_rst_c ; +output rsl_tx_serdes_rst_c ; +output rsl_tx_rdy ; +input pll_lock_i ; +input pll_refclki ; +output rsl_rx_rdy ; +input rsl_rst ; +input rxrefclk ; +input rsl_disable ; +input rx_serdes_rst_c ; +input rst_dual_c ; +input rx_cdr_lol_s ; +input rx_los_low_s ; +output rsl_rx_serdes_rst_c ; +output rsl_serdes_rst_dual_c ; +wire rx_pcs_rst_c ; +wire tx_pcs_rst_c ; +wire serdes_rst_dual_c ; +wire tx_serdes_rst_c ; +wire rsl_rx_pcs_rst_c ; +wire rsl_tx_pcs_rst_c ; +wire rsl_tx_serdes_rst_c ; +wire rsl_tx_rdy ; +wire pll_lock_i ; +wire pll_refclki ; +wire rsl_rx_rdy ; +wire rsl_rst ; +wire rxrefclk ; +wire rsl_disable ; +wire rx_serdes_rst_c ; +wire rst_dual_c ; +wire rx_cdr_lol_s ; +wire rx_los_low_s ; +wire rsl_rx_serdes_rst_c ; +wire rsl_serdes_rst_dual_c ; +wire [1:0] rxs_cnt; +wire [1:0] rxs_cnt_3; +wire [0:0] rxpr_appd_RNO; +wire [2:0] plol0_cnt; +wire [2:0] plol0_cnt_3; +wire [0:0] rxsr_appd; +wire [1:0] rxs_cnt_QN; +wire [3:0] rlos_db_cnt; +wire [3:0] rlos_db_cnt_QN; +wire [17:0] rlols0_cnt_s; +wire [17:0] rlols0_cnt; +wire [17:0] rlols0_cnt_QN; +wire [3:0] rlol_db_cnt; +wire [3:0] rlol_db_cnt_QN; +wire [18:0] rlol1_cnt_s; +wire [18:0] rlol1_cnt; +wire [18:0] rlol1_cnt_QN; +wire [11:0] rxr_wt_cnt_s; +wire [11:0] rxr_wt_cnt; +wire [11:0] rxr_wt_cnt_QN; +wire [0:0] rxsr_appd_QN; +wire [0:0] rxpr_appd; +wire [0:0] rxpr_appd_QN; +wire [1:0] txs_cnt; +wire [1:0] txs_cnt_QN; +wire [1:1] txs_cnt_RNO; +wire [1:0] txp_cnt; +wire [1:0] txp_cnt_QN; +wire [1:1] txp_cnt_RNO; +wire [19:0] plol_cnt_s; +wire [19:0] plol_cnt; +wire [19:0] plol_cnt_QN; +wire [2:0] plol0_cnt_QN; +wire [11:0] txr_wt_cnt_s; +wire [11:0] txr_wt_cnt; +wire [11:0] txr_wt_cnt_QN; +wire [0:0] txpr_appd; +wire [0:0] txpr_appd_QN; +wire [0:0] un1_rlol_db_cnt_zero; +wire [0:0] un1_rlos_db_cnt_zero; +wire [0:0] un1_rlol_db_cnt_zero_bm; +wire [0:0] un1_rlol_db_cnt_zero_am; +wire [0:0] un1_rlos_db_cnt_zero_bm; +wire [0:0] un1_rlos_db_cnt_zero_am; +wire [16:0] rlol1_cnt_cry; +wire [0:0] rlol1_cnt_cry_0_S0; +wire [17:17] rlol1_cnt_cry_0_COUT; +wire [16:0] rlols0_cnt_cry; +wire [0:0] rlols0_cnt_cry_0_S0; +wire [17:17] rlols0_cnt_s_0_COUT; +wire [17:17] rlols0_cnt_s_0_S1; +wire [10:0] txr_wt_cnt_cry; +wire [0:0] txr_wt_cnt_cry_0_S0; +wire [11:11] txr_wt_cnt_s_0_COUT; +wire [11:11] txr_wt_cnt_s_0_S1; +wire [10:0] rxr_wt_cnt_cry; +wire [0:0] rxr_wt_cnt_cry_0_S0; +wire [11:11] rxr_wt_cnt_s_0_COUT; +wire [11:11] rxr_wt_cnt_s_0_S1; +wire [18:0] plol_cnt_cry; +wire [0:0] plol_cnt_cry_0_S0; +wire [19:19] plol_cnt_s_0_COUT; +wire [19:19] plol_cnt_s_0_S1; +wire rxs_rst ; +wire VCC ; +wire rlos_db_p1 ; +wire rlos_db ; +wire rxp_rst25 ; +wire rlol_db ; +wire un1_rui_rst_dual_c_1_1 ; +wire plol0_cnt9 ; +wire waita_plol0 ; +wire rx_any_rst ; +wire un3_rx_all_well_2 ; +wire un17_rxr_wt_tc ; +wire rx_all_well ; +wire un3_rx_all_well_1 ; +wire rxr_wt_cnt9 ; +wire un1_rui_rst_dual_c_1_i ; +wire rlol1_cnt_tc_1 ; +wire rlol1_cnt_scalar ; +wire rxr_wt_en ; +wire rxr_wt_cnte ; +wire un18_txr_wt_tc ; +wire tx_any_rst ; +wire pll_lol_p2 ; +wire un2_plol_fedge_5_i ; +wire N_2160_0 ; +wire waita_rlols06 ; +wire un1_rlols0_cnt_tc ; +wire waita_rlols0 ; +wire waita_rlols0_QN ; +wire wait_calib_RNO ; +wire un1_rlos_fedge_1 ; +wire wait_calib ; +wire wait_calib_QN ; +wire rxs_rst6 ; +wire un1_rxs_cnt_tc ; +wire rxs_rst_QN ; +wire un2_rlos_redge_1_i ; +wire rxp_rst2 ; +wire rxp_rst2_QN ; +wire rlos_p1 ; +wire rlos_p2 ; +wire rlos_p2_QN ; +wire rlos_p1_QN ; +wire rlos_db_p1_QN ; +wire rlos_db_cnt_axb_0 ; +wire rlos_db_cnt_cry_1_0_S0 ; +wire rlos_db_cnt_cry_1_0_S1 ; +wire rlos_db_cnt_s_3_0_S0 ; +wire un1_rlos_db_cnt_max ; +wire rlos_db_QN ; +wire rlols0_cnte ; +wire rlol_p1 ; +wire rlol_p2 ; +wire rlol_p2_QN ; +wire rlol_p1_QN ; +wire rlol_db_p1 ; +wire rlol_db_p1_QN ; +wire rlol_db_cnt_axb_0 ; +wire rlol_db_cnt_cry_1_0_S0 ; +wire rlol_db_cnt_cry_1_0_S1 ; +wire rlol_db_cnt_s_3_0_S0 ; +wire un1_rlol_db_cnt_max ; +wire rlol_db_QN ; +wire rlol1_cnte ; +wire rxsdr_appd_2 ; +wire rxsdr_appd_4 ; +wire rxsdr_appd_QN ; +wire un1_dual_or_rserd_rst_2_i ; +wire rxr_wt_en_QN ; +wire rxdpr_appd ; +wire rxdpr_appd_QN ; +wire ruo_rx_rdyr_QN ; +wire un2_rdo_serdes_rst_dual_c_2_i ; +wire plol_fedge ; +wire un1_plol0_cnt_tc_1_i ; +wire waita_plol0_QN ; +wire un1_plol_cnt_tc ; +wire un2_plol_cnt_tc ; +wire txs_rst ; +wire txs_rst_QN ; +wire N_10_i ; +wire un9_plol0_cnt_tc ; +wire un1_plol0_cnt_tc_1 ; +wire txp_rst ; +wire txp_rst_QN ; +wire N_11_i ; +wire pll_lol_p3 ; +wire pll_lol_p3_QN ; +wire pll_lol_p1 ; +wire pll_lol_p2_QN ; +wire pll_lol_p1_QN ; +wire txsr_appd_2 ; +wire txsr_appd_4 ; +wire txsr_appd_QN ; +wire un1_dual_or_serd_rst_1_1 ; +wire un1_dual_or_serd_rst_1_i ; +wire txr_wt_en ; +wire txr_wt_en_QN ; +wire txr_wt_cnte ; +wire un2_plol_fedge_2 ; +wire un2_plol_fedge_3_i ; +wire txdpr_appd ; +wire txdpr_appd_QN ; +wire un2_plol_fedge_5_1 ; +wire ruo_tx_rdyr_QN ; +wire un2_plol_fedge_8_i ; +wire rlols0_cnt_tc_1 ; +wire rlos_redge ; +wire rlols0_cnt11_0 ; +wire plol_cnt_scalar ; +wire rlols0_cnt_scalar ; +wire un8_rxs_cnt_tc ; +wire un1_txsr_appd ; +wire un1_dual_or_rserd_rst_2_0 ; +wire un1_rxsdr_or_sr_appd ; +wire un2_rdo_serdes_rst_dual_c_1_1 ; +wire rlols0_cnt_tc_1_10 ; +wire rlols0_cnt_tc_1_11 ; +wire rlols0_cnt_tc_1_12 ; +wire rlols0_cnt_tc_1_13 ; +wire rlol1_cnt_tc_1_11 ; +wire rlol1_cnt_tc_1_12 ; +wire rlol1_cnt_tc_1_13 ; +wire rlol1_cnt_tc_1_14 ; +wire un1_plol_cnt_tc_11 ; +wire un1_plol_cnt_tc_12 ; +wire un1_plol_cnt_tc_13 ; +wire un1_plol_cnt_tc_14 ; +wire CO0_2 ; +wire un17_rxr_wt_tc_6 ; +wire un17_rxr_wt_tc_7 ; +wire un17_rxr_wt_tc_8 ; +wire un18_txr_wt_tc_6 ; +wire un18_txr_wt_tc_7 ; +wire un18_txr_wt_tc_8 ; +wire rlols0_cnt_tc_1_9 ; +wire un1_plol_cnt_tc_10 ; +wire rlol1_cnt_tc_1_10 ; +wire txr_wt_cnt_scalar ; +wire rlos_db_cnt_cry_0 ; +wire rlos_db_cnt_cry_0_0_S0 ; +wire rlos_db_cnt_cry_0_0_S1 ; +wire rlos_db_cnt_cry_2 ; +wire rlos_db_cnt_s_3_0_COUT ; +wire rlos_db_cnt_s_3_0_S1 ; +wire rlol_db_cnt_cry_0 ; +wire rlol_db_cnt_cry_0_0_S0 ; +wire rlol_db_cnt_cry_0_0_S1 ; +wire rlol_db_cnt_cry_2 ; +wire rlol_db_cnt_s_3_0_COUT ; +wire rlol_db_cnt_s_3_0_S1 ; +wire GND ; +wire N_1 ; +wire N_2 ; +wire N_3 ; +wire N_4 ; +wire N_5 ; +wire N_6 ; +wire N_7 ; + LUT4 \genblk2.rxs_cnt_RNO[0] ( + .A(rxs_rst), + .B(rxs_cnt[0]), + .C(rxs_cnt[1]), + .D(VCC), + .Z(rxs_cnt_3[0]) +); +defparam \genblk2.rxs_cnt_RNO[0] .init=16'h2626; + LUT4 \genblk2.genblk3.lfor[0].rxpr_appd_RNO[0] ( + .A(rsl_serdes_rst_dual_c), + .B(rsl_rx_serdes_rst_c), + .C(rx_los_low_s), + .D(rx_cdr_lol_s), + .Z(rxpr_appd_RNO[0]) +); +defparam \genblk2.genblk3.lfor[0].rxpr_appd_RNO[0] .init=16'h0001; + LUT4 \genblk2.rxp_rst2_RNO ( + .A(rsl_serdes_rst_dual_c), + .B(rsl_rx_serdes_rst_c), + .C(rlos_db_p1), + .D(rlos_db), + .Z(rxp_rst25) +); +defparam \genblk2.rxp_rst2_RNO .init=16'hEFEE; + LUT4 \genblk2.genblk3.rxdpr_appd_RNO ( + .A(rsl_serdes_rst_dual_c), + .B(rsl_rx_serdes_rst_c), + .C(rlos_db), + .D(rlol_db), + .Z(un1_rui_rst_dual_c_1_1) +); +defparam \genblk2.genblk3.rxdpr_appd_RNO .init=16'h0001; + LUT4 \genblk1.plol0_cnt_RNO[1] ( + .A(plol0_cnt[1]), + .B(plol0_cnt9), + .C(waita_plol0), + .D(plol0_cnt[0]), + .Z(plol0_cnt_3[1]) +); +defparam \genblk1.plol0_cnt_RNO[1] .init=16'h1222; + LUT4 \genblk2.genblk3.ruo_rx_rdyr_RNO ( + .A(rx_any_rst), + .B(rlos_db), + .C(rlol_db), + .D(VCC), + .Z(un3_rx_all_well_2) +); +defparam \genblk2.genblk3.ruo_rx_rdyr_RNO .init=16'h0101; + LUT4 \genblk2.genblk3.rxr_wt_en_RNO ( + .A(un17_rxr_wt_tc), + .B(rsl_serdes_rst_dual_c), + .C(rsl_rx_serdes_rst_c), + .D(rx_all_well), + .Z(un3_rx_all_well_1) +); +defparam \genblk2.genblk3.rxr_wt_en_RNO .init=16'h0100; + LUT4 rx_any_rst_RNIFD021 ( + .A(rx_any_rst), + .B(un17_rxr_wt_tc), + .C(rlos_db), + .D(rlol_db), + .Z(rxr_wt_cnt9) +); +defparam rx_any_rst_RNIFD021.init=16'hFFFE; + LUT4 \genblk2.genblk3.rxdpr_appd_RNO_0 ( + .A(rst_dual_c), + .B(rsl_serdes_rst_dual_c), + .C(rsl_rx_serdes_rst_c), + .D(rx_all_well), + .Z(un1_rui_rst_dual_c_1_i) +); +defparam \genblk2.genblk3.rxdpr_appd_RNO_0 .init=16'hFEFF; + LUT4 \genblk2.rlos_db_p1_RNIS0OP ( + .A(rlol1_cnt_tc_1), + .B(rxs_rst), + .C(rlos_db_p1), + .D(rlos_db), + .Z(rlol1_cnt_scalar) +); +defparam \genblk2.rlos_db_p1_RNIS0OP .init=16'h1011; + LUT4 \genblk2.genblk3.rxr_wt_en_RNIQF0H1 ( + .A(rxr_wt_en), + .B(rx_any_rst), + .C(rx_all_well), + .D(un17_rxr_wt_tc), + .Z(rxr_wt_cnte) +); +defparam \genblk2.genblk3.rxr_wt_en_RNIQF0H1 .init=16'hFFEF; + LUT4 \genblk1.genblk2.ruo_tx_rdyr_RNO ( + .A(un18_txr_wt_tc), + .B(tx_any_rst), + .C(pll_lol_p2), + .D(VCC), + .Z(un2_plol_fedge_5_i) +); +defparam \genblk1.genblk2.ruo_tx_rdyr_RNO .init=16'hFEFE; + LUT4 \genblk2.genblk3.lfor[0].rxsr_appd_RNO[0] ( + .A(rxsr_appd[0]), + .B(rx_serdes_rst_c), + .C(rxs_rst), + .D(rsl_disable), + .Z(N_2160_0) +); +defparam \genblk2.genblk3.lfor[0].rxsr_appd_RNO[0] .init=16'hEEFE; +// @16:759 + FD1P3DX \genblk2.waita_rlols0 ( + .D(waita_rlols06), + .SP(un1_rlols0_cnt_tc), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(waita_rlols0) +); +// @16:656 + FD1P3BX \genblk2.wait_calib ( + .D(wait_calib_RNO), + .SP(un1_rlos_fedge_1), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(wait_calib) +); +// @16:694 + FD1P3DX \genblk2.rxs_rst ( + .D(rxs_rst6), + .SP(un1_rxs_cnt_tc), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxs_rst) +); +// @16:694 + FD1S3DX \genblk2.rxs_cnt[0] ( + .D(rxs_cnt_3[0]), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxs_cnt[0]) +); +// @16:694 + FD1S3DX \genblk2.rxs_cnt[1] ( + .D(rxs_cnt_3[1]), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxs_cnt[1]) +); +// @16:806 + FD1P3BX \genblk2.rxp_rst2 ( + .D(rxp_rst25), + .SP(un2_rlos_redge_1_i), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rxp_rst2) +); +// @16:567 + FD1S3DX \genblk2.rlos_p2 ( + .D(rlos_p1), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlos_p2) +); +// @16:567 + FD1S3DX \genblk2.rlos_p1 ( + .D(rx_los_low_s), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlos_p1) +); +// @16:567 + FD1S3BX \genblk2.rlos_db_p1 ( + .D(rlos_db), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlos_db_p1) +); +// @16:640 + FD1S3BX \genblk2.rlos_db_cnt[0] ( + .D(rlos_db_cnt_axb_0), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlos_db_cnt[0]) +); +// @16:640 + FD1S3BX \genblk2.rlos_db_cnt[1] ( + .D(rlos_db_cnt_cry_1_0_S0), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlos_db_cnt[1]) +); +// @16:640 + FD1S3BX \genblk2.rlos_db_cnt[2] ( + .D(rlos_db_cnt_cry_1_0_S1), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlos_db_cnt[2]) +); +// @16:640 + FD1S3BX \genblk2.rlos_db_cnt[3] ( + .D(rlos_db_cnt_s_3_0_S0), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlos_db_cnt[3]) +); +// @16:649 + FD1P3BX \genblk2.rlos_db ( + .D(rlos_db_cnt[1]), + .SP(un1_rlos_db_cnt_max), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlos_db) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[0] ( + .D(rlols0_cnt_s[0]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[0]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[1] ( + .D(rlols0_cnt_s[1]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[1]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[2] ( + .D(rlols0_cnt_s[2]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[2]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[3] ( + .D(rlols0_cnt_s[3]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[3]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[4] ( + .D(rlols0_cnt_s[4]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[4]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[5] ( + .D(rlols0_cnt_s[5]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[5]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[6] ( + .D(rlols0_cnt_s[6]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[6]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[7] ( + .D(rlols0_cnt_s[7]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[7]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[8] ( + .D(rlols0_cnt_s[8]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[8]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[9] ( + .D(rlols0_cnt_s[9]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[9]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[10] ( + .D(rlols0_cnt_s[10]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[10]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[11] ( + .D(rlols0_cnt_s[11]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[11]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[12] ( + .D(rlols0_cnt_s[12]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[12]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[13] ( + .D(rlols0_cnt_s[13]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[13]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[14] ( + .D(rlols0_cnt_s[14]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[14]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[15] ( + .D(rlols0_cnt_s[15]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[15]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[16] ( + .D(rlols0_cnt_s[16]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[16]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[17] ( + .D(rlols0_cnt_s[17]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[17]) +); +// @16:567 + FD1S3DX \genblk2.rlol_p2 ( + .D(rlol_p1), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol_p2) +); +// @16:567 + FD1S3DX \genblk2.rlol_p1 ( + .D(rx_cdr_lol_s), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol_p1) +); +// @16:567 + FD1S3BX \genblk2.rlol_db_p1 ( + .D(rlol_db), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlol_db_p1) +); +// @16:624 + FD1S3BX \genblk2.rlol_db_cnt[0] ( + .D(rlol_db_cnt_axb_0), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlol_db_cnt[0]) +); +// @16:624 + FD1S3BX \genblk2.rlol_db_cnt[1] ( + .D(rlol_db_cnt_cry_1_0_S0), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlol_db_cnt[1]) +); +// @16:624 + FD1S3BX \genblk2.rlol_db_cnt[2] ( + .D(rlol_db_cnt_cry_1_0_S1), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlol_db_cnt[2]) +); +// @16:624 + FD1S3BX \genblk2.rlol_db_cnt[3] ( + .D(rlol_db_cnt_s_3_0_S0), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlol_db_cnt[3]) +); +// @16:633 + FD1P3BX \genblk2.rlol_db ( + .D(rlol_db_cnt[1]), + .SP(un1_rlol_db_cnt_max), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlol_db) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[0] ( + .D(rlol1_cnt_s[0]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[0]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[1] ( + .D(rlol1_cnt_s[1]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[1]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[2] ( + .D(rlol1_cnt_s[2]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[2]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[3] ( + .D(rlol1_cnt_s[3]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[3]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[4] ( + .D(rlol1_cnt_s[4]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[4]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[5] ( + .D(rlol1_cnt_s[5]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[5]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[6] ( + .D(rlol1_cnt_s[6]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[6]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[7] ( + .D(rlol1_cnt_s[7]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[7]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[8] ( + .D(rlol1_cnt_s[8]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[8]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[9] ( + .D(rlol1_cnt_s[9]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[9]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[10] ( + .D(rlol1_cnt_s[10]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[10]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[11] ( + .D(rlol1_cnt_s[11]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[11]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[12] ( + .D(rlol1_cnt_s[12]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[12]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[13] ( + .D(rlol1_cnt_s[13]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[13]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[14] ( + .D(rlol1_cnt_s[14]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[14]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[15] ( + .D(rlol1_cnt_s[15]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[15]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[16] ( + .D(rlol1_cnt_s[16]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[16]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[17] ( + .D(rlol1_cnt_s[17]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[17]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[18] ( + .D(rlol1_cnt_s[18]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[18]) +); +// @16:865 + FD1S3BX \genblk2.genblk3.rxsdr_appd ( + .D(rxsdr_appd_2), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rxsdr_appd_4) +); +// @16:900 + FD1P3DX \genblk2.genblk3.rxr_wt_en ( + .D(un3_rx_all_well_1), + .SP(un1_dual_or_rserd_rst_2_i), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_en) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[0] ( + .D(rxr_wt_cnt_s[0]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[0]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[1] ( + .D(rxr_wt_cnt_s[1]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[1]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[2] ( + .D(rxr_wt_cnt_s[2]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[2]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[3] ( + .D(rxr_wt_cnt_s[3]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[3]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[4] ( + .D(rxr_wt_cnt_s[4]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[4]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[5] ( + .D(rxr_wt_cnt_s[5]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[5]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[6] ( + .D(rxr_wt_cnt_s[6]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[6]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[7] ( + .D(rxr_wt_cnt_s[7]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[7]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[8] ( + .D(rxr_wt_cnt_s[8]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[8]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[9] ( + .D(rxr_wt_cnt_s[9]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[9]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[10] ( + .D(rxr_wt_cnt_s[10]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[10]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[11] ( + .D(rxr_wt_cnt_s[11]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[11]) +); +// @16:871 + FD1P3DX \genblk2.genblk3.rxdpr_appd ( + .D(un1_rui_rst_dual_c_1_1), + .SP(un1_rui_rst_dual_c_1_i), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxdpr_appd) +); +// @16:920 + FD1P3DX \genblk2.genblk3.ruo_rx_rdyr ( + .D(un3_rx_all_well_2), + .SP(rxr_wt_cnt9), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rsl_rx_rdy) +); +// @16:882 + FD1S3DX \genblk2.genblk3.lfor[0].rxsr_appd[0] ( + .D(N_2160_0), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxsr_appd[0]) +); +// @16:888 + FD1P3DX \genblk2.genblk3.lfor[0].rxpr_appd[0] ( + .D(rxpr_appd_RNO[0]), + .SP(un2_rdo_serdes_rst_dual_c_2_i), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxpr_appd[0]) +); +// @16:443 + FD1P3DX \genblk1.waita_plol0 ( + .D(plol_fedge), + .SP(un1_plol0_cnt_tc_1_i), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(waita_plol0) +); +// @16:422 + FD1P3DX \genblk1.txs_rst ( + .D(un1_plol_cnt_tc), + .SP(un2_plol_cnt_tc), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txs_rst) +); +// @16:422 + FD1S3DX \genblk1.txs_cnt[0] ( + .D(N_10_i), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txs_cnt[0]) +); +// @16:422 + FD1S3DX \genblk1.txs_cnt[1] ( + .D(txs_cnt_RNO[1]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txs_cnt[1]) +); +// @16:461 + FD1P3DX \genblk1.txp_rst ( + .D(un9_plol0_cnt_tc), + .SP(un1_plol0_cnt_tc_1), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txp_rst) +); +// @16:461 + FD1S3DX \genblk1.txp_cnt[0] ( + .D(N_11_i), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txp_cnt[0]) +); +// @16:461 + FD1S3DX \genblk1.txp_cnt[1] ( + .D(txp_cnt_RNO[1]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txp_cnt[1]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[0] ( + .D(plol_cnt_s[0]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[0]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[1] ( + .D(plol_cnt_s[1]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[1]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[2] ( + .D(plol_cnt_s[2]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[2]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[3] ( + .D(plol_cnt_s[3]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[3]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[4] ( + .D(plol_cnt_s[4]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[4]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[5] ( + .D(plol_cnt_s[5]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[5]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[6] ( + .D(plol_cnt_s[6]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[6]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[7] ( + .D(plol_cnt_s[7]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[7]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[8] ( + .D(plol_cnt_s[8]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[8]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[9] ( + .D(plol_cnt_s[9]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[9]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[10] ( + .D(plol_cnt_s[10]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[10]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[11] ( + .D(plol_cnt_s[11]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[11]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[12] ( + .D(plol_cnt_s[12]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[12]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[13] ( + .D(plol_cnt_s[13]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[13]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[14] ( + .D(plol_cnt_s[14]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[14]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[15] ( + .D(plol_cnt_s[15]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[15]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[16] ( + .D(plol_cnt_s[16]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[16]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[17] ( + .D(plol_cnt_s[17]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[17]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[18] ( + .D(plol_cnt_s[18]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[18]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[19] ( + .D(plol_cnt_s[19]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[19]) +); +// @16:451 + FD1S3DX \genblk1.plol0_cnt[0] ( + .D(plol0_cnt_3[0]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol0_cnt[0]) +); +// @16:451 + FD1S3DX \genblk1.plol0_cnt[1] ( + .D(plol0_cnt_3[1]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol0_cnt[1]) +); +// @16:451 + FD1S3DX \genblk1.plol0_cnt[2] ( + .D(plol0_cnt_3[2]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol0_cnt[2]) +); +// @16:398 + FD1S3DX \genblk1.pll_lol_p3 ( + .D(pll_lol_p2), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(pll_lol_p3) +); +// @16:398 + FD1S3DX \genblk1.pll_lol_p2 ( + .D(pll_lol_p1), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(pll_lol_p2) +); +// @16:398 + FD1S3DX \genblk1.pll_lol_p1 ( + .D(pll_lock_i), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(pll_lol_p1) +); +// @16:492 + FD1S3BX \genblk1.genblk2.txsr_appd ( + .D(txsr_appd_2), + .CK(pll_refclki), + .PD(rsl_rst), + .Q(txsr_appd_4) +); +// @16:519 + FD1P3DX \genblk1.genblk2.txr_wt_en ( + .D(un1_dual_or_serd_rst_1_1), + .SP(un1_dual_or_serd_rst_1_i), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_en) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[0] ( + .D(txr_wt_cnt_s[0]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[0]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[1] ( + .D(txr_wt_cnt_s[1]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[1]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[2] ( + .D(txr_wt_cnt_s[2]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[2]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[3] ( + .D(txr_wt_cnt_s[3]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[3]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[4] ( + .D(txr_wt_cnt_s[4]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[4]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[5] ( + .D(txr_wt_cnt_s[5]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[5]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[6] ( + .D(txr_wt_cnt_s[6]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[6]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[7] ( + .D(txr_wt_cnt_s[7]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[7]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[8] ( + .D(txr_wt_cnt_s[8]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[8]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[9] ( + .D(txr_wt_cnt_s[9]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[9]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[10] ( + .D(txr_wt_cnt_s[10]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[10]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[11] ( + .D(txr_wt_cnt_s[11]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[11]) +); +// @16:498 + FD1P3DX \genblk1.genblk2.txdpr_appd ( + .D(un2_plol_fedge_2), + .SP(un2_plol_fedge_3_i), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txdpr_appd) +); +// @16:537 + FD1P3DX \genblk1.genblk2.ruo_tx_rdyr ( + .D(un2_plol_fedge_5_1), + .SP(un2_plol_fedge_5_i), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(rsl_tx_rdy) +); +// @16:509 + FD1P3DX \genblk1.genblk2.mfor[0].txpr_appd[0] ( + .D(un2_plol_fedge_2), + .SP(un2_plol_fedge_8_i), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txpr_appd[0]) +); +// @16:422 + LUT4 \genblk1.txs_cnt_RNO[0] ( + .A(txs_cnt[0]), + .B(txs_rst), + .C(un1_plol_cnt_tc), + .D(VCC), + .Z(N_10_i) +); +defparam \genblk1.txs_cnt_RNO[0] .init=16'hA6A6; +// @16:434 + LUT4 \genblk1.txs_cnt_RNO[1] ( + .A(txs_cnt[0]), + .B(txs_cnt[1]), + .C(txs_rst), + .D(un1_plol_cnt_tc), + .Z(txs_cnt_RNO[1]) +); +defparam \genblk1.txs_cnt_RNO[1] .init=16'hCC6C; +// @16:806 + LUT4 \genblk2.rxp_rst2_RNO_0 ( + .A(rlols0_cnt_tc_1), + .B(rlos_redge), + .C(rsl_rx_serdes_rst_c), + .D(rsl_serdes_rst_dual_c), + .Z(un2_rlos_redge_1_i) +); +defparam \genblk2.rxp_rst2_RNO_0 .init=16'hFFFE; +// @16:519 + LUT4 \genblk1.genblk2.txr_wt_en_RNO ( + .A(txpr_appd[0]), + .B(pll_lol_p2), + .C(un1_dual_or_serd_rst_1_1), + .D(rsl_tx_rdy), + .Z(un1_dual_or_serd_rst_1_i) +); +defparam \genblk1.genblk2.txr_wt_en_RNO .init=16'h0F2F; +// @16:317 + LUT4 \genblk2.rxs_rst6 ( + .A(rlol_db), + .B(rlos_db), + .C(rlol1_cnt_tc_1), + .D(VCC), + .Z(rxs_rst6) +); +defparam \genblk2.rxs_rst6 .init=16'h2020; +// @8:394 + LUT4 \genblk2.wait_calib_RNIKRP81 ( + .A(rxs_rst), + .B(wait_calib), + .C(rlol1_cnt_tc_1), + .D(rlos_redge), + .Z(rlol1_cnte) +); +defparam \genblk2.wait_calib_RNIKRP81 .init=16'hFFFE; +// @8:394 + LUT4 \genblk2.waita_rlols0_RNI266C ( + .A(rlols0_cnt11_0), + .B(waita_rlols0), + .C(rlols0_cnt_tc_1), + .D(VCC), + .Z(rlols0_cnte) +); +defparam \genblk2.waita_rlols0_RNI266C .init=16'hFEFE; +// @16:412 + LUT4 \genblk1.plol_cnt11_i ( + .A(pll_lol_p2), + .B(un1_plol_cnt_tc), + .C(rsl_tx_serdes_rst_c), + .D(VCC), + .Z(plol_cnt_scalar) +); +defparam \genblk1.plol_cnt11_i .init=16'h0202; +// @16:778 + LUT4 \genblk2.rlols0_cnt11_i ( + .A(rlols0_cnt11_0), + .B(rlols0_cnt_tc_1), + .C(VCC), + .D(VCC), + .Z(rlols0_cnt_scalar) +); +defparam \genblk2.rlols0_cnt11_i .init=16'h1111; +// @16:317 + LUT4 \genblk2.un1_rxs_cnt_tc ( + .A(rlol_db), + .B(rlos_db), + .C(un8_rxs_cnt_tc), + .D(rlol1_cnt_tc_1), + .Z(un1_rxs_cnt_tc) +); +defparam \genblk2.un1_rxs_cnt_tc .init=16'hFEFC; +// @8:394 + LUT4 \genblk2.wait_calib_RNO ( + .A(rlol_db), + .B(rlos_db), + .C(rlol1_cnt_tc_1), + .D(VCC), + .Z(wait_calib_RNO) +); +defparam \genblk2.wait_calib_RNO .init=16'hA3A3; +// @16:509 + LUT4 \genblk1.genblk2.mfor[0].txpr_appd_RNO[0] ( + .A(un1_txsr_appd), + .B(pll_lol_p2), + .C(rsl_serdes_rst_dual_c), + .D(rsl_tx_serdes_rst_c), + .Z(un2_plol_fedge_8_i) +); +defparam \genblk1.genblk2.mfor[0].txpr_appd_RNO[0] .init=16'hFFFE; +// @16:900 + LUT4 \genblk2.genblk3.rxr_wt_en_RNO_0 ( + .A(un17_rxr_wt_tc), + .B(un1_dual_or_rserd_rst_2_0), + .C(rsl_rx_serdes_rst_c), + .D(rsl_serdes_rst_dual_c), + .Z(un1_dual_or_rserd_rst_2_i) +); +defparam \genblk2.genblk3.rxr_wt_en_RNO_0 .init=16'hFFFB; +// @16:888 + LUT4 \genblk2.genblk3.lfor[0].rxpr_appd_RNO_0[0] ( + .A(un1_rxsdr_or_sr_appd), + .B(un2_rdo_serdes_rst_dual_c_1_1), + .C(rsl_rx_serdes_rst_c), + .D(rsl_serdes_rst_dual_c), + .Z(un2_rdo_serdes_rst_dual_c_2_i) +); +defparam \genblk2.genblk3.lfor[0].rxpr_appd_RNO_0[0] .init=16'hFFFB; +// @8:394 + LUT4 \genblk1.genblk2.txr_wt_en_RNICEBT ( + .A(txr_wt_en), + .B(un18_txr_wt_tc), + .C(tx_any_rst), + .D(VCC), + .Z(txr_wt_cnte) +); +defparam \genblk1.genblk2.txr_wt_en_RNICEBT .init=16'hFEFE; +// @16:259 + LUT4 \genblk1.un2_plol_cnt_tc ( + .A(txs_cnt[0]), + .B(txs_cnt[1]), + .C(un1_plol_cnt_tc), + .D(VCC), + .Z(un2_plol_cnt_tc) +); +defparam \genblk1.un2_plol_cnt_tc .init=16'hF8F8; +// @16:322 + LUT4 \genblk2.un1_rlos_fedge_1 ( + .A(rlos_db), + .B(rlos_db_p1), + .C(rlol1_cnt_tc_1), + .D(VCC), + .Z(un1_rlos_fedge_1) +); +defparam \genblk2.un1_rlos_fedge_1 .init=16'hF6F6; +// @16:340 + LUT4 \genblk2.un1_rlols0_cnt_tc ( + .A(rlols0_cnt11_0), + .B(waita_rlols06), + .C(rlols0_cnt_tc_1), + .D(VCC), + .Z(un1_rlols0_cnt_tc) +); +defparam \genblk2.un1_rlols0_cnt_tc .init=16'hFEFE; +// @16:498 + LUT4 \genblk1.genblk2.txdpr_appd_RNO ( + .A(pll_lol_p2), + .B(rsl_serdes_rst_dual_c), + .C(rsl_tx_serdes_rst_c), + .D(rst_dual_c), + .Z(un2_plol_fedge_3_i) +); +defparam \genblk1.genblk2.txdpr_appd_RNO .init=16'hFFFE; +// @16:461 + LUT4 \genblk1.txp_cnt_RNO[0] ( + .A(txp_cnt[0]), + .B(txp_rst), + .C(un9_plol0_cnt_tc), + .D(VCC), + .Z(N_11_i) +); +defparam \genblk1.txp_cnt_RNO[0] .init=16'hA6A6; +// @16:473 + LUT4 \genblk1.txp_cnt_RNO[1] ( + .A(txp_cnt[0]), + .B(txp_cnt[1]), + .C(txp_rst), + .D(un9_plol0_cnt_tc), + .Z(txp_cnt_RNO[1]) +); +defparam \genblk1.txp_cnt_RNO[1] .init=16'hCC6C; +// @16:522 + LUT4 un1_dual_or_serd_rst_1_1_cZ ( + .A(un18_txr_wt_tc), + .B(rsl_serdes_rst_dual_c), + .C(rsl_tx_serdes_rst_c), + .D(VCC), + .Z(un1_dual_or_serd_rst_1_1) +); +defparam un1_dual_or_serd_rst_1_1_cZ.init=16'h0101; +// @16:282 + LUT4 un2_plol_fedge_5_1_cZ ( + .A(pll_lol_p2), + .B(tx_any_rst), + .C(VCC), + .D(VCC), + .Z(un2_plol_fedge_5_1) +); +defparam un2_plol_fedge_5_1_cZ.init=16'h1111; +// @16:388 + LUT4 rlols0_cnt_tc_1_cZ ( + .A(rlols0_cnt_tc_1_10), + .B(rlols0_cnt_tc_1_11), + .C(rlols0_cnt_tc_1_12), + .D(rlols0_cnt_tc_1_13), + .Z(rlols0_cnt_tc_1) +); +defparam rlols0_cnt_tc_1_cZ.init=16'h8000; +// @16:387 + LUT4 rlol1_cnt_tc_1_cZ ( + .A(rlol1_cnt_tc_1_11), + .B(rlol1_cnt_tc_1_12), + .C(rlol1_cnt_tc_1_13), + .D(rlol1_cnt_tc_1_14), + .Z(rlol1_cnt_tc_1) +); +defparam rlol1_cnt_tc_1_cZ.init=16'h8000; +// @16:386 + LUT4 \genblk1.un1_plol_cnt_tc ( + .A(un1_plol_cnt_tc_11), + .B(un1_plol_cnt_tc_12), + .C(un1_plol_cnt_tc_13), + .D(un1_plol_cnt_tc_14), + .Z(un1_plol_cnt_tc) +); +defparam \genblk1.un1_plol_cnt_tc .init=16'h8000; +// @16:625 + LUT4 \un1_genblk2.rlol_db_cnt_axb_0 ( + .A(rlol_db_cnt[0]), + .B(un1_rlol_db_cnt_zero[0]), + .C(VCC), + .D(VCC), + .Z(rlol_db_cnt_axb_0) +); +defparam \un1_genblk2.rlol_db_cnt_axb_0 .init=16'h9999; +// @16:641 + LUT4 \un1_genblk2.rlos_db_cnt_axb_0 ( + .A(rlos_db_cnt[0]), + .B(un1_rlos_db_cnt_zero[0]), + .C(VCC), + .D(VCC), + .Z(rlos_db_cnt_axb_0) +); +defparam \un1_genblk2.rlos_db_cnt_axb_0 .init=16'h9999; +// @16:443 + LUT4 \genblk1.waita_plol0_RNO ( + .A(pll_lol_p2), + .B(pll_lol_p3), + .C(un9_plol0_cnt_tc), + .D(VCC), + .Z(un1_plol0_cnt_tc_1_i) +); +defparam \genblk1.waita_plol0_RNO .init=16'hF6F6; +// @16:452 + LUT4 \genblk1.plol0_cnt_3[2] ( + .A(CO0_2), + .B(plol0_cnt9), + .C(plol0_cnt[1]), + .D(plol0_cnt[2]), + .Z(plol0_cnt_3[2]) +); +defparam \genblk1.plol0_cnt_3[2] .init=16'h1320; +// @16:452 + LUT4 \genblk1.plol0_cnt_3[0] ( + .A(plol0_cnt9), + .B(plol0_cnt[0]), + .C(waita_plol0), + .D(VCC), + .Z(plol0_cnt_3[0]) +); +defparam \genblk1.plol0_cnt_3[0] .init=16'h1414; +// @16:493 + LUT4 \genblk1.genblk2.txsr_appd_2 ( + .A(txsr_appd_4), + .B(rsl_serdes_rst_dual_c), + .C(rsl_tx_serdes_rst_c), + .D(VCC), + .Z(txsr_appd_2) +); +defparam \genblk1.genblk2.txsr_appd_2 .init=16'hFEFE; +// @16:514 + LUT4 \genblk1.genblk2.mfor[0].un1_txsr_appd ( + .A(txdpr_appd), + .B(txsr_appd_4), + .C(rsl_tx_pcs_rst_c), + .D(VCC), + .Z(un1_txsr_appd) +); +defparam \genblk1.genblk2.mfor[0].un1_txsr_appd .init=16'hC8C8; +// @16:535 + LUT4 \genblk2.genblk3.un17_rxr_wt_tc ( + .A(un17_rxr_wt_tc_6), + .B(un17_rxr_wt_tc_7), + .C(un17_rxr_wt_tc_8), + .D(VCC), + .Z(un17_rxr_wt_tc) +); +defparam \genblk2.genblk3.un17_rxr_wt_tc .init=16'h8080; +// @16:863 + LUT4 rx_any_rst_cZ ( + .A(rsl_rx_pcs_rst_c), + .B(rsl_rx_serdes_rst_c), + .C(rsl_serdes_rst_dual_c), + .D(rst_dual_c), + .Z(rx_any_rst) +); +defparam rx_any_rst_cZ.init=16'hFFFE; +// @16:490 + LUT4 tx_any_rst_cZ ( + .A(rsl_serdes_rst_dual_c), + .B(rsl_tx_pcs_rst_c), + .C(rsl_tx_serdes_rst_c), + .D(rst_dual_c), + .Z(tx_any_rst) +); +defparam tx_any_rst_cZ.init=16'hFFFE; +// @16:211 + LUT4 un2_plol_fedge_2_cZ ( + .A(pll_lol_p2), + .B(rsl_serdes_rst_dual_c), + .C(rsl_tx_serdes_rst_c), + .D(VCC), + .Z(un2_plol_fedge_2) +); +defparam un2_plol_fedge_2_cZ.init=16'h0101; +// @16:535 + LUT4 \genblk1.genblk2.un18_txr_wt_tc ( + .A(un18_txr_wt_tc_6), + .B(un18_txr_wt_tc_7), + .C(un18_txr_wt_tc_8), + .D(VCC), + .Z(un18_txr_wt_tc) +); +defparam \genblk1.genblk2.un18_txr_wt_tc .init=16'h8080; +// @16:219 + LUT4 \un1_rlol_db_cnt_zero_bm_cZ[0] ( + .A(rlol_db_cnt[0]), + .B(rlol_db_cnt[1]), + .C(rlol_db_cnt[2]), + .D(rlol_db_cnt[3]), + .Z(un1_rlol_db_cnt_zero_bm[0]) +); +defparam \un1_rlol_db_cnt_zero_bm_cZ[0] .init=16'h8000; +// @16:219 + PFUMX \un1_rlol_db_cnt_zero_cZ[0] ( + .ALUT(un1_rlol_db_cnt_zero_bm[0]), + .BLUT(un1_rlol_db_cnt_zero_am[0]), + .C0(rlol_p2), + .Z(un1_rlol_db_cnt_zero[0]) +); +// @16:219 + LUT4 \un1_rlos_db_cnt_zero_bm_cZ[0] ( + .A(rlos_db_cnt[0]), + .B(rlos_db_cnt[1]), + .C(rlos_db_cnt[2]), + .D(rlos_db_cnt[3]), + .Z(un1_rlos_db_cnt_zero_bm[0]) +); +defparam \un1_rlos_db_cnt_zero_bm_cZ[0] .init=16'h8000; +// @16:219 + PFUMX \un1_rlos_db_cnt_zero_cZ[0] ( + .ALUT(un1_rlos_db_cnt_zero_bm[0]), + .BLUT(un1_rlos_db_cnt_zero_am[0]), + .C0(rlos_p2), + .Z(un1_rlos_db_cnt_zero[0]) +); +// @16:309 + LUT4 \genblk2.un1_rlol_db_cnt_max ( + .A(rlol_db_cnt[0]), + .B(rlol_db_cnt[1]), + .C(rlol_db_cnt[2]), + .D(rlol_db_cnt[3]), + .Z(un1_rlol_db_cnt_max) +); +defparam \genblk2.un1_rlol_db_cnt_max .init=16'h8001; +// @16:315 + LUT4 \genblk2.un1_rlos_db_cnt_max ( + .A(rlos_db_cnt[0]), + .B(rlos_db_cnt[1]), + .C(rlos_db_cnt[2]), + .D(rlos_db_cnt[3]), + .Z(un1_rlos_db_cnt_max) +); +defparam \genblk2.un1_rlos_db_cnt_max .init=16'h8001; +// @16:269 + LUT4 \genblk1.un1_plol0_cnt_tc_1 ( + .A(txp_cnt[0]), + .B(txp_cnt[1]), + .C(un9_plol0_cnt_tc), + .D(VCC), + .Z(un1_plol0_cnt_tc_1) +); +defparam \genblk1.un1_plol0_cnt_tc_1 .init=16'hF8F8; +// @16:764 + LUT4 \genblk2.waita_rlols06 ( + .A(rlol_db), + .B(rlol_db_p1), + .C(rlos_db), + .D(rlos_db_p1), + .Z(waita_rlols06) +); +defparam \genblk2.waita_rlols06 .init=16'h0504; +// @16:708 + LUT4 \rxs_cnt_3_cZ[1] ( + .A(rxs_cnt[0]), + .B(rxs_cnt[1]), + .C(rxs_rst), + .D(VCC), + .Z(rxs_cnt_3[1]) +); +defparam \rxs_cnt_3_cZ[1] .init=16'h6464; +// @16:893 + LUT4 \genblk2.genblk3.lfor[0].un1_rxsdr_or_sr_appd ( + .A(rxsr_appd[0]), + .B(rx_all_well), + .C(rxsdr_appd_4), + .D(rsl_rx_pcs_rst_c), + .Z(un1_rxsdr_or_sr_appd) +); +defparam \genblk2.genblk3.lfor[0].un1_rxsdr_or_sr_appd .init=16'h3200; +// @16:388 + LUT4 rlols0_cnt_tc_1_13_cZ ( + .A(rlols0_cnt[16]), + .B(rlols0_cnt[17]), + .C(rlols0_cnt_tc_1_9), + .D(VCC), + .Z(rlols0_cnt_tc_1_13) +); +defparam rlols0_cnt_tc_1_13_cZ.init=16'h1010; +// @16:386 + LUT4 \genblk1.un1_plol_cnt_tc_14 ( + .A(plol_cnt[4]), + .B(plol_cnt[5]), + .C(plol_cnt[18]), + .D(un1_plol_cnt_tc_10), + .Z(un1_plol_cnt_tc_14) +); +defparam \genblk1.un1_plol_cnt_tc_14 .init=16'h0100; +// @16:387 + LUT4 rlol1_cnt_tc_1_14_cZ ( + .A(rlol1_cnt[11]), + .B(rlol1_cnt[12]), + .C(rlol1_cnt[18]), + .D(rlol1_cnt_tc_1_10), + .Z(rlol1_cnt_tc_1_14) +); +defparam rlol1_cnt_tc_1_14_cZ.init=16'h0100; +// @16:904 + LUT4 un1_dual_or_rserd_rst_2_0_cZ ( + .A(rxpr_appd[0]), + .B(rxdpr_appd), + .C(rx_all_well), + .D(rsl_rx_rdy), + .Z(un1_dual_or_rserd_rst_2_0) +); +defparam un1_dual_or_rserd_rst_2_0_cZ.init=16'hF010; +// @16:438 + LUT4 rdo_tx_serdes_rst_c ( + .A(rsl_disable), + .B(txs_rst), + .C(tx_serdes_rst_c), + .D(VCC), + .Z(rsl_tx_serdes_rst_c) +); +defparam rdo_tx_serdes_rst_c.init=16'hF4F4; +// @16:375 + LUT4 rdo_serdes_rst_dual_c ( + .A(rsl_disable), + .B(rsl_rst), + .C(serdes_rst_dual_c), + .D(VCC), + .Z(rsl_serdes_rst_dual_c) +); +defparam rdo_serdes_rst_dual_c.init=16'hF4F4; +// @16:479 + LUT4 \rdo_tx_pcs_rst_c_1[0] ( + .A(rsl_disable), + .B(txp_rst), + .C(tx_pcs_rst_c), + .D(VCC), + .Z(rsl_tx_pcs_rst_c) +); +defparam \rdo_tx_pcs_rst_c_1[0] .init=16'hF4F4; +// @16:743 + LUT4 \rdo_rx_serdes_rst_c_1[0] ( + .A(rsl_disable), + .B(rxs_rst), + .C(rx_serdes_rst_c), + .D(VCC), + .Z(rsl_rx_serdes_rst_c) +); +defparam \rdo_rx_serdes_rst_c_1[0] .init=16'hF4F4; +// @16:852 + LUT4 \rdo_rx_pcs_rst_c_1[0] ( + .A(rsl_disable), + .B(rxp_rst2), + .C(rx_pcs_rst_c), + .D(VCC), + .Z(rsl_rx_pcs_rst_c) +); +defparam \rdo_rx_pcs_rst_c_1[0] .init=16'hF4F4; +// @16:459 + LUT4 \genblk1.un9_plol0_cnt_tc ( + .A(plol0_cnt[0]), + .B(plol0_cnt[1]), + .C(plol0_cnt[2]), + .D(VCC), + .Z(un9_plol0_cnt_tc) +); +defparam \genblk1.un9_plol0_cnt_tc .init=16'h1010; +// @16:535 + LUT4 \genblk1.genblk2.un18_txr_wt_tc_6 ( + .A(txr_wt_cnt[0]), + .B(txr_wt_cnt[8]), + .C(txr_wt_cnt[9]), + .D(txr_wt_cnt[11]), + .Z(un18_txr_wt_tc_6) +); +defparam \genblk1.genblk2.un18_txr_wt_tc_6 .init=16'h4000; +// @16:535 + LUT4 \genblk1.genblk2.un18_txr_wt_tc_7 ( + .A(txr_wt_cnt[3]), + .B(txr_wt_cnt[4]), + .C(txr_wt_cnt[5]), + .D(txr_wt_cnt[7]), + .Z(un18_txr_wt_tc_7) +); +defparam \genblk1.genblk2.un18_txr_wt_tc_7 .init=16'h8000; +// @16:535 + LUT4 \genblk1.genblk2.un18_txr_wt_tc_8 ( + .A(txr_wt_cnt[1]), + .B(txr_wt_cnt[2]), + .C(txr_wt_cnt[6]), + .D(txr_wt_cnt[10]), + .Z(un18_txr_wt_tc_8) +); +defparam \genblk1.genblk2.un18_txr_wt_tc_8 .init=16'h0001; +// @16:535 + LUT4 \genblk2.genblk3.un17_rxr_wt_tc_6 ( + .A(rxr_wt_cnt[0]), + .B(rxr_wt_cnt[8]), + .C(rxr_wt_cnt[9]), + .D(rxr_wt_cnt[11]), + .Z(un17_rxr_wt_tc_6) +); +defparam \genblk2.genblk3.un17_rxr_wt_tc_6 .init=16'h4000; +// @16:535 + LUT4 \genblk2.genblk3.un17_rxr_wt_tc_7 ( + .A(rxr_wt_cnt[3]), + .B(rxr_wt_cnt[4]), + .C(rxr_wt_cnt[5]), + .D(rxr_wt_cnt[7]), + .Z(un17_rxr_wt_tc_7) +); +defparam \genblk2.genblk3.un17_rxr_wt_tc_7 .init=16'h8000; +// @16:535 + LUT4 \genblk2.genblk3.un17_rxr_wt_tc_8 ( + .A(rxr_wt_cnt[1]), + .B(rxr_wt_cnt[2]), + .C(rxr_wt_cnt[6]), + .D(rxr_wt_cnt[10]), + .Z(un17_rxr_wt_tc_8) +); +defparam \genblk2.genblk3.un17_rxr_wt_tc_8 .init=16'h0001; +// @16:388 + LUT4 rlols0_cnt_tc_1_9_cZ ( + .A(rlols0_cnt[1]), + .B(rlols0_cnt[2]), + .C(rlols0_cnt[3]), + .D(rlols0_cnt[4]), + .Z(rlols0_cnt_tc_1_9) +); +defparam rlols0_cnt_tc_1_9_cZ.init=16'h0001; +// @16:388 + LUT4 rlols0_cnt_tc_1_10_cZ ( + .A(rlols0_cnt[0]), + .B(rlols0_cnt[10]), + .C(rlols0_cnt[14]), + .D(rlols0_cnt[15]), + .Z(rlols0_cnt_tc_1_10) +); +defparam rlols0_cnt_tc_1_10_cZ.init=16'h4000; +// @16:388 + LUT4 rlols0_cnt_tc_1_11_cZ ( + .A(rlols0_cnt[9]), + .B(rlols0_cnt[11]), + .C(rlols0_cnt[12]), + .D(rlols0_cnt[13]), + .Z(rlols0_cnt_tc_1_11) +); +defparam rlols0_cnt_tc_1_11_cZ.init=16'h0001; +// @16:388 + LUT4 rlols0_cnt_tc_1_12_cZ ( + .A(rlols0_cnt[5]), + .B(rlols0_cnt[6]), + .C(rlols0_cnt[7]), + .D(rlols0_cnt[8]), + .Z(rlols0_cnt_tc_1_12) +); +defparam rlols0_cnt_tc_1_12_cZ.init=16'h0001; +// @16:386 + LUT4 \genblk1.un1_plol_cnt_tc_10 ( + .A(plol_cnt[2]), + .B(plol_cnt[3]), + .C(plol_cnt[17]), + .D(plol_cnt[19]), + .Z(un1_plol_cnt_tc_10) +); +defparam \genblk1.un1_plol_cnt_tc_10 .init=16'h1000; +// @16:386 + LUT4 \genblk1.un1_plol_cnt_tc_11 ( + .A(plol_cnt[13]), + .B(plol_cnt[14]), + .C(plol_cnt[15]), + .D(plol_cnt[16]), + .Z(un1_plol_cnt_tc_11) +); +defparam \genblk1.un1_plol_cnt_tc_11 .init=16'h8000; +// @16:386 + LUT4 \genblk1.un1_plol_cnt_tc_12 ( + .A(plol_cnt[7]), + .B(plol_cnt[8]), + .C(plol_cnt[9]), + .D(plol_cnt[11]), + .Z(un1_plol_cnt_tc_12) +); +defparam \genblk1.un1_plol_cnt_tc_12 .init=16'h8000; +// @16:386 + LUT4 \genblk1.un1_plol_cnt_tc_13 ( + .A(plol_cnt[1]), + .B(plol_cnt[6]), + .C(plol_cnt[10]), + .D(plol_cnt[12]), + .Z(un1_plol_cnt_tc_13) +); +defparam \genblk1.un1_plol_cnt_tc_13 .init=16'h0008; +// @16:387 + LUT4 rlol1_cnt_tc_1_10_cZ ( + .A(rlol1_cnt[7]), + .B(rlol1_cnt[8]), + .C(rlol1_cnt[9]), + .D(rlol1_cnt[10]), + .Z(rlol1_cnt_tc_1_10) +); +defparam rlol1_cnt_tc_1_10_cZ.init=16'h0001; +// @16:387 + LUT4 rlol1_cnt_tc_1_11_cZ ( + .A(rlol1_cnt[3]), + .B(rlol1_cnt[4]), + .C(rlol1_cnt[5]), + .D(rlol1_cnt[6]), + .Z(rlol1_cnt_tc_1_11) +); +defparam rlol1_cnt_tc_1_11_cZ.init=16'h0001; +// @16:387 + LUT4 rlol1_cnt_tc_1_12_cZ ( + .A(rlol1_cnt[0]), + .B(rlol1_cnt[1]), + .C(rlol1_cnt[2]), + .D(rlol1_cnt[17]), + .Z(rlol1_cnt_tc_1_12) +); +defparam rlol1_cnt_tc_1_12_cZ.init=16'h0100; +// @16:387 + LUT4 rlol1_cnt_tc_1_13_cZ ( + .A(rlol1_cnt[13]), + .B(rlol1_cnt[14]), + .C(rlol1_cnt[15]), + .D(rlol1_cnt[16]), + .Z(rlol1_cnt_tc_1_13) +); +defparam rlol1_cnt_tc_1_13_cZ.init=16'h0040; +// @16:457 + LUT4 \genblk1.plol0_cnt_3_RNO[2] ( + .A(plol0_cnt[0]), + .B(waita_plol0), + .C(VCC), + .D(VCC), + .Z(CO0_2) +); +defparam \genblk1.plol0_cnt_3_RNO[2] .init=16'h8888; +// @16:441 + LUT4 plol_fedge_cZ ( + .A(pll_lol_p2), + .B(pll_lol_p3), + .C(VCC), + .D(VCC), + .Z(plol_fedge) +); +defparam plol_fedge_cZ.init=16'h4444; +// @16:601 + LUT4 rx_all_well_cZ ( + .A(rlol_db), + .B(rlos_db), + .C(VCC), + .D(VCC), + .Z(rx_all_well) +); +defparam rx_all_well_cZ.init=16'h1111; +// @16:866 + LUT4 \genblk2.genblk3.rxsdr_appd_2 ( + .A(rxsdr_appd_4), + .B(serdes_rst_dual_c), + .C(VCC), + .D(VCC), + .Z(rxsdr_appd_2) +); +defparam \genblk2.genblk3.rxsdr_appd_2 .init=16'hEEEE; +// @16:436 + LUT4 \genblk2.un8_rxs_cnt_tc ( + .A(rxs_cnt[0]), + .B(rxs_cnt[1]), + .C(VCC), + .D(VCC), + .Z(un8_rxs_cnt_tc) +); +defparam \genblk2.un8_rxs_cnt_tc .init=16'h8888; +// @16:757 + LUT4 rlos_redge_cZ ( + .A(rlos_db), + .B(rlos_db_p1), + .C(VCC), + .D(VCC), + .Z(rlos_redge) +); +defparam rlos_redge_cZ.init=16'h2222; +// @16:891 + LUT4 un2_rdo_serdes_rst_dual_c_1_1_cZ ( + .A(rx_cdr_lol_s), + .B(rx_los_low_s), + .C(VCC), + .D(VCC), + .Z(un2_rdo_serdes_rst_dual_c_1_1) +); +defparam un2_rdo_serdes_rst_dual_c_1_1_cZ.init=16'h1111; +// @16:219 + LUT4 \un1_rlos_db_cnt_zero_am_cZ[0] ( + .A(rlos_db_cnt[0]), + .B(rlos_db_cnt[1]), + .C(rlos_db_cnt[2]), + .D(rlos_db_cnt[3]), + .Z(un1_rlos_db_cnt_zero_am[0]) +); +defparam \un1_rlos_db_cnt_zero_am_cZ[0] .init=16'h0001; +// @16:219 + LUT4 \un1_rlol_db_cnt_zero_am_cZ[0] ( + .A(rlol_db_cnt[0]), + .B(rlol_db_cnt[1]), + .C(rlol_db_cnt[2]), + .D(rlol_db_cnt[3]), + .Z(un1_rlol_db_cnt_zero_am[0]) +); +defparam \un1_rlol_db_cnt_zero_am_cZ[0] .init=16'h0001; +// @16:454 + LUT4 \genblk1.plol0_cnt9 ( + .A(pll_lol_p2), + .B(plol0_cnt[2]), + .C(plol0_cnt[1]), + .D(plol0_cnt[0]), + .Z(plol0_cnt9) +); +defparam \genblk1.plol0_cnt9 .init=16'hAAAE; +// @16:783 + LUT4 \genblk2.rlols0_cnt11_0 ( + .A(rlol_db_p1), + .B(rlol_db), + .C(rlos_db_p1), + .D(rlos_db), + .Z(rlols0_cnt11_0) +); +defparam \genblk2.rlols0_cnt11_0 .init=16'h4F44; +// @16:527 + LUT4 \genblk1.genblk2.txr_wt_cnt9_i ( + .A(tx_any_rst), + .B(un18_txr_wt_tc_8), + .C(un18_txr_wt_tc_7), + .D(un18_txr_wt_tc_6), + .Z(txr_wt_cnt_scalar) +); +defparam \genblk1.genblk2.txr_wt_cnt9_i .init=16'h1555; + CCU2C \genblk2.rlol1_cnt_cry_0[0] ( + .A0(VCC), + .B0(rlol1_cnt_scalar), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_7), + .COUT(rlol1_cnt_cry[0]), + .S0(rlol1_cnt_cry_0_S0[0]), + .S1(rlol1_cnt_s[0]) +); +defparam \genblk2.rlol1_cnt_cry_0[0] .INIT0=16'h500c; +defparam \genblk2.rlol1_cnt_cry_0[0] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[0] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[0] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[1] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[1]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[2]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[0]), + .COUT(rlol1_cnt_cry[2]), + .S0(rlol1_cnt_s[1]), + .S1(rlol1_cnt_s[2]) +); +defparam \genblk2.rlol1_cnt_cry_0[1] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[1] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[1] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[1] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[3] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[3]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[4]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[2]), + .COUT(rlol1_cnt_cry[4]), + .S0(rlol1_cnt_s[3]), + .S1(rlol1_cnt_s[4]) +); +defparam \genblk2.rlol1_cnt_cry_0[3] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[3] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[3] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[3] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[5] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[5]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[6]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[4]), + .COUT(rlol1_cnt_cry[6]), + .S0(rlol1_cnt_s[5]), + .S1(rlol1_cnt_s[6]) +); +defparam \genblk2.rlol1_cnt_cry_0[5] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[5] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[5] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[5] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[7] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[7]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[8]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[6]), + .COUT(rlol1_cnt_cry[8]), + .S0(rlol1_cnt_s[7]), + .S1(rlol1_cnt_s[8]) +); +defparam \genblk2.rlol1_cnt_cry_0[7] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[7] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[7] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[7] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[9] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[9]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[10]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[8]), + .COUT(rlol1_cnt_cry[10]), + .S0(rlol1_cnt_s[9]), + .S1(rlol1_cnt_s[10]) +); +defparam \genblk2.rlol1_cnt_cry_0[9] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[9] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[9] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[9] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[11] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[11]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[12]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[10]), + .COUT(rlol1_cnt_cry[12]), + .S0(rlol1_cnt_s[11]), + .S1(rlol1_cnt_s[12]) +); +defparam \genblk2.rlol1_cnt_cry_0[11] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[11] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[11] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[11] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[13] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[13]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[14]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[12]), + .COUT(rlol1_cnt_cry[14]), + .S0(rlol1_cnt_s[13]), + .S1(rlol1_cnt_s[14]) +); +defparam \genblk2.rlol1_cnt_cry_0[13] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[13] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[13] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[13] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[15] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[15]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[16]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[14]), + .COUT(rlol1_cnt_cry[16]), + .S0(rlol1_cnt_s[15]), + .S1(rlol1_cnt_s[16]) +); +defparam \genblk2.rlol1_cnt_cry_0[15] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[15] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[15] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[15] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[17] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[17]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[18]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[16]), + .COUT(rlol1_cnt_cry_0_COUT[17]), + .S0(rlol1_cnt_s[17]), + .S1(rlol1_cnt_s[18]) +); +defparam \genblk2.rlol1_cnt_cry_0[17] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[17] .INIT1=16'h800a; +defparam \genblk2.rlol1_cnt_cry_0[17] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[17] .INJECT1_1="NO"; + CCU2C \genblk2.rlols0_cnt_cry_0[0] ( + .A0(VCC), + .B0(rlols0_cnt_scalar), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_6), + .COUT(rlols0_cnt_cry[0]), + .S0(rlols0_cnt_cry_0_S0[0]), + .S1(rlols0_cnt_s[0]) +); +defparam \genblk2.rlols0_cnt_cry_0[0] .INIT0=16'h500c; +defparam \genblk2.rlols0_cnt_cry_0[0] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[0] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[0] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_cry_0[1] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[1]), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[2]), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[0]), + .COUT(rlols0_cnt_cry[2]), + .S0(rlols0_cnt_s[1]), + .S1(rlols0_cnt_s[2]) +); +defparam \genblk2.rlols0_cnt_cry_0[1] .INIT0=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[1] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[1] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[1] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_cry_0[3] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[3]), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[4]), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[2]), + .COUT(rlols0_cnt_cry[4]), + .S0(rlols0_cnt_s[3]), + .S1(rlols0_cnt_s[4]) +); +defparam \genblk2.rlols0_cnt_cry_0[3] .INIT0=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[3] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[3] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[3] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_cry_0[5] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[5]), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[6]), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[4]), + .COUT(rlols0_cnt_cry[6]), + .S0(rlols0_cnt_s[5]), + .S1(rlols0_cnt_s[6]) +); +defparam \genblk2.rlols0_cnt_cry_0[5] .INIT0=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[5] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[5] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[5] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_cry_0[7] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[7]), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[8]), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[6]), + .COUT(rlols0_cnt_cry[8]), + .S0(rlols0_cnt_s[7]), + .S1(rlols0_cnt_s[8]) +); +defparam \genblk2.rlols0_cnt_cry_0[7] .INIT0=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[7] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[7] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[7] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_cry_0[9] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[9]), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[10]), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[8]), + .COUT(rlols0_cnt_cry[10]), + .S0(rlols0_cnt_s[9]), + .S1(rlols0_cnt_s[10]) +); +defparam \genblk2.rlols0_cnt_cry_0[9] .INIT0=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[9] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[9] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[9] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_cry_0[11] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[11]), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[12]), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[10]), + .COUT(rlols0_cnt_cry[12]), + .S0(rlols0_cnt_s[11]), + .S1(rlols0_cnt_s[12]) +); +defparam \genblk2.rlols0_cnt_cry_0[11] .INIT0=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[11] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[11] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[11] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_cry_0[13] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[13]), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[14]), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[12]), + .COUT(rlols0_cnt_cry[14]), + .S0(rlols0_cnt_s[13]), + .S1(rlols0_cnt_s[14]) +); +defparam \genblk2.rlols0_cnt_cry_0[13] .INIT0=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[13] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[13] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[13] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_cry_0[15] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[15]), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[16]), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[14]), + .COUT(rlols0_cnt_cry[16]), + .S0(rlols0_cnt_s[15]), + .S1(rlols0_cnt_s[16]) +); +defparam \genblk2.rlols0_cnt_cry_0[15] .INIT0=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[15] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[15] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[15] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_s_0[17] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[17]), + .C0(VCC), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[16]), + .COUT(rlols0_cnt_s_0_COUT[17]), + .S0(rlols0_cnt_s[17]), + .S1(rlols0_cnt_s_0_S1[17]) +); +defparam \genblk2.rlols0_cnt_s_0[17] .INIT0=16'h800a; +defparam \genblk2.rlols0_cnt_s_0[17] .INIT1=16'h5003; +defparam \genblk2.rlols0_cnt_s_0[17] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_s_0[17] .INJECT1_1="NO"; + CCU2C \genblk1.genblk2.txr_wt_cnt_cry_0[0] ( + .A0(VCC), + .B0(txr_wt_cnt_scalar), + .C0(VCC), + .D0(VCC), + .A1(txr_wt_cnt_scalar), + .B1(txr_wt_cnt[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_5), + .COUT(txr_wt_cnt_cry[0]), + .S0(txr_wt_cnt_cry_0_S0[0]), + .S1(txr_wt_cnt_s[0]) +); +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[0] .INIT0=16'h500c; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[0] .INIT1=16'h8000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[0] .INJECT1_0="NO"; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[0] .INJECT1_1="NO"; +// @16:527 + CCU2C \genblk1.genblk2.txr_wt_cnt_cry_0[1] ( + .A0(txr_wt_cnt_scalar), + .B0(txr_wt_cnt[1]), + .C0(VCC), + .D0(VCC), + .A1(txr_wt_cnt_scalar), + .B1(txr_wt_cnt[2]), + .C1(VCC), + .D1(VCC), + .CIN(txr_wt_cnt_cry[0]), + .COUT(txr_wt_cnt_cry[2]), + .S0(txr_wt_cnt_s[1]), + .S1(txr_wt_cnt_s[2]) +); +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[1] .INIT0=16'h8000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[1] .INIT1=16'h8000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[1] .INJECT1_0="NO"; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[1] .INJECT1_1="NO"; +// @16:527 + CCU2C \genblk1.genblk2.txr_wt_cnt_cry_0[3] ( + .A0(txr_wt_cnt_scalar), + .B0(txr_wt_cnt[3]), + .C0(VCC), + .D0(VCC), + .A1(txr_wt_cnt_scalar), + .B1(txr_wt_cnt[4]), + .C1(VCC), + .D1(VCC), + .CIN(txr_wt_cnt_cry[2]), + .COUT(txr_wt_cnt_cry[4]), + .S0(txr_wt_cnt_s[3]), + .S1(txr_wt_cnt_s[4]) +); +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[3] .INIT0=16'h8000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[3] .INIT1=16'h8000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[3] .INJECT1_0="NO"; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[3] .INJECT1_1="NO"; +// @16:527 + CCU2C \genblk1.genblk2.txr_wt_cnt_cry_0[5] ( + .A0(txr_wt_cnt_scalar), + .B0(txr_wt_cnt[5]), + .C0(VCC), + .D0(VCC), + .A1(txr_wt_cnt_scalar), + .B1(txr_wt_cnt[6]), + .C1(VCC), + .D1(VCC), + .CIN(txr_wt_cnt_cry[4]), + .COUT(txr_wt_cnt_cry[6]), + .S0(txr_wt_cnt_s[5]), + .S1(txr_wt_cnt_s[6]) +); +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[5] .INIT0=16'h8000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[5] .INIT1=16'h8000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[5] .INJECT1_0="NO"; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[5] .INJECT1_1="NO"; +// @16:527 + CCU2C \genblk1.genblk2.txr_wt_cnt_cry_0[7] ( + .A0(txr_wt_cnt_scalar), + .B0(txr_wt_cnt[7]), + .C0(VCC), + .D0(VCC), + .A1(txr_wt_cnt_scalar), + .B1(txr_wt_cnt[8]), + .C1(VCC), + .D1(VCC), + .CIN(txr_wt_cnt_cry[6]), + .COUT(txr_wt_cnt_cry[8]), + .S0(txr_wt_cnt_s[7]), + .S1(txr_wt_cnt_s[8]) +); +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[7] .INIT0=16'h8000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[7] .INIT1=16'h8000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[7] .INJECT1_0="NO"; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[7] .INJECT1_1="NO"; +// @16:527 + CCU2C \genblk1.genblk2.txr_wt_cnt_cry_0[9] ( + .A0(txr_wt_cnt_scalar), + .B0(txr_wt_cnt[9]), + .C0(VCC), + .D0(VCC), + .A1(txr_wt_cnt_scalar), + .B1(txr_wt_cnt[10]), + .C1(VCC), + .D1(VCC), + .CIN(txr_wt_cnt_cry[8]), + .COUT(txr_wt_cnt_cry[10]), + .S0(txr_wt_cnt_s[9]), + .S1(txr_wt_cnt_s[10]) +); +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[9] .INIT0=16'h8000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[9] .INIT1=16'h8000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[9] .INJECT1_0="NO"; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[9] .INJECT1_1="NO"; +// @16:527 + CCU2C \genblk1.genblk2.txr_wt_cnt_s_0[11] ( + .A0(txr_wt_cnt_scalar), + .B0(txr_wt_cnt[11]), + .C0(VCC), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(txr_wt_cnt_cry[10]), + .COUT(txr_wt_cnt_s_0_COUT[11]), + .S0(txr_wt_cnt_s[11]), + .S1(txr_wt_cnt_s_0_S1[11]) +); +defparam \genblk1.genblk2.txr_wt_cnt_s_0[11] .INIT0=16'h800a; +defparam \genblk1.genblk2.txr_wt_cnt_s_0[11] .INIT1=16'h5003; +defparam \genblk1.genblk2.txr_wt_cnt_s_0[11] .INJECT1_0="NO"; +defparam \genblk1.genblk2.txr_wt_cnt_s_0[11] .INJECT1_1="NO"; + CCU2C \genblk2.genblk3.rxr_wt_cnt_cry_0[0] ( + .A0(VCC), + .B0(rxr_wt_cnt9), + .C0(VCC), + .D0(VCC), + .A1(rxr_wt_cnt9), + .B1(rxr_wt_cnt[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_4), + .COUT(rxr_wt_cnt_cry[0]), + .S0(rxr_wt_cnt_cry_0_S0[0]), + .S1(rxr_wt_cnt_s[0]) +); +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[0] .INIT0=16'h5003; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[0] .INIT1=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[0] .INJECT1_0="NO"; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[0] .INJECT1_1="NO"; +// @16:909 + CCU2C \genblk2.genblk3.rxr_wt_cnt_cry_0[1] ( + .A0(rxr_wt_cnt9), + .B0(rxr_wt_cnt[1]), + .C0(VCC), + .D0(VCC), + .A1(rxr_wt_cnt9), + .B1(rxr_wt_cnt[2]), + .C1(VCC), + .D1(VCC), + .CIN(rxr_wt_cnt_cry[0]), + .COUT(rxr_wt_cnt_cry[2]), + .S0(rxr_wt_cnt_s[1]), + .S1(rxr_wt_cnt_s[2]) +); +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[1] .INIT0=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[1] .INIT1=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[1] .INJECT1_0="NO"; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[1] .INJECT1_1="NO"; +// @16:909 + CCU2C \genblk2.genblk3.rxr_wt_cnt_cry_0[3] ( + .A0(rxr_wt_cnt9), + .B0(rxr_wt_cnt[3]), + .C0(VCC), + .D0(VCC), + .A1(rxr_wt_cnt9), + .B1(rxr_wt_cnt[4]), + .C1(VCC), + .D1(VCC), + .CIN(rxr_wt_cnt_cry[2]), + .COUT(rxr_wt_cnt_cry[4]), + .S0(rxr_wt_cnt_s[3]), + .S1(rxr_wt_cnt_s[4]) +); +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[3] .INIT0=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[3] .INIT1=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[3] .INJECT1_0="NO"; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[3] .INJECT1_1="NO"; +// @16:909 + CCU2C \genblk2.genblk3.rxr_wt_cnt_cry_0[5] ( + .A0(rxr_wt_cnt9), + .B0(rxr_wt_cnt[5]), + .C0(VCC), + .D0(VCC), + .A1(rxr_wt_cnt9), + .B1(rxr_wt_cnt[6]), + .C1(VCC), + .D1(VCC), + .CIN(rxr_wt_cnt_cry[4]), + .COUT(rxr_wt_cnt_cry[6]), + .S0(rxr_wt_cnt_s[5]), + .S1(rxr_wt_cnt_s[6]) +); +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[5] .INIT0=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[5] .INIT1=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[5] .INJECT1_0="NO"; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[5] .INJECT1_1="NO"; +// @16:909 + CCU2C \genblk2.genblk3.rxr_wt_cnt_cry_0[7] ( + .A0(rxr_wt_cnt9), + .B0(rxr_wt_cnt[7]), + .C0(VCC), + .D0(VCC), + .A1(rxr_wt_cnt9), + .B1(rxr_wt_cnt[8]), + .C1(VCC), + .D1(VCC), + .CIN(rxr_wt_cnt_cry[6]), + .COUT(rxr_wt_cnt_cry[8]), + .S0(rxr_wt_cnt_s[7]), + .S1(rxr_wt_cnt_s[8]) +); +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[7] .INIT0=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[7] .INIT1=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[7] .INJECT1_0="NO"; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[7] .INJECT1_1="NO"; +// @16:909 + CCU2C \genblk2.genblk3.rxr_wt_cnt_cry_0[9] ( + .A0(rxr_wt_cnt9), + .B0(rxr_wt_cnt[9]), + .C0(VCC), + .D0(VCC), + .A1(rxr_wt_cnt9), + .B1(rxr_wt_cnt[10]), + .C1(VCC), + .D1(VCC), + .CIN(rxr_wt_cnt_cry[8]), + .COUT(rxr_wt_cnt_cry[10]), + .S0(rxr_wt_cnt_s[9]), + .S1(rxr_wt_cnt_s[10]) +); +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[9] .INIT0=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[9] .INIT1=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[9] .INJECT1_0="NO"; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[9] .INJECT1_1="NO"; +// @16:909 + CCU2C \genblk2.genblk3.rxr_wt_cnt_s_0[11] ( + .A0(rxr_wt_cnt9), + .B0(rxr_wt_cnt[11]), + .C0(VCC), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(rxr_wt_cnt_cry[10]), + .COUT(rxr_wt_cnt_s_0_COUT[11]), + .S0(rxr_wt_cnt_s[11]), + .S1(rxr_wt_cnt_s_0_S1[11]) +); +defparam \genblk2.genblk3.rxr_wt_cnt_s_0[11] .INIT0=16'h4005; +defparam \genblk2.genblk3.rxr_wt_cnt_s_0[11] .INIT1=16'h5003; +defparam \genblk2.genblk3.rxr_wt_cnt_s_0[11] .INJECT1_0="NO"; +defparam \genblk2.genblk3.rxr_wt_cnt_s_0[11] .INJECT1_1="NO"; + CCU2C \genblk1.plol_cnt_cry_0[0] ( + .A0(VCC), + .B0(plol_cnt_scalar), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_3), + .COUT(plol_cnt_cry[0]), + .S0(plol_cnt_cry_0_S0[0]), + .S1(plol_cnt_s[0]) +); +defparam \genblk1.plol_cnt_cry_0[0] .INIT0=16'h500c; +defparam \genblk1.plol_cnt_cry_0[0] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[0] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[0] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[1] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[1]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[2]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[0]), + .COUT(plol_cnt_cry[2]), + .S0(plol_cnt_s[1]), + .S1(plol_cnt_s[2]) +); +defparam \genblk1.plol_cnt_cry_0[1] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[1] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[1] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[1] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[3] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[3]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[4]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[2]), + .COUT(plol_cnt_cry[4]), + .S0(plol_cnt_s[3]), + .S1(plol_cnt_s[4]) +); +defparam \genblk1.plol_cnt_cry_0[3] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[3] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[3] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[3] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[5] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[5]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[6]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[4]), + .COUT(plol_cnt_cry[6]), + .S0(plol_cnt_s[5]), + .S1(plol_cnt_s[6]) +); +defparam \genblk1.plol_cnt_cry_0[5] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[5] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[5] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[5] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[7] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[7]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[8]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[6]), + .COUT(plol_cnt_cry[8]), + .S0(plol_cnt_s[7]), + .S1(plol_cnt_s[8]) +); +defparam \genblk1.plol_cnt_cry_0[7] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[7] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[7] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[7] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[9] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[9]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[10]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[8]), + .COUT(plol_cnt_cry[10]), + .S0(plol_cnt_s[9]), + .S1(plol_cnt_s[10]) +); +defparam \genblk1.plol_cnt_cry_0[9] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[9] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[9] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[9] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[11] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[11]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[12]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[10]), + .COUT(plol_cnt_cry[12]), + .S0(plol_cnt_s[11]), + .S1(plol_cnt_s[12]) +); +defparam \genblk1.plol_cnt_cry_0[11] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[11] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[11] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[11] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[13] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[13]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[14]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[12]), + .COUT(plol_cnt_cry[14]), + .S0(plol_cnt_s[13]), + .S1(plol_cnt_s[14]) +); +defparam \genblk1.plol_cnt_cry_0[13] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[13] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[13] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[13] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[15] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[15]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[16]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[14]), + .COUT(plol_cnt_cry[16]), + .S0(plol_cnt_s[15]), + .S1(plol_cnt_s[16]) +); +defparam \genblk1.plol_cnt_cry_0[15] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[15] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[15] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[15] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[17] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[17]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[18]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[16]), + .COUT(plol_cnt_cry[18]), + .S0(plol_cnt_s[17]), + .S1(plol_cnt_s[18]) +); +defparam \genblk1.plol_cnt_cry_0[17] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[17] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[17] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[17] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_s_0[19] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[19]), + .C0(VCC), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[18]), + .COUT(plol_cnt_s_0_COUT[19]), + .S0(plol_cnt_s[19]), + .S1(plol_cnt_s_0_S1[19]) +); +defparam \genblk1.plol_cnt_s_0[19] .INIT0=16'h800a; +defparam \genblk1.plol_cnt_s_0[19] .INIT1=16'h5003; +defparam \genblk1.plol_cnt_s_0[19] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_s_0[19] .INJECT1_1="NO"; + CCU2C \un1_genblk2.rlos_db_cnt_cry_0_0 ( + .A0(VCC), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(rlos_db_cnt[0]), + .B1(un1_rlos_db_cnt_zero[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_2), + .COUT(rlos_db_cnt_cry_0), + .S0(rlos_db_cnt_cry_0_0_S0), + .S1(rlos_db_cnt_cry_0_0_S1) +); +defparam \un1_genblk2.rlos_db_cnt_cry_0_0 .INIT0=16'h5003; +defparam \un1_genblk2.rlos_db_cnt_cry_0_0 .INIT1=16'h900a; +defparam \un1_genblk2.rlos_db_cnt_cry_0_0 .INJECT1_0="NO"; +defparam \un1_genblk2.rlos_db_cnt_cry_0_0 .INJECT1_1="NO"; +// @16:641 + CCU2C \un1_genblk2.rlos_db_cnt_cry_1_0 ( + .A0(un1_rlos_db_cnt_zero[0]), + .B0(rlos_p2), + .C0(rlos_db_cnt[1]), + .D0(VCC), + .A1(un1_rlos_db_cnt_zero[0]), + .B1(rlos_p2), + .C1(rlos_db_cnt[2]), + .D1(VCC), + .CIN(rlos_db_cnt_cry_0), + .COUT(rlos_db_cnt_cry_2), + .S0(rlos_db_cnt_cry_1_0_S0), + .S1(rlos_db_cnt_cry_1_0_S1) +); +defparam \un1_genblk2.rlos_db_cnt_cry_1_0 .INIT0=16'he101; +defparam \un1_genblk2.rlos_db_cnt_cry_1_0 .INIT1=16'he101; +defparam \un1_genblk2.rlos_db_cnt_cry_1_0 .INJECT1_0="NO"; +defparam \un1_genblk2.rlos_db_cnt_cry_1_0 .INJECT1_1="NO"; +// @16:641 + CCU2C \un1_genblk2.rlos_db_cnt_s_3_0 ( + .A0(rlos_db_cnt[3]), + .B0(rlos_p2), + .C0(un1_rlos_db_cnt_zero[0]), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(rlos_db_cnt_cry_2), + .COUT(rlos_db_cnt_s_3_0_COUT), + .S0(rlos_db_cnt_s_3_0_S0), + .S1(rlos_db_cnt_s_3_0_S1) +); +defparam \un1_genblk2.rlos_db_cnt_s_3_0 .INIT0=16'ha90a; +defparam \un1_genblk2.rlos_db_cnt_s_3_0 .INIT1=16'h5003; +defparam \un1_genblk2.rlos_db_cnt_s_3_0 .INJECT1_0="NO"; +defparam \un1_genblk2.rlos_db_cnt_s_3_0 .INJECT1_1="NO"; + CCU2C \un1_genblk2.rlol_db_cnt_cry_0_0 ( + .A0(VCC), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(rlol_db_cnt[0]), + .B1(un1_rlol_db_cnt_zero[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_1), + .COUT(rlol_db_cnt_cry_0), + .S0(rlol_db_cnt_cry_0_0_S0), + .S1(rlol_db_cnt_cry_0_0_S1) +); +defparam \un1_genblk2.rlol_db_cnt_cry_0_0 .INIT0=16'h5003; +defparam \un1_genblk2.rlol_db_cnt_cry_0_0 .INIT1=16'h900a; +defparam \un1_genblk2.rlol_db_cnt_cry_0_0 .INJECT1_0="NO"; +defparam \un1_genblk2.rlol_db_cnt_cry_0_0 .INJECT1_1="NO"; +// @16:625 + CCU2C \un1_genblk2.rlol_db_cnt_cry_1_0 ( + .A0(un1_rlol_db_cnt_zero[0]), + .B0(rlol_p2), + .C0(rlol_db_cnt[1]), + .D0(VCC), + .A1(un1_rlol_db_cnt_zero[0]), + .B1(rlol_p2), + .C1(rlol_db_cnt[2]), + .D1(VCC), + .CIN(rlol_db_cnt_cry_0), + .COUT(rlol_db_cnt_cry_2), + .S0(rlol_db_cnt_cry_1_0_S0), + .S1(rlol_db_cnt_cry_1_0_S1) +); +defparam \un1_genblk2.rlol_db_cnt_cry_1_0 .INIT0=16'he101; +defparam \un1_genblk2.rlol_db_cnt_cry_1_0 .INIT1=16'he101; +defparam \un1_genblk2.rlol_db_cnt_cry_1_0 .INJECT1_0="NO"; +defparam \un1_genblk2.rlol_db_cnt_cry_1_0 .INJECT1_1="NO"; +// @16:625 + CCU2C \un1_genblk2.rlol_db_cnt_s_3_0 ( + .A0(rlol_db_cnt[3]), + .B0(rlol_p2), + .C0(un1_rlol_db_cnt_zero[0]), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(rlol_db_cnt_cry_2), + .COUT(rlol_db_cnt_s_3_0_COUT), + .S0(rlol_db_cnt_s_3_0_S0), + .S1(rlol_db_cnt_s_3_0_S1) +); +defparam \un1_genblk2.rlol_db_cnt_s_3_0 .INIT0=16'ha90a; +defparam \un1_genblk2.rlol_db_cnt_s_3_0 .INIT1=16'h5003; +defparam \un1_genblk2.rlol_db_cnt_s_3_0 .INJECT1_0="NO"; +defparam \un1_genblk2.rlol_db_cnt_s_3_0 .INJECT1_1="NO"; +//@16:865 +//@16:492 + VHI VCC_0 ( + .Z(VCC) +); +// @16:865 + VLO GND_cZ ( + .Z(GND) +); +endmodule /* sgmii_ecp5rsl_core_Z2_layer1 */ + +module sgmii_ecp5 ( + hdoutp, + hdoutn, + hdinp, + hdinn, + rxrefclk, + tx_pclk, + txi_clk, + txdata, + tx_k, + xmit, + tx_disp_correct, + rxdata, + rx_k, + rx_disp_err, + rx_cv_err, + signal_detect_c, + rx_los_low_s, + lsm_status_s, + ctc_urun_s, + ctc_orun_s, + rx_cdr_lol_s, + ctc_ins_s, + ctc_del_s, + sli_rst, + tx_pwrup_c, + rx_pwrup_c, + sci_wrdata, + sci_addr, + sci_rddata, + sci_en_dual, + sci_sel_dual, + sci_en, + sci_sel, + sci_rd, + sci_wrn, + sci_int, + cyawstn, + serdes_pdb, + pll_refclki, + rsl_disable, + rsl_rst, + serdes_rst_dual_c, + rst_dual_c, + tx_serdes_rst_c, + tx_pcs_rst_c, + pll_lol, + rsl_tx_rdy, + rx_serdes_rst_c, + rx_pcs_rst_c, + rsl_rx_rdy +) +; +output hdoutp ; +output hdoutn ; +input hdinp ; +input hdinn ; +input rxrefclk ; +output tx_pclk ; +input txi_clk ; +input [7:0] txdata ; +input [0:0] tx_k ; +input [0:0] xmit ; +input [0:0] tx_disp_correct ; +output [7:0] rxdata ; +output [0:0] rx_k ; +output [0:0] rx_disp_err ; +output [0:0] rx_cv_err ; +input signal_detect_c ; +output rx_los_low_s ; +output lsm_status_s ; +output ctc_urun_s ; +output ctc_orun_s ; +output rx_cdr_lol_s ; +output ctc_ins_s ; +output ctc_del_s ; +input sli_rst ; +input tx_pwrup_c ; +input rx_pwrup_c ; +input [7:0] sci_wrdata ; +input [5:0] sci_addr ; +output [7:0] sci_rddata ; +input sci_en_dual ; +input sci_sel_dual ; +input sci_en ; +input sci_sel ; +input sci_rd ; +input sci_wrn ; +output sci_int ; +input cyawstn ; +input serdes_pdb ; +input pll_refclki ; +input rsl_disable ; +input rsl_rst ; +input serdes_rst_dual_c ; +input rst_dual_c ; +input tx_serdes_rst_c ; +input tx_pcs_rst_c ; +output pll_lol ; +output rsl_tx_rdy ; +input rx_serdes_rst_c ; +input rx_pcs_rst_c ; +output rsl_rx_rdy ; +wire hdoutp ; +wire hdoutn ; +wire hdinp ; +wire hdinn ; +wire rxrefclk ; +wire tx_pclk ; +wire txi_clk ; +wire signal_detect_c ; +wire rx_los_low_s ; +wire lsm_status_s ; +wire ctc_urun_s ; +wire ctc_orun_s ; +wire rx_cdr_lol_s ; +wire ctc_ins_s ; +wire ctc_del_s ; +wire sli_rst ; +wire tx_pwrup_c ; +wire rx_pwrup_c ; +wire sci_en_dual ; +wire sci_sel_dual ; +wire sci_en ; +wire sci_sel ; +wire sci_rd ; +wire sci_wrn ; +wire sci_int ; +wire cyawstn ; +wire serdes_pdb ; +wire pll_refclki ; +wire rsl_disable ; +wire rsl_rst ; +wire serdes_rst_dual_c ; +wire rst_dual_c ; +wire tx_serdes_rst_c ; +wire tx_pcs_rst_c ; +wire pll_lol ; +wire rsl_tx_rdy ; +wire rx_serdes_rst_c ; +wire rx_pcs_rst_c ; +wire rsl_rx_rdy ; +wire rsl_tx_pcs_rst_c ; +wire rsl_rx_pcs_rst_c ; +wire rsl_rx_serdes_rst_c ; +wire rsl_serdes_rst_dual_c ; +wire rsl_tx_serdes_rst_c ; +wire n47_1 ; +wire n48_1 ; +wire n1_1 ; +wire n2_1 ; +wire n3_1 ; +wire n4_1 ; +wire n5_1 ; +wire n49_1 ; +wire n6_1 ; +wire n50_1 ; +wire n7_1 ; +wire n51_1 ; +wire n8_1 ; +wire n52_1 ; +wire n9_1 ; +wire n53_1 ; +wire n54_1 ; +wire n55_1 ; +wire n56_1 ; +wire n57_1 ; +wire n58_1 ; +wire n59_1 ; +wire n60_1 ; +wire n61_1 ; +wire n62_1 ; +wire n63_1 ; +wire n64_1 ; +wire n65_1 ; +wire n10_1 ; +wire n66_1 ; +wire n67_1 ; +wire n68_1 ; +wire n69_1 ; +wire n70_1 ; +wire n71_1 ; +wire n72_1 ; +wire n73_1 ; +wire n74_1 ; +wire n75_1 ; +wire n76_1 ; +wire n77_1 ; +wire n78_1 ; +wire n79_1 ; +wire n80_1 ; +wire n81_1 ; +wire n82_1 ; +wire n83_1 ; +wire n84_1 ; +wire n85_1 ; +wire n86_1 ; +wire n87_1 ; +wire n88_1 ; +wire n11_1 ; +wire n89_1 ; +wire n12_1 ; +wire n90_1 ; +wire n13_1 ; +wire n91_1 ; +wire n92_1 ; +wire n93_1 ; +wire n94_1 ; +wire n95_1 ; +wire n14_1 ; +wire n96_1 ; +wire n15_1 ; +wire n97_1 ; +wire n98_1 ; +wire n99_1 ; +wire n100_1 ; +wire n101_1 ; +wire n112_1 ; +wire n16_1 ; +wire n17_1 ; +wire n18_1 ; +wire n19_1 ; +wire n20_1 ; +wire n21_1 ; +wire n22_1 ; +wire n23_1 ; +wire n24_1 ; +wire n25_1 ; +wire n26_1 ; +wire n27_1 ; +wire n28_1 ; +wire n29_1 ; +wire n30_1 ; +wire n31_1 ; +wire n32_1 ; +wire n33_1 ; +wire n34_1 ; +wire n35_1 ; +wire n36_1 ; +wire n37_1 ; +wire n38_1 ; +wire n39_1 ; +wire n40_1 ; +wire n41_1 ; +wire n42_1 ; +wire n43_1 ; +wire n46_1 ; +wire GND ; +wire VCC ; + VHI VCC_0 ( + .Z(VCC) +); + VLO GND_0 ( + .Z(GND) +); +// @16:865 + PUR PUR_INST ( + .PUR(VCC) +); +// @16:865 + GSR GSR_INST ( + .GSR(VCC) +); +// @8:162 +(* CHAN="CH0" *) DCUA DCU0_inst ( + .CH0_HDINP(hdinp), + .CH1_HDINP(GND), + .CH0_HDINN(hdinn), + .CH1_HDINN(GND), + .D_TXBIT_CLKP_FROM_ND(GND), + .D_TXBIT_CLKN_FROM_ND(GND), + .D_SYNC_ND(GND), + .D_TXPLL_LOL_FROM_ND(GND), + .CH0_RX_REFCLK(rxrefclk), + .CH1_RX_REFCLK(GND), + .CH0_FF_RXI_CLK(tx_pclk), + .CH1_FF_RXI_CLK(VCC), + .CH0_FF_TXI_CLK(txi_clk), + .CH1_FF_TXI_CLK(VCC), + .CH0_FF_EBRD_CLK(tx_pclk), + .CH1_FF_EBRD_CLK(VCC), + .CH0_FF_TX_D_0(txdata[0]), + .CH1_FF_TX_D_0(GND), + .CH0_FF_TX_D_1(txdata[1]), + .CH1_FF_TX_D_1(GND), + .CH0_FF_TX_D_2(txdata[2]), + .CH1_FF_TX_D_2(GND), + .CH0_FF_TX_D_3(txdata[3]), + .CH1_FF_TX_D_3(GND), + .CH0_FF_TX_D_4(txdata[4]), + .CH1_FF_TX_D_4(GND), + .CH0_FF_TX_D_5(txdata[5]), + .CH1_FF_TX_D_5(GND), + .CH0_FF_TX_D_6(txdata[6]), + .CH1_FF_TX_D_6(GND), + .CH0_FF_TX_D_7(txdata[7]), + .CH1_FF_TX_D_7(GND), + .CH0_FF_TX_D_8(tx_k[0]), + .CH1_FF_TX_D_8(GND), + .CH0_FF_TX_D_9(GND), + .CH1_FF_TX_D_9(GND), + .CH0_FF_TX_D_10(xmit[0]), + .CH1_FF_TX_D_10(GND), + .CH0_FF_TX_D_11(tx_disp_correct[0]), + .CH1_FF_TX_D_11(GND), + .CH0_FF_TX_D_12(GND), + .CH1_FF_TX_D_12(GND), + .CH0_FF_TX_D_13(GND), + .CH1_FF_TX_D_13(GND), + .CH0_FF_TX_D_14(GND), + .CH1_FF_TX_D_14(GND), + .CH0_FF_TX_D_15(GND), + .CH1_FF_TX_D_15(GND), + .CH0_FF_TX_D_16(GND), + .CH1_FF_TX_D_16(GND), + .CH0_FF_TX_D_17(GND), + .CH1_FF_TX_D_17(GND), + .CH0_FF_TX_D_18(GND), + .CH1_FF_TX_D_18(GND), + .CH0_FF_TX_D_19(GND), + .CH1_FF_TX_D_19(GND), + .CH0_FF_TX_D_20(GND), + .CH1_FF_TX_D_20(GND), + .CH0_FF_TX_D_21(GND), + .CH1_FF_TX_D_21(GND), + .CH0_FF_TX_D_22(GND), + .CH1_FF_TX_D_22(GND), + .CH0_FF_TX_D_23(GND), + .CH1_FF_TX_D_23(GND), + .CH0_FFC_EI_EN(GND), + .CH1_FFC_EI_EN(GND), + .CH0_FFC_PCIE_DET_EN(GND), + .CH1_FFC_PCIE_DET_EN(GND), + .CH0_FFC_PCIE_CT(GND), + .CH1_FFC_PCIE_CT(GND), + .CH0_FFC_SB_INV_RX(GND), + .CH1_FFC_SB_INV_RX(GND), + .CH0_FFC_ENABLE_CGALIGN(GND), + .CH1_FFC_ENABLE_CGALIGN(GND), + .CH0_FFC_SIGNAL_DETECT(signal_detect_c), + .CH1_FFC_SIGNAL_DETECT(GND), + .CH0_FFC_FB_LOOPBACK(GND), + .CH1_FFC_FB_LOOPBACK(GND), + .CH0_FFC_SB_PFIFO_LP(GND), + .CH1_FFC_SB_PFIFO_LP(GND), + .CH0_FFC_PFIFO_CLR(GND), + .CH1_FFC_PFIFO_CLR(GND), + .CH0_FFC_RATE_MODE_RX(GND), + .CH1_FFC_RATE_MODE_RX(GND), + .CH0_FFC_RATE_MODE_TX(GND), + .CH1_FFC_RATE_MODE_TX(GND), + .CH0_FFC_DIV11_MODE_RX(GND), + .CH1_FFC_DIV11_MODE_RX(GND), + .CH0_FFC_RX_GEAR_MODE(GND), + .CH1_FFC_RX_GEAR_MODE(GND), + .CH0_FFC_TX_GEAR_MODE(GND), + .CH1_FFC_TX_GEAR_MODE(GND), + .CH0_FFC_DIV11_MODE_TX(GND), + .CH1_FFC_DIV11_MODE_TX(GND), + .CH0_FFC_LDR_CORE2TX_EN(GND), + .CH1_FFC_LDR_CORE2TX_EN(GND), + .CH0_FFC_LANE_TX_RST(rsl_tx_pcs_rst_c), + .CH1_FFC_LANE_TX_RST(GND), + .CH0_FFC_LANE_RX_RST(rsl_rx_pcs_rst_c), + .CH1_FFC_LANE_RX_RST(GND), + .CH0_FFC_RRST(rsl_rx_serdes_rst_c), + .CH1_FFC_RRST(GND), + .CH0_FFC_TXPWDNB(tx_pwrup_c), + .CH1_FFC_TXPWDNB(GND), + .CH0_FFC_RXPWDNB(rx_pwrup_c), + .CH1_FFC_RXPWDNB(GND), + .CH0_LDR_CORE2TX(GND), + .CH1_LDR_CORE2TX(GND), + .D_SCIWDATA0(sci_wrdata[0]), + .D_SCIWDATA1(sci_wrdata[1]), + .D_SCIWDATA2(sci_wrdata[2]), + .D_SCIWDATA3(sci_wrdata[3]), + .D_SCIWDATA4(sci_wrdata[4]), + .D_SCIWDATA5(sci_wrdata[5]), + .D_SCIWDATA6(sci_wrdata[6]), + .D_SCIWDATA7(sci_wrdata[7]), + .D_SCIADDR0(sci_addr[0]), + .D_SCIADDR1(sci_addr[1]), + .D_SCIADDR2(sci_addr[2]), + .D_SCIADDR3(sci_addr[3]), + .D_SCIADDR4(sci_addr[4]), + .D_SCIADDR5(sci_addr[5]), + .D_SCIENAUX(sci_en_dual), + .D_SCISELAUX(sci_sel_dual), + .CH0_SCIEN(sci_en), + .CH1_SCIEN(GND), + .CH0_SCISEL(sci_sel), + .CH1_SCISEL(GND), + .D_SCIRD(sci_rd), + .D_SCIWSTN(sci_wrn), + .D_CYAWSTN(cyawstn), + .D_FFC_SYNC_TOGGLE(GND), + .D_FFC_DUAL_RST(rst_dual_c), + .D_FFC_MACRO_RST(rsl_serdes_rst_dual_c), + .D_FFC_MACROPDB(serdes_pdb), + .D_FFC_TRST(rsl_tx_serdes_rst_c), + .CH0_FFC_CDR_EN_BITSLIP(GND), + .CH1_FFC_CDR_EN_BITSLIP(GND), + .D_SCAN_ENABLE(GND), + .D_SCAN_IN_0(GND), + .D_SCAN_IN_1(GND), + .D_SCAN_IN_2(GND), + .D_SCAN_IN_3(GND), + .D_SCAN_IN_4(GND), + .D_SCAN_IN_5(GND), + .D_SCAN_IN_6(GND), + .D_SCAN_IN_7(GND), + .D_SCAN_MODE(GND), + .D_SCAN_RESET(GND), + .D_CIN0(GND), + .D_CIN1(GND), + .D_CIN2(GND), + .D_CIN3(GND), + .D_CIN4(GND), + .D_CIN5(GND), + .D_CIN6(GND), + .D_CIN7(GND), + .D_CIN8(GND), + .D_CIN9(GND), + .D_CIN10(GND), + .D_CIN11(GND), + .CH0_HDOUTP(hdoutp), + .CH1_HDOUTP(n47_1), + .CH0_HDOUTN(hdoutn), + .CH1_HDOUTN(n48_1), + .D_TXBIT_CLKP_TO_ND(n1_1), + .D_TXBIT_CLKN_TO_ND(n2_1), + .D_SYNC_PULSE2ND(n3_1), + .D_TXPLL_LOL_TO_ND(n4_1), + .CH0_FF_RX_F_CLK(n5_1), + .CH1_FF_RX_F_CLK(n49_1), + .CH0_FF_RX_H_CLK(n6_1), + .CH1_FF_RX_H_CLK(n50_1), + .CH0_FF_TX_F_CLK(n7_1), + .CH1_FF_TX_F_CLK(n51_1), + .CH0_FF_TX_H_CLK(n8_1), + .CH1_FF_TX_H_CLK(n52_1), + .CH0_FF_RX_PCLK(n9_1), + .CH1_FF_RX_PCLK(n53_1), + .CH0_FF_TX_PCLK(tx_pclk), + .CH1_FF_TX_PCLK(n54_1), + .CH0_FF_RX_D_0(rxdata[0]), + .CH1_FF_RX_D_0(n55_1), + .CH0_FF_RX_D_1(rxdata[1]), + .CH1_FF_RX_D_1(n56_1), + .CH0_FF_RX_D_2(rxdata[2]), + .CH1_FF_RX_D_2(n57_1), + .CH0_FF_RX_D_3(rxdata[3]), + .CH1_FF_RX_D_3(n58_1), + .CH0_FF_RX_D_4(rxdata[4]), + .CH1_FF_RX_D_4(n59_1), + .CH0_FF_RX_D_5(rxdata[5]), + .CH1_FF_RX_D_5(n60_1), + .CH0_FF_RX_D_6(rxdata[6]), + .CH1_FF_RX_D_6(n61_1), + .CH0_FF_RX_D_7(rxdata[7]), + .CH1_FF_RX_D_7(n62_1), + .CH0_FF_RX_D_8(rx_k[0]), + .CH1_FF_RX_D_8(n63_1), + .CH0_FF_RX_D_9(rx_disp_err[0]), + .CH1_FF_RX_D_9(n64_1), + .CH0_FF_RX_D_10(rx_cv_err[0]), + .CH1_FF_RX_D_10(n65_1), + .CH0_FF_RX_D_11(n10_1), + .CH1_FF_RX_D_11(n66_1), + .CH0_FF_RX_D_12(n67_1), + .CH1_FF_RX_D_12(n68_1), + .CH0_FF_RX_D_13(n69_1), + .CH1_FF_RX_D_13(n70_1), + .CH0_FF_RX_D_14(n71_1), + .CH1_FF_RX_D_14(n72_1), + .CH0_FF_RX_D_15(n73_1), + .CH1_FF_RX_D_15(n74_1), + .CH0_FF_RX_D_16(n75_1), + .CH1_FF_RX_D_16(n76_1), + .CH0_FF_RX_D_17(n77_1), + .CH1_FF_RX_D_17(n78_1), + .CH0_FF_RX_D_18(n79_1), + .CH1_FF_RX_D_18(n80_1), + .CH0_FF_RX_D_19(n81_1), + .CH1_FF_RX_D_19(n82_1), + .CH0_FF_RX_D_20(n83_1), + .CH1_FF_RX_D_20(n84_1), + .CH0_FF_RX_D_21(n85_1), + .CH1_FF_RX_D_21(n86_1), + .CH0_FF_RX_D_22(n87_1), + .CH1_FF_RX_D_22(n88_1), + .CH0_FF_RX_D_23(n11_1), + .CH1_FF_RX_D_23(n89_1), + .CH0_FFS_PCIE_DONE(n12_1), + .CH1_FFS_PCIE_DONE(n90_1), + .CH0_FFS_PCIE_CON(n13_1), + .CH1_FFS_PCIE_CON(n91_1), + .CH0_FFS_RLOS(rx_los_low_s), + .CH1_FFS_RLOS(n92_1), + .CH0_FFS_LS_SYNC_STATUS(lsm_status_s), + .CH1_FFS_LS_SYNC_STATUS(n93_1), + .CH0_FFS_CC_UNDERRUN(ctc_urun_s), + .CH1_FFS_CC_UNDERRUN(n94_1), + .CH0_FFS_CC_OVERRUN(ctc_orun_s), + .CH1_FFS_CC_OVERRUN(n95_1), + .CH0_FFS_RXFBFIFO_ERROR(n14_1), + .CH1_FFS_RXFBFIFO_ERROR(n96_1), + .CH0_FFS_TXFBFIFO_ERROR(n15_1), + .CH1_FFS_TXFBFIFO_ERROR(n97_1), + .CH0_FFS_RLOL(rx_cdr_lol_s), + .CH1_FFS_RLOL(n98_1), + .CH0_FFS_SKP_ADDED(ctc_ins_s), + .CH1_FFS_SKP_ADDED(n99_1), + .CH0_FFS_SKP_DELETED(ctc_del_s), + .CH1_FFS_SKP_DELETED(n100_1), + .CH0_LDR_RX2CORE(n101_1), + .CH1_LDR_RX2CORE(n112_1), + .D_SCIRDATA0(sci_rddata[0]), + .D_SCIRDATA1(sci_rddata[1]), + .D_SCIRDATA2(sci_rddata[2]), + .D_SCIRDATA3(sci_rddata[3]), + .D_SCIRDATA4(sci_rddata[4]), + .D_SCIRDATA5(sci_rddata[5]), + .D_SCIRDATA6(sci_rddata[6]), + .D_SCIRDATA7(sci_rddata[7]), + .D_SCIINT(sci_int), + .D_SCAN_OUT_0(n16_1), + .D_SCAN_OUT_1(n17_1), + .D_SCAN_OUT_2(n18_1), + .D_SCAN_OUT_3(n19_1), + .D_SCAN_OUT_4(n20_1), + .D_SCAN_OUT_5(n21_1), + .D_SCAN_OUT_6(n22_1), + .D_SCAN_OUT_7(n23_1), + .D_COUT0(n24_1), + .D_COUT1(n25_1), + .D_COUT2(n26_1), + .D_COUT3(n27_1), + .D_COUT4(n28_1), + .D_COUT5(n29_1), + .D_COUT6(n30_1), + .D_COUT7(n31_1), + .D_COUT8(n32_1), + .D_COUT9(n33_1), + .D_COUT10(n34_1), + .D_COUT11(n35_1), + .D_COUT12(n36_1), + .D_COUT13(n37_1), + .D_COUT14(n38_1), + .D_COUT15(n39_1), + .D_COUT16(n40_1), + .D_COUT17(n41_1), + .D_COUT18(n42_1), + .D_COUT19(n43_1), + .D_REFCLKI(pll_refclki), + .D_FFS_PLOL(n46_1) +); +defparam DCU0_inst.D_MACROPDB = "0b1"; +defparam DCU0_inst.D_IB_PWDNB = "0b1"; +defparam DCU0_inst.D_XGE_MODE = "0b0"; +defparam DCU0_inst.D_LOW_MARK = "0d4"; +defparam DCU0_inst.D_HIGH_MARK = "0d12"; +defparam DCU0_inst.D_BUS8BIT_SEL = "0b0"; +defparam DCU0_inst.D_CDR_LOL_SET = "0b00"; +defparam DCU0_inst.D_BITCLK_LOCAL_EN = "0b1"; +defparam DCU0_inst.D_BITCLK_ND_EN = "0b0"; +defparam DCU0_inst.D_BITCLK_FROM_ND_EN = "0b0"; +defparam DCU0_inst.D_SYNC_LOCAL_EN = "0b1"; +defparam DCU0_inst.D_SYNC_ND_EN = "0b0"; +defparam DCU0_inst.CH0_UC_MODE = "0b0"; +defparam DCU0_inst.CH0_PCIE_MODE = "0b0"; +defparam DCU0_inst.CH0_RIO_MODE = "0b0"; +defparam DCU0_inst.CH0_WA_MODE = "0b0"; +defparam DCU0_inst.CH0_INVERT_RX = "0b0"; +defparam DCU0_inst.CH0_INVERT_TX = "0b0"; +defparam DCU0_inst.CH0_PRBS_SELECTION = "0b0"; +defparam DCU0_inst.CH0_GE_AN_ENABLE = "0b0"; +defparam DCU0_inst.CH0_PRBS_LOCK = "0b0"; +defparam DCU0_inst.CH0_PRBS_ENABLE = "0b0"; +defparam DCU0_inst.CH0_ENABLE_CG_ALIGN = "0b1"; +defparam DCU0_inst.CH0_TX_GEAR_MODE = "0b0"; +defparam DCU0_inst.CH0_RX_GEAR_MODE = "0b0"; +defparam DCU0_inst.CH0_PCS_DET_TIME_SEL = "0b00"; +defparam DCU0_inst.CH0_PCIE_EI_EN = "0b0"; +defparam DCU0_inst.CH0_TX_GEAR_BYPASS = "0b0"; +defparam DCU0_inst.CH0_ENC_BYPASS = "0b0"; +defparam DCU0_inst.CH0_SB_BYPASS = "0b0"; +defparam DCU0_inst.CH0_RX_SB_BYPASS = "0b0"; +defparam DCU0_inst.CH0_WA_BYPASS = "0b0"; +defparam DCU0_inst.CH0_DEC_BYPASS = "0b0"; +defparam DCU0_inst.CH0_CTC_BYPASS = "0b0"; +defparam DCU0_inst.CH0_RX_GEAR_BYPASS = "0b0"; +defparam DCU0_inst.CH0_LSM_DISABLE = "0b0"; +defparam DCU0_inst.CH0_MATCH_2_ENABLE = "0b1"; +defparam DCU0_inst.CH0_MATCH_4_ENABLE = "0b0"; +defparam DCU0_inst.CH0_MIN_IPG_CNT = "0b11"; +defparam DCU0_inst.CH0_CC_MATCH_1 = "0x000"; +defparam DCU0_inst.CH0_CC_MATCH_2 = "0x000"; +defparam DCU0_inst.CH0_CC_MATCH_3 = "0x1BC"; +defparam DCU0_inst.CH0_CC_MATCH_4 = "0x050"; +defparam DCU0_inst.CH0_UDF_COMMA_MASK = "0x3ff"; +defparam DCU0_inst.CH0_UDF_COMMA_A = "0x283"; +defparam DCU0_inst.CH0_UDF_COMMA_B = "0x17C"; +defparam DCU0_inst.CH0_RX_DCO_CK_DIV = "0b000"; +defparam DCU0_inst.CH0_RCV_DCC_EN = "0b0"; +defparam DCU0_inst.CH0_REQ_LVL_SET = "0b00"; +defparam DCU0_inst.CH0_REQ_EN = "0b1"; +defparam DCU0_inst.CH0_RTERM_RX = "0d22"; +defparam DCU0_inst.CH0_PDEN_SEL = "0b1"; +defparam DCU0_inst.CH0_LDR_RX2CORE_SEL = "0b0"; +defparam DCU0_inst.CH0_LDR_CORE2TX_SEL = "0b0"; +defparam DCU0_inst.CH0_TPWDNB = "0b1"; +defparam DCU0_inst.CH0_RATE_MODE_TX = "0b0"; +defparam DCU0_inst.CH0_RTERM_TX = "0d19"; +defparam DCU0_inst.CH0_TX_CM_SEL = "0b00"; +defparam DCU0_inst.CH0_TDRV_PRE_EN = "0b0"; +defparam DCU0_inst.CH0_TDRV_SLICE0_SEL = "0b01"; +defparam DCU0_inst.CH0_TDRV_SLICE1_SEL = "0b00"; +defparam DCU0_inst.CH0_TDRV_SLICE2_SEL = "0b01"; +defparam DCU0_inst.CH0_TDRV_SLICE3_SEL = "0b01"; +defparam DCU0_inst.CH0_TDRV_SLICE4_SEL = "0b01"; +defparam DCU0_inst.CH0_TDRV_SLICE5_SEL = "0b01"; +defparam DCU0_inst.CH0_TDRV_SLICE0_CUR = "0b101"; +defparam DCU0_inst.CH0_TDRV_SLICE1_CUR = "0b000"; +defparam DCU0_inst.CH0_TDRV_SLICE2_CUR = "0b11"; +defparam DCU0_inst.CH0_TDRV_SLICE3_CUR = "0b11"; +defparam DCU0_inst.CH0_TDRV_SLICE4_CUR = "0b11"; +defparam DCU0_inst.CH0_TDRV_SLICE5_CUR = "0b00"; +defparam DCU0_inst.CH0_TDRV_DAT_SEL = "0b00"; +defparam DCU0_inst.CH0_TX_DIV11_SEL = "0b0"; +defparam DCU0_inst.CH0_RPWDNB = "0b1"; +defparam DCU0_inst.CH0_RATE_MODE_RX = "0b0"; +defparam DCU0_inst.CH0_RLOS_SEL = "0b1"; +defparam DCU0_inst.CH0_RX_LOS_LVL = "0b010"; +defparam DCU0_inst.CH0_RX_LOS_CEQ = "0b11"; +defparam DCU0_inst.CH0_RX_LOS_HYST_EN = "0b0"; +defparam DCU0_inst.CH0_RX_LOS_EN = "0b1"; +defparam DCU0_inst.CH0_RX_DIV11_SEL = "0b0"; +defparam DCU0_inst.CH0_SEL_SD_RX_CLK = "0b0"; +defparam DCU0_inst.CH0_FF_RX_H_CLK_EN = "0b0"; +defparam DCU0_inst.CH0_FF_RX_F_CLK_DIS = "0b0"; +defparam DCU0_inst.CH0_FF_TX_H_CLK_EN = "0b0"; +defparam DCU0_inst.CH0_FF_TX_F_CLK_DIS = "0b0"; +defparam DCU0_inst.CH0_RX_RATE_SEL = "0d8"; +defparam DCU0_inst.CH0_TDRV_POST_EN = "0b0"; +defparam DCU0_inst.CH0_TX_POST_SIGN = "0b0"; +defparam DCU0_inst.CH0_TX_PRE_SIGN = "0b0"; +defparam DCU0_inst.CH0_RXTERM_CM = "0b11"; +defparam DCU0_inst.CH0_RXIN_CM = "0b11"; +defparam DCU0_inst.CH0_LEQ_OFFSET_SEL = "0b0"; +defparam DCU0_inst.CH0_LEQ_OFFSET_TRIM = "0b000"; +defparam DCU0_inst.D_TX_MAX_RATE = "2"; +defparam DCU0_inst.CH0_CDR_MAX_RATE = "2"; +defparam DCU0_inst.CH0_TXAMPLITUDE = "0d1100"; +defparam DCU0_inst.CH0_TXDEPRE = "DISABLED"; +defparam DCU0_inst.CH0_TXDEPOST = "DISABLED"; +defparam DCU0_inst.CH0_PROTOCOL = "GBE"; +defparam DCU0_inst.D_ISETLOS = "0d0"; +defparam DCU0_inst.D_SETIRPOLY_AUX = "0b00"; +defparam DCU0_inst.D_SETICONST_AUX = "0b00"; +defparam DCU0_inst.D_SETIRPOLY_CH = "0b00"; +defparam DCU0_inst.D_SETICONST_CH = "0b00"; +defparam DCU0_inst.D_REQ_ISET = "0b000"; +defparam DCU0_inst.D_PD_ISET = "0b00"; +defparam DCU0_inst.D_DCO_CALIB_TIME_SEL = "0b00"; +defparam DCU0_inst.CH0_DCOCTLGI = "0b010"; +defparam DCU0_inst.CH0_DCOATDDLY = "0b00"; +defparam DCU0_inst.CH0_DCOATDCFG = "0b00"; +defparam DCU0_inst.CH0_DCOBYPSATD = "0b1"; +defparam DCU0_inst.CH0_DCOSCALEI = "0b00"; +defparam DCU0_inst.CH0_DCOITUNE4LSB = "0b111"; +defparam DCU0_inst.CH0_DCOIOSTUNE = "0b000"; +defparam DCU0_inst.CH0_DCODISBDAVOID = "0b0"; +defparam DCU0_inst.CH0_DCOCALDIV = "0b001"; +defparam DCU0_inst.CH0_DCONUOFLSB = "0b101"; +defparam DCU0_inst.CH0_DCOIUPDNX2 = "0b1"; +defparam DCU0_inst.CH0_DCOSTEP = "0b00"; +defparam DCU0_inst.CH0_DCOSTARTVAL = "0b000"; +defparam DCU0_inst.CH0_DCOFLTDAC = "0b01"; +defparam DCU0_inst.CH0_DCOITUNE = "0b00"; +defparam DCU0_inst.CH0_DCOFTNRG = "0b110"; +defparam DCU0_inst.CH0_CDR_CNT4SEL = "0b00"; +defparam DCU0_inst.CH0_CDR_CNT8SEL = "0b00"; +defparam DCU0_inst.CH0_BAND_THRESHOLD = "0d0"; +defparam DCU0_inst.CH0_AUTO_FACQ_EN = "0b1"; +defparam DCU0_inst.CH0_AUTO_CALIB_EN = "0b1"; +defparam DCU0_inst.CH0_CALIB_CK_MODE = "0b0"; +defparam DCU0_inst.CH0_REG_BAND_OFFSET = "0d0"; +defparam DCU0_inst.CH0_REG_BAND_SEL = "0d0"; +defparam DCU0_inst.CH0_REG_IDAC_SEL = "0d0"; +defparam DCU0_inst.CH0_REG_IDAC_EN = "0b0"; +defparam DCU0_inst.D_TXPLL_PWDNB = "0b1"; +defparam DCU0_inst.D_SETPLLRC = "0d1"; +defparam DCU0_inst.D_REFCK_MODE = "0b001"; +defparam DCU0_inst.D_TX_VCO_CK_DIV = "0b000"; +defparam DCU0_inst.D_PLL_LOL_SET = "0b00"; +defparam DCU0_inst.D_RG_EN = "0b0"; +defparam DCU0_inst.D_RG_SET = "0b00"; +defparam DCU0_inst.D_CMUSETISCL4VCO = "0b000"; +defparam DCU0_inst.D_CMUSETI4VCO = "0b00"; +defparam DCU0_inst.D_CMUSETINITVCT = "0b00"; +defparam DCU0_inst.D_CMUSETZGM = "0b000"; +defparam DCU0_inst.D_CMUSETP2AGM = "0b000"; +defparam DCU0_inst.D_CMUSETP1GM = "0b000"; +defparam DCU0_inst.D_CMUSETI4CPZ = "0d3"; +defparam DCU0_inst.D_CMUSETI4CPP = "0d3"; +defparam DCU0_inst.D_CMUSETICP4Z = "0b101"; +defparam DCU0_inst.D_CMUSETICP4P = "0b01"; +defparam DCU0_inst.D_CMUSETBIASI = "0b00"; +// @8:424 + sgmii_ecp5sll_core_Z1_layer1 sll_inst ( + .tx_pclk(tx_pclk), + .sli_rst(sli_rst), + .pll_refclki(pll_refclki), + .pll_lock_i(pll_lol) +); +// @8:394 + sgmii_ecp5rsl_core_Z2_layer1 rsl_inst ( + .rx_pcs_rst_c(rx_pcs_rst_c), + .tx_pcs_rst_c(tx_pcs_rst_c), + .serdes_rst_dual_c(serdes_rst_dual_c), + .tx_serdes_rst_c(tx_serdes_rst_c), + .rsl_rx_pcs_rst_c(rsl_rx_pcs_rst_c), + .rsl_tx_pcs_rst_c(rsl_tx_pcs_rst_c), + .rsl_tx_serdes_rst_c(rsl_tx_serdes_rst_c), + .rsl_tx_rdy(rsl_tx_rdy), + .pll_lock_i(pll_lol), + .pll_refclki(pll_refclki), + .rsl_rx_rdy(rsl_rx_rdy), + .rsl_rst(rsl_rst), + .rxrefclk(rxrefclk), + .rsl_disable(rsl_disable), + .rx_serdes_rst_c(rx_serdes_rst_c), + .rst_dual_c(rst_dual_c), + .rx_cdr_lol_s(rx_cdr_lol_s), + .rx_los_low_s(rx_los_low_s), + .rsl_rx_serdes_rst_c(rsl_rx_serdes_rst_c), + .rsl_serdes_rst_dual_c(rsl_serdes_rst_dual_c) +); +endmodule /* sgmii_ecp5 */ + diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5_cck.rpt.db b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5_cck.rpt.db new file mode 100644 index 0000000000000000000000000000000000000000..029fa7a6cf9014af50ee9d4aa843536a1f7b5c42 GIT binary patch literal 8192 zcmeI#JqyA>3DEQgKL*xDXO@ z%d=&(imfwzIG4G0Jf%J073BwWN1`{~f``Krs^Nta{J wY>_tId!-qqw)j}S$WL3iQGJ`s(T{)t1Rwwb2tWV=5P$##AOHafK;VZ3UKAiP82|tP literal 0 HcmV?d00001 diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5_scck.rpt.db b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5_scck.rpt.db new file mode 100644 index 0000000000000000000000000000000000000000..029fa7a6cf9014af50ee9d4aa843536a1f7b5c42 GIT binary patch literal 8192 zcmeI#JqyA>3DEQgKL*xDXO@ z%d=&(imfwzIG4G0Jf%J073BwWN1`{~f``Krs^Nta{J wY>_tId!-qqw)j}S$WL3iQGJ`s(T{)t1Rwwb2tWV=5P$##AOHafK;VZ3UKAiP82|tP literal 0 HcmV?d00001 diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5_synplify.lpf b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5_synplify.lpf new file mode 100644 index 0000000..9cbac38 --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5_synplify.lpf @@ -0,0 +1,29 @@ +# +# Logical Preferences generated for Lattice by Synplify maplat, Build 1796R. +# + +# Period Constraints +#FREQUENCY PORT "pll_refclki" 100.0 MHz; +#FREQUENCY PORT "rxrefclk" 100.0 MHz; +#FREQUENCY NET "tx_pclk" 100.0 MHz; + + +# Output Constraints + +# Input Constraints + +# Point-to-point Delay Constraints + + + +# Block Path Constraints +#BLOCK PATH FROM CLKNET "tx_pclk" TO CLKNET "rxrefclk"; +#BLOCK PATH FROM CLKNET "tx_pclk" TO CLKNET "pll_refclki"; +#BLOCK PATH FROM CLKNET "rxrefclk" TO CLKNET "tx_pclk"; +#BLOCK PATH FROM CLKNET "rxrefclk" TO CLKNET "pll_refclki"; +#BLOCK PATH FROM CLKNET "pll_refclki" TO CLKNET "tx_pclk"; +#BLOCK PATH FROM CLKNET "pll_refclki" TO CLKNET "rxrefclk"; + +BLOCK ASYNCPATHS; + +# End of generated Logical Preferences. diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5_synplify_tmp2.lpf b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5_synplify_tmp2.lpf new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5_synplify_tmp4.lpf b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5_synplify_tmp4.lpf new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5_synplify_tmp8.lpf b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5_synplify_tmp8.lpf new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/layer0.tlg.rptmap b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/layer0.tlg.rptmap new file mode 100644 index 0000000..3910cac --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/layer0.tlg.rptmap @@ -0,0 +1 @@ +./synwork/layer0.tlg,layer0.tlg,An incremental, partial HDL compilation log file that may allow early access to errors or other messages. diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/layer1.tlg.rptmap b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/layer1.tlg.rptmap new file mode 100644 index 0000000..af92e0b --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/layer1.tlg.rptmap @@ -0,0 +1 @@ +./synwork/layer1.tlg,layer1.tlg,An incremental, partial HDL compilation log file that may allow early access to errors or other messages. diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/linker.rpt.rptmap b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/linker.rpt.rptmap new file mode 100644 index 0000000..3793ead --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/linker.rpt.rptmap @@ -0,0 +1 @@ +./synwork/sgmii_ecp5_comp.linkerlog,linker.rpt,Summary of linker messages for components that did not bind diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/metrics.db b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/metrics.db new file mode 100644 index 0000000000000000000000000000000000000000..4a54f9aa56330721e7268276626c67bb6ab973b2 GIT binary patch literal 20480 zcmeI3Piq@T7{+&P*;-LXTT_BDMs$LbDlU~H$#N`HL*u3`0JH!9Jy5q}SZ?6#}K__6zh&^iulnYW2^kCZPwD@C;sS{=DzAkACdsogF>?@zB$P zcS037nr|5&8>VU8<=ilgYjiEqHEJ2^#Mh{qqs}Ft*NpPtFBt`7*j>Xu%Kys#q7E7e zfB*=900@8p2!H?xfB*=*hXl^9XR@nnYvy@DJ1t*mFYsh{_M1X9)Qh8` zWGf7P;mD1%uNJeb<+6ERO+31O=$^b&=1Ji8qQy!!D}0$|2VuKU`St%wPuKSsELNtpqa00m9Z$5IZ<)zc z<@N*9VjJZ9=|tk)tdEuA`hVH}$guykU)eA1mVJi?XdnOrAOHd&00JNY0w4eaAOHd& z@Zl2JShm=DVZF$5E|vInzF=$fPNQC{?M8wQOSGd-uj@1er`Hqe^CgQFl29caKaJhl z*{#osy+L~nB)c}2t!`G5mdf^&Akmw&mq3aXHBy`#_8ILRkXT_#tX{8F8jVzJwDnM; z4FZy*xQX0$ZMRabUkHrre~Udg>^Jr=_ICca{LlFU`<*7xKmY_l00ck)1V8`;KmY_l z00jOYfuAgk?b@t(n)76&9qEdwDMLLxj;}?#GF4{&Fn;qKiRXPf>F?3&=y4kNMMv|# z9H&0aT5OA?pH4}S7vDj5oYP#+#c!&MXJ)SJkhkXWw*Wn|FkdcN=kYpkD{mkqZ@u72 z>g}$OLd7C{7^IaD(RWlw-=-TpnbA*{=HK8FEiXf6KOwU#IXC{76T-aOlns929}cW3UD*xs6Zqqor9qssoK&DI{~Jh$6aLOY(Mr(w7|FnJKZy?3Ac zj&@H(#Obl&w0RH?M0%^&-Yds^SD>@>D36*+y9;a_l5q5}W` literal 0 HcmV?d00001 diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_notes.txt b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_notes.txt new file mode 100644 index 0000000..ae389c2 --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_notes.txt @@ -0,0 +1,16 @@ +@N|Running in 64-bit mode +@N|Running in 64-bit mode +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5.vhd":30:7:30:16|Top entity is set to sgmii_ecp5. +@N|Running in 64-bit mode +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5.vhd":30:7:30:16|Top entity is set to sgmii_ecp5. +@N: CD630 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5.vhd":30:7:30:16|Synthesizing work.sgmii_ecp5.v1. +@N: CG364 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1968:7:1968:10|Synthesizing module sync in library work. +@N: CG364 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1051:7:1051:24|Synthesizing module sgmii_ecp5sll_core in library work. +@N: CG179 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1287:54:1287:59|Removing redundant assignment. +@N: CG179 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1293:52:1293:55|Removing redundant assignment. +@N: CG364 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":92:7:92:24|Synthesizing module sgmii_ecp5rsl_core in library work. +@N: CL201 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1801:0:1801:5|Trying to extract state machine for register sll_state. +@N|Running in 64-bit mode + diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_runstatus.xml b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_runstatus.xml new file mode 100644 index 0000000..ca7d50b --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_runstatus.xml @@ -0,0 +1,41 @@ + + + + + + /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_compiler.srr + Synopsys HDL Compiler + + + Completed + + + + 15 + /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_notes.txt + + + 77 + /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_warnings.txt + + + 0 + /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_errors.txt + + + - + + + 00h:00m:02s + + + - + + + 1557482336 + + + \ No newline at end of file diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_warnings.txt b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_warnings.txt new file mode 100644 index 0000000..0eac89c --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_compiler_warnings.txt @@ -0,0 +1,78 @@ +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1350:0:1350:5|Pruning unused register rcpri_mod_ch_st. Make sure that there are no unused intermediate registers. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 2 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 0 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 1 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 2 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 17 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 18 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 19 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 20 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 21 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":326:33:326:40|Object rrst_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":327:33:327:43|Removing wire rrst_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":328:33:328:41|Object rrst_wait is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":341:33:341:39|Object rxp_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":342:33:342:39|Object rxp_rst is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":343:33:343:42|Removing wire rxp_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":346:33:346:42|Object rlolsz_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":347:33:347:45|Removing wire rlolsz_cnt_tc, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":350:33:350:43|Removing wire rxp_cnt2_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":351:33:351:47|Object data_loop_b_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":352:33:352:43|Object data_loop_b is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":353:33:353:46|Removing wire data_loop_b_tc, as there is no assignment to it. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":806:3:806:8|Pruning unused register genblk2.rxp_cnt2[2:0]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlol_p3. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlos_p3. Make sure that there are no unused intermediate registers. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":694:3:694:8|Optimizing register bit genblk2.rxs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":461:3:461:8|Optimizing register bit genblk1.txp_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":422:3:422:8|Optimizing register bit genblk1.txs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":422:3:422:8|Pruning register bit 2 of genblk1.txs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":461:3:461:8|Pruning register bit 2 of genblk1.txp_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":694:3:694:8|Pruning register bit 2 of genblk2.rxs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":200:33:200:48|Input port bits 3 to 1 of rui_tx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":204:33:204:51|Input port bits 3 to 1 of rui_rx_serdes_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":205:33:205:48|Input port bits 3 to 1 of rui_rx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":206:33:206:48|Input port bits 3 to 1 of rdi_rx_los_low_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":207:33:207:48|Input port bits 3 to 1 of rdi_rx_cdr_lol_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning register bits 5 to 3 of genblk5.rdiff_comp_unlock[5:2]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning register bits 4 to 3 of genblk5.rdiff_comp_lock[4:2]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rdiff_comp_unlock[2]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rcount_tc[16]. Make sure that there are no unused intermediate registers. + diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_area_report.xml b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_area_report.xml new file mode 100644 index 0000000..58aa421 --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_area_report.xml @@ -0,0 +1,26 @@ + + + + +/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_resourceusage.rpt +Resource Usage + + +221 + + +0 + + +0 + + +0 + + +153 + + diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_errors.txt b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_errors.txt new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_notes.txt b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_notes.txt new file mode 100644 index 0000000..89ed59a --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_notes.txt @@ -0,0 +1,22 @@ +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) +@N: MO225 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1801:0:1801:5|There are no possible illegal states for state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)); safe FSM implementation is not required. +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1350:0:1350:5|Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance rhb_wait_cnt[7:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1304:0:1304:5|Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance rcount[15:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1759:0:1759:5|Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance pcount[21:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":412:3:412:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk1\.plol_cnt[19:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":909:3:909:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.genblk3\.rxr_wt_cnt[11:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":527:3:527:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk1\.genblk2\.txr_wt_cnt[11:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":778:3:778:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.rlols0_cnt[17:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":680:3:680:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.rlol1_cnt[18:0] +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX164 |The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute. +@N: FX1056 |Writing EDF file: /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.edn +@N: BW106 |Synplicity Constraint File capacitance units using default value of 1pF +@N: MT320 |This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. +@N: MT322 |Clock constraints include only register-to-register paths associated with each individual clock. diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_opt_report.xml b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_opt_report.xml new file mode 100644 index 0000000..37c27e7 --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_opt_report.xml @@ -0,0 +1,14 @@ + + + + +3 / 0 + +/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_combined_clk.rpt +START OF CLOCK OPTIMIZATION REPORT + + + diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_runstatus.xml b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_runstatus.xml new file mode 100644 index 0000000..aa1f7f0 --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_runstatus.xml @@ -0,0 +1,46 @@ + + + + +/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.srr +Synopsys Lattice Technology Mapper + + +Completed + + + +22 + +/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_notes.txt + + + +4 + +/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_warnings.txt + + + +0 + +/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_errors.txt + + + +0h:00m:03s + + +0h:00m:03s + + +153MB + + +1557482342 + + + diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_timing_report.xml b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_timing_report.xml new file mode 100644 index 0000000..354cbb6 --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_timing_report.xml @@ -0,0 +1,41 @@ + + + + +/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.srr +START OF TIMING REPORT + + +Clock Name +Req Freq +Est Freq +Slack + + +sgmii_ecp5|pll_refclki +100.0 MHz +168.9 MHz +4.079 + + +sgmii_ecp5|rxrefclk +100.0 MHz +170.5 MHz +4.136 + + +sgmii_ecp5|tx_pclk_inferred_clock +100.0 MHz +237.5 MHz +5.789 + + +System +100.0 MHz +840.7 MHz +8.810 + + diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_warnings.txt b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_warnings.txt new file mode 100644 index 0000000..d44b509 --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_fpga_mapper_warnings.txt @@ -0,0 +1,4 @@ +@W: MT246 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5.vhd":162:4:162:12|Blackbox DCUA is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) +@W: MT420 |Found inferred clock sgmii_ecp5|rxrefclk with period 10.00ns. Please declare a user-defined clock on object "p:rxrefclk" +@W: MT420 |Found inferred clock sgmii_ecp5|pll_refclki with period 10.00ns. Please declare a user-defined clock on object "p:pll_refclki" +@W: MT420 |Found inferred clock sgmii_ecp5|tx_pclk_inferred_clock with period 10.00ns. Please declare a user-defined clock on object "n:tx_pclk" diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_errors.txt b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_errors.txt new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_notes.txt b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_notes.txt new file mode 100644 index 0000000..a540d08 --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_notes.txt @@ -0,0 +1,9 @@ +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) +@N: BN362 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1408:0:1408:5|Removing sequential instance pcpri_mod_ch (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:PrimLib.dffre(prim) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1244:27:1244:40|Removing instance div2_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_3(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1252:27:1252:41|Removing instance div11_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_2(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1236:27:1236:40|Removing instance gear_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_4(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1268:27:1268:44|Removing instance pcie_mod_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_0(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1260:27:1260:44|Removing instance cpri_mod_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_1(verilog) because it does not drive other instances. +@N: MO225 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1801:0:1801:5|There are no possible illegal states for state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)); safe FSM implementation is not required. diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_runstatus.xml b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_runstatus.xml new file mode 100644 index 0000000..127251d --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_runstatus.xml @@ -0,0 +1,46 @@ + + + + +/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_premap.srr +Synopsys Lattice Technology Pre-mapping + + +Completed + + + +9 + +/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_notes.txt + + + +3 + +/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_warnings.txt + + + +0 + +/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_errors.txt + + + +0h:00m:00s + + +0h:00m:00s + + +144MB + + +1557482338 + + + diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_warnings.txt b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_warnings.txt new file mode 100644 index 0000000..47b05ba --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/report/sgmii_ecp5_premap_warnings.txt @@ -0,0 +1,3 @@ +@W: MT529 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Found inferred clock sgmii_ecp5|pll_refclki which controls 93 sequential elements including sll_inst.phb_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":567:3:567:8|Found inferred clock sgmii_ecp5|rxrefclk which controls 77 sequential elements including rsl_inst.genblk2\.rlos_db_p1. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Found inferred clock sgmii_ecp5|tx_pclk_inferred_clock which controls 53 sequential elements including sll_inst.rtc_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_compiler.srr b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_compiler.srr new file mode 100644 index 0000000..77a0cae --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_compiler.srr @@ -0,0 +1,352 @@ +Synopsys HDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Synopsys VHDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5.vhd":30:7:30:16|Top entity is set to sgmii_ecp5. +VHDL syntax check successful! + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB) + + +Process completed successfully. +# Fri May 10 11:58:55 2019 + +###########################################################] +Synopsys Verilog Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps) +@I::"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v" (library work) +Verilog syntax check successful! + +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB) + + +Process completed successfully. +# Fri May 10 11:58:55 2019 + +###########################################################] +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5.vhd":30:7:30:16|Top entity is set to sgmii_ecp5. +VHDL syntax check successful! +@N: CD630 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5.vhd":30:7:30:16|Synthesizing work.sgmii_ecp5.v1. +Post processing for work.sgmii_ecp5.v1 + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 74MB peak: 76MB) + + +Process completed successfully. +# Fri May 10 11:58:55 2019 + +###########################################################] +Running on host :lxhadeb07 +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps) +@I::"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v" (library work) +Verilog syntax check successful! +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +@N: CG364 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1968:7:1968:10|Synthesizing module sync in library work. + + PDATA_RST_VAL=32'b00000000000000000000000000000000 + Generated name = sync_0s +@N: CG364 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1051:7:1051:24|Synthesizing module sgmii_ecp5sll_core in library work. + + PPROTOCOL=24'b010001110100001001000101 + PLOL_SETTING=32'b00000000000000000000000000000000 + PDYN_RATE_CTRL=64'b0100010001001001010100110100000101000010010011000100010101000100 + PPCIE_MAX_RATE=24'b001100100010111000110101 + PDIFF_VAL_LOCK=32'b00000000000000000000000000010011 + PDIFF_VAL_UNLOCK=32'b00000000000000000000000000100111 + PPCLK_TC=32'b00000000000000010000000000000000 + PDIFF_DIV11_VAL_LOCK=32'b00000000000000000000000000000000 + PDIFF_DIV11_VAL_UNLOCK=32'b00000000000000000000000000000000 + PPCLK_DIV11_TC=32'b00000000000000000000000000000000 + LPLL_LOSS_ST=2'b00 + LPLL_PRELOSS_ST=2'b01 + LPLL_PRELOCK_ST=2'b10 + LPLL_LOCK_ST=2'b11 + LRCLK_TC=16'b1111111111111111 + LRCLK_TC_PUL_WIDTH=16'b0000000000110010 + LHB_WAIT_CNT=8'b11111111 + LPCLK_TC_0=32'b00000000000000001000000000000000 + LPCLK_TC_1=32'b00000000000000010000000000000000 + LPCLK_TC_2=32'b00000000000000100000000000000000 + LPCLK_TC_3=32'b00000000000000101000000000000000 + LPCLK_TC_4=32'b00000000000000010000000000000000 + LPDIFF_LOCK_00=32'b00000000000000000000000000001001 + LPDIFF_LOCK_10=32'b00000000000000000000000000010011 + LPDIFF_LOCK_20=32'b00000000000000000000000000100111 + LPDIFF_LOCK_30=32'b00000000000000000000000000110001 + LPDIFF_LOCK_40=32'b00000000000000000000000000010011 + LPDIFF_LOCK_01=32'b00000000000000000000000000001001 + LPDIFF_LOCK_11=32'b00000000000000000000000000010011 + LPDIFF_LOCK_21=32'b00000000000000000000000000100111 + LPDIFF_LOCK_31=32'b00000000000000000000000000110001 + LPDIFF_LOCK_41=32'b00000000000000000000000000010011 + LPDIFF_LOCK_02=32'b00000000000000000000000000110001 + LPDIFF_LOCK_12=32'b00000000000000000000000001100010 + LPDIFF_LOCK_22=32'b00000000000000000000000011000100 + LPDIFF_LOCK_32=32'b00000000000000000000000011110101 + LPDIFF_LOCK_42=32'b00000000000000000000000001100010 + LPDIFF_LOCK_03=32'b00000000000000000000000010000011 + LPDIFF_LOCK_13=32'b00000000000000000000000100000110 + LPDIFF_LOCK_23=32'b00000000000000000000001000001100 + LPDIFF_LOCK_33=32'b00000000000000000000001010001111 + LPDIFF_LOCK_43=32'b00000000000000000000000100000110 + LPDIFF_UNLOCK_00=32'b00000000000000000000000000010011 + LPDIFF_UNLOCK_10=32'b00000000000000000000000000100111 + LPDIFF_UNLOCK_20=32'b00000000000000000000000001001110 + LPDIFF_UNLOCK_30=32'b00000000000000000000000001100010 + LPDIFF_UNLOCK_40=32'b00000000000000000000000000100111 + LPDIFF_UNLOCK_01=32'b00000000000000000000000001000001 + LPDIFF_UNLOCK_11=32'b00000000000000000000000010000011 + LPDIFF_UNLOCK_21=32'b00000000000000000000000100000110 + LPDIFF_UNLOCK_31=32'b00000000000000000000000101000111 + LPDIFF_UNLOCK_41=32'b00000000000000000000000010000011 + LPDIFF_UNLOCK_02=32'b00000000000000000000000001001000 + LPDIFF_UNLOCK_12=32'b00000000000000000000000010010000 + LPDIFF_UNLOCK_22=32'b00000000000000000000000100100000 + LPDIFF_UNLOCK_32=32'b00000000000000000000000101101000 + LPDIFF_UNLOCK_42=32'b00000000000000000000000010010000 + LPDIFF_UNLOCK_03=32'b00000000000000000000000011000100 + LPDIFF_UNLOCK_13=32'b00000000000000000000000110001001 + LPDIFF_UNLOCK_23=32'b00000000000000000000001100010010 + LPDIFF_UNLOCK_33=32'b00000000000000000000001111010111 + LPDIFF_UNLOCK_43=32'b00000000000000000000000110001001 + Generated name = sgmii_ecp5sll_core_Z1_layer1 +@N: CG179 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1287:54:1287:59|Removing redundant assignment. +@N: CG179 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1293:52:1293:55|Removing redundant assignment. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1350:0:1350:5|Pruning unused register rcpri_mod_ch_st. Make sure that there are no unused intermediate registers. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 2 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 0 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 1 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 2 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 17 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 18 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 19 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 20 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|All reachable assignments to bit 21 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +@N: CG364 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":92:7:92:24|Synthesizing module sgmii_ecp5rsl_core in library work. + + pnum_channels=32'b00000000000000000000000000000001 + pprotocol=24'b010001110100001001000101 + pserdes_mode=72'b010100100101100000100000010000010100111001000100001000000101010001011000 + pport_tx_rdy=56'b01000101010011100100000101000010010011000100010101000100 + pwait_tx_rdy=32'b00000000000000000000101110111000 + pport_rx_rdy=56'b01000101010011100100000101000010010011000100010101000100 + pwait_rx_rdy=32'b00000000000000000000101110111000 + wa_num_cycles=32'b00000000000000000000010000000000 + dac_num_cycles=32'b00000000000000000000000000000011 + lreset_pwidth=32'b00000000000000000000000000000011 + lwait_b4_trst=32'b00000000000010111110101111000010 + lwait_b4_trst_s=32'b00000000000000000000001100001101 + lplol_cnt_width=32'b00000000000000000000000000010100 + lwait_after_plol0=32'b00000000000000000000000000000100 + lwait_b4_rrst=32'b00000000000000101100000000000000 + lrrst_wait_width=32'b00000000000000000000000000010100 + lwait_after_rrst=32'b00000000000011000011010100000000 + lwait_b4_rrst_s=32'b00000000000000000000000111001100 + lrlol_cnt_width=32'b00000000000000000000000000010011 + lwait_after_lols=32'b00000000000000001100010000000000 + lwait_after_lols_s=32'b00000000000000000000000010010110 + llols_cnt_width=32'b00000000000000000000000000010010 + lrdb_max=32'b00000000000000000000000000001111 + ltxr_wait_width=32'b00000000000000000000000000001100 + lrxr_wait_width=32'b00000000000000000000000000001100 + Generated name = sgmii_ecp5rsl_core_Z2_layer1 +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":326:33:326:40|Object rrst_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":327:33:327:43|Removing wire rrst_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":328:33:328:41|Object rrst_wait is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":341:33:341:39|Object rxp_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":342:33:342:39|Object rxp_rst is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":343:33:343:42|Removing wire rxp_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":346:33:346:42|Object rlolsz_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":347:33:347:45|Removing wire rlolsz_cnt_tc, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":350:33:350:43|Removing wire rxp_cnt2_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":351:33:351:47|Object data_loop_b_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":352:33:352:43|Object data_loop_b is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":353:33:353:46|Removing wire data_loop_b_tc, as there is no assignment to it. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":806:3:806:8|Pruning unused register genblk2.rxp_cnt2[2:0]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlol_p3. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlos_p3. Make sure that there are no unused intermediate registers. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":694:3:694:8|Optimizing register bit genblk2.rxs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":461:3:461:8|Optimizing register bit genblk1.txp_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":422:3:422:8|Optimizing register bit genblk1.txs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":422:3:422:8|Pruning register bit 2 of genblk1.txs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":461:3:461:8|Pruning register bit 2 of genblk1.txp_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":694:3:694:8|Pruning register bit 2 of genblk2.rxs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":200:33:200:48|Input port bits 3 to 1 of rui_tx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":204:33:204:51|Input port bits 3 to 1 of rui_rx_serdes_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":205:33:205:48|Input port bits 3 to 1 of rui_rx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":206:33:206:48|Input port bits 3 to 1 of rdi_rx_los_low_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":207:33:207:48|Input port bits 3 to 1 of rdi_rx_cdr_lol_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning register bits 5 to 3 of genblk5.rdiff_comp_unlock[5:2]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning register bits 4 to 3 of genblk5.rdiff_comp_lock[4:2]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rdiff_comp_unlock[2]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rcount_tc[16]. Make sure that there are no unused intermediate registers. +@N: CL201 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1801:0:1801:5|Trying to extract state machine for register sll_state. +Extracted state machine for register sll_state +State machine has 4 reachable states with original encodings of: + 00 + 01 + 10 + 11 + +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 75MB peak: 81MB) + + +Process completed successfully. +# Fri May 10 11:58:56 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode + +======================================================================================= +For a summary of linker messages for components that did not bind, please see log file: +@L: /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.linkerlog +======================================================================================= + + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 11:58:56 2019 + +###########################################################] +@END + +At c_hdl Exit (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 3MB peak: 4MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 11:58:56 2019 + +###########################################################] diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_compiler.srr.db b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_compiler.srr.db new file mode 100644 index 0000000000000000000000000000000000000000..d028ab57b460c029f040b39c37ad880998e9090a GIT binary patch literal 32768 zcmeHQON<*y8MepcdCxe{4Vw@sl3n(}#O`i)du%6xon$9rc4x?L9%Q8}IQ!gNtN~N;!HwJ(0BMnc6+y6jG z{(sPsO`Un~8`E%AI`_>KJdz_}AYmY3AYmY3AYmY3AYmY3AYmY3AYmY3;QyR~AU%5Q z70)z*|*(y%1o_HMIa2T+jIu z*5P&R2Wov4ySiWS>y}}tSa+4Kr>gI)1*TIs^!( z_=GI5gY3*u$PQ=SSA`+sX)Y0$86uwI67d{E#FJbiE-^$r!6jmbR){msC1Qp~h&DzM zUn70BSgNoyHH(TsOifZKyRUc+V)&tk-SELK>==r=>lv!$)Kq<4^@BWG);2Km8y-f% zI!wz2>lmJD@Mk;i4}0CvBe(g@_1dXwQ2^oKB$lG0QK~v@<~PNV zxS#&(jUf=|naf0=IjJoW@fQo=V+Mwf3(&?a$F3EMc~MZeOLD>AvE5b8#|2PC0e-gN z2et6$MX6X7ffy(xarYXAF92nN??>9G@0bnZ020U2^=V6hp9i;}{m+BrK6(RABbVTm zmEkme8cvzRWN!X2IQF?_ZfM4x{_XUUsjbPk6aPQ)|Cxn6691ojcW7@>9&|DTU(h{XSou~sMke|)oPiU0qo^N@-EpZNcS@&9{;AAUsq{{!hvDmOiI za{A2F`N`#pTjSQ)8>8PI`EK^D;h$uFGxW#w-{FD}@6oKEromv9vx&Q?ccwcHJ5U3C zMG_xlrPN)j9K3AmTp+CSir^9i`utX2PjKgK8E zUJGaX2YixGz|oGmvmUH}z#rukaI}Ap5wLZF0^Z=Pm+rM>rf&sX$GODYD`3_?-Y2=l z+iST@|9C&bCEi|(W%|c^j7z-Cj4bO3F7YxmIjo~x;$>!WxJM{n?pC1ps?hzfKqvnH z!IYKCJux#oePQagNqgd}<8O}raP(IrZ)g9J9Ugu%lOMX6ehn_^|7fnulwXar@m`D$ z_^~*k>qS1HM#uViph|o~jSlniKo$9f8towBfhzC`H5yQe2Wo*&sL^pf9;kUfp+<-F zc%Yu)6KXVk5D(N@KA}bf2eCk{e~LooEm+UMf~Y^wB~k_kMEyA~kutC!>d$hCG#Vg? zr=32-B~k{4QvH)$B4uDF)t}}PDFZX9{uGx;d;UMhEV=K1NJsW&J8Jn{Yn z8ox01_0jK-{B>kDduh0q`QFga(|>}CK1@eby#y-0*<`*2Oew*Jlqxxwdu{*=lM6_B z&vbm%EylC~OkLm-p&1`S{31n2jX{>%_{u^FbV$zo(BZbL>UJQlNU%;LCQY8ZNV}tP zh?~KVwDu;Y_%mY^m14CB4=ChPXS3Xv0sGEsTA-<>iH1+MC3X^L zknK%I(7h8;y+FmkLc|w~#TXZTMH71zVH+Y9U#iN*-7BjkIY_tM2t=)6-GrT#kd>nm zfZXlPiMWXSI%47bJN^FDez4^;^25gnT#WvJ?Ht9s3Y_=&0dD@D442VyE=BB(r? zr&&i4%}`42#ey_QO4|7PqTDCE>+k{}?qALJyeX*yd> zkzW}Ua)lW3lAt^Qd4uX4GSU+FOx4-x{PyQ)uaIS5+vO0sTvf#T)%Fm%kG&dZ4t{HS zP->?UDM^5c)P0*efDg7+_G-U-WC@VpynCLionc70Q~|YD$+;8y?jA5v*PIkgU~K!u z)oaDRA8Cl}F+yr~I7p)VkC8`S9tpygwv<)s19B0+EpB5Tq< zX?eW0rFmzO(sGbABC*15UWE|SrsYbQ3Ovk^*vb@6(u{`=1*t17Qf?6gLPNS^`vJ+K zDCE&~2W?>Nw(LprvW{UU#&yk|@H$Te8x%o)I@N`IbJ*L&=fMPljC0fg4L{IrFx>g< zfC%VnE)OPvPN1zw10mq@Ug&Ml?jksJvF2?GfO2?GfO2?GfO z2?GfO2?GfO2?GfO2?P6JpecSHmUOI;B^_}8I+5ADlUNoY2OQjI019RIy0=5`G2kG) j9e5h7c!e+z+!MrtTiO{mrqfA#0b6nx3Ho;Xwh{jWXc+k{ literal 0 HcmV?d00001 diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_compiler.srr.rptmap b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_compiler.srr.rptmap new file mode 100644 index 0000000..14937c8 --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_compiler.srr.rptmap @@ -0,0 +1 @@ +./synlog/sgmii_ecp5_compiler.srr,sgmii_ecp5_compiler.srr,Compile Log diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.srr b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.srr new file mode 100644 index 0000000..bc02d12 --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.srr @@ -0,0 +1,682 @@ +# Fri May 10 11:58:58 2019 + +Synopsys Lattice Technology Mapper, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 100MB) + +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 113MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 115MB) + + + +Starting Optimization and Mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 144MB) + + +Available hyper_sources - for debug and ip models + None Found + + +Finished RTL optimizations (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + +Encoding state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) +original code -> new code + 00 -> 00 + 01 -> 01 + 10 -> 10 + 11 -> 11 +@N: MO225 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1801:0:1801:5|There are no possible illegal states for state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)); safe FSM implementation is not required. +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1350:0:1350:5|Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance rhb_wait_cnt[7:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1304:0:1304:5|Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance rcount[15:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1759:0:1759:5|Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance pcount[21:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":412:3:412:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk1\.plol_cnt[19:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":909:3:909:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.genblk3\.rxr_wt_cnt[11:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":527:3:527:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk1\.genblk2\.txr_wt_cnt[11:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":778:3:778:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.rlols0_cnt[17:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":680:3:680:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.rlol1_cnt[18:0] + +Starting factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + + +Finished factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 144MB) + + +Starting gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + + +Finished gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + + +Finished generic timing optimizations - Pass 1 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 145MB) + + +Starting Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 145MB) + + +Finished Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 145MB) + + +Finished generic timing optimizations - Pass 2 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 145MB) + + +Finished preparing to map (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 145MB peak: 145MB) + +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). + +Finished technology mapping (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 147MB peak: 148MB) + +Pass CPU time Worst Slack Luts / Registers +------------------------------------------------------------ + 1 0h:00m:01s 5.36ns 154 / 221 +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). + +Finished technology timing optimizations and critical path resynthesis (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 147MB peak: 148MB) + +@N: FX164 |The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute. + +Finished restoring hierarchy (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 147MB peak: 148MB) + + + +@S |Clock Optimization Summary + + +#### START OF CLOCK OPTIMIZATION REPORT #####[ + +3 non-gated/non-generated clock tree(s) driving 221 clock pin(s) of sequential element(s) +0 gated/generated clock tree(s) driving 0 clock pin(s) of sequential element(s) +0 instances converted, 0 sequential instances remain driven by gated/generated clocks + +============================================= Non-Gated/Non-Generated Clocks ============================================= +Clock Tree ID Driving Element Drive Element Type Fanout Sample Instance +-------------------------------------------------------------------------------------------------------------------------- +@K:CKID0001 pll_refclki port 91 rsl_inst.genblk1\.genblk2\.mfor\[0\]\.txpr_appd[0] +@K:CKID0002 rxrefclk port 77 rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] +@K:CKID0003 DCU0_inst DCUA 53 sll_inst.pcount[21] +========================================================================================================================== + + +##### END OF CLOCK OPTIMIZATION REPORT ######] + + +Start Writing Netlists (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 111MB peak: 148MB) + +Writing Analyst data base /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_m.srm + +Finished Writing Netlist Databases (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 146MB peak: 148MB) + +Writing EDIF Netlist and constraint files +@N: FX1056 |Writing EDF file: /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.edn +M-2017.03L-SP1-1 +@N: BW106 |Synplicity Constraint File capacitance units using default value of 1pF + +Finished Writing EDIF Netlist and constraint files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 151MB peak: 153MB) + +Writing Verilog Simulation files + +Finished Writing Verilog Simulation files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 151MB peak: 153MB) + +Writing VHDL Simulation files + +Finished Writing VHDL Simulation files (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB) + + +Start final timing analysis (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB) + +@W: MT246 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5.vhd":162:4:162:12|Blackbox DCUA is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) +@W: MT420 |Found inferred clock sgmii_ecp5|rxrefclk with period 10.00ns. Please declare a user-defined clock on object "p:rxrefclk" +@W: MT420 |Found inferred clock sgmii_ecp5|pll_refclki with period 10.00ns. Please declare a user-defined clock on object "p:pll_refclki" +@W: MT420 |Found inferred clock sgmii_ecp5|tx_pclk_inferred_clock with period 10.00ns. Please declare a user-defined clock on object "n:tx_pclk" + + +##### START OF TIMING REPORT #####[ +# Timing Report written on Fri May 10 11:59:02 2019 +# + + +Top view: sgmii_ecp5 +Requested Frequency: 100.0 MHz +Wire load mode: top +Paths requested: 5 +Constraint File(s): /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5.fdc + +@N: MT320 |This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. + +@N: MT322 |Clock constraints include only register-to-register paths associated with each individual clock. + + + +Performance Summary +******************* + + +Worst slack in design: 4.079 + + Requested Estimated Requested Estimated Clock Clock +Starting Clock Frequency Frequency Period Period Slack Type Group +---------------------------------------------------------------------------------------------------------------------------------------- +sgmii_ecp5|pll_refclki 100.0 MHz 168.9 MHz 10.000 5.921 4.079 inferred Inferred_clkgroup_0 +sgmii_ecp5|rxrefclk 100.0 MHz 170.5 MHz 10.000 5.864 4.136 inferred Inferred_clkgroup_1 +sgmii_ecp5|tx_pclk_inferred_clock 100.0 MHz 237.5 MHz 10.000 4.211 5.789 inferred Inferred_clkgroup_2 +System 100.0 MHz 840.7 MHz 10.000 1.190 8.810 system system_clkgroup +======================================================================================================================================== + + + + + +Clock Relationships +******************* + +Clocks | rise to rise | fall to fall | rise to fall | fall to rise +------------------------------------------------------------------------------------------------------------------------------------------------------------ +Starting Ending | constraint slack | constraint slack | constraint slack | constraint slack +------------------------------------------------------------------------------------------------------------------------------------------------------------ +System sgmii_ecp5|rxrefclk | 10.000 8.811 | No paths - | No paths - | No paths - +sgmii_ecp5|pll_refclki System | 10.000 8.253 | No paths - | No paths - | No paths - +sgmii_ecp5|pll_refclki sgmii_ecp5|pll_refclki | 10.000 4.079 | No paths - | No paths - | No paths - +sgmii_ecp5|pll_refclki sgmii_ecp5|tx_pclk_inferred_clock | Diff grp - | No paths - | No paths - | No paths - +sgmii_ecp5|rxrefclk System | 10.000 8.184 | No paths - | No paths - | No paths - +sgmii_ecp5|rxrefclk sgmii_ecp5|rxrefclk | 10.000 4.136 | No paths - | No paths - | No paths - +sgmii_ecp5|tx_pclk_inferred_clock sgmii_ecp5|pll_refclki | Diff grp - | No paths - | No paths - | No paths - +sgmii_ecp5|tx_pclk_inferred_clock sgmii_ecp5|tx_pclk_inferred_clock | 10.000 5.789 | No paths - | No paths - | No paths - +============================================================================================================================================================ + Note: 'No paths' indicates there are no paths in the design for that pair of clock edges. + 'Diff grp' indicates that paths exist but the starting clock and ending clock are in different clock groups. + + + +Interface Information +********************* + +No IO constraint found + + + +==================================== +Detailed Report for Clock: sgmii_ecp5|pll_refclki +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +-------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[2] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[2] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[3] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[3] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[17] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[17] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[19] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[19] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[1] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[1] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[4] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[4] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[5] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[5] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[6] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[6] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[7] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[7] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[8] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[8] 0.907 4.684 +==================================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +----------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[19] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[19] 9.946 4.079 +rsl_inst.genblk1\.plol_cnt[17] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[17] 9.946 4.139 +rsl_inst.genblk1\.plol_cnt[18] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[18] 9.946 4.139 +rsl_inst.genblk1\.plol_cnt[15] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[15] 9.946 4.200 +rsl_inst.genblk1\.plol_cnt[16] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[16] 9.946 4.200 +rsl_inst.genblk1\.plol_cnt[13] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[13] 9.946 4.261 +rsl_inst.genblk1\.plol_cnt[14] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[14] 9.946 4.261 +rsl_inst.genblk1\.plol_cnt[11] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[11] 9.946 4.322 +rsl_inst.genblk1\.plol_cnt[12] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[12] 9.946 4.322 +rsl_inst.genblk1\.plol_cnt[9] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[9] 9.946 4.383 +======================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 5.867 + - Clock delay at starting point: 0.000 (ideal) + = Slack (critical) : 4.079 + + Number of logic level(s): 15 + Starting point: rsl_inst.genblk1\.plol_cnt[2] / Q + Ending point: rsl_inst.genblk1\.plol_cnt[19] / D + The start point is clocked by sgmii_ecp5|pll_refclki [rising] on pin CK + The end point is clocked by sgmii_ecp5|pll_refclki [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[2] FD1S3DX Q Out 0.907 0.907 - +plol_cnt[2] Net - - - - 2 +rsl_inst.genblk1\.un1_plol_cnt_tc_10 ORCALUT4 A In 0.000 0.907 - +rsl_inst.genblk1\.un1_plol_cnt_tc_10 ORCALUT4 Z Out 0.606 1.513 - +un1_plol_cnt_tc_10 Net - - - - 1 +rsl_inst.genblk1\.un1_plol_cnt_tc_14 ORCALUT4 D In 0.000 1.513 - +rsl_inst.genblk1\.un1_plol_cnt_tc_14 ORCALUT4 Z Out 0.606 2.119 - +un1_plol_cnt_tc_14 Net - - - - 1 +rsl_inst.genblk1\.un1_plol_cnt_tc ORCALUT4 D In 0.000 2.119 - +rsl_inst.genblk1\.un1_plol_cnt_tc ORCALUT4 Z Out 0.762 2.881 - +un1_plol_cnt_tc Net - - - - 5 +rsl_inst.genblk1\.plol_cnt11_i ORCALUT4 B In 0.000 2.881 - +rsl_inst.genblk1\.plol_cnt11_i ORCALUT4 Z Out 0.840 3.721 - +plol_cnt Net - - - - 21 +rsl_inst.genblk1\.plol_cnt_cry_0[0] CCU2C A1 In 0.000 3.721 - +rsl_inst.genblk1\.plol_cnt_cry_0[0] CCU2C COUT Out 0.900 4.621 - +plol_cnt_cry[0] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[1] CCU2C CIN In 0.000 4.621 - +rsl_inst.genblk1\.plol_cnt_cry_0[1] CCU2C COUT Out 0.061 4.682 - +plol_cnt_cry[2] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[3] CCU2C CIN In 0.000 4.682 - +rsl_inst.genblk1\.plol_cnt_cry_0[3] CCU2C COUT Out 0.061 4.743 - +plol_cnt_cry[4] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[5] CCU2C CIN In 0.000 4.743 - +rsl_inst.genblk1\.plol_cnt_cry_0[5] CCU2C COUT Out 0.061 4.804 - +plol_cnt_cry[6] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[7] CCU2C CIN In 0.000 4.804 - +rsl_inst.genblk1\.plol_cnt_cry_0[7] CCU2C COUT Out 0.061 4.865 - +plol_cnt_cry[8] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[9] CCU2C CIN In 0.000 4.865 - +rsl_inst.genblk1\.plol_cnt_cry_0[9] CCU2C COUT Out 0.061 4.926 - +plol_cnt_cry[10] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[11] CCU2C CIN In 0.000 4.926 - +rsl_inst.genblk1\.plol_cnt_cry_0[11] CCU2C COUT Out 0.061 4.987 - +plol_cnt_cry[12] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[13] CCU2C CIN In 0.000 4.987 - +rsl_inst.genblk1\.plol_cnt_cry_0[13] CCU2C COUT Out 0.061 5.048 - +plol_cnt_cry[14] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[15] CCU2C CIN In 0.000 5.048 - +rsl_inst.genblk1\.plol_cnt_cry_0[15] CCU2C COUT Out 0.061 5.109 - +plol_cnt_cry[16] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[17] CCU2C CIN In 0.000 5.109 - +rsl_inst.genblk1\.plol_cnt_cry_0[17] CCU2C COUT Out 0.061 5.170 - +plol_cnt_cry[18] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_s_0[19] CCU2C CIN In 0.000 5.170 - +rsl_inst.genblk1\.plol_cnt_s_0[19] CCU2C S0 Out 0.698 5.867 - +plol_cnt_s[19] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt[19] FD1S3DX D In 0.000 5.867 - +======================================================================================================= + + + + +==================================== +Detailed Report for Clock: sgmii_ecp5|rxrefclk +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rlol1_cnt[7] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[7] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[8] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[8] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[9] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[9] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[10] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[10] 0.907 4.136 +rsl_inst.genblk2\.rlols0_cnt[1] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[1] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[2] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[2] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[3] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[3] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[4] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[4] 0.907 4.170 +rsl_inst.genblk2\.rxs_rst sgmii_ecp5|rxrefclk FD1P3DX Q rxs_rst 1.015 4.700 +rsl_inst.genblk2\.rlol1_cnt[0] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[0] 0.907 4.742 +=================================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------------------------------------------ +rsl_inst.genblk2\.rlol1_cnt[17] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[17] 9.946 4.136 +rsl_inst.genblk2\.rlol1_cnt[18] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[18] 9.946 4.136 +rsl_inst.genblk2\.rlols0_cnt[17] sgmii_ecp5|rxrefclk FD1P3DX D rlols0_cnt_s[17] 9.946 4.170 +rsl_inst.genblk2\.rlol1_cnt[15] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[15] 9.946 4.197 +rsl_inst.genblk2\.rlol1_cnt[16] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[16] 9.946 4.197 +rsl_inst.genblk2\.rlols0_cnt[15] sgmii_ecp5|rxrefclk FD1P3DX D rlols0_cnt_s[15] 9.946 4.231 +rsl_inst.genblk2\.rlols0_cnt[16] sgmii_ecp5|rxrefclk FD1P3DX D rlols0_cnt_s[16] 9.946 4.231 +rsl_inst.genblk2\.rlol1_cnt[13] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[13] 9.946 4.258 +rsl_inst.genblk2\.rlol1_cnt[14] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[14] 9.946 4.258 +rsl_inst.genblk2\.rlols0_cnt[13] sgmii_ecp5|rxrefclk FD1P3DX D rlols0_cnt_s[13] 9.946 4.292 +======================================================================================================================== + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 5.809 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : 4.136 + + Number of logic level(s): 14 + Starting point: rsl_inst.genblk2\.rlol1_cnt[7] / Q + Ending point: rsl_inst.genblk2\.rlol1_cnt[18] / D + The start point is clocked by sgmii_ecp5|rxrefclk [rising] on pin CK + The end point is clocked by sgmii_ecp5|rxrefclk [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +-------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rlol1_cnt[7] FD1P3DX Q Out 0.907 0.907 - +rlol1_cnt[7] Net - - - - 2 +rsl_inst.rlol1_cnt_tc_1_10 ORCALUT4 A In 0.000 0.907 - +rsl_inst.rlol1_cnt_tc_1_10 ORCALUT4 Z Out 0.606 1.513 - +rlol1_cnt_tc_1_10 Net - - - - 1 +rsl_inst.rlol1_cnt_tc_1_14 ORCALUT4 D In 0.000 1.513 - +rsl_inst.rlol1_cnt_tc_1_14 ORCALUT4 Z Out 0.606 2.119 - +rlol1_cnt_tc_1_14 Net - - - - 1 +rsl_inst.rlol1_cnt_tc_1 ORCALUT4 D In 0.000 2.119 - +rsl_inst.rlol1_cnt_tc_1 ORCALUT4 Z Out 0.768 2.887 - +rlol1_cnt_tc_1 Net - - - - 6 +rsl_inst.genblk2\.rlos_db_p1_RNIS0OP ORCALUT4 A In 0.000 2.887 - +rsl_inst.genblk2\.rlos_db_p1_RNIS0OP ORCALUT4 Z Out 0.837 3.724 - +rlol1_cnt Net - - - - 20 +rsl_inst.genblk2\.rlol1_cnt_cry_0[0] CCU2C A1 In 0.000 3.724 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[0] CCU2C COUT Out 0.900 4.624 - +rlol1_cnt_cry[0] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[1] CCU2C CIN In 0.000 4.624 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[1] CCU2C COUT Out 0.061 4.685 - +rlol1_cnt_cry[2] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[3] CCU2C CIN In 0.000 4.685 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[3] CCU2C COUT Out 0.061 4.746 - +rlol1_cnt_cry[4] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[5] CCU2C CIN In 0.000 4.746 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[5] CCU2C COUT Out 0.061 4.807 - +rlol1_cnt_cry[6] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[7] CCU2C CIN In 0.000 4.807 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[7] CCU2C COUT Out 0.061 4.868 - +rlol1_cnt_cry[8] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[9] CCU2C CIN In 0.000 4.868 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[9] CCU2C COUT Out 0.061 4.929 - +rlol1_cnt_cry[10] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[11] CCU2C CIN In 0.000 4.929 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[11] CCU2C COUT Out 0.061 4.990 - +rlol1_cnt_cry[12] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[13] CCU2C CIN In 0.000 4.990 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[13] CCU2C COUT Out 0.061 5.051 - +rlol1_cnt_cry[14] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[15] CCU2C CIN In 0.000 5.051 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[15] CCU2C COUT Out 0.061 5.112 - +rlol1_cnt_cry[16] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[17] CCU2C CIN In 0.000 5.112 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[17] CCU2C S1 Out 0.698 5.809 - +rlol1_cnt_s[18] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt[18] FD1P3DX D In 0.000 5.809 - +======================================================================================================== + + + + +==================================== +Detailed Report for Clock: sgmii_ecp5|tx_pclk_inferred_clock +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------------------------------------------ +sll_inst.ppul_sync_p1 sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q ppul_sync_p1 1.098 5.789 +sll_inst.ppul_sync_p2 sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q ppul_sync_p2 1.098 5.789 +sll_inst.pcount_diff[0] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_0 0.985 6.147 +sll_inst.pcount[0] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q pcount[0] 0.955 6.178 +sll_inst.pcount_diff[1] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_1 0.955 6.239 +sll_inst.pcount_diff[2] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_2 0.955 6.239 +sll_inst.pcount[1] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q pcount[1] 0.907 6.287 +sll_inst.pcount[2] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q pcount[2] 0.907 6.287 +sll_inst.pcount_diff[3] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_3 0.955 6.300 +sll_inst.pcount_diff[4] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_4 0.955 6.300 +======================================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +----------------------------------------------------------------------------------------------------------------------------------------- +sll_inst.pcount[21] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[21] 9.946 5.789 +sll_inst.pcount[19] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[19] 9.946 5.850 +sll_inst.pcount[20] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[20] 9.946 5.850 +sll_inst.pcount[17] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[17] 9.946 5.911 +sll_inst.pcount[18] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[18] 9.946 5.911 +sll_inst.pcount[15] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[15] 9.946 5.972 +sll_inst.pcount[16] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[16] 9.946 5.972 +sll_inst.pcount[13] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[13] 9.946 6.033 +sll_inst.pcount[14] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[14] 9.946 6.033 +sll_inst.pcount_diff[21] sgmii_ecp5|tx_pclk_inferred_clock FD1P3DX D un1_pcount_diff_1_s_21_0_S0 9.946 6.034 +========================================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 4.157 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : 5.789 + + Number of logic level(s): 13 + Starting point: sll_inst.ppul_sync_p1 / Q + Ending point: sll_inst.pcount[21] / D + The start point is clocked by sgmii_ecp5|tx_pclk_inferred_clock [rising] on pin CK + The end point is clocked by sgmii_ecp5|tx_pclk_inferred_clock [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +-------------------------------------------------------------------------------------------- +sll_inst.ppul_sync_p1 FD1S3DX Q Out 1.098 1.098 - +ppul_sync_p1 Net - - - - 25 +sll_inst.pcount10_0_o3 ORCALUT4 A In 0.000 1.098 - +sll_inst.pcount10_0_o3 ORCALUT4 Z Out 0.851 1.950 - +N_8 Net - - - - 25 +sll_inst.pcount_cry_0[0] CCU2C A1 In 0.000 1.950 - +sll_inst.pcount_cry_0[0] CCU2C COUT Out 0.900 2.850 - +pcount_cry[0] Net - - - - 1 +sll_inst.pcount_cry_0[1] CCU2C CIN In 0.000 2.850 - +sll_inst.pcount_cry_0[1] CCU2C COUT Out 0.061 2.911 - +pcount_cry[2] Net - - - - 1 +sll_inst.pcount_cry_0[3] CCU2C CIN In 0.000 2.911 - +sll_inst.pcount_cry_0[3] CCU2C COUT Out 0.061 2.972 - +pcount_cry[4] Net - - - - 1 +sll_inst.pcount_cry_0[5] CCU2C CIN In 0.000 2.972 - +sll_inst.pcount_cry_0[5] CCU2C COUT Out 0.061 3.033 - +pcount_cry[6] Net - - - - 1 +sll_inst.pcount_cry_0[7] CCU2C CIN In 0.000 3.033 - +sll_inst.pcount_cry_0[7] CCU2C COUT Out 0.061 3.094 - +pcount_cry[8] Net - - - - 1 +sll_inst.pcount_cry_0[9] CCU2C CIN In 0.000 3.094 - +sll_inst.pcount_cry_0[9] CCU2C COUT Out 0.061 3.155 - +pcount_cry[10] Net - - - - 1 +sll_inst.pcount_cry_0[11] CCU2C CIN In 0.000 3.155 - +sll_inst.pcount_cry_0[11] CCU2C COUT Out 0.061 3.216 - +pcount_cry[12] Net - - - - 1 +sll_inst.pcount_cry_0[13] CCU2C CIN In 0.000 3.216 - +sll_inst.pcount_cry_0[13] CCU2C COUT Out 0.061 3.277 - +pcount_cry[14] Net - - - - 1 +sll_inst.pcount_cry_0[15] CCU2C CIN In 0.000 3.277 - +sll_inst.pcount_cry_0[15] CCU2C COUT Out 0.061 3.338 - +pcount_cry[16] Net - - - - 1 +sll_inst.pcount_cry_0[17] CCU2C CIN In 0.000 3.338 - +sll_inst.pcount_cry_0[17] CCU2C COUT Out 0.061 3.399 - +pcount_cry[18] Net - - - - 1 +sll_inst.pcount_cry_0[19] CCU2C CIN In 0.000 3.399 - +sll_inst.pcount_cry_0[19] CCU2C COUT Out 0.061 3.460 - +pcount_cry[20] Net - - - - 1 +sll_inst.pcount_s_0[21] CCU2C CIN In 0.000 3.460 - +sll_inst.pcount_s_0[21] CCU2C S0 Out 0.698 4.157 - +pcount_s[21] Net - - - - 1 +sll_inst.pcount[21] FD1S3DX D In 0.000 4.157 - +============================================================================================ + + + + +==================================== +Detailed Report for Clock: System +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +---------------------------------------------------------------------------------------- +DCU0_inst System DCUA CH0_FFS_RLOL rx_cdr_lol_s 0.000 8.810 +DCU0_inst System DCUA CH0_FFS_RLOS rx_los_low_s 0.000 8.810 +======================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] System FD1P3DX SP un2_rdo_serdes_rst_dual_c_2_i 9.806 8.810 +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] System FD1P3DX D rxpr_appd_RNO[0] 9.946 9.556 +rsl_inst.genblk2\.rlol_p1 System FD1S3DX D rx_cdr_lol_s 9.946 9.946 +rsl_inst.genblk2\.rlos_p1 System FD1S3DX D rx_los_low_s 9.946 9.946 +============================================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.194 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.806 + + - Propagation time: 0.996 + - Clock delay at starting point: 0.000 (ideal) + - Estimated clock delay at start point: -0.000 + = Slack (non-critical) : 8.810 + + Number of logic level(s): 2 + Starting point: DCU0_inst / CH0_FFS_RLOL + Ending point: rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] / SP + The start point is clocked by System [rising] + The end point is clocked by sgmii_ecp5|rxrefclk [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +----------------------------------------------------------------------------------------------------------------------------------- +DCU0_inst DCUA CH0_FFS_RLOL Out 0.000 0.000 - +rx_cdr_lol_s Net - - - - 4 +rsl_inst.un2_rdo_serdes_rst_dual_c_1_1 ORCALUT4 A In 0.000 0.000 - +rsl_inst.un2_rdo_serdes_rst_dual_c_1_1 ORCALUT4 Z Out 0.606 0.606 - +un2_rdo_serdes_rst_dual_c_1_1 Net - - - - 1 +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd_RNO_0[0] ORCALUT4 B In 0.000 0.606 - +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd_RNO_0[0] ORCALUT4 Z Out 0.390 0.996 - +un2_rdo_serdes_rst_dual_c_2_i Net - - - - 1 +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] FD1P3DX SP In 0.000 0.996 - +=================================================================================================================================== + + + +##### END OF TIMING REPORT #####] + +Timing exceptions that could not be applied +None + +Finished final timing analysis (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB) + + +Finished timing report (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB) + +--------------------------------------- +Resource Usage Report +Part: lfe5um_25f-6 + +Register bits: 221 of 24288 (1%) +PIC Latch: 0 +I/O cells: 0 + + +Details: +CCU2C: 113 +DCUA: 1 +FD1P3BX: 20 +FD1P3DX: 92 +FD1S3BX: 12 +FD1S3DX: 97 +GSR: 1 +INV: 3 +ORCALUT4: 153 +PFUMX: 2 +PUR: 1 +VHI: 6 +VLO: 6 +Mapper successful! + +At Mapper Exit (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 35MB peak: 153MB) + +Process took 0h:00m:03s realtime, 0h:00m:03s cputime +# Fri May 10 11:59:02 2019 + +###########################################################] diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.srr.db b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.srr.db new file mode 100644 index 0000000000000000000000000000000000000000..1e1a850b20308c7deb626fa6593c682b7dc66616 GIT binary patch literal 16384 zcmeHNTW=dh6t;6u8z+UPgi=+E@lE2Ne-mr~LMR^#1Sd&qirJ2Q4J zf(Pdb^(P>H0581q#E;;G2Yv<;51_tqX4iJyN-k|}SB*MWyz9NqobNklXY$QC+naZ& zB*^i26-$(fT#7`ak<3B|_jb5v~2u`qswk&Ia09 zUAwb^T4xuijp~?N70hoSm$HMiqvkDVCk`ms%DUJtr6ro$ncAZd6Gna`@0dj zJbpFSAXkQqUm2-f{voGQJ+pDEh#Y9NfRYujN|M;-6tiTR%B19_oUoFTRDBmqlJvRv zEwSJ{5z;J|h;NCcC|4;piRI^#;+UD72r!`Ybb{EdX+r&dg>O5sAfMf-fQi1O9z)VY z0O$a5Ql>%@E`VMn;ri$I)=&itg#ncaVMzGIq7Ef?0^N5B76b_*k?Of72=yEXVJSH+ z)g(!vHgxa3iK~s>MlHl{tjzZewT;>oo+DkaOszzHzF@2@FBekbF1Kpiis04l-7nV7 zt&Q6V`11(|e*$DM*{X1l(GztK1^))#6s~KkgM@EW$1&Ai;jxV+Hhlvv05f$;4h!he z;|GZ|`WNa(Jf3JdyLu@={P-Lp=F;i`@65Tw>sLyzkJp=i=OQ|G?mXOEL{FVNygfzq z-o=Tz#sf7w+`X617y}!k^UJA1rl7XVMXv_ax&>R9bJUa*46M(Mt6aFI<#A#@N}Db| zCfr!46HZ~skDm?OWx`7CL3%&IUC%X4i^)9$CW5cqGtmBp0NsN@qgz^926SpWD0Ctf z!dvQuM`O+6dP-$cCGcRV^a7gJ+HF`ZrBsxcPoGnCIRmZ(Hk z&n93dNcrJem7AXhSwHi~%GJy3+q+Q=dep|CuhwevhT6eu4x2(F|w?Gy|Fe&46Y=GoTsJ3}^=4Wd_7YDw}y1 zQi?m7bh@3*Y*zHDT35@h*-#A2+~al$?4tA*Tjj7&94jjVVIe$=s#GRAq_Tntq-fz` zo7SmagB)&<-)yB&8<(#_ucxuF*VIl0Qmv9!ReFXK-{Vr{UNPiS1)PO8Rkbiw`9eXl z%BOM<3TTn4IZdD<+& za${v3UxbQi$YQsehTO4NQYFl2o)wyn&mUs0a=fZUdUj4(H~Es*`H&jt!~p|oUrh1~ z9W8d6HT{7KpzmMOEGX&;jOvq3t>!umIvu?N1q`=OlggrWHs8krhD5z$Lm72GUC0Jo zBfSPec~J6>(5>|ct14)#6lxbBj6)A2QS+fp9$egvPL-f{6DSDyDn5qt@w$oz24xPC x!cXEjDgYo9nh#(I?PC$V4R%nFUZp2Nb%H<(oA6$#0(^Kmw!+HxI68}${{S!g$ZY@s literal 0 HcmV?d00001 diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.szr b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.szr new file mode 100644 index 0000000000000000000000000000000000000000..014df6dca70413d0a7e7f0e7251573ec450f9331 GIT binary patch literal 13092 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.xck b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.xck new file mode 100644 index 0000000..eb3488c --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_fpga_mapper.xck @@ -0,0 +1,3 @@ +CKID0001:@|S:pll_refclki@|E:rsl_inst.genblk1\.genblk2\.mfor\[0\]\.txpr_appd[0]@|F:@syn_sample_clock_path==CKID0001@|M:ClockId0001 +CKID0002:@|S:rxrefclk@|E:rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0]@|F:@syn_sample_clock_path==CKID0002@|M:ClockId0002 +CKID0003:@|S:DCU0_inst@|E:sll_inst.pcount[21]@|F:@syn_sample_clock_path==CKID0003@|M:ClockId0003 diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_multi_srs_gen.srr b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_multi_srs_gen.srr new file mode 100644 index 0000000..be17fbb --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_multi_srs_gen.srr @@ -0,0 +1,11 @@ +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 11:58:57 2019 + +###########################################################] diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_multi_srs_gen.srr.db b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_multi_srs_gen.srr.db new file mode 100644 index 0000000000000000000000000000000000000000..029fa7a6cf9014af50ee9d4aa843536a1f7b5c42 GIT binary patch literal 8192 zcmeI#JqyA>3DEQgKL*xDXO@ z%d=&(imfwzIG4G0Jf%J073BwWN1`{~f``Krs^Nta{J wY>_tId!-qqw)j}S$WL3iQGJ`s(T{)t1Rwwb2tWV=5P$##AOHafK;VZ3UKAiP82|tP literal 0 HcmV?d00001 diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_premap.srr b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_premap.srr new file mode 100644 index 0000000..f8ac3ec --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_premap.srr @@ -0,0 +1,86 @@ +# Fri May 10 11:58:57 2019 + +Synopsys Lattice Technology Pre-mapping, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 100MB) + +Reading constraint file: /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5.fdc +@L: /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5_scck.rpt +Printing clock summary report in "/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5_scck.rpt" file +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 102MB peak: 104MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 102MB peak: 104MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 114MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 116MB) + +@N: BN362 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1408:0:1408:5|Removing sequential instance pcpri_mod_ch (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:PrimLib.dffre(prim) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1244:27:1244:40|Removing instance div2_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_3(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1252:27:1252:41|Removing instance div11_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_2(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1236:27:1236:40|Removing instance gear_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_4(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1268:27:1268:44|Removing instance pcie_mod_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_0(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1260:27:1260:44|Removing instance cpri_mod_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_1(verilog) because it does not drive other instances. +ICG Latch Removal Summary: +Number of ICG latches removed: 0 +Number of ICG latches not removed: 0 +syn_allowed_resources : blockrams=56 set on top level netlist sgmii_ecp5 + +Finished netlist restructuring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + + + +Clock Summary +****************** + + Start Requested Requested Clock Clock Clock +Level Clock Frequency Period Type Group Load +---------------------------------------------------------------------------------------------------------------------- +0 - System 100.0 MHz 10.000 system system_clkgroup 0 + +0 - sgmii_ecp5|pll_refclki 100.0 MHz 10.000 inferred Inferred_clkgroup_0 93 + +0 - sgmii_ecp5|rxrefclk 100.0 MHz 10.000 inferred Inferred_clkgroup_1 77 + +0 - sgmii_ecp5|tx_pclk_inferred_clock 100.0 MHz 10.000 inferred Inferred_clkgroup_2 53 +====================================================================================================================== + +@W: MT529 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Found inferred clock sgmii_ecp5|pll_refclki which controls 93 sequential elements including sll_inst.phb_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":567:3:567:8|Found inferred clock sgmii_ecp5|rxrefclk which controls 77 sequential elements including rsl_inst.genblk2\.rlos_db_p1. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Found inferred clock sgmii_ecp5|tx_pclk_inferred_clock which controls 53 sequential elements including sll_inst.rtc_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. + +Finished Pre Mapping Phase. + +Starting constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + +Encoding state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) +original code -> new code + 00 -> 00 + 01 -> 01 + 10 -> 10 + 11 -> 11 +@N: MO225 :"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1801:0:1801:5|There are no possible illegal states for state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)); safe FSM implementation is not required. + +Finished constraint checker preprocessing (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + +None +None + +Finished constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + +Pre-mapping successful! + +At Mapper Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 58MB peak: 144MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime +# Fri May 10 11:58:58 2019 + +###########################################################] diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_premap.srr.db b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_premap.srr.db new file mode 100644 index 0000000000000000000000000000000000000000..150e92a9a07a17e70368b2afae055cf8c09b5c17 GIT binary patch literal 8192 zcmeI0&2HO95XU7uv7N+@a|w*12)a;_zyfMXq&_UmmnMdNvisqvDBLt4R?8u^70G3H z*RoyoVl_aEK0wh&>7kcCM6W&e9eV35DNAk>z=;hSEkZ)laLMI<{ATw*Lp}X;mun!N zkRjEiUbt5%77HH|QYaK=#$PnaQN-UH<8xz7`J!W{u=dvvOIWM8{9^$>`H>UI3FHKF z0y%-4Ku#bhkQ2xW* z$=TIa?vf#utWV_!B;e6tS{hfGUKsG`T;&*_=m*M!5YW?2e0waD}7MM8emHT!LG{0u+Az z{=0YX7(y?$-<{p-Htmh<2yL|6hLADM9dU>v!XpnPj)ky5umPFQ@LPTC#4H#%XEmI( z#!;WMK4Bu#QUr=L>qOynaEctcLONT8&9dOo<&mEd<&n}AshOirB8ClO$)%b)v0WkE zK2k}W?o-2us2CXcIF3p4&@_RaDJ>~V97%f*=?RG?46#>p6Ui%sS9runzq$n7>O%xF zDI{$xLUFR@IqI6~5S$q2P^O6siu)0XK_-8kMhq(Ch{_0iHolp^jlTKp#lx(9(`>DG z>K*gjzQ{B3Sb~SH8Pk~fVtxGrUq}_C^pQ?47}#G{WFVB|_MF)I?|b6ztz?%}v-U)? zJzjU0#3%%*H~7EZvGLklBkuS9hg)OxXaODad_?chKKaP9G8A^ZRqNR69n088V;@2> zG`e7fgyMcBESB5}g*%0KIpsDAqEBK-H9wVnqgXZNO!b}gfYC#R!34EKU=%Tuj=^jQ zL}-jUlVPbdeIGrVzcx_qF{t({LB)(i#-M7GKzIpIrMU#uLG~-E-bz8CZPZ>~Q9e+a z;c9AJ1=9OB6G+dpht#xFNN5|@%aB|?w5$v%*;k=dx^Z1gsnJL&p?%d-LP~aqkm^@~ z^l%m-9gLV+O7)hVUE(Vzf^D9fIxZ(D8TCLVrk}03dJ0UV}`EG@*Ziz57iDpTGc0`;c{c9dSc9Oi* z!CTHGF-`MnMXVA=41$pZQ`+Rchj=`IN_qTpP%h4`ENz;u?M8e5Ffw_md7#x;>tO`K Js0U|p=5GSx2)Y0O literal 0 HcmV?d00001 diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_premap.szr b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_premap.szr new file mode 100644 index 0000000000000000000000000000000000000000..fcf97439cde672b6601cae30ba9506f16d6da4cb GIT binary patch literal 3835 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/syntax_constraint_check.rpt.rptmap b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/syntax_constraint_check.rpt.rptmap new file mode 100644 index 0000000..fe7eb22 --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synlog/syntax_constraint_check.rpt.rptmap @@ -0,0 +1 @@ +./sgmii_ecp5_scck.rpt,syntax_constraint_check.rpt,Syntax Constraint Check Report diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/syntmp/closed.png b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/syntmp/closed.png new file mode 100644 index 0000000000000000000000000000000000000000..0d78634f322a904e7bd0c9466498c0a42777589f GIT binary patch literal 3672 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 + + + + + + + + + + + + + + + + diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/syntmp/sgmii_ecp5.plg b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/syntmp/sgmii_ecp5.plg new file mode 100644 index 0000000..384936b --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/syntmp/sgmii_ecp5.plg @@ -0,0 +1,28 @@ +@P: Worst Slack : 4.079 +@P: sgmii_ecp5|pll_refclki - Estimated Frequency : 168.9 MHz +@P: sgmii_ecp5|pll_refclki - Requested Frequency : 100.0 MHz +@P: sgmii_ecp5|pll_refclki - Estimated Period : 5.921 +@P: sgmii_ecp5|pll_refclki - Requested Period : 10.000 +@P: sgmii_ecp5|pll_refclki - Slack : 4.079 +@P: sgmii_ecp5|rxrefclk - Estimated Frequency : 170.5 MHz +@P: sgmii_ecp5|rxrefclk - Requested Frequency : 100.0 MHz +@P: sgmii_ecp5|rxrefclk - Estimated Period : 5.864 +@P: sgmii_ecp5|rxrefclk - Requested Period : 10.000 +@P: sgmii_ecp5|rxrefclk - Slack : 4.136 +@P: sgmii_ecp5|tx_pclk_inferred_clock - Estimated Frequency : 237.5 MHz +@P: sgmii_ecp5|tx_pclk_inferred_clock - Requested Frequency : 100.0 MHz +@P: sgmii_ecp5|tx_pclk_inferred_clock - Estimated Period : 4.211 +@P: sgmii_ecp5|tx_pclk_inferred_clock - Requested Period : 10.000 +@P: sgmii_ecp5|tx_pclk_inferred_clock - Slack : 5.789 +@P: System - Estimated Frequency : 840.7 MHz +@P: System - Requested Frequency : 100.0 MHz +@P: System - Estimated Period : 1.190 +@P: System - Requested Period : 10.000 +@P: System - Slack : 8.810 +@P: Total Area : 156.0 +@P: Total Area : 0.0 +@P: Total Area : 0.0 +@P: Total Area : 0.0 +@P: Total Area : 0.0 +@P: Total Area : 0.0 +@P: CPU Time : 0h:00m:03s diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/syntmp/sgmii_ecp5_srr.htm b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/syntmp/sgmii_ecp5_srr.htm new file mode 100644 index 0000000..e9ac698 --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/syntmp/sgmii_ecp5_srr.htm @@ -0,0 +1,1172 @@ +

    +
    +#Build: Synplify Pro (R) M-2017.03L-SP1-1, Build 086R, Aug  4 2017
    +#install: /home/soft/lattice/diamond/3.10_x64/synpbase
    +#OS: Linux 
    +#Hostname: lxhadeb07
    +
    +# Fri May 10 11:58:54 2019
    +
    +#Implementation: syn_results
    +
    +Synopsys HDL Compiler, version comp2017q2p1, Build 190R, built Aug  4 2017
    +@N: :  | Running in 64-bit mode 
    +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited.
    +
    +Synopsys VHDL Compiler, version comp2017q2p1, Build 190R, built Aug  4 2017
    +@N: :  | Running in 64-bit mode 
    +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited.
    +
    +Running on host :lxhadeb07
    +@N:CD720 : std.vhd(123) | Setting time resolution to ps
    +@N: : sgmii_ecp5.vhd(30) | Top entity is set to sgmii_ecp5.
    +VHDL syntax check successful!
    +
    +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB)
    +
    +
    +Process completed successfully.
    +# Fri May 10 11:58:55 2019
    +
    +###########################################################]
    +Synopsys Verilog Compiler, version comp2017q2p1, Build 190R, built Aug  4 2017
    +@N: :  | Running in 64-bit mode 
    +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited.
    +
    +Running on host :lxhadeb07
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps)
    +@I::"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v" (library work)
    +Verilog syntax check successful!
    +
    +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB)
    +
    +
    +Process completed successfully.
    +# Fri May 10 11:58:55 2019
    +
    +###########################################################]
    +Running on host :lxhadeb07
    +@N:CD720 : std.vhd(123) | Setting time resolution to ps
    +@N: : sgmii_ecp5.vhd(30) | Top entity is set to sgmii_ecp5.
    +VHDL syntax check successful!
    +@N:CD630 : sgmii_ecp5.vhd(30) | Synthesizing work.sgmii_ecp5.v1.
    +Post processing for work.sgmii_ecp5.v1
    +
    +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 74MB peak: 76MB)
    +
    +
    +Process completed successfully.
    +# Fri May 10 11:58:55 2019
    +
    +###########################################################]
    +Running on host :lxhadeb07
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps)
    +@I::"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v" (library work)
    +Verilog syntax check successful!
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +@N:CG364 : sgmii_ecp5_softlogic.v(1968) | Synthesizing module sync in library work.
    +
    +	PDATA_RST_VAL=32'b00000000000000000000000000000000
    +   Generated name = sync_0s
    +@N:CG364 : sgmii_ecp5_softlogic.v(1051) | Synthesizing module sgmii_ecp5sll_core in library work.
    +
    +	PPROTOCOL=24'b010001110100001001000101
    +	PLOL_SETTING=32'b00000000000000000000000000000000
    +	PDYN_RATE_CTRL=64'b0100010001001001010100110100000101000010010011000100010101000100
    +	PPCIE_MAX_RATE=24'b001100100010111000110101
    +	PDIFF_VAL_LOCK=32'b00000000000000000000000000010011
    +	PDIFF_VAL_UNLOCK=32'b00000000000000000000000000100111
    +	PPCLK_TC=32'b00000000000000010000000000000000
    +	PDIFF_DIV11_VAL_LOCK=32'b00000000000000000000000000000000
    +	PDIFF_DIV11_VAL_UNLOCK=32'b00000000000000000000000000000000
    +	PPCLK_DIV11_TC=32'b00000000000000000000000000000000
    +	LPLL_LOSS_ST=2'b00
    +	LPLL_PRELOSS_ST=2'b01
    +	LPLL_PRELOCK_ST=2'b10
    +	LPLL_LOCK_ST=2'b11
    +	LRCLK_TC=16'b1111111111111111
    +	LRCLK_TC_PUL_WIDTH=16'b0000000000110010
    +	LHB_WAIT_CNT=8'b11111111
    +	LPCLK_TC_0=32'b00000000000000001000000000000000
    +	LPCLK_TC_1=32'b00000000000000010000000000000000
    +	LPCLK_TC_2=32'b00000000000000100000000000000000
    +	LPCLK_TC_3=32'b00000000000000101000000000000000
    +	LPCLK_TC_4=32'b00000000000000010000000000000000
    +	LPDIFF_LOCK_00=32'b00000000000000000000000000001001
    +	LPDIFF_LOCK_10=32'b00000000000000000000000000010011
    +	LPDIFF_LOCK_20=32'b00000000000000000000000000100111
    +	LPDIFF_LOCK_30=32'b00000000000000000000000000110001
    +	LPDIFF_LOCK_40=32'b00000000000000000000000000010011
    +	LPDIFF_LOCK_01=32'b00000000000000000000000000001001
    +	LPDIFF_LOCK_11=32'b00000000000000000000000000010011
    +	LPDIFF_LOCK_21=32'b00000000000000000000000000100111
    +	LPDIFF_LOCK_31=32'b00000000000000000000000000110001
    +	LPDIFF_LOCK_41=32'b00000000000000000000000000010011
    +	LPDIFF_LOCK_02=32'b00000000000000000000000000110001
    +	LPDIFF_LOCK_12=32'b00000000000000000000000001100010
    +	LPDIFF_LOCK_22=32'b00000000000000000000000011000100
    +	LPDIFF_LOCK_32=32'b00000000000000000000000011110101
    +	LPDIFF_LOCK_42=32'b00000000000000000000000001100010
    +	LPDIFF_LOCK_03=32'b00000000000000000000000010000011
    +	LPDIFF_LOCK_13=32'b00000000000000000000000100000110
    +	LPDIFF_LOCK_23=32'b00000000000000000000001000001100
    +	LPDIFF_LOCK_33=32'b00000000000000000000001010001111
    +	LPDIFF_LOCK_43=32'b00000000000000000000000100000110
    +	LPDIFF_UNLOCK_00=32'b00000000000000000000000000010011
    +	LPDIFF_UNLOCK_10=32'b00000000000000000000000000100111
    +	LPDIFF_UNLOCK_20=32'b00000000000000000000000001001110
    +	LPDIFF_UNLOCK_30=32'b00000000000000000000000001100010
    +	LPDIFF_UNLOCK_40=32'b00000000000000000000000000100111
    +	LPDIFF_UNLOCK_01=32'b00000000000000000000000001000001
    +	LPDIFF_UNLOCK_11=32'b00000000000000000000000010000011
    +	LPDIFF_UNLOCK_21=32'b00000000000000000000000100000110
    +	LPDIFF_UNLOCK_31=32'b00000000000000000000000101000111
    +	LPDIFF_UNLOCK_41=32'b00000000000000000000000010000011
    +	LPDIFF_UNLOCK_02=32'b00000000000000000000000001001000
    +	LPDIFF_UNLOCK_12=32'b00000000000000000000000010010000
    +	LPDIFF_UNLOCK_22=32'b00000000000000000000000100100000
    +	LPDIFF_UNLOCK_32=32'b00000000000000000000000101101000
    +	LPDIFF_UNLOCK_42=32'b00000000000000000000000010010000
    +	LPDIFF_UNLOCK_03=32'b00000000000000000000000011000100
    +	LPDIFF_UNLOCK_13=32'b00000000000000000000000110001001
    +	LPDIFF_UNLOCK_23=32'b00000000000000000000001100010010
    +	LPDIFF_UNLOCK_33=32'b00000000000000000000001111010111
    +	LPDIFF_UNLOCK_43=32'b00000000000000000000000110001001
    +   Generated name = sgmii_ecp5sll_core_Z1_layer1
    +@N:CG179 : sgmii_ecp5_softlogic.v(1287) | Removing redundant assignment.
    +@N:CG179 : sgmii_ecp5_softlogic.v(1293) | Removing redundant assignment.
    +@W:CL169 : sgmii_ecp5_softlogic.v(1350) | Pruning unused register rcpri_mod_ch_st. Make sure that there are no unused intermediate registers.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 3 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 4 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 6 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 7 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 8 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 9 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 10 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 11 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 12 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 13 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 14 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 15 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 2 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 3 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 5 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 6 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 7 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 8 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 9 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 10 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 11 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 12 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 13 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 14 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 15 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 0 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 1 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 2 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 3 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 4 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 5 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 6 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 7 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 8 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 9 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 10 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 11 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 12 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 13 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 14 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 15 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 17 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 18 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 19 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 20 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 21 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +@N:CG364 : sgmii_ecp5_softlogic.v(92) | Synthesizing module sgmii_ecp5rsl_core in library work.
    +
    +	pnum_channels=32'b00000000000000000000000000000001
    +	pprotocol=24'b010001110100001001000101
    +	pserdes_mode=72'b010100100101100000100000010000010100111001000100001000000101010001011000
    +	pport_tx_rdy=56'b01000101010011100100000101000010010011000100010101000100
    +	pwait_tx_rdy=32'b00000000000000000000101110111000
    +	pport_rx_rdy=56'b01000101010011100100000101000010010011000100010101000100
    +	pwait_rx_rdy=32'b00000000000000000000101110111000
    +	wa_num_cycles=32'b00000000000000000000010000000000
    +	dac_num_cycles=32'b00000000000000000000000000000011
    +	lreset_pwidth=32'b00000000000000000000000000000011
    +	lwait_b4_trst=32'b00000000000010111110101111000010
    +	lwait_b4_trst_s=32'b00000000000000000000001100001101
    +	lplol_cnt_width=32'b00000000000000000000000000010100
    +	lwait_after_plol0=32'b00000000000000000000000000000100
    +	lwait_b4_rrst=32'b00000000000000101100000000000000
    +	lrrst_wait_width=32'b00000000000000000000000000010100
    +	lwait_after_rrst=32'b00000000000011000011010100000000
    +	lwait_b4_rrst_s=32'b00000000000000000000000111001100
    +	lrlol_cnt_width=32'b00000000000000000000000000010011
    +	lwait_after_lols=32'b00000000000000001100010000000000
    +	lwait_after_lols_s=32'b00000000000000000000000010010110
    +	llols_cnt_width=32'b00000000000000000000000000010010
    +	lrdb_max=32'b00000000000000000000000000001111
    +	ltxr_wait_width=32'b00000000000000000000000000001100
    +	lrxr_wait_width=32'b00000000000000000000000000001100
    +   Generated name = sgmii_ecp5rsl_core_Z2_layer1
    +@W:CG133 : sgmii_ecp5_softlogic.v(326) | Object rrst_cnt is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG360 : sgmii_ecp5_softlogic.v(327) | Removing wire rrst_cnt_tc, as there is no assignment to it.
    +@W:CG133 : sgmii_ecp5_softlogic.v(328) | Object rrst_wait is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG133 : sgmii_ecp5_softlogic.v(341) | Object rxp_cnt is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG133 : sgmii_ecp5_softlogic.v(342) | Object rxp_rst is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG360 : sgmii_ecp5_softlogic.v(343) | Removing wire rxp_cnt_tc, as there is no assignment to it.
    +@W:CG133 : sgmii_ecp5_softlogic.v(346) | Object rlolsz_cnt is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG360 : sgmii_ecp5_softlogic.v(347) | Removing wire rlolsz_cnt_tc, as there is no assignment to it.
    +@W:CG360 : sgmii_ecp5_softlogic.v(350) | Removing wire rxp_cnt2_tc, as there is no assignment to it.
    +@W:CG133 : sgmii_ecp5_softlogic.v(351) | Object data_loop_b_cnt is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG133 : sgmii_ecp5_softlogic.v(352) | Object data_loop_b is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG360 : sgmii_ecp5_softlogic.v(353) | Removing wire data_loop_b_tc, as there is no assignment to it.
    +@W:CL169 : sgmii_ecp5_softlogic.v(806) | Pruning unused register genblk2.rxp_cnt2[2:0]. Make sure that there are no unused intermediate registers.
    +@W:CL169 : sgmii_ecp5_softlogic.v(567) | Pruning unused register genblk2.rlol_p3. Make sure that there are no unused intermediate registers.
    +@W:CL169 : sgmii_ecp5_softlogic.v(567) | Pruning unused register genblk2.rlos_p3. Make sure that there are no unused intermediate registers.
    +@W:CL190 : sgmii_ecp5_softlogic.v(694) | Optimizing register bit genblk2.rxs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance.
    +@W:CL190 : sgmii_ecp5_softlogic.v(461) | Optimizing register bit genblk1.txp_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance.
    +@W:CL190 : sgmii_ecp5_softlogic.v(422) | Optimizing register bit genblk1.txs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance.
    +@W:CL260 : sgmii_ecp5_softlogic.v(422) | Pruning register bit 2 of genblk1.txs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level.
    +@W:CL260 : sgmii_ecp5_softlogic.v(461) | Pruning register bit 2 of genblk1.txp_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level.
    +@W:CL260 : sgmii_ecp5_softlogic.v(694) | Pruning register bit 2 of genblk2.rxs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level.
    +@W:CL246 : sgmii_ecp5_softlogic.v(200) | Input port bits 3 to 1 of rui_tx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size.
    +@W:CL246 : sgmii_ecp5_softlogic.v(204) | Input port bits 3 to 1 of rui_rx_serdes_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size.
    +@W:CL246 : sgmii_ecp5_softlogic.v(205) | Input port bits 3 to 1 of rui_rx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size.
    +@W:CL246 : sgmii_ecp5_softlogic.v(206) | Input port bits 3 to 1 of rdi_rx_los_low_s[3:0] are unused. Assign logic for all port bits or change the input port size.
    +@W:CL246 : sgmii_ecp5_softlogic.v(207) | Input port bits 3 to 1 of rdi_rx_cdr_lol_s[3:0] are unused. Assign logic for all port bits or change the input port size.
    +@W:CL279 : sgmii_ecp5_softlogic.v(1739) | Pruning register bits 5 to 3 of genblk5.rdiff_comp_unlock[5:2]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level.
    +@W:CL279 : sgmii_ecp5_softlogic.v(1739) | Pruning register bits 4 to 3 of genblk5.rdiff_comp_lock[4:2]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level.
    +@W:CL169 : sgmii_ecp5_softlogic.v(1739) | Pruning unused register genblk5.rdiff_comp_unlock[2]. Make sure that there are no unused intermediate registers.
    +@W:CL169 : sgmii_ecp5_softlogic.v(1739) | Pruning unused register genblk5.rcount_tc[16]. Make sure that there are no unused intermediate registers.
    +@N:CL201 : sgmii_ecp5_softlogic.v(1801) | Trying to extract state machine for register sll_state.
    +Extracted state machine for register sll_state
    +State machine has 4 reachable states with original encodings of:
    +   00
    +   01
    +   10
    +   11
    +
    +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 75MB peak: 81MB)
    +
    +
    +Process completed successfully.
    +# Fri May 10 11:58:56 2019
    +
    +###########################################################]
    +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug  4 2017
    +@N: :  | Running in 64-bit mode 
    +
    +=======================================================================================
    +For a summary of linker messages for components that did not bind, please see log file:
    +Linked File: sgmii_ecp5_comp.linkerlog
    +=======================================================================================
    +
    +
    +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB)
    +
    +Process took 0h:00m:01s realtime, 0h:00m:01s cputime
    +
    +Process completed successfully.
    +# Fri May 10 11:58:56 2019
    +
    +###########################################################]
    +@END
    +
    +At c_hdl Exit (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 3MB peak: 4MB)
    +
    +Process took 0h:00m:01s realtime, 0h:00m:01s cputime
    +
    +Process completed successfully.
    +# Fri May 10 11:58:56 2019
    +
    +###########################################################]
    +
    +
    +
    +
    +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug  4 2017
    +@N: :  | Running in 64-bit mode 
    +
    +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB)
    +
    +Process took 0h:00m:01s realtime, 0h:00m:01s cputime
    +
    +Process completed successfully.
    +# Fri May 10 11:58:57 2019
    +
    +###########################################################]
    +
    +
    +
    +
    +Pre-mapping Report
    +
    +
    +
    +
    +
    +# Fri May 10 11:58:57 2019
    +
    +Synopsys Lattice Technology Pre-mapping, Version maplat, Build 1796R, Built Aug  4 2017 09:36:35
    +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited.
    +Product Version M-2017.03L-SP1-1
    +
    +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 100MB)
    +
    +Reading constraint file: /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5.fdc
    +Linked File: sgmii_ecp5_scck.rpt
    +Printing clock  summary report in "/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5_scck.rpt" file 
    +@N:MF248 :  | Running in 64-bit mode. 
    +@N:MF666 :  | Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) 
    +
    +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 102MB peak: 104MB)
    +
    +
    +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 102MB peak: 104MB)
    +
    +
    +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 114MB)
    +
    +
    +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 116MB)
    +
    +@N:BN362 : sgmii_ecp5_softlogic.v(1408) | Removing sequential instance pcpri_mod_ch (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:PrimLib.dffre(prim) because it does not drive other instances.
    +@N:BN115 : sgmii_ecp5_softlogic.v(1244) | Removing instance div2_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_3(verilog) because it does not drive other instances.
    +@N:BN115 : sgmii_ecp5_softlogic.v(1252) | Removing instance div11_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_2(verilog) because it does not drive other instances.
    +@N:BN115 : sgmii_ecp5_softlogic.v(1236) | Removing instance gear_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_4(verilog) because it does not drive other instances.
    +@N:BN115 : sgmii_ecp5_softlogic.v(1268) | Removing instance pcie_mod_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_0(verilog) because it does not drive other instances.
    +@N:BN115 : sgmii_ecp5_softlogic.v(1260) | Removing instance cpri_mod_sync_inst (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_1(verilog) because it does not drive other instances.
    +ICG Latch Removal Summary:
    +Number of ICG latches removed:	0
    +Number of ICG latches not removed:	0
    +syn_allowed_resources : blockrams=56  set on top level netlist sgmii_ecp5
    +
    +Finished netlist restructuring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB)
    +
    +
    +
    +Clock Summary
    +******************
    +
    +          Start                                 Requested     Requested     Clock        Clock                   Clock
    +Level     Clock                                 Frequency     Period        Type         Group                   Load 
    +----------------------------------------------------------------------------------------------------------------------
    +0 -       System                                100.0 MHz     10.000        system       system_clkgroup         0    
    +                                                                                                                      
    +0 -       sgmii_ecp5|pll_refclki                100.0 MHz     10.000        inferred     Inferred_clkgroup_0     93   
    +                                                                                                                      
    +0 -       sgmii_ecp5|rxrefclk                   100.0 MHz     10.000        inferred     Inferred_clkgroup_1     77   
    +                                                                                                                      
    +0 -       sgmii_ecp5|tx_pclk_inferred_clock     100.0 MHz     10.000        inferred     Inferred_clkgroup_2     53   
    +======================================================================================================================
    +
    +@W:MT529 : sgmii_ecp5_softlogic.v(1988) | Found inferred clock sgmii_ecp5|pll_refclki which controls 93 sequential elements including sll_inst.phb_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. 
    +@W:MT529 : sgmii_ecp5_softlogic.v(567) | Found inferred clock sgmii_ecp5|rxrefclk which controls 77 sequential elements including rsl_inst.genblk2\.rlos_db_p1. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. 
    +@W:MT529 : sgmii_ecp5_softlogic.v(1988) | Found inferred clock sgmii_ecp5|tx_pclk_inferred_clock which controls 53 sequential elements including sll_inst.rtc_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. 
    +
    +Finished Pre Mapping Phase.
    +
    +Starting constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB)
    +
    +Encoding state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog))
    +original code -> new code
    +   00 -> 00
    +   01 -> 01
    +   10 -> 10
    +   11 -> 11
    +@N:MO225 : sgmii_ecp5_softlogic.v(1801) | There are no possible illegal states for state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)); safe FSM implementation is not required.
    +
    +Finished constraint checker preprocessing (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB)
    +
    +None
    +None
    +
    +Finished constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB)
    +
    +Pre-mapping successful!
    +
    +At Mapper Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 58MB peak: 144MB)
    +
    +Process took 0h:00m:01s realtime, 0h:00m:01s cputime
    +# Fri May 10 11:58:58 2019
    +
    +###########################################################]
    +
    +
    +
    +
    +Map & Optimize Report
    +
    +
    +
    +
    +
    +# Fri May 10 11:58:58 2019
    +
    +Synopsys Lattice Technology Mapper, Version maplat, Build 1796R, Built Aug  4 2017 09:36:35
    +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited.
    +Product Version M-2017.03L-SP1-1
    +
    +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 100MB)
    +
    +@N:MF248 :  | Running in 64-bit mode. 
    +@N:MF666 :  | Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) 
    +
    +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB)
    +
    +
    +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB)
    +
    +
    +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 113MB)
    +
    +
    +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 115MB)
    +
    +
    +
    +Starting Optimization and Mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 144MB)
    +
    +
    +Available hyper_sources - for debug and ip models
    +	None Found
    +
    +
    +Finished RTL optimizations (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB)
    +
    +Encoding state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog))
    +original code -> new code
    +   00 -> 00
    +   01 -> 01
    +   10 -> 10
    +   11 -> 11
    +@N:MO225 : sgmii_ecp5_softlogic.v(1801) | There are no possible illegal states for state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)); safe FSM implementation is not required.
    +@N:MO231 : sgmii_ecp5_softlogic.v(1350) | Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance rhb_wait_cnt[7:0] 
    +@N:MO231 : sgmii_ecp5_softlogic.v(1304) | Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance rcount[15:0] 
    +@N:MO231 : sgmii_ecp5_softlogic.v(1759) | Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance pcount[21:0] 
    +@N:MO231 : sgmii_ecp5_softlogic.v(412) | Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk1\.plol_cnt[19:0] 
    +@N:MO231 : sgmii_ecp5_softlogic.v(909) | Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.genblk3\.rxr_wt_cnt[11:0] 
    +@N:MO231 : sgmii_ecp5_softlogic.v(527) | Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk1\.genblk2\.txr_wt_cnt[11:0] 
    +@N:MO231 : sgmii_ecp5_softlogic.v(778) | Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.rlols0_cnt[17:0] 
    +@N:MO231 : sgmii_ecp5_softlogic.v(680) | Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.rlol1_cnt[18:0] 
    +
    +Starting factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB)
    +
    +
    +Finished factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 144MB)
    +
    +
    +Starting gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB)
    +
    +
    +Finished gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB)
    +
    +
    +Finished generic timing optimizations - Pass 1 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 145MB)
    +
    +
    +Starting Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 145MB)
    +
    +
    +Finished Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 145MB)
    +
    +
    +Finished generic timing optimizations - Pass 2 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 145MB)
    +
    +
    +Finished preparing to map (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 145MB peak: 145MB)
    +
    +@N:FX1019 : sgmii_ecp5_softlogic.v(1988) | Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)).
    +@N:FX1019 : sgmii_ecp5_softlogic.v(1988) | Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)).
    +@N:FX1019 : sgmii_ecp5_softlogic.v(1988) | Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)).
    +
    +Finished technology mapping (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 147MB peak: 148MB)
    +
    +Pass		 CPU time		Worst Slack		Luts / Registers
    +------------------------------------------------------------
    +   1		0h:00m:01s		     5.36ns		 154 /       221
    +@N:FX1019 : sgmii_ecp5_softlogic.v(1988) | Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)).
    +@N:FX1019 : sgmii_ecp5_softlogic.v(1988) | Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)).
    +@N:FX1019 : sgmii_ecp5_softlogic.v(1988) | Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)).
    +
    +Finished technology timing optimizations and critical path resynthesis (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 147MB peak: 148MB)
    +
    +@N:FX164 :  | The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute.   
    +
    +Finished restoring hierarchy (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 147MB peak: 148MB)
    +
    +
    +
    +@S |Clock Optimization Summary
    +
    +
    +#### START OF CLOCK OPTIMIZATION REPORT #####[
    +
    +3 non-gated/non-generated clock tree(s) driving 221 clock pin(s) of sequential element(s)
    +0 gated/generated clock tree(s) driving 0 clock pin(s) of sequential element(s)
    +0 instances converted, 0 sequential instances remain driven by gated/generated clocks
    +
    +============================================= Non-Gated/Non-Generated Clocks =============================================
    +Clock Tree ID     Driving Element     Drive Element Type     Fanout     Sample Instance                                   
    +--------------------------------------------------------------------------------------------------------------------------
    +ClockId0001        pll_refclki         port                   91         rsl_inst.genblk1\.genblk2\.mfor\[0\]\.txpr_appd[0]
    +ClockId0002        rxrefclk            port                   77         rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0]
    +ClockId0003        DCU0_inst           DCUA                   53         sll_inst.pcount[21]                               
    +==========================================================================================================================
    +
    +
    +##### END OF CLOCK OPTIMIZATION REPORT ######]
    +
    +
    +Start Writing Netlists (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 111MB peak: 148MB)
    +
    +Writing Analyst data base /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_m.srm
    +
    +Finished Writing Netlist Databases (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 146MB peak: 148MB)
    +
    +Writing EDIF Netlist and constraint files
    +@N:FX1056 :  | Writing EDF file: /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/sgmii_ecp5.edn 
    +M-2017.03L-SP1-1
    +@N:BW106 :  | Synplicity Constraint File capacitance units using default value of 1pF  
    +
    +Finished Writing EDIF Netlist and constraint files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 151MB peak: 153MB)
    +
    +Writing Verilog Simulation files
    +
    +Finished Writing Verilog Simulation files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 151MB peak: 153MB)
    +
    +Writing VHDL Simulation files
    +
    +Finished Writing VHDL Simulation files (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB)
    +
    +
    +Start final timing analysis (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB)
    +
    +@W:MT246 : sgmii_ecp5.vhd(162) | Blackbox DCUA is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) 
    +@W:MT420 :  | Found inferred clock sgmii_ecp5|rxrefclk with period 10.00ns. Please declare a user-defined clock on object "p:rxrefclk" 
    +@W:MT420 :  | Found inferred clock sgmii_ecp5|pll_refclki with period 10.00ns. Please declare a user-defined clock on object "p:pll_refclki" 
    +@W:MT420 :  | Found inferred clock sgmii_ecp5|tx_pclk_inferred_clock with period 10.00ns. Please declare a user-defined clock on object "n:tx_pclk" 
    +
    +
    +##### START OF TIMING REPORT #####[
    +# Timing Report written on Fri May 10 11:59:02 2019
    +#
    +
    +
    +Top view:               sgmii_ecp5
    +Requested Frequency:    100.0 MHz
    +Wire load mode:         top
    +Paths requested:        5
    +Constraint File(s):    /home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5.fdc
    +                       
    +@N:MT320 :  | This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. 
    +
    +@N:MT322 :  | Clock constraints include only register-to-register paths associated with each individual clock. 
    +
    +
    +
    +Performance Summary
    +*******************
    +
    +
    +Worst slack in design: 4.079
    +
    +                                      Requested     Estimated     Requested     Estimated               Clock        Clock              
    +Starting Clock                        Frequency     Frequency     Period        Period        Slack     Type         Group              
    +----------------------------------------------------------------------------------------------------------------------------------------
    +sgmii_ecp5|pll_refclki                100.0 MHz     168.9 MHz     10.000        5.921         4.079     inferred     Inferred_clkgroup_0
    +sgmii_ecp5|rxrefclk                   100.0 MHz     170.5 MHz     10.000        5.864         4.136     inferred     Inferred_clkgroup_1
    +sgmii_ecp5|tx_pclk_inferred_clock     100.0 MHz     237.5 MHz     10.000        4.211         5.789     inferred     Inferred_clkgroup_2
    +System                                100.0 MHz     840.7 MHz     10.000        1.190         8.810     system       system_clkgroup    
    +========================================================================================================================================
    +
    +
    +
    +
    +
    +Clock Relationships
    +*******************
    +
    +Clocks                                                                |    rise  to  rise   |    fall  to  fall   |    rise  to  fall   |    fall  to  rise 
    +------------------------------------------------------------------------------------------------------------------------------------------------------------
    +Starting                           Ending                             |  constraint  slack  |  constraint  slack  |  constraint  slack  |  constraint  slack
    +------------------------------------------------------------------------------------------------------------------------------------------------------------
    +System                             sgmii_ecp5|rxrefclk                |  10.000      8.811  |  No paths    -      |  No paths    -      |  No paths    -    
    +sgmii_ecp5|pll_refclki             System                             |  10.000      8.253  |  No paths    -      |  No paths    -      |  No paths    -    
    +sgmii_ecp5|pll_refclki             sgmii_ecp5|pll_refclki             |  10.000      4.079  |  No paths    -      |  No paths    -      |  No paths    -    
    +sgmii_ecp5|pll_refclki             sgmii_ecp5|tx_pclk_inferred_clock  |  Diff grp    -      |  No paths    -      |  No paths    -      |  No paths    -    
    +sgmii_ecp5|rxrefclk                System                             |  10.000      8.184  |  No paths    -      |  No paths    -      |  No paths    -    
    +sgmii_ecp5|rxrefclk                sgmii_ecp5|rxrefclk                |  10.000      4.136  |  No paths    -      |  No paths    -      |  No paths    -    
    +sgmii_ecp5|tx_pclk_inferred_clock  sgmii_ecp5|pll_refclki             |  Diff grp    -      |  No paths    -      |  No paths    -      |  No paths    -    
    +sgmii_ecp5|tx_pclk_inferred_clock  sgmii_ecp5|tx_pclk_inferred_clock  |  10.000      5.789  |  No paths    -      |  No paths    -      |  No paths    -    
    +============================================================================================================================================================
    + Note: 'No paths' indicates there are no paths in the design for that pair of clock edges.
    +       'Diff grp' indicates that paths exist but the starting clock and ending clock are in different clock groups.
    +
    +
    +
    +Interface Information 
    +*********************
    +
    +No IO constraint found
    +
    +
    +
    +====================================
    +Detailed Report for Clock: sgmii_ecp5|pll_refclki
    +====================================
    +
    +
    +
    +Starting Points with Worst Slack
    +********************************
    +
    +                                   Starting                                                        Arrival          
    +Instance                           Reference                  Type        Pin     Net              Time        Slack
    +                                   Clock                                                                            
    +--------------------------------------------------------------------------------------------------------------------
    +rsl_inst.genblk1\.plol_cnt[2]      sgmii_ecp5|pll_refclki     FD1S3DX     Q       plol_cnt[2]      0.907       4.079
    +rsl_inst.genblk1\.plol_cnt[3]      sgmii_ecp5|pll_refclki     FD1S3DX     Q       plol_cnt[3]      0.907       4.079
    +rsl_inst.genblk1\.plol_cnt[17]     sgmii_ecp5|pll_refclki     FD1S3DX     Q       plol_cnt[17]     0.907       4.079
    +rsl_inst.genblk1\.plol_cnt[19]     sgmii_ecp5|pll_refclki     FD1S3DX     Q       plol_cnt[19]     0.907       4.079
    +rsl_inst.genblk1\.plol_cnt[1]      sgmii_ecp5|pll_refclki     FD1S3DX     Q       plol_cnt[1]      0.907       4.684
    +rsl_inst.genblk1\.plol_cnt[4]      sgmii_ecp5|pll_refclki     FD1S3DX     Q       plol_cnt[4]      0.907       4.684
    +rsl_inst.genblk1\.plol_cnt[5]      sgmii_ecp5|pll_refclki     FD1S3DX     Q       plol_cnt[5]      0.907       4.684
    +rsl_inst.genblk1\.plol_cnt[6]      sgmii_ecp5|pll_refclki     FD1S3DX     Q       plol_cnt[6]      0.907       4.684
    +rsl_inst.genblk1\.plol_cnt[7]      sgmii_ecp5|pll_refclki     FD1S3DX     Q       plol_cnt[7]      0.907       4.684
    +rsl_inst.genblk1\.plol_cnt[8]      sgmii_ecp5|pll_refclki     FD1S3DX     Q       plol_cnt[8]      0.907       4.684
    +====================================================================================================================
    +
    +
    +Ending Points with Worst Slack
    +******************************
    +
    +                                   Starting                                                          Required          
    +Instance                           Reference                  Type        Pin     Net                Time         Slack
    +                                   Clock                                                                               
    +-----------------------------------------------------------------------------------------------------------------------
    +rsl_inst.genblk1\.plol_cnt[19]     sgmii_ecp5|pll_refclki     FD1S3DX     D       plol_cnt_s[19]     9.946        4.079
    +rsl_inst.genblk1\.plol_cnt[17]     sgmii_ecp5|pll_refclki     FD1S3DX     D       plol_cnt_s[17]     9.946        4.139
    +rsl_inst.genblk1\.plol_cnt[18]     sgmii_ecp5|pll_refclki     FD1S3DX     D       plol_cnt_s[18]     9.946        4.139
    +rsl_inst.genblk1\.plol_cnt[15]     sgmii_ecp5|pll_refclki     FD1S3DX     D       plol_cnt_s[15]     9.946        4.200
    +rsl_inst.genblk1\.plol_cnt[16]     sgmii_ecp5|pll_refclki     FD1S3DX     D       plol_cnt_s[16]     9.946        4.200
    +rsl_inst.genblk1\.plol_cnt[13]     sgmii_ecp5|pll_refclki     FD1S3DX     D       plol_cnt_s[13]     9.946        4.261
    +rsl_inst.genblk1\.plol_cnt[14]     sgmii_ecp5|pll_refclki     FD1S3DX     D       plol_cnt_s[14]     9.946        4.261
    +rsl_inst.genblk1\.plol_cnt[11]     sgmii_ecp5|pll_refclki     FD1S3DX     D       plol_cnt_s[11]     9.946        4.322
    +rsl_inst.genblk1\.plol_cnt[12]     sgmii_ecp5|pll_refclki     FD1S3DX     D       plol_cnt_s[12]     9.946        4.322
    +rsl_inst.genblk1\.plol_cnt[9]      sgmii_ecp5|pll_refclki     FD1S3DX     D       plol_cnt_s[9]      9.946        4.383
    +=======================================================================================================================
    +
    +
    +
    +Worst Path Information
    +View Worst Path in Analyst
    +***********************
    +
    +
    +Path information for path number 1: 
    +      Requested Period:                      10.000
    +    - Setup time:                            0.054
    +    + Clock delay at ending point:           0.000 (ideal)
    +    = Required time:                         9.946
    +
    +    - Propagation time:                      5.867
    +    - Clock delay at starting point:         0.000 (ideal)
    +    = Slack (critical) :                     4.079
    +
    +    Number of logic level(s):                15
    +    Starting point:                          rsl_inst.genblk1\.plol_cnt[2] / Q
    +    Ending point:                            rsl_inst.genblk1\.plol_cnt[19] / D
    +    The start point is clocked by            sgmii_ecp5|pll_refclki [rising] on pin CK
    +    The end   point is clocked by            sgmii_ecp5|pll_refclki [rising] on pin CK
    +
    +Instance / Net                                        Pin      Pin               Arrival     No. of    
    +Name                                     Type         Name     Dir     Delay     Time        Fan Out(s)
    +-------------------------------------------------------------------------------------------------------
    +rsl_inst.genblk1\.plol_cnt[2]            FD1S3DX      Q        Out     0.907     0.907       -         
    +plol_cnt[2]                              Net          -        -       -         -           2         
    +rsl_inst.genblk1\.un1_plol_cnt_tc_10     ORCALUT4     A        In      0.000     0.907       -         
    +rsl_inst.genblk1\.un1_plol_cnt_tc_10     ORCALUT4     Z        Out     0.606     1.513       -         
    +un1_plol_cnt_tc_10                       Net          -        -       -         -           1         
    +rsl_inst.genblk1\.un1_plol_cnt_tc_14     ORCALUT4     D        In      0.000     1.513       -         
    +rsl_inst.genblk1\.un1_plol_cnt_tc_14     ORCALUT4     Z        Out     0.606     2.119       -         
    +un1_plol_cnt_tc_14                       Net          -        -       -         -           1         
    +rsl_inst.genblk1\.un1_plol_cnt_tc        ORCALUT4     D        In      0.000     2.119       -         
    +rsl_inst.genblk1\.un1_plol_cnt_tc        ORCALUT4     Z        Out     0.762     2.881       -         
    +un1_plol_cnt_tc                          Net          -        -       -         -           5         
    +rsl_inst.genblk1\.plol_cnt11_i           ORCALUT4     B        In      0.000     2.881       -         
    +rsl_inst.genblk1\.plol_cnt11_i           ORCALUT4     Z        Out     0.840     3.721       -         
    +plol_cnt                                 Net          -        -       -         -           21        
    +rsl_inst.genblk1\.plol_cnt_cry_0[0]      CCU2C        A1       In      0.000     3.721       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[0]      CCU2C        COUT     Out     0.900     4.621       -         
    +plol_cnt_cry[0]                          Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[1]      CCU2C        CIN      In      0.000     4.621       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[1]      CCU2C        COUT     Out     0.061     4.682       -         
    +plol_cnt_cry[2]                          Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[3]      CCU2C        CIN      In      0.000     4.682       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[3]      CCU2C        COUT     Out     0.061     4.743       -         
    +plol_cnt_cry[4]                          Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[5]      CCU2C        CIN      In      0.000     4.743       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[5]      CCU2C        COUT     Out     0.061     4.804       -         
    +plol_cnt_cry[6]                          Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[7]      CCU2C        CIN      In      0.000     4.804       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[7]      CCU2C        COUT     Out     0.061     4.865       -         
    +plol_cnt_cry[8]                          Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[9]      CCU2C        CIN      In      0.000     4.865       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[9]      CCU2C        COUT     Out     0.061     4.926       -         
    +plol_cnt_cry[10]                         Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[11]     CCU2C        CIN      In      0.000     4.926       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[11]     CCU2C        COUT     Out     0.061     4.987       -         
    +plol_cnt_cry[12]                         Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[13]     CCU2C        CIN      In      0.000     4.987       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[13]     CCU2C        COUT     Out     0.061     5.048       -         
    +plol_cnt_cry[14]                         Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[15]     CCU2C        CIN      In      0.000     5.048       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[15]     CCU2C        COUT     Out     0.061     5.109       -         
    +plol_cnt_cry[16]                         Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[17]     CCU2C        CIN      In      0.000     5.109       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[17]     CCU2C        COUT     Out     0.061     5.170       -         
    +plol_cnt_cry[18]                         Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_s_0[19]       CCU2C        CIN      In      0.000     5.170       -         
    +rsl_inst.genblk1\.plol_cnt_s_0[19]       CCU2C        S0       Out     0.698     5.867       -         
    +plol_cnt_s[19]                           Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt[19]           FD1S3DX      D        In      0.000     5.867       -         
    +=======================================================================================================
    +
    +
    +
    +
    +====================================
    +Detailed Report for Clock: sgmii_ecp5|rxrefclk
    +====================================
    +
    +
    +
    +Starting Points with Worst Slack
    +********************************
    +
    +                                    Starting                                                      Arrival          
    +Instance                            Reference               Type        Pin     Net               Time        Slack
    +                                    Clock                                                                          
    +-------------------------------------------------------------------------------------------------------------------
    +rsl_inst.genblk2\.rlol1_cnt[7]      sgmii_ecp5|rxrefclk     FD1P3DX     Q       rlol1_cnt[7]      0.907       4.136
    +rsl_inst.genblk2\.rlol1_cnt[8]      sgmii_ecp5|rxrefclk     FD1P3DX     Q       rlol1_cnt[8]      0.907       4.136
    +rsl_inst.genblk2\.rlol1_cnt[9]      sgmii_ecp5|rxrefclk     FD1P3DX     Q       rlol1_cnt[9]      0.907       4.136
    +rsl_inst.genblk2\.rlol1_cnt[10]     sgmii_ecp5|rxrefclk     FD1P3DX     Q       rlol1_cnt[10]     0.907       4.136
    +rsl_inst.genblk2\.rlols0_cnt[1]     sgmii_ecp5|rxrefclk     FD1P3DX     Q       rlols0_cnt[1]     0.907       4.170
    +rsl_inst.genblk2\.rlols0_cnt[2]     sgmii_ecp5|rxrefclk     FD1P3DX     Q       rlols0_cnt[2]     0.907       4.170
    +rsl_inst.genblk2\.rlols0_cnt[3]     sgmii_ecp5|rxrefclk     FD1P3DX     Q       rlols0_cnt[3]     0.907       4.170
    +rsl_inst.genblk2\.rlols0_cnt[4]     sgmii_ecp5|rxrefclk     FD1P3DX     Q       rlols0_cnt[4]     0.907       4.170
    +rsl_inst.genblk2\.rxs_rst           sgmii_ecp5|rxrefclk     FD1P3DX     Q       rxs_rst           1.015       4.700
    +rsl_inst.genblk2\.rlol1_cnt[0]      sgmii_ecp5|rxrefclk     FD1P3DX     Q       rlol1_cnt[0]      0.907       4.742
    +===================================================================================================================
    +
    +
    +Ending Points with Worst Slack
    +******************************
    +
    +                                     Starting                                                         Required          
    +Instance                             Reference               Type        Pin     Net                  Time         Slack
    +                                     Clock                                                                              
    +------------------------------------------------------------------------------------------------------------------------
    +rsl_inst.genblk2\.rlol1_cnt[17]      sgmii_ecp5|rxrefclk     FD1P3DX     D       rlol1_cnt_s[17]      9.946        4.136
    +rsl_inst.genblk2\.rlol1_cnt[18]      sgmii_ecp5|rxrefclk     FD1P3DX     D       rlol1_cnt_s[18]      9.946        4.136
    +rsl_inst.genblk2\.rlols0_cnt[17]     sgmii_ecp5|rxrefclk     FD1P3DX     D       rlols0_cnt_s[17]     9.946        4.170
    +rsl_inst.genblk2\.rlol1_cnt[15]      sgmii_ecp5|rxrefclk     FD1P3DX     D       rlol1_cnt_s[15]      9.946        4.197
    +rsl_inst.genblk2\.rlol1_cnt[16]      sgmii_ecp5|rxrefclk     FD1P3DX     D       rlol1_cnt_s[16]      9.946        4.197
    +rsl_inst.genblk2\.rlols0_cnt[15]     sgmii_ecp5|rxrefclk     FD1P3DX     D       rlols0_cnt_s[15]     9.946        4.231
    +rsl_inst.genblk2\.rlols0_cnt[16]     sgmii_ecp5|rxrefclk     FD1P3DX     D       rlols0_cnt_s[16]     9.946        4.231
    +rsl_inst.genblk2\.rlol1_cnt[13]      sgmii_ecp5|rxrefclk     FD1P3DX     D       rlol1_cnt_s[13]      9.946        4.258
    +rsl_inst.genblk2\.rlol1_cnt[14]      sgmii_ecp5|rxrefclk     FD1P3DX     D       rlol1_cnt_s[14]      9.946        4.258
    +rsl_inst.genblk2\.rlols0_cnt[13]     sgmii_ecp5|rxrefclk     FD1P3DX     D       rlols0_cnt_s[13]     9.946        4.292
    +========================================================================================================================
    +
    +
    +
    +Worst Path Information
    +View Worst Path in Analyst
    +***********************
    +
    +
    +Path information for path number 1: 
    +      Requested Period:                      10.000
    +    - Setup time:                            0.054
    +    + Clock delay at ending point:           0.000 (ideal)
    +    = Required time:                         9.946
    +
    +    - Propagation time:                      5.809
    +    - Clock delay at starting point:         0.000 (ideal)
    +    = Slack (non-critical) :                 4.136
    +
    +    Number of logic level(s):                14
    +    Starting point:                          rsl_inst.genblk2\.rlol1_cnt[7] / Q
    +    Ending point:                            rsl_inst.genblk2\.rlol1_cnt[18] / D
    +    The start point is clocked by            sgmii_ecp5|rxrefclk [rising] on pin CK
    +    The end   point is clocked by            sgmii_ecp5|rxrefclk [rising] on pin CK
    +
    +Instance / Net                                         Pin      Pin               Arrival     No. of    
    +Name                                      Type         Name     Dir     Delay     Time        Fan Out(s)
    +--------------------------------------------------------------------------------------------------------
    +rsl_inst.genblk2\.rlol1_cnt[7]            FD1P3DX      Q        Out     0.907     0.907       -         
    +rlol1_cnt[7]                              Net          -        -       -         -           2         
    +rsl_inst.rlol1_cnt_tc_1_10                ORCALUT4     A        In      0.000     0.907       -         
    +rsl_inst.rlol1_cnt_tc_1_10                ORCALUT4     Z        Out     0.606     1.513       -         
    +rlol1_cnt_tc_1_10                         Net          -        -       -         -           1         
    +rsl_inst.rlol1_cnt_tc_1_14                ORCALUT4     D        In      0.000     1.513       -         
    +rsl_inst.rlol1_cnt_tc_1_14                ORCALUT4     Z        Out     0.606     2.119       -         
    +rlol1_cnt_tc_1_14                         Net          -        -       -         -           1         
    +rsl_inst.rlol1_cnt_tc_1                   ORCALUT4     D        In      0.000     2.119       -         
    +rsl_inst.rlol1_cnt_tc_1                   ORCALUT4     Z        Out     0.768     2.887       -         
    +rlol1_cnt_tc_1                            Net          -        -       -         -           6         
    +rsl_inst.genblk2\.rlos_db_p1_RNIS0OP      ORCALUT4     A        In      0.000     2.887       -         
    +rsl_inst.genblk2\.rlos_db_p1_RNIS0OP      ORCALUT4     Z        Out     0.837     3.724       -         
    +rlol1_cnt                                 Net          -        -       -         -           20        
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[0]      CCU2C        A1       In      0.000     3.724       -         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[0]      CCU2C        COUT     Out     0.900     4.624       -         
    +rlol1_cnt_cry[0]                          Net          -        -       -         -           1         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[1]      CCU2C        CIN      In      0.000     4.624       -         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[1]      CCU2C        COUT     Out     0.061     4.685       -         
    +rlol1_cnt_cry[2]                          Net          -        -       -         -           1         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[3]      CCU2C        CIN      In      0.000     4.685       -         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[3]      CCU2C        COUT     Out     0.061     4.746       -         
    +rlol1_cnt_cry[4]                          Net          -        -       -         -           1         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[5]      CCU2C        CIN      In      0.000     4.746       -         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[5]      CCU2C        COUT     Out     0.061     4.807       -         
    +rlol1_cnt_cry[6]                          Net          -        -       -         -           1         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[7]      CCU2C        CIN      In      0.000     4.807       -         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[7]      CCU2C        COUT     Out     0.061     4.868       -         
    +rlol1_cnt_cry[8]                          Net          -        -       -         -           1         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[9]      CCU2C        CIN      In      0.000     4.868       -         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[9]      CCU2C        COUT     Out     0.061     4.929       -         
    +rlol1_cnt_cry[10]                         Net          -        -       -         -           1         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[11]     CCU2C        CIN      In      0.000     4.929       -         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[11]     CCU2C        COUT     Out     0.061     4.990       -         
    +rlol1_cnt_cry[12]                         Net          -        -       -         -           1         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[13]     CCU2C        CIN      In      0.000     4.990       -         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[13]     CCU2C        COUT     Out     0.061     5.051       -         
    +rlol1_cnt_cry[14]                         Net          -        -       -         -           1         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[15]     CCU2C        CIN      In      0.000     5.051       -         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[15]     CCU2C        COUT     Out     0.061     5.112       -         
    +rlol1_cnt_cry[16]                         Net          -        -       -         -           1         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[17]     CCU2C        CIN      In      0.000     5.112       -         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[17]     CCU2C        S1       Out     0.698     5.809       -         
    +rlol1_cnt_s[18]                           Net          -        -       -         -           1         
    +rsl_inst.genblk2\.rlol1_cnt[18]           FD1P3DX      D        In      0.000     5.809       -         
    +========================================================================================================
    +
    +
    +
    +
    +====================================
    +Detailed Report for Clock: sgmii_ecp5|tx_pclk_inferred_clock
    +====================================
    +
    +
    +
    +Starting Points with Worst Slack
    +********************************
    +
    +                            Starting                                                                   Arrival          
    +Instance                    Reference                             Type        Pin     Net              Time        Slack
    +                            Clock                                                                                       
    +------------------------------------------------------------------------------------------------------------------------
    +sll_inst.ppul_sync_p1       sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     Q       ppul_sync_p1     1.098       5.789
    +sll_inst.ppul_sync_p2       sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     Q       ppul_sync_p2     1.098       5.789
    +sll_inst.pcount_diff[0]     sgmii_ecp5|tx_pclk_inferred_clock     FD1P3BX     Q       un13_lock_0      0.985       6.147
    +sll_inst.pcount[0]          sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     Q       pcount[0]        0.955       6.178
    +sll_inst.pcount_diff[1]     sgmii_ecp5|tx_pclk_inferred_clock     FD1P3BX     Q       un13_lock_1      0.955       6.239
    +sll_inst.pcount_diff[2]     sgmii_ecp5|tx_pclk_inferred_clock     FD1P3BX     Q       un13_lock_2      0.955       6.239
    +sll_inst.pcount[1]          sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     Q       pcount[1]        0.907       6.287
    +sll_inst.pcount[2]          sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     Q       pcount[2]        0.907       6.287
    +sll_inst.pcount_diff[3]     sgmii_ecp5|tx_pclk_inferred_clock     FD1P3BX     Q       un13_lock_3      0.955       6.300
    +sll_inst.pcount_diff[4]     sgmii_ecp5|tx_pclk_inferred_clock     FD1P3BX     Q       un13_lock_4      0.955       6.300
    +========================================================================================================================
    +
    +
    +Ending Points with Worst Slack
    +******************************
    +
    +                             Starting                                                                                  Required          
    +Instance                     Reference                             Type        Pin     Net                             Time         Slack
    +                             Clock                                                                                                       
    +-----------------------------------------------------------------------------------------------------------------------------------------
    +sll_inst.pcount[21]          sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     D       pcount_s[21]                    9.946        5.789
    +sll_inst.pcount[19]          sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     D       pcount_s[19]                    9.946        5.850
    +sll_inst.pcount[20]          sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     D       pcount_s[20]                    9.946        5.850
    +sll_inst.pcount[17]          sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     D       pcount_s[17]                    9.946        5.911
    +sll_inst.pcount[18]          sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     D       pcount_s[18]                    9.946        5.911
    +sll_inst.pcount[15]          sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     D       pcount_s[15]                    9.946        5.972
    +sll_inst.pcount[16]          sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     D       pcount_s[16]                    9.946        5.972
    +sll_inst.pcount[13]          sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     D       pcount_s[13]                    9.946        6.033
    +sll_inst.pcount[14]          sgmii_ecp5|tx_pclk_inferred_clock     FD1S3DX     D       pcount_s[14]                    9.946        6.033
    +sll_inst.pcount_diff[21]     sgmii_ecp5|tx_pclk_inferred_clock     FD1P3DX     D       un1_pcount_diff_1_s_21_0_S0     9.946        6.034
    +=========================================================================================================================================
    +
    +
    +
    +Worst Path Information
    +View Worst Path in Analyst
    +***********************
    +
    +
    +Path information for path number 1: 
    +      Requested Period:                      10.000
    +    - Setup time:                            0.054
    +    + Clock delay at ending point:           0.000 (ideal)
    +    = Required time:                         9.946
    +
    +    - Propagation time:                      4.157
    +    - Clock delay at starting point:         0.000 (ideal)
    +    = Slack (non-critical) :                 5.789
    +
    +    Number of logic level(s):                13
    +    Starting point:                          sll_inst.ppul_sync_p1 / Q
    +    Ending point:                            sll_inst.pcount[21] / D
    +    The start point is clocked by            sgmii_ecp5|tx_pclk_inferred_clock [rising] on pin CK
    +    The end   point is clocked by            sgmii_ecp5|tx_pclk_inferred_clock [rising] on pin CK
    +
    +Instance / Net                             Pin      Pin               Arrival     No. of    
    +Name                          Type         Name     Dir     Delay     Time        Fan Out(s)
    +--------------------------------------------------------------------------------------------
    +sll_inst.ppul_sync_p1         FD1S3DX      Q        Out     1.098     1.098       -         
    +ppul_sync_p1                  Net          -        -       -         -           25        
    +sll_inst.pcount10_0_o3        ORCALUT4     A        In      0.000     1.098       -         
    +sll_inst.pcount10_0_o3        ORCALUT4     Z        Out     0.851     1.950       -         
    +N_8                           Net          -        -       -         -           25        
    +sll_inst.pcount_cry_0[0]      CCU2C        A1       In      0.000     1.950       -         
    +sll_inst.pcount_cry_0[0]      CCU2C        COUT     Out     0.900     2.850       -         
    +pcount_cry[0]                 Net          -        -       -         -           1         
    +sll_inst.pcount_cry_0[1]      CCU2C        CIN      In      0.000     2.850       -         
    +sll_inst.pcount_cry_0[1]      CCU2C        COUT     Out     0.061     2.911       -         
    +pcount_cry[2]                 Net          -        -       -         -           1         
    +sll_inst.pcount_cry_0[3]      CCU2C        CIN      In      0.000     2.911       -         
    +sll_inst.pcount_cry_0[3]      CCU2C        COUT     Out     0.061     2.972       -         
    +pcount_cry[4]                 Net          -        -       -         -           1         
    +sll_inst.pcount_cry_0[5]      CCU2C        CIN      In      0.000     2.972       -         
    +sll_inst.pcount_cry_0[5]      CCU2C        COUT     Out     0.061     3.033       -         
    +pcount_cry[6]                 Net          -        -       -         -           1         
    +sll_inst.pcount_cry_0[7]      CCU2C        CIN      In      0.000     3.033       -         
    +sll_inst.pcount_cry_0[7]      CCU2C        COUT     Out     0.061     3.094       -         
    +pcount_cry[8]                 Net          -        -       -         -           1         
    +sll_inst.pcount_cry_0[9]      CCU2C        CIN      In      0.000     3.094       -         
    +sll_inst.pcount_cry_0[9]      CCU2C        COUT     Out     0.061     3.155       -         
    +pcount_cry[10]                Net          -        -       -         -           1         
    +sll_inst.pcount_cry_0[11]     CCU2C        CIN      In      0.000     3.155       -         
    +sll_inst.pcount_cry_0[11]     CCU2C        COUT     Out     0.061     3.216       -         
    +pcount_cry[12]                Net          -        -       -         -           1         
    +sll_inst.pcount_cry_0[13]     CCU2C        CIN      In      0.000     3.216       -         
    +sll_inst.pcount_cry_0[13]     CCU2C        COUT     Out     0.061     3.277       -         
    +pcount_cry[14]                Net          -        -       -         -           1         
    +sll_inst.pcount_cry_0[15]     CCU2C        CIN      In      0.000     3.277       -         
    +sll_inst.pcount_cry_0[15]     CCU2C        COUT     Out     0.061     3.338       -         
    +pcount_cry[16]                Net          -        -       -         -           1         
    +sll_inst.pcount_cry_0[17]     CCU2C        CIN      In      0.000     3.338       -         
    +sll_inst.pcount_cry_0[17]     CCU2C        COUT     Out     0.061     3.399       -         
    +pcount_cry[18]                Net          -        -       -         -           1         
    +sll_inst.pcount_cry_0[19]     CCU2C        CIN      In      0.000     3.399       -         
    +sll_inst.pcount_cry_0[19]     CCU2C        COUT     Out     0.061     3.460       -         
    +pcount_cry[20]                Net          -        -       -         -           1         
    +sll_inst.pcount_s_0[21]       CCU2C        CIN      In      0.000     3.460       -         
    +sll_inst.pcount_s_0[21]       CCU2C        S0       Out     0.698     4.157       -         
    +pcount_s[21]                  Net          -        -       -         -           1         
    +sll_inst.pcount[21]           FD1S3DX      D        In      0.000     4.157       -         
    +============================================================================================
    +
    +
    +
    +
    +====================================
    +Detailed Report for Clock: System
    +====================================
    +
    +
    +
    +Starting Points with Worst Slack
    +********************************
    +
    +              Starting                                                 Arrival          
    +Instance      Reference     Type     Pin              Net              Time        Slack
    +              Clock                                                                     
    +----------------------------------------------------------------------------------------
    +DCU0_inst     System        DCUA     CH0_FFS_RLOL     rx_cdr_lol_s     0.000       8.810
    +DCU0_inst     System        DCUA     CH0_FFS_RLOS     rx_los_low_s     0.000       8.810
    +========================================================================================
    +
    +
    +Ending Points with Worst Slack
    +******************************
    +
    +                                                       Starting                                                            Required          
    +Instance                                               Reference     Type        Pin     Net                               Time         Slack
    +                                                       Clock                                                                                 
    +---------------------------------------------------------------------------------------------------------------------------------------------
    +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0]     System        FD1P3DX     SP      un2_rdo_serdes_rst_dual_c_2_i     9.806        8.810
    +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0]     System        FD1P3DX     D       rxpr_appd_RNO[0]                  9.946        9.556
    +rsl_inst.genblk2\.rlol_p1                              System        FD1S3DX     D       rx_cdr_lol_s                      9.946        9.946
    +rsl_inst.genblk2\.rlos_p1                              System        FD1S3DX     D       rx_los_low_s                      9.946        9.946
    +=============================================================================================================================================
    +
    +
    +
    +Worst Path Information
    +View Worst Path in Analyst
    +***********************
    +
    +
    +Path information for path number 1: 
    +      Requested Period:                      10.000
    +    - Setup time:                            0.194
    +    + Clock delay at ending point:           0.000 (ideal)
    +    = Required time:                         9.806
    +
    +    - Propagation time:                      0.996
    +    - Clock delay at starting point:         0.000 (ideal)
    +    - Estimated clock delay at start point:  -0.000
    +    = Slack (non-critical) :                 8.810
    +
    +    Number of logic level(s):                2
    +    Starting point:                          DCU0_inst / CH0_FFS_RLOL
    +    Ending point:                            rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] / SP
    +    The start point is clocked by            System [rising]
    +    The end   point is clocked by            sgmii_ecp5|rxrefclk [rising] on pin CK
    +
    +Instance / Net                                                            Pin              Pin               Arrival     No. of    
    +Name                                                         Type         Name             Dir     Delay     Time        Fan Out(s)
    +-----------------------------------------------------------------------------------------------------------------------------------
    +DCU0_inst                                                    DCUA         CH0_FFS_RLOL     Out     0.000     0.000       -         
    +rx_cdr_lol_s                                                 Net          -                -       -         -           4         
    +rsl_inst.un2_rdo_serdes_rst_dual_c_1_1                       ORCALUT4     A                In      0.000     0.000       -         
    +rsl_inst.un2_rdo_serdes_rst_dual_c_1_1                       ORCALUT4     Z                Out     0.606     0.606       -         
    +un2_rdo_serdes_rst_dual_c_1_1                                Net          -                -       -         -           1         
    +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd_RNO_0[0]     ORCALUT4     B                In      0.000     0.606       -         
    +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd_RNO_0[0]     ORCALUT4     Z                Out     0.390     0.996       -         
    +un2_rdo_serdes_rst_dual_c_2_i                                Net          -                -       -         -           1         
    +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0]           FD1P3DX      SP               In      0.000     0.996       -         
    +===================================================================================================================================
    +
    +
    +
    +##### END OF TIMING REPORT #####]
    +
    +Timing exceptions that could not be applied
    +None
    +
    +Finished final timing analysis (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB)
    +
    +
    +Finished timing report (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB)
    +
    +---------------------------------------
    +Resource Usage Report
    +Part: lfe5um_25f-6
    +
    +Register bits: 221 of 24288 (1%)
    +PIC Latch:       0
    +I/O cells:       0
    +
    +
    +Details:
    +CCU2C:          113
    +DCUA:           1
    +FD1P3BX:        20
    +FD1P3DX:        92
    +FD1S3BX:        12
    +FD1S3DX:        97
    +GSR:            1
    +INV:            3
    +ORCALUT4:       153
    +PFUMX:          2
    +PUR:            1
    +VHI:            6
    +VLO:            6
    +Mapper successful!
    +
    +At Mapper Exit (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 35MB peak: 153MB)
    +
    +Process took 0h:00m:03s realtime, 0h:00m:03s cputime
    +# Fri May 10 11:59:02 2019
    +
    +###########################################################]
    +
    +
    diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/syntmp/sgmii_ecp5_toc.htm b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/syntmp/sgmii_ecp5_toc.htm new file mode 100644 index 0000000..50ff329 --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/syntmp/sgmii_ecp5_toc.htm @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/syntmp/statusReport.html b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/syntmp/statusReport.html new file mode 100644 index 0000000..e6db2e2 --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/syntmp/statusReport.html @@ -0,0 +1,115 @@ + + + Project Status Summary Page + + + + + + +
    + + + + + + + + + + +
    Project Settings
    Project Name sgmii_ecp5 Device Name syn_results: Lattice ECP5UM : LFE5UM_25F
    Implementation Name syn_results Top Module sgmii_ecp5
    Pipelining 0 Retiming 0
    Resource Sharing 1 Fanout Guide 50
    Disable I/O Insertion 1 Disable Sequential Optimizations 0
    Clock Conversion 1 FSM Compiler 1

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Run Status
    Job NameStatusCPU TimeReal TimeMemoryDate/Time
    (compiler)Complete15770-00m:02s-5/10/19
    11:58 AM
    (premap)Complete9300m:00s0m:00s144MB5/10/19
    11:58 AM
    (fpga_mapper)Complete22400m:03s0m:03s153MB5/10/19
    11:59 AM
    Multi-srs GeneratorComplete5/10/19
    11:58 AM
    +
    + + + + + + + + + + + + + + + + +
    Area Summary
    Register bits 221I/O cells 0
    Block RAMs +(v_ram) 0DSPs +(dsp_used) 0
    ORCA LUTs +(total_luts) 153

    + + + + + + + + + + + +
    Timing Summary
    Clock NameReq FreqEst FreqSlack
    sgmii_ecp5|pll_refclki100.0 MHz168.9 MHz4.079
    sgmii_ecp5|rxrefclk100.0 MHz170.5 MHz4.136
    sgmii_ecp5|tx_pclk_inferred_clock100.0 MHz237.5 MHz5.789
    System100.0 MHz840.7 MHz8.810
    +
    + + + + + + +
    Optimizations Summary
    Combined Clock Conversion 3 / 0

    +
    +
    + \ No newline at end of file diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/.cckTransfer b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/.cckTransfer new file mode 100644 index 0000000000000000000000000000000000000000..2c37cc7991f84a576cf96c46dcbfb802cf15c04e GIT binary patch literal 457 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 LJ=D1)_VM`*=XhlA literal 0 HcmV?d00001 diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/layer1.fdep b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/layer1.fdep new file mode 100644 index 0000000..18f4970 --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/layer1.fdep @@ -0,0 +1,22 @@ +#OPTIONS:"|-mixedhdl|-modhint|/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/synwork/_verilog_hintfile|-top|work.sgmii_ecp5sll_core|-top|work.sgmii_ecp5rsl_core|-mpparams|/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/synwork/_mh_params|-layerid|1|-orig_srs|/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.srs|-prodtype|synplify_pro|-dspmac|-fixsmult|-infer_seqShift|-nram|-sdff_counter|-divnmod|-nostructver|-I|/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/|-I|/home/soft/lattice/diamond/3.10_x64/synpbase/lib|-v2001|-devicelib|/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v|-devicelib|/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v|-encrypt|-pro|-ui|-fid2|-ram|-sharing|on|-ll|2000|-autosm|-lib|work" +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/linux_a_64/c_ver":1542167761 +#CUR:"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/synwork/_verilog_hintfile":1557482335 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v":1542167595 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v":1542167597 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v":1542167630 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v":1542167630 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v":1542167630 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh":1542167630 +#CUR:"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1557482333 +#numinternalfiles:6 +#defaultlanguage:verilog +0 "/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v" verilog +#Dependency Lists(Uses List) +0 -1 +#Dependency Lists(Users Of) +0 -1 +#Design Unit to File Association +module work sgmii_ecp5rsl_core 0 +module work sync 0 +module work sgmii_ecp5sll_core 0 +#Unbound instances to file Association. diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/layer1.fdepxmr b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/layer1.fdepxmr new file mode 100644 index 0000000..37d628b --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/layer1.fdepxmr @@ -0,0 +1 @@ +#XMR Information diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/layer1.info b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/layer1.info new file mode 100644 index 0000000..defe9c7 --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/layer1.info @@ -0,0 +1,2 @@ +|work.sgmii_ecp5rsl_core|parameter pnum_channels 1;,parameter pprotocol "GBE";,parameter pserdes_mode "RX AND TX";,parameter pport_tx_rdy "ENABLED";,parameter pwait_tx_rdy 3000;,parameter pport_rx_rdy "ENABLED";,parameter pwait_rx_rdy 3000;| +|work.sgmii_ecp5sll_core|parameter PPROTOCOL "GBE";,parameter PLOL_SETTING 0;,parameter PDYN_RATE_CTRL "DISABLED";,parameter PPCIE_MAX_RATE "2.5";,parameter PDIFF_VAL_LOCK 19;,parameter PDIFF_VAL_UNLOCK 39;,parameter PPCLK_TC 65536;,parameter PDIFF_DIV11_VAL_LOCK 0;,parameter PDIFF_DIV11_VAL_UNLOCK 0;,parameter PPCLK_DIV11_TC 0;| diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/layer1.srs b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/layer1.srs new file mode 100644 index 0000000000000000000000000000000000000000..e9a57b6c497b111e14b31001cf9c2e7dbfaa9334 GIT binary patch literal 21541 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 SSlG`P2gGvxjPc+mO#cs3?v@(> literal 0 HcmV?d00001 diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/modulechange.db b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/modulechange.db new file mode 100644 index 0000000000000000000000000000000000000000..40736e7e2821bc1d114833fe7e940ffeb26fdc9a GIT binary patch literal 28672 zcmeI3PiP!f9LHyNW_M?k?7l=?mLh>ki?pF>#?Ypq7p*pxBsHzEqM)+O&b;i7nSabo zwv8uq>sdUBf?gCs1U=P@Cr_f_!3tFo|6v9HfFg=k(BFH>CfUS#nDmgt_rZSm&FpW# z@BKbAJLEU>^2ozyy^NbnQ4-jhd0ZJ*R8_gpG!;cD(5pHlFT_8-~s;%%OoapDDbvT82#)d|!0T4vWyoQ|DLm=5>- zt*x%dFZQ;^mkZ^_p+oB0s2qFA^ErJbZ1Z$mSL+*n+XsTN$YA&Ial*Tq7w|N*gSZzm z?yKd-=%~7ObaOC~gfJBEg4;@~@j!Qkk?hZKYc0w4eaAOHd&00JNY0(&JeH&RsAm~M5VfLm#_ zlv%!=WuC(=*Rz8tbgko)Q+G8lojhTst6|)-Q*P1U?N-;1+SW>tG#xwkg30a^KfJiG zFic*JoL;HJ1Fso-F;6GcZb$mDJ^Mwir@51*>+_qd?IG9BYRnU=c6wgboL(K*S_xCH z9ddWF+i@w+d*+A8Ya|CZ;k9)L*3D)I$*h{sEX~}hsgoyq^O_kTt72}ep3S)m*&N7e z6UJ$?W0SUiC-i>g*qIlFlYt$}!&oA(oQF}KT|5+L z>iS`Put;W=e9-K~%Q`)yIXz#7{)$8Mv10mBx_n9gfR4>;`7+$_;!ZrhLe~nJp*33| zvm7Vt4l^Quw5gKS-5aoMH}UMyYI~WLC9Ubyu`(XSbXDV4oJ8VsKs(Z`*>3UJNv*UU zcwSRXZCke~u7q@j6DP`(SLdI4OrZhBZ{Yv}f-si#KYLzbf3e@#&+L2lHT#@>!aic} zv-jA$>!Mf)`S~RdLCQ18ZME!5Dj}>-<{my=2KeF%G zm+Vv8fd&E~00JNY0w4eaAOHd&00JNY0wA!j3FwBV8oFNA)QYZ`sITco(t@UI6+_ds zN<}MZ1_fzGWq>j<*j0u7&HiA&vY*&>_7(e#cA$X(2!H?xfB*=900@8p2!H?xfB*>W zZvs^9tGXezEL1BAEflH#S9KwDC%{k(+GhQKZR`2}b@mPWf?eC+31W6200JNY0w4ea qAOHd&00JNY0w4eal7J}l%d*xN5Bx>FZwM&~p&J2)xDi120R9D(Wj?t8 literal 0 HcmV?d00001 diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/modulechange_mixhdl/layer0/modulechange.db b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/modulechange_mixhdl/layer0/modulechange.db new file mode 100644 index 0000000000000000000000000000000000000000..8054ea08c59320c9f0c2b4983a66d8bbfa2f0dee GIT binary patch literal 20480 zcmeI&yKmD#90zbaahkR?IXXoQm0VS*jYxY`eGDv6AfP@Fq7)(VP;{}c$x**#UqZu{ zjTwoJ9Wn9`Fm+;LfvFP{5)u;&NC?hu4Xp}7@=~e#p5$N8cJjTukK5sz+`hFYBsVwx z&}Gt`(@tx;u3a)sP1AIB6x5M6Lv`XKZSnp8HC>zj_Ozs4Wt8t|BypaL5z>TT>6&xKt z2zgfumq(JhLA=`dB~?c+R>sEk{<+_S#fyjoO~b*$Q+f%+#FCbXEMfkLDXn7Rf4Tn8n|4@ zzC^F%@=#c5)QX{^GCoGfx0n>ZH{-G(d5n3LmGLpQdjSu*C!=&?*K;atC>t6Jg>0um zt9rIsIUP&QhjJ@e=%l|~^sf3OzF*y+6|+OZJlYbH%CNZ*SyXa2P=5xT2BH6mTk5*{ zr$VFEAE?^AjHT|bCl+?kb7Lz)V)Iw5?q~?>FORAn!Ew1tYUw!Ex z4FV8=00bZa0SG_<0uX=z1Rwx`6D)xJ{|SD$SQ-Q%009U<00Izz00bZa0SG`~U*H$a Cu;JPO literal 0 HcmV?d00001 diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/modulechange_mixhdl/layer1/modulechange.db b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/modulechange_mixhdl/layer1/modulechange.db new file mode 100644 index 0000000000000000000000000000000000000000..a52bea9acd8153175b3177eda64f566717c23f5d GIT binary patch literal 20480 zcmeI&J#W)M7zc1WaT=D!Y*~nORfXEBX%1A1!~_M3)KV%@$^^)A>`QXgFDKu{5Vma0 z%t*|92R;M~OiWBjNK7oSz@3vos)7*hQdR$xe7TG5=kfEqESKco-EFQI>7-fgE3#^x zwQSqEMu=ruwmvHQm^4QZ%rR-^{J)xQt$cevtFLlu_bvB@d%pHs56~b00SG_<0uX=z z1Rwwb2teR;2<$pD^@RnSDZd@DI1T#|3z=X^C=X03H+DDH_cqAh`t|J%a^TeBoz0ts zC#p$qjRs54%GLVZoISic6_h8Pbaa~;Ie!Re-k-!`U6v7%@z~D>WSHJxAF&{U+(NwbgcRjW66NU+!I_d*^+s$i02$T zUfO=l0wqV!w^cqyt-XO@nf~%%603BySW!P z5-fZA7x>|oaVS5`xS!B2S5#%~H5pLFVxiZUQIVwvM!zAI*KIQqNGiKA=bni+HT2A9 zLa#LsTKU6ww;vVzfA_uRes{mRU))dbNB4uCqCo%x5P$##AOHafKmY;|fB*y_aN-4= znX+a7a4JRb6n(kqOGR%Ny=8i{|JQ%|M}q(aAOHafKmY;|fB*y_009U<;1mmB|9^@X b7o|Y}0uX=z1Rwwb2tWV=5P$###sWV9j=OdL literal 0 HcmV?d00001 diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.fdep b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.fdep new file mode 100644 index 0000000..fbb2b43 --- /dev/null +++ b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.fdep @@ -0,0 +1,37 @@ +#OPTIONS:"|-mixedhdl|-top|sgmii_ecp5|-layerid|0|-orig_srs|/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.srs|-prodtype|synplify_pro|-dspmac|-fixsmult|-infer_seqShift|-nram|-sdff_counter|-divnmod|-nostructver|-encrypt|-pro|-lite|-ui|-fid2|-ram|-sharing|on|-ll|2000|-autosm|-ignore_undefined_lib|-lib|work" +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/linux_a_64/c_vhdl":1542167766 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/location.map":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/snps_haps_pkg.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std1164.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/numeric.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/umr_capim.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/arith.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/unsigned.vhd":1542167610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/hyperents.vhd":1542167610 +#CUR:"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5.vhd":1557482333 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd":1542167599 +#OPTIONS:"|-mixedhdl|-modhint|/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/synwork/_verilog_hintfile|-top|work.sgmii_ecp5sll_core|-top|work.sgmii_ecp5rsl_core|-mpparams|/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/synwork/_mh_params|-layerid|1|-orig_srs|/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.srs|-prodtype|synplify_pro|-dspmac|-fixsmult|-infer_seqShift|-nram|-sdff_counter|-divnmod|-nostructver|-I|/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/|-I|/home/soft/lattice/diamond/3.10_x64/synpbase/lib|-v2001|-devicelib|/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v|-devicelib|/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v|-encrypt|-pro|-ui|-fid2|-ram|-sharing|on|-ll|2000|-autosm|-lib|work" +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/linux_a_64/c_ver":1542167761 +#CUR:"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/syn_results/synwork/_verilog_hintfile":1557482335 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v":1542167595 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v":1542167597 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v":1542167630 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v":1542167630 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v":1542167630 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh":1542167630 +#CUR:"/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v":1557482333 +0 "/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5.vhd" vhdl +1 "/home/adrian/git/trb5sc/template/project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v" verilog +#Dependency Lists(Uses List) +0 1 +1 -1 +#Dependency Lists(Users Of) +0 -1 +1 0 +#Design Unit to File Association +module work sgmii_ecp5sll_core 1 +module work sync 1 +module work sgmii_ecp5rsl_core 1 +module work sgmii_ecp5 0 +arch work sgmii_ecp5 v1 0 diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.linkerlog b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.linkerlog new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.srs b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.srs new file mode 100644 index 0000000000000000000000000000000000000000..c2c1102f8b3682272827b6083b836a6125eeb104 GIT binary patch literal 46529 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 o`)pQ~i?yA)z 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 Q0RR630BQZT4fnnR01+Tx?*IS* literal 0 HcmV?d00001 diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_m.srm b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_m.srm new file mode 100644 index 0000000000000000000000000000000000000000..bacca77869981b665c22adfb6d504b929f58e1d7 GIT binary patch literal 31347 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 LeHchIs-*z{BHI1d literal 0 HcmV?d00001 diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_m_srm/1.srm b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_m_srm/1.srm new file mode 100644 index 0000000000000000000000000000000000000000..a467cd31f2a8d29a3a20d57d9de4635d6dac219d GIT binary patch literal 67834 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_mult_srs/skeleton.srs b/gbe/cores/test_gbepcs/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_mult_srs/skeleton.srs new file mode 100644 index 0000000000000000000000000000000000000000..6e5c30e679b3233de2f4841512cd999901a33c46 GIT binary patch literal 6084 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 yu2Mnpt65z%|}E_$!g%jj+NHu^9a z#wgeO{_nb9?z;DU`JLzN{o$;&pR@Pb=lL;4K6&upfjc~{0)@YN`d~Exf~WlAu&8&l z)_7||x492J!{Gmcx>7CpA@5u>=Avh?JNr;?LAU9ohfIJU)N3n|I`Z>W=o3SX9lL!| zP1Zi{W4c^WeFds89i-L`Kcn_jDsXvwK1~nU5JYkAN>^^SY-_HVd zDSzj~6Nqt?7s3XZadH*vJsmrfOlDA^Kb`n4{UdJ;f?y)qN}cVF!ZoV)b%S%f{x$wI z_?305s@v(`RaN+>3g2(WQFyaL8DF+_;*Jxn)_5yq)5r9zvTGmf*jP6?%vz04i?d<( zejdBr(Lo6+k~-rFMJ_+%y~Lky*ohZG_htT-?tS>Ah9h_5YqsO>Kfju%=WS$L>AIEo z68f4N`f7JcG4ExU#}dizNS_Qp*~UxRE>H?^cUD}`V>`=xS+1$mk9sM)OgYixhy}F& z#Tk8l$|*DIzyH9{I) zK}neMb7!C;@P?p{mtgmNfaD>3=zgH9W<#-eDrVA)t%0D6BW}N&+skb!zq^z3^OM`{ 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/test_gbepcs/test_gbepcs.sbx b/gbe/cores/test_gbepcs/test_gbepcs.sbx new file mode 100644 index 0000000..63e4629 --- /dev/null +++ b/gbe/cores/test_gbepcs/test_gbepcs.sbx @@ -0,0 +1,2171 @@ + + + + LATTICE + LOCAL + test_gbepcs + 1.0 + + + Diamond_Synthesis + synthesis + + ./test_gbepcs.vhd + vhdlSource + + + + Diamond_Simulation + simulation + + ./test_gbepcs.vhd + vhdlSource + + + + + + + + + sgmii_ecp5_ctc_del_s + sgmii_ecp5_ctc_del_s + + out + + + + sgmii_ecp5.ctc_del_s + + + + + sgmii_ecp5_ctc_ins_s + sgmii_ecp5_ctc_ins_s + + out + + + + sgmii_ecp5.ctc_ins_s + + + + + sgmii_ecp5_ctc_orun_s + sgmii_ecp5_ctc_orun_s + + out + + + + sgmii_ecp5.ctc_orun_s + + + + + sgmii_ecp5_ctc_urun_s + sgmii_ecp5_ctc_urun_s + + out + + + + sgmii_ecp5.ctc_urun_s + + + + + sgmii_ecp5_cyawstn + sgmii_ecp5_cyawstn + + in + + + + sgmii_ecp5.cyawstn + + + + + sgmii_ecp5_hdinn + sgmii_ecp5_hdinn + + in + + + + sgmii_ecp5.hdinn + + + + + sgmii_ecp5_hdinp + sgmii_ecp5_hdinp + + in + + + + sgmii_ecp5.hdinp + + + + + sgmii_ecp5_hdoutn + sgmii_ecp5_hdoutn + + out + + + + sgmii_ecp5.hdoutn + + + + + sgmii_ecp5_hdoutp + sgmii_ecp5_hdoutp + + out + + + + sgmii_ecp5.hdoutp + + + + + sgmii_ecp5_lsm_status_s + sgmii_ecp5_lsm_status_s + + out + + + + sgmii_ecp5.lsm_status_s + + + + + sgmii_ecp5_pll_lol + sgmii_ecp5_pll_lol + + out + + + + sgmii_ecp5.pll_lol + + + + + sgmii_ecp5_pll_refclki + sgmii_ecp5_pll_refclki + + in + + + + sgmii_ecp5.pll_refclki + + + + + sgmii_ecp5_rsl_disable + sgmii_ecp5_rsl_disable + + in + + + + sgmii_ecp5.rsl_disable + + + + + sgmii_ecp5_rsl_rst + sgmii_ecp5_rsl_rst + + in + + + + sgmii_ecp5.rsl_rst + + + + + sgmii_ecp5_rsl_rx_rdy + sgmii_ecp5_rsl_rx_rdy + + out + + + + sgmii_ecp5.rsl_rx_rdy + + + + + sgmii_ecp5_rsl_tx_rdy + sgmii_ecp5_rsl_tx_rdy + + out + + + + sgmii_ecp5.rsl_tx_rdy + + + + + sgmii_ecp5_rst_dual_c + sgmii_ecp5_rst_dual_c + + in + + + + sgmii_ecp5.rst_dual_c + + + + + sgmii_ecp5_rx_cdr_lol_s + sgmii_ecp5_rx_cdr_lol_s + + out + + + + sgmii_ecp5.rx_cdr_lol_s + + + + + sgmii_ecp5_rx_los_low_s + sgmii_ecp5_rx_los_low_s + + out + + + + sgmii_ecp5.rx_los_low_s + + + + + sgmii_ecp5_rx_pcs_rst_c + sgmii_ecp5_rx_pcs_rst_c + + in + + + + sgmii_ecp5.rx_pcs_rst_c + + + + + sgmii_ecp5_rx_pwrup_c + sgmii_ecp5_rx_pwrup_c + + in + + + + sgmii_ecp5.rx_pwrup_c + + + + + sgmii_ecp5_rx_serdes_rst_c + sgmii_ecp5_rx_serdes_rst_c + + in + + + + sgmii_ecp5.rx_serdes_rst_c + + + + + sgmii_ecp5_rxrefclk + sgmii_ecp5_rxrefclk + + in + + + + sgmii_ecp5.rxrefclk + + + + + sgmii_ecp5_sci_en + sgmii_ecp5_sci_en + + in + + + + sgmii_ecp5.sci_en + + + + + sgmii_ecp5_sci_en_dual + sgmii_ecp5_sci_en_dual + + in + + + + sgmii_ecp5.sci_en_dual + + + + + sgmii_ecp5_sci_int + sgmii_ecp5_sci_int + + out + + + + sgmii_ecp5.sci_int + + + + + sgmii_ecp5_sci_rd + sgmii_ecp5_sci_rd + + in + + + + sgmii_ecp5.sci_rd + + + + + sgmii_ecp5_sci_sel + sgmii_ecp5_sci_sel + + in + + + + sgmii_ecp5.sci_sel + + + + + sgmii_ecp5_sci_sel_dual + sgmii_ecp5_sci_sel_dual + + in + + + + sgmii_ecp5.sci_sel_dual + + + + + sgmii_ecp5_sci_wrn + sgmii_ecp5_sci_wrn + + in + + + + sgmii_ecp5.sci_wrn + + + + + sgmii_ecp5_serdes_pdb + sgmii_ecp5_serdes_pdb + + in + + + + sgmii_ecp5.serdes_pdb + + + + + sgmii_ecp5_serdes_rst_dual_c + sgmii_ecp5_serdes_rst_dual_c + + in + + + + sgmii_ecp5.serdes_rst_dual_c + + + + + sgmii_ecp5_signal_detect_c + sgmii_ecp5_signal_detect_c + + in + + + + sgmii_ecp5.signal_detect_c + + + + + sgmii_ecp5_tx_pclk + sgmii_ecp5_tx_pclk + + out + + + + sgmii_ecp5.tx_pclk + + + + + sgmii_ecp5_tx_pcs_rst_c + sgmii_ecp5_tx_pcs_rst_c + + in + + + + sgmii_ecp5.tx_pcs_rst_c + + + + + sgmii_ecp5_tx_pwrup_c + sgmii_ecp5_tx_pwrup_c + + in + + + + sgmii_ecp5.tx_pwrup_c + + + + + sgmii_ecp5_tx_serdes_rst_c + sgmii_ecp5_tx_serdes_rst_c + + in + + + + sgmii_ecp5.tx_serdes_rst_c + + + + + sgmii_ecp5_txi_clk + sgmii_ecp5_txi_clk + + in + + + + sgmii_ecp5.txi_clk + + + + + sgmii_ecp5_rx_cv_err + sgmii_ecp5_rx_cv_err + + out + + 0 + 0 + + + + + sgmii_ecp5.rx_cv_err + + + + + sgmii_ecp5_rx_disp_err + sgmii_ecp5_rx_disp_err + + out + + 0 + 0 + + + + + sgmii_ecp5.rx_disp_err + + + + + sgmii_ecp5_rx_k + sgmii_ecp5_rx_k + + out + + 0 + 0 + + + + + sgmii_ecp5.rx_k + + + + + sgmii_ecp5_rxdata + sgmii_ecp5_rxdata + + out + + 7 + 0 + + + + + sgmii_ecp5.rxdata + + + + + sgmii_ecp5_sci_addr + sgmii_ecp5_sci_addr + + in + + 5 + 0 + + + + + sgmii_ecp5.sci_addr + + + + + sgmii_ecp5_sci_rddata + sgmii_ecp5_sci_rddata + + out + + 7 + 0 + + + + + sgmii_ecp5.sci_rddata + + + + + sgmii_ecp5_sci_wrdata + sgmii_ecp5_sci_wrdata + + in + + 7 + 0 + + + + + sgmii_ecp5.sci_wrdata + + + + + sgmii_ecp5_tx_disp_correct + sgmii_ecp5_tx_disp_correct + + in + + 0 + 0 + + + + + sgmii_ecp5.tx_disp_correct + + + + + sgmii_ecp5_tx_k + sgmii_ecp5_tx_k + + in + + 0 + 0 + + + + + sgmii_ecp5.tx_k + + + + + sgmii_ecp5_txdata + sgmii_ecp5_txdata + + in + + 7 + 0 + + + + + sgmii_ecp5.txdata + + + + + sgmii_ecp5_xmit + sgmii_ecp5_xmit + + in + + 0 + 0 + + + + + sgmii_ecp5.xmit + + + + + + + LFE5UM-85F-8BG756C + synplify + 2019-05-10.11:53:39 AM + 2019-05-10.11:59:27 AM + 3.10.3.144 + VHDL + + false + false + false + false + false + false + false + false + false + false + false + + + + + + + + LATTICE + LOCAL + test_gbepcs + 1.0 + + + sgmii_ecp5 + + Lattice Semiconductor Corporation + LEGACY + PCS + 8.2 + + + Diamond_Simulation + simulation + + ./sgmii_ecp5/sgmii_ecp5_softlogic.v + verilogSource + + + ./sgmii_ecp5/sgmii_ecp5.vhd + vhdlSource + + + + Diamond_Synthesis + synthesis + + ./sgmii_ecp5/sgmii_ecp5_softlogic.v + verilogSource + + + ./sgmii_ecp5/sgmii_ecp5.vhd + vhdlSource + + + + + + Configuration + none + ${sbp_path}/${instance}/generate_core.tcl + CONFIG + + + CreateNGD + none + ${sbp_path}/${instance}/generate_ngd.tcl + CONFIG + + + Generation + none + ${sbp_path}/${instance}/generate_core.tcl + GENERATE + + + + + + + ctc_del_s + ctc_del_s + + out + + + + ctc_ins_s + ctc_ins_s + + out + + + + ctc_orun_s + ctc_orun_s + + out + + + + ctc_urun_s + ctc_urun_s + + out + + + + cyawstn + cyawstn + + in + + + + hdinn + hdinn + + in + + + + true + + + + + hdinp + hdinp + + in + + + + true + + + + + hdoutn + hdoutn + + out + + + + true + + + + + hdoutp + hdoutp + + out + + + + true + + + + + lsm_status_s + lsm_status_s + + out + + + + pll_lol + pll_lol + + out + + + + pll_refclki + pll_refclki + + in + + + + rsl_disable + rsl_disable + + in + + + + rsl_rst + rsl_rst + + in + + + + rsl_rx_rdy + rsl_rx_rdy + + out + + + + rsl_tx_rdy + rsl_tx_rdy + + out + + + + rst_dual_c + rst_dual_c + + in + + + + rx_cdr_lol_s + rx_cdr_lol_s + + out + + + + rx_los_low_s + rx_los_low_s + + out + + + + rx_pcs_rst_c + rx_pcs_rst_c + + in + + + + rx_pwrup_c + rx_pwrup_c + + in + + + + rx_serdes_rst_c + rx_serdes_rst_c + + in + + + + rxrefclk + rxrefclk + + in + + + + sci_en + sci_en + + in + + + + sci_en_dual + sci_en_dual + + in + + + + sci_int + sci_int + + out + + + + sci_rd + sci_rd + + in + + + + sci_sel + sci_sel + + in + + + + sci_sel_dual + sci_sel_dual + + in + + + + sci_wrn + sci_wrn + + in + + + + serdes_pdb + serdes_pdb + + in + + + + serdes_rst_dual_c + serdes_rst_dual_c + + in + + + + signal_detect_c + signal_detect_c + + in + + + + sli_rst + sli_rst + + in + + + + true + + + + + tx_pclk + tx_pclk + + out + + + + tx_pcs_rst_c + tx_pcs_rst_c + + in + + + + tx_pwrup_c + tx_pwrup_c + + in + + + + tx_serdes_rst_c + tx_serdes_rst_c + + in + + + + txi_clk + txi_clk + + in + + + + rx_cv_err + rx_cv_err + + out + + 0 + 0 + + + + + rx_disp_err + rx_disp_err + + out + + 0 + 0 + + + + + rx_k + rx_k + + out + + 0 + 0 + + + + + rxdata + rxdata + + out + + 7 + 0 + + + + + sci_addr + sci_addr + + in + + 5 + 0 + + + + + sci_rddata + sci_rddata + + out + + 7 + 0 + + + + + sci_wrdata + sci_wrdata + + in + + 7 + 0 + + + + + tx_disp_correct + tx_disp_correct + + in + + 0 + 0 + + + + + tx_k + tx_k + + in + + 0 + 0 + + + + + txdata + txdata + + in + + 7 + 0 + + + + + xmit + xmit + + in + + 0 + 0 + + + + + + + synplify + 2019-05-10.11:59:27 AM + + false + false + false + false + false + false + false + false + false + false + LPM + PRIMARY + PRIMARY + false + false + + + + Lane0 + DCUCHANNEL + + true + false + DCUCHANNEL + 9 + + + + + + + Family + ecp5um + + + OperatingCondition + COM + + + Package + CABGA756 + + + PartName + LFE5UM-85F-8BG756C + + + PartType + LFE5UM-85F + + + SpeedGrade + 8 + + + Status + P + + + + CoreName + PCS + + + CoreRevision + 8.2 + + + CoreStatus + Demo + + + CoreType + LPM + + + Date + 05/10/2019 + + + ModuleName + sgmii_ecp5 + + + ParameterFileVersion + 1.0 + + + SourceFormat + VHDL + + + Time + 11:58:52 + + + VendorName + Lattice Semiconductor Corporation + + + + ;ACHARA + 0 00H + + + ;ACHARB + 0 00H + + + ;ACHARM + 0 00H + + + ;RXMCAENABLE + Disabled + + + CDRLOLACTION + Full Recalibration + + + CDRLOLRANGE + 0 + + + CDR_MAX_RATE + 2 + + + CDR_MULT + 10X + + + CDR_REF_RATE + 200.0000 + + + CH_MODE + Rx and Tx + + + Destination + Synplicity + + + EDIF + 1 + + + Expression + BusA(0 to 7) + + + IO + 0 + + + IO_TYPE + GbE + + + LEQ + 0 + + + LOOPBACK + Disabled + + + LOSPORT + Enabled + + + NUM_CHS + 1 + + + Order + Big Endian [MSB:LSB] + + + PPORT_RX_RDY + Enabled + + + PPORT_TX_RDY + Enabled + + + PROTOCOL + GbE + + + PWAIT_RX_RDY + 3000 + + + PWAIT_TX_RDY + 3000 + + + RCSRC + Disabled + + + REFCLK_RATE + 200.0000 + + + RSTSEQSEL + Enabled + + + RX8B10B + Enabled + + + RXCOMMAA + 1010000011 + + + RXCOMMAB + 0101111100 + + + RXCOMMAM + 1111111111 + + + RXCOUPLING + AC + + + RXCTC + Enabled + + + RXCTCBYTEN + 0 00H + + + RXCTCBYTEN1 + 0 00H + + + RXCTCBYTEN2 + 1 BCH + + + RXCTCBYTEN3 + 0 50H + + + RXCTCMATCHPATTERN + M2-S2 + + + RXDIFFTERM + 50 ohms + + + RXFIFO_ENABLE + Enabled + + + RXINVPOL + Non-invert + + + RXLDR + Off + + + RXLOSTHRESHOLD + 2 + + + RXLSM + Enabled + + + RXSC + K28P5 + + + RXWA + Barrel Shift + + + RX_DATA_WIDTH + 8/10-Bit + + + RX_FICLK_RATE + 200.0000 + + + RX_LINE_RATE + 2.0000 + + + RX_RATE_DIV + Full Rate + + + SCIPORT + Enabled + + + SOFTLOL + Enabled + + + TX8B10B + Enabled + + + TXAMPLITUDE + 1100 + + + TXDEPOST + Disabled + + + TXDEPRE + Disabled + + + TXDIFFTERM + 50 ohms + + + TXFIFO_ENABLE + Enabled + + + TXINVPOL + Non-invert + + + TXLDR + Off + + + TXPLLLOLTHRESHOLD + 0 + + + TXPLLMULT + 10X + + + TX_DATA_WIDTH + 8/10-Bit + + + TX_FICLK_RATE + 200.0000 + + + TX_LINE_RATE + 2.0000 + + + TX_MAX_RATE + 2 + + + TX_RATE_DIV + Full Rate + + + VHDL + 1 + + + Verilog + 0 + + + + sgmii_ecp5.pp + pp + + + sgmii_ecp5.sym + sym + + + sgmii_ecp5.tft + tft + + + sgmii_ecp5.txt + pcs_module + + + + + DCUCHANNEL + 1 + + true + false + DCUCHANNEL + + Lane0 + + + + + + + + + sgmii_ecp5_ctc_del_s + sgmii_ecp5_ctc_del_s + + + + + sgmii_ecp5_ctc_ins_s + sgmii_ecp5_ctc_ins_s + + + + + sgmii_ecp5_ctc_orun_s + sgmii_ecp5_ctc_orun_s + + + + + sgmii_ecp5_ctc_urun_s + sgmii_ecp5_ctc_urun_s + + + + + sgmii_ecp5_cyawstn + sgmii_ecp5_cyawstn + + + + + sgmii_ecp5_hdinn + sgmii_ecp5_hdinn + + + sys_yes + + + + + + + sgmii_ecp5_hdinp + sgmii_ecp5_hdinp + + + sys_yes + + + + + + + sgmii_ecp5_hdoutn + sgmii_ecp5_hdoutn + + + sys_yes + + + + + + + sgmii_ecp5_hdoutp + sgmii_ecp5_hdoutp + + + sys_yes + + + + + + + sgmii_ecp5_lsm_status_s + sgmii_ecp5_lsm_status_s + + + + + sgmii_ecp5_pll_lol + sgmii_ecp5_pll_lol + + + + + sgmii_ecp5_pll_refclki + sgmii_ecp5_pll_refclki + + + + + sgmii_ecp5_rsl_disable + sgmii_ecp5_rsl_disable + + + + + sgmii_ecp5_rsl_rst + sgmii_ecp5_rsl_rst + + + + + sgmii_ecp5_rsl_rx_rdy + sgmii_ecp5_rsl_rx_rdy + + + + + sgmii_ecp5_rsl_tx_rdy + sgmii_ecp5_rsl_tx_rdy + + + + + sgmii_ecp5_rst_dual_c + sgmii_ecp5_rst_dual_c + + + + + sgmii_ecp5_rx_cdr_lol_s + sgmii_ecp5_rx_cdr_lol_s + + + + + sgmii_ecp5_rx_los_low_s + sgmii_ecp5_rx_los_low_s + + + + + sgmii_ecp5_rx_pcs_rst_c + sgmii_ecp5_rx_pcs_rst_c + + + + + sgmii_ecp5_rx_pwrup_c + sgmii_ecp5_rx_pwrup_c + + + + + sgmii_ecp5_rx_serdes_rst_c + sgmii_ecp5_rx_serdes_rst_c + + + + + sgmii_ecp5_rxrefclk + sgmii_ecp5_rxrefclk + + + + + sgmii_ecp5_sci_en + sgmii_ecp5_sci_en + + + + + sgmii_ecp5_sci_en_dual + sgmii_ecp5_sci_en_dual + + + + + sgmii_ecp5_sci_int + sgmii_ecp5_sci_int + + + + + sgmii_ecp5_sci_rd + sgmii_ecp5_sci_rd + + + + + sgmii_ecp5_sci_sel + sgmii_ecp5_sci_sel + + + + + sgmii_ecp5_sci_sel_dual + sgmii_ecp5_sci_sel_dual + + + + + sgmii_ecp5_sci_wrn + sgmii_ecp5_sci_wrn + + + + + sgmii_ecp5_serdes_pdb + sgmii_ecp5_serdes_pdb + + + + + sgmii_ecp5_serdes_rst_dual_c + sgmii_ecp5_serdes_rst_dual_c + + + + + sgmii_ecp5_signal_detect_c + sgmii_ecp5_signal_detect_c + + + + + sgmii_ecp5_tx_pclk + sgmii_ecp5_tx_pclk + + + + + sgmii_ecp5_tx_pcs_rst_c + sgmii_ecp5_tx_pcs_rst_c + + + + + sgmii_ecp5_tx_pwrup_c + sgmii_ecp5_tx_pwrup_c + + + + + sgmii_ecp5_tx_serdes_rst_c + sgmii_ecp5_tx_serdes_rst_c + + + + + sgmii_ecp5_txi_clk + sgmii_ecp5_txi_clk + + + + + sgmii_ecp5_rx_cv_err + sgmii_ecp5_rx_cv_err + + + + + sgmii_ecp5_rx_cv_err[0] + sgmii_ecp5_rx_cv_err[0] + + + + + sgmii_ecp5_rx_disp_err + sgmii_ecp5_rx_disp_err + + + + + sgmii_ecp5_rx_disp_err[0] + sgmii_ecp5_rx_disp_err[0] + + + + + sgmii_ecp5_rx_k + sgmii_ecp5_rx_k + + + + + sgmii_ecp5_rx_k[0] + sgmii_ecp5_rx_k[0] + + + + + sgmii_ecp5_rxdata + sgmii_ecp5_rxdata + + + + + sgmii_ecp5_rxdata[0] + sgmii_ecp5_rxdata[0] + + + + + sgmii_ecp5_rxdata[1] + sgmii_ecp5_rxdata[1] + + + + + sgmii_ecp5_rxdata[2] + sgmii_ecp5_rxdata[2] + + + + + sgmii_ecp5_rxdata[3] + sgmii_ecp5_rxdata[3] + + + + + sgmii_ecp5_rxdata[4] + sgmii_ecp5_rxdata[4] + + + + + sgmii_ecp5_rxdata[5] + sgmii_ecp5_rxdata[5] + + + + + sgmii_ecp5_rxdata[6] + sgmii_ecp5_rxdata[6] + + + + + sgmii_ecp5_rxdata[7] + sgmii_ecp5_rxdata[7] + + + + + sgmii_ecp5_sci_addr + sgmii_ecp5_sci_addr + + + + + sgmii_ecp5_sci_addr[0] + sgmii_ecp5_sci_addr[0] + + + + + sgmii_ecp5_sci_addr[1] + sgmii_ecp5_sci_addr[1] + + + + + sgmii_ecp5_sci_addr[2] + sgmii_ecp5_sci_addr[2] + + + + + sgmii_ecp5_sci_addr[3] + sgmii_ecp5_sci_addr[3] + + + + + sgmii_ecp5_sci_addr[4] + sgmii_ecp5_sci_addr[4] + + + + + sgmii_ecp5_sci_addr[5] + sgmii_ecp5_sci_addr[5] + + + + + sgmii_ecp5_sci_rddata + sgmii_ecp5_sci_rddata + + + + + sgmii_ecp5_sci_rddata[0] + sgmii_ecp5_sci_rddata[0] + + + + + sgmii_ecp5_sci_rddata[1] + sgmii_ecp5_sci_rddata[1] + + + + + sgmii_ecp5_sci_rddata[2] + sgmii_ecp5_sci_rddata[2] + + + + + sgmii_ecp5_sci_rddata[3] + sgmii_ecp5_sci_rddata[3] + + + + + sgmii_ecp5_sci_rddata[4] + sgmii_ecp5_sci_rddata[4] + + + + + sgmii_ecp5_sci_rddata[5] + sgmii_ecp5_sci_rddata[5] + + + + + sgmii_ecp5_sci_rddata[6] + sgmii_ecp5_sci_rddata[6] + + + + + sgmii_ecp5_sci_rddata[7] + sgmii_ecp5_sci_rddata[7] + + + + + sgmii_ecp5_sci_wrdata + sgmii_ecp5_sci_wrdata + + + + + sgmii_ecp5_sci_wrdata[0] + sgmii_ecp5_sci_wrdata[0] + + + + + sgmii_ecp5_sci_wrdata[1] + sgmii_ecp5_sci_wrdata[1] + + + + + sgmii_ecp5_sci_wrdata[2] + sgmii_ecp5_sci_wrdata[2] + + + + + sgmii_ecp5_sci_wrdata[3] + sgmii_ecp5_sci_wrdata[3] + + + + + sgmii_ecp5_sci_wrdata[4] + sgmii_ecp5_sci_wrdata[4] + + + + + sgmii_ecp5_sci_wrdata[5] + sgmii_ecp5_sci_wrdata[5] + + + + + sgmii_ecp5_sci_wrdata[6] + sgmii_ecp5_sci_wrdata[6] + + + + + sgmii_ecp5_sci_wrdata[7] + sgmii_ecp5_sci_wrdata[7] + + + + + sgmii_ecp5_tx_disp_correct + sgmii_ecp5_tx_disp_correct + + + + + sgmii_ecp5_tx_disp_correct[0] + sgmii_ecp5_tx_disp_correct[0] + + + + + sgmii_ecp5_tx_k + sgmii_ecp5_tx_k + + + + + sgmii_ecp5_tx_k[0] + sgmii_ecp5_tx_k[0] + + + + + sgmii_ecp5_txdata + sgmii_ecp5_txdata + + + + + sgmii_ecp5_txdata[0] + sgmii_ecp5_txdata[0] + + + + + sgmii_ecp5_txdata[1] + sgmii_ecp5_txdata[1] + + + + + sgmii_ecp5_txdata[2] + sgmii_ecp5_txdata[2] + + + + + sgmii_ecp5_txdata[3] + sgmii_ecp5_txdata[3] + + + + + sgmii_ecp5_txdata[4] + sgmii_ecp5_txdata[4] + + + + + sgmii_ecp5_txdata[5] + sgmii_ecp5_txdata[5] + + + + + sgmii_ecp5_txdata[6] + sgmii_ecp5_txdata[6] + + + + + sgmii_ecp5_txdata[7] + sgmii_ecp5_txdata[7] + + + + + sgmii_ecp5_xmit + sgmii_ecp5_xmit + + + + + sgmii_ecp5_xmit[0] + sgmii_ecp5_xmit[0] + + + + + + diff --git a/gbe/cores/test_gbepcs/test_gbepcs.vhd b/gbe/cores/test_gbepcs/test_gbepcs.vhd new file mode 100644 index 0000000..6f75c97 --- /dev/null +++ b/gbe/cores/test_gbepcs/test_gbepcs.vhd @@ -0,0 +1,167 @@ + + +-- +-- Verific VHDL Description of module test_gbepcs +-- + +library ieee ; +use ieee.std_logic_1164.all ; + +entity test_gbepcs is + port (sgmii_ecp5_rx_cv_err: out std_logic_vector(0 downto 0); + sgmii_ecp5_rx_disp_err: out std_logic_vector(0 downto 0); + sgmii_ecp5_rx_k: out std_logic_vector(0 downto 0); + sgmii_ecp5_rxdata: out std_logic_vector(7 downto 0); + sgmii_ecp5_sci_addr: in std_logic_vector(5 downto 0); + sgmii_ecp5_sci_rddata: out std_logic_vector(7 downto 0); + sgmii_ecp5_sci_wrdata: in std_logic_vector(7 downto 0); + sgmii_ecp5_tx_disp_correct: in std_logic_vector(0 downto 0); + sgmii_ecp5_tx_k: in std_logic_vector(0 downto 0); + sgmii_ecp5_txdata: in std_logic_vector(7 downto 0); + sgmii_ecp5_xmit: in std_logic_vector(0 downto 0); + sgmii_ecp5_ctc_del_s: out std_logic; + sgmii_ecp5_ctc_ins_s: out std_logic; + sgmii_ecp5_ctc_orun_s: out std_logic; + sgmii_ecp5_ctc_urun_s: out std_logic; + sgmii_ecp5_cyawstn: in std_logic; + sgmii_ecp5_hdinn: in std_logic; + sgmii_ecp5_hdinp: in std_logic; + sgmii_ecp5_hdoutn: out std_logic; + sgmii_ecp5_hdoutp: out std_logic; + sgmii_ecp5_lsm_status_s: out std_logic; + sgmii_ecp5_pll_lol: out std_logic; + sgmii_ecp5_pll_refclki: in std_logic; + sgmii_ecp5_rsl_disable: in std_logic; + sgmii_ecp5_rsl_rst: in std_logic; + sgmii_ecp5_rsl_rx_rdy: out std_logic; + sgmii_ecp5_rsl_tx_rdy: out std_logic; + sgmii_ecp5_rst_dual_c: in std_logic; + sgmii_ecp5_rx_cdr_lol_s: out std_logic; + sgmii_ecp5_rx_los_low_s: out std_logic; + sgmii_ecp5_rx_pcs_rst_c: in std_logic; + sgmii_ecp5_rx_pwrup_c: in std_logic; + sgmii_ecp5_rx_serdes_rst_c: in std_logic; + sgmii_ecp5_rxrefclk: in std_logic; + sgmii_ecp5_sci_en: in std_logic; + sgmii_ecp5_sci_en_dual: in std_logic; + sgmii_ecp5_sci_int: out std_logic; + sgmii_ecp5_sci_rd: in std_logic; + sgmii_ecp5_sci_sel: in std_logic; + sgmii_ecp5_sci_sel_dual: in std_logic; + sgmii_ecp5_sci_wrn: in std_logic; + sgmii_ecp5_serdes_pdb: in std_logic; + sgmii_ecp5_serdes_rst_dual_c: in std_logic; + sgmii_ecp5_signal_detect_c: in std_logic; + sgmii_ecp5_tx_pclk: out std_logic; + sgmii_ecp5_tx_pcs_rst_c: in std_logic; + sgmii_ecp5_tx_pwrup_c: in std_logic; + sgmii_ecp5_tx_serdes_rst_c: in std_logic; + sgmii_ecp5_txi_clk: in std_logic + ); + +end entity test_gbepcs; -- sbp_module=true + +architecture test_gbepcs of test_gbepcs is + component sgmii_ecp5 is + port (rx_cv_err: out std_logic_vector(0 downto 0); + rx_disp_err: out std_logic_vector(0 downto 0); + rx_k: out std_logic_vector(0 downto 0); + rxdata: out std_logic_vector(7 downto 0); + sci_addr: in std_logic_vector(5 downto 0); + sci_rddata: out std_logic_vector(7 downto 0); + sci_wrdata: in std_logic_vector(7 downto 0); + tx_disp_correct: in std_logic_vector(0 downto 0); + tx_k: in std_logic_vector(0 downto 0); + txdata: in std_logic_vector(7 downto 0); + xmit: in std_logic_vector(0 downto 0); + ctc_del_s: out std_logic; + ctc_ins_s: out std_logic; + ctc_orun_s: out std_logic; + ctc_urun_s: out std_logic; + cyawstn: in std_logic; + hdinn: in std_logic; + hdinp: in std_logic; + hdoutn: out std_logic; + hdoutp: out std_logic; + lsm_status_s: out std_logic; + pll_lol: out std_logic; + pll_refclki: in std_logic; + rsl_disable: in std_logic; + rsl_rst: in std_logic; + rsl_rx_rdy: out std_logic; + rsl_tx_rdy: out std_logic; + rst_dual_c: in std_logic; + rx_cdr_lol_s: out std_logic; + rx_los_low_s: out std_logic; + rx_pcs_rst_c: in std_logic; + rx_pwrup_c: in std_logic; + rx_serdes_rst_c: in std_logic; + rxrefclk: in std_logic; + sci_en: in std_logic; + sci_en_dual: in std_logic; + sci_int: out std_logic; + sci_rd: in std_logic; + sci_sel: in std_logic; + sci_sel_dual: in std_logic; + sci_wrn: in std_logic; + serdes_pdb: in std_logic; + serdes_rst_dual_c: in std_logic; + signal_detect_c: in std_logic; + sli_rst: in std_logic; + tx_pclk: out std_logic; + tx_pcs_rst_c: in std_logic; + tx_pwrup_c: in std_logic; + tx_serdes_rst_c: in std_logic; + txi_clk: in std_logic + ); + + end component sgmii_ecp5; -- not_need_bbox=true + + + signal sli_rst_wire0,gnd : std_logic; +begin + sli_rst_wire0 <= sgmii_ecp5_serdes_rst_dual_c OR sgmii_ecp5_tx_serdes_rst_c OR (NOT sgmii_ecp5_serdes_pdb) OR (NOT sgmii_ecp5_tx_pwrup_c); + sgmii_ecp5_inst: component sgmii_ecp5 port map (rx_cv_err(0)=>sgmii_ecp5_rx_cv_err(0), + rx_disp_err(0)=>sgmii_ecp5_rx_disp_err(0),rx_k(0)=>sgmii_ecp5_rx_k(0), + rxdata(7)=>sgmii_ecp5_rxdata(7),rxdata(6)=>sgmii_ecp5_rxdata(6), + rxdata(5)=>sgmii_ecp5_rxdata(5),rxdata(4)=>sgmii_ecp5_rxdata(4), + rxdata(3)=>sgmii_ecp5_rxdata(3),rxdata(2)=>sgmii_ecp5_rxdata(2), + rxdata(1)=>sgmii_ecp5_rxdata(1),rxdata(0)=>sgmii_ecp5_rxdata(0), + sci_addr(5)=>sgmii_ecp5_sci_addr(5),sci_addr(4)=>sgmii_ecp5_sci_addr(4), + sci_addr(3)=>sgmii_ecp5_sci_addr(3),sci_addr(2)=>sgmii_ecp5_sci_addr(2), + sci_addr(1)=>sgmii_ecp5_sci_addr(1),sci_addr(0)=>sgmii_ecp5_sci_addr(0), + sci_rddata(7)=>sgmii_ecp5_sci_rddata(7),sci_rddata(6)=>sgmii_ecp5_sci_rddata(6), + sci_rddata(5)=>sgmii_ecp5_sci_rddata(5),sci_rddata(4)=>sgmii_ecp5_sci_rddata(4), + sci_rddata(3)=>sgmii_ecp5_sci_rddata(3),sci_rddata(2)=>sgmii_ecp5_sci_rddata(2), + sci_rddata(1)=>sgmii_ecp5_sci_rddata(1),sci_rddata(0)=>sgmii_ecp5_sci_rddata(0), + sci_wrdata(7)=>sgmii_ecp5_sci_wrdata(7),sci_wrdata(6)=>sgmii_ecp5_sci_wrdata(6), + sci_wrdata(5)=>sgmii_ecp5_sci_wrdata(5),sci_wrdata(4)=>sgmii_ecp5_sci_wrdata(4), + sci_wrdata(3)=>sgmii_ecp5_sci_wrdata(3),sci_wrdata(2)=>sgmii_ecp5_sci_wrdata(2), + sci_wrdata(1)=>sgmii_ecp5_sci_wrdata(1),sci_wrdata(0)=>sgmii_ecp5_sci_wrdata(0), + tx_disp_correct(0)=>sgmii_ecp5_tx_disp_correct(0),tx_k(0)=>sgmii_ecp5_tx_k(0), + txdata(7)=>sgmii_ecp5_txdata(7),txdata(6)=>sgmii_ecp5_txdata(6), + txdata(5)=>sgmii_ecp5_txdata(5),txdata(4)=>sgmii_ecp5_txdata(4), + txdata(3)=>sgmii_ecp5_txdata(3),txdata(2)=>sgmii_ecp5_txdata(2), + txdata(1)=>sgmii_ecp5_txdata(1),txdata(0)=>sgmii_ecp5_txdata(0), + xmit(0)=>sgmii_ecp5_xmit(0),ctc_del_s=>sgmii_ecp5_ctc_del_s,ctc_ins_s=>sgmii_ecp5_ctc_ins_s, + ctc_orun_s=>sgmii_ecp5_ctc_orun_s,ctc_urun_s=>sgmii_ecp5_ctc_urun_s, + cyawstn=>sgmii_ecp5_cyawstn,hdinn=>sgmii_ecp5_hdinn,hdinp=>sgmii_ecp5_hdinp, + hdoutn=>sgmii_ecp5_hdoutn,hdoutp=>sgmii_ecp5_hdoutp,lsm_status_s=>sgmii_ecp5_lsm_status_s, + pll_lol=>sgmii_ecp5_pll_lol,pll_refclki=>sgmii_ecp5_pll_refclki, + rsl_disable=>sgmii_ecp5_rsl_disable,rsl_rst=>sgmii_ecp5_rsl_rst, + rsl_rx_rdy=>sgmii_ecp5_rsl_rx_rdy,rsl_tx_rdy=>sgmii_ecp5_rsl_tx_rdy, + rst_dual_c=>sgmii_ecp5_rst_dual_c,rx_cdr_lol_s=>sgmii_ecp5_rx_cdr_lol_s, + rx_los_low_s=>sgmii_ecp5_rx_los_low_s,rx_pcs_rst_c=>sgmii_ecp5_rx_pcs_rst_c, + rx_pwrup_c=>sgmii_ecp5_rx_pwrup_c,rx_serdes_rst_c=>sgmii_ecp5_rx_serdes_rst_c, + rxrefclk=>sgmii_ecp5_rxrefclk,sci_en=>sgmii_ecp5_sci_en,sci_en_dual=>sgmii_ecp5_sci_en_dual, + sci_int=>sgmii_ecp5_sci_int,sci_rd=>sgmii_ecp5_sci_rd,sci_sel=>sgmii_ecp5_sci_sel, + sci_sel_dual=>sgmii_ecp5_sci_sel_dual,sci_wrn=>sgmii_ecp5_sci_wrn, + serdes_pdb=>sgmii_ecp5_serdes_pdb,serdes_rst_dual_c=>sgmii_ecp5_serdes_rst_dual_c, + signal_detect_c=>sgmii_ecp5_signal_detect_c,sli_rst=>sli_rst_wire0, + tx_pclk=>sgmii_ecp5_tx_pclk,tx_pcs_rst_c=>sgmii_ecp5_tx_pcs_rst_c, + tx_pwrup_c=>sgmii_ecp5_tx_pwrup_c,tx_serdes_rst_c=>sgmii_ecp5_tx_serdes_rst_c, + txi_clk=>sgmii_ecp5_txi_clk); + gnd <= '0' ; + +end architecture test_gbepcs; -- sbp_module=true + diff --git a/gbe/cores/test_gbepcs/test_gbepcs_tmpl.v b/gbe/cores/test_gbepcs/test_gbepcs_tmpl.v new file mode 100644 index 0000000..89088e9 --- /dev/null +++ b/gbe/cores/test_gbepcs/test_gbepcs_tmpl.v @@ -0,0 +1,19 @@ +//Verilog instantiation template + +test_gbepcs _inst (.sgmii_ecp5_rx_cv_err(), .sgmii_ecp5_rx_disp_err(), .sgmii_ecp5_rx_k(), + .sgmii_ecp5_rxdata(), .sgmii_ecp5_sci_addr(), .sgmii_ecp5_sci_rddata(), + .sgmii_ecp5_sci_wrdata(), .sgmii_ecp5_tx_disp_correct(), .sgmii_ecp5_tx_k(), + .sgmii_ecp5_txdata(), .sgmii_ecp5_xmit(), .sgmii_ecp5_ctc_del_s(), + .sgmii_ecp5_ctc_ins_s(), .sgmii_ecp5_ctc_orun_s(), .sgmii_ecp5_ctc_urun_s(), + .sgmii_ecp5_cyawstn(), .sgmii_ecp5_hdinn(), .sgmii_ecp5_hdinp(), + .sgmii_ecp5_hdoutn(), .sgmii_ecp5_hdoutp(), .sgmii_ecp5_lsm_status_s(), + .sgmii_ecp5_pll_lol(), .sgmii_ecp5_pll_refclki(), .sgmii_ecp5_rsl_disable(), + .sgmii_ecp5_rsl_rst(), .sgmii_ecp5_rsl_rx_rdy(), .sgmii_ecp5_rsl_tx_rdy(), + .sgmii_ecp5_rst_dual_c(), .sgmii_ecp5_rx_cdr_lol_s(), .sgmii_ecp5_rx_los_low_s(), + .sgmii_ecp5_rx_pcs_rst_c(), .sgmii_ecp5_rx_pwrup_c(), .sgmii_ecp5_rx_serdes_rst_c(), + .sgmii_ecp5_rxrefclk(), .sgmii_ecp5_sci_en(), .sgmii_ecp5_sci_en_dual(), + .sgmii_ecp5_sci_int(), .sgmii_ecp5_sci_rd(), .sgmii_ecp5_sci_sel(), + .sgmii_ecp5_sci_sel_dual(), .sgmii_ecp5_sci_wrn(), .sgmii_ecp5_serdes_pdb(), + .sgmii_ecp5_serdes_rst_dual_c(), .sgmii_ecp5_signal_detect_c(), + .sgmii_ecp5_tx_pclk(), .sgmii_ecp5_tx_pcs_rst_c(), .sgmii_ecp5_tx_pwrup_c(), + .sgmii_ecp5_tx_serdes_rst_c(), .sgmii_ecp5_txi_clk()); \ No newline at end of file diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_0.sbx b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_0.sbx new file mode 100644 index 0000000..8a2304e --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_0.sbx @@ -0,0 +1,2096 @@ + + + + LATTICE + LOCAL + serdes_sync_0 + 1.0 + + + Diamond_Synthesis + synthesis + + ./serdes_sync_0.vhd + vhdlSource + + + + Diamond_Simulation + simulation + + ./serdes_sync_0.vhd + vhdlSource + + + + + + + + + serdes_sync_1_cyawstn + serdes_sync_1_cyawstn + + in + + + + serdes_sync_1.cyawstn + + + + + serdes_sync_1_hdinn + serdes_sync_1_hdinn + + in + + + + serdes_sync_1.hdinn + + + + + serdes_sync_1_hdinp + serdes_sync_1_hdinp + + in + + + + serdes_sync_1.hdinp + + + + + serdes_sync_1_hdoutn + serdes_sync_1_hdoutn + + out + + + + serdes_sync_1.hdoutn + + + + + serdes_sync_1_hdoutp + serdes_sync_1_hdoutp + + out + + + + serdes_sync_1.hdoutp + + + + + serdes_sync_1_lsm_status_s + serdes_sync_1_lsm_status_s + + out + + + + serdes_sync_1.lsm_status_s + + + + + serdes_sync_1_pll_lol + serdes_sync_1_pll_lol + + out + + + + serdes_sync_1.pll_lol + + + + + serdes_sync_1_pll_refclki + serdes_sync_1_pll_refclki + + in + + + + serdes_sync_1.pll_refclki + + + + + serdes_sync_1_rsl_disable + serdes_sync_1_rsl_disable + + in + + + + serdes_sync_1.rsl_disable + + + + + serdes_sync_1_rsl_rst + serdes_sync_1_rsl_rst + + in + + + + serdes_sync_1.rsl_rst + + + + + serdes_sync_1_rsl_rx_rdy + serdes_sync_1_rsl_rx_rdy + + out + + + + serdes_sync_1.rsl_rx_rdy + + + + + serdes_sync_1_rsl_tx_rdy + serdes_sync_1_rsl_tx_rdy + + out + + + + serdes_sync_1.rsl_tx_rdy + + + + + serdes_sync_1_rst_dual_c + serdes_sync_1_rst_dual_c + + in + + + + serdes_sync_1.rst_dual_c + + + + + serdes_sync_1_rx_cdr_lol_s + serdes_sync_1_rx_cdr_lol_s + + out + + + + serdes_sync_1.rx_cdr_lol_s + + + + + serdes_sync_1_rx_los_low_s + serdes_sync_1_rx_los_low_s + + out + + + + serdes_sync_1.rx_los_low_s + + + + + serdes_sync_1_rx_pclk + serdes_sync_1_rx_pclk + + out + + + + serdes_sync_1.rx_pclk + + + + + serdes_sync_1_rx_pcs_rst_c + serdes_sync_1_rx_pcs_rst_c + + in + + + + serdes_sync_1.rx_pcs_rst_c + + + + + serdes_sync_1_rx_pwrup_c + serdes_sync_1_rx_pwrup_c + + in + + + + serdes_sync_1.rx_pwrup_c + + + + + serdes_sync_1_rx_serdes_rst_c + serdes_sync_1_rx_serdes_rst_c + + in + + + + serdes_sync_1.rx_serdes_rst_c + + + + + serdes_sync_1_rxrefclk + serdes_sync_1_rxrefclk + + in + + + + serdes_sync_1.rxrefclk + + + + + serdes_sync_1_sci_en + serdes_sync_1_sci_en + + in + + + + serdes_sync_1.sci_en + + + + + serdes_sync_1_sci_en_dual + serdes_sync_1_sci_en_dual + + in + + + + serdes_sync_1.sci_en_dual + + + + + serdes_sync_1_sci_int + serdes_sync_1_sci_int + + out + + + + serdes_sync_1.sci_int + + + + + serdes_sync_1_sci_rd + serdes_sync_1_sci_rd + + in + + + + serdes_sync_1.sci_rd + + + + + serdes_sync_1_sci_sel + serdes_sync_1_sci_sel + + in + + + + serdes_sync_1.sci_sel + + + + + serdes_sync_1_sci_sel_dual + serdes_sync_1_sci_sel_dual + + in + + + + serdes_sync_1.sci_sel_dual + + + + + serdes_sync_1_sci_wrn + serdes_sync_1_sci_wrn + + in + + + + serdes_sync_1.sci_wrn + + + + + serdes_sync_1_serdes_pdb + serdes_sync_1_serdes_pdb + + in + + + + serdes_sync_1.serdes_pdb + + + + + serdes_sync_1_serdes_rst_dual_c + serdes_sync_1_serdes_rst_dual_c + + in + + + + serdes_sync_1.serdes_rst_dual_c + + + + + serdes_sync_1_signal_detect_c + serdes_sync_1_signal_detect_c + + in + + + + serdes_sync_1.signal_detect_c + + + + + serdes_sync_1_tx_idle_c + serdes_sync_1_tx_idle_c + + in + + + + serdes_sync_1.tx_idle_c + + + + + serdes_sync_1_tx_pclk + serdes_sync_1_tx_pclk + + out + + + + serdes_sync_1.tx_pclk + + + + + serdes_sync_1_tx_pcs_rst_c + serdes_sync_1_tx_pcs_rst_c + + in + + + + serdes_sync_1.tx_pcs_rst_c + + + + + serdes_sync_1_tx_pwrup_c + serdes_sync_1_tx_pwrup_c + + in + + + + serdes_sync_1.tx_pwrup_c + + + + + serdes_sync_1_tx_serdes_rst_c + serdes_sync_1_tx_serdes_rst_c + + in + + + + serdes_sync_1.tx_serdes_rst_c + + + + + serdes_sync_1_rx_cv_err + serdes_sync_1_rx_cv_err + + out + + 0 + 0 + + + + + serdes_sync_1.rx_cv_err + + + + + serdes_sync_1_rx_disp_err + serdes_sync_1_rx_disp_err + + out + + 0 + 0 + + + + + serdes_sync_1.rx_disp_err + + + + + serdes_sync_1_rx_k + serdes_sync_1_rx_k + + out + + 0 + 0 + + + + + serdes_sync_1.rx_k + + + + + serdes_sync_1_rxdata + serdes_sync_1_rxdata + + out + + 7 + 0 + + + + + serdes_sync_1.rxdata + + + + + serdes_sync_1_sci_addr + serdes_sync_1_sci_addr + + in + + 5 + 0 + + + + + serdes_sync_1.sci_addr + + + + + serdes_sync_1_sci_rddata + serdes_sync_1_sci_rddata + + out + + 7 + 0 + + + + + serdes_sync_1.sci_rddata + + + + + serdes_sync_1_sci_wrdata + serdes_sync_1_sci_wrdata + + in + + 7 + 0 + + + + + serdes_sync_1.sci_wrdata + + + + + serdes_sync_1_tx_disp_sel + serdes_sync_1_tx_disp_sel + + in + + 0 + 0 + + + + + serdes_sync_1.tx_disp_sel + + + + + serdes_sync_1_tx_force_disp + serdes_sync_1_tx_force_disp + + in + + 0 + 0 + + + + + serdes_sync_1.tx_force_disp + + + + + serdes_sync_1_tx_k + serdes_sync_1_tx_k + + in + + 0 + 0 + + + + + serdes_sync_1.tx_k + + + + + serdes_sync_1_txdata + serdes_sync_1_txdata + + in + + 7 + 0 + + + + + serdes_sync_1.txdata + + + + + + + LFE5UM-85F-8BG756C + synplify + 2019-05-10.09:27:16 AM + 2019-05-10.11:03:41 AM + 3.10.3.144 + VHDL + + false + false + false + false + false + false + false + false + false + false + false + + + + + + + + LATTICE + LOCAL + serdes_sync_0 + 1.0 + + + serdes_sync_1 + + Lattice Semiconductor Corporation + LEGACY + PCS + 8.2 + + + Diamond_Simulation + simulation + + ./serdes_sync_1/serdes_sync_1_softlogic.v + verilogSource + + + ./serdes_sync_1/serdes_sync_1.vhd + vhdlSource + + + + Diamond_Synthesis + synthesis + + ./serdes_sync_1/serdes_sync_1_softlogic.v + verilogSource + + + ./serdes_sync_1/serdes_sync_1.vhd + vhdlSource + + + + + + Configuration + none + ${sbp_path}/${instance}/generate_core.tcl + CONFIG + + + CreateNGD + none + ${sbp_path}/${instance}/generate_ngd.tcl + CONFIG + + + Generation + none + ${sbp_path}/${instance}/generate_core.tcl + GENERATE + + + + + + + cyawstn + cyawstn + + in + + + + hdinn + hdinn + + in + + + + true + + + + + hdinp + hdinp + + in + + + + true + + + + + hdoutn + hdoutn + + out + + + + true + + + + + hdoutp + hdoutp + + out + + + + true + + + + + lsm_status_s + lsm_status_s + + out + + + + pll_lol + pll_lol + + out + + + + pll_refclki + pll_refclki + + in + + + + rsl_disable + rsl_disable + + in + + + + rsl_rst + rsl_rst + + in + + + + rsl_rx_rdy + rsl_rx_rdy + + out + + + + rsl_tx_rdy + rsl_tx_rdy + + out + + + + rst_dual_c + rst_dual_c + + in + + + + rx_cdr_lol_s + rx_cdr_lol_s + + out + + + + rx_los_low_s + rx_los_low_s + + out + + + + rx_pclk + rx_pclk + + out + + + + rx_pcs_rst_c + rx_pcs_rst_c + + in + + + + rx_pwrup_c + rx_pwrup_c + + in + + + + rx_serdes_rst_c + rx_serdes_rst_c + + in + + + + rxrefclk + rxrefclk + + in + + + + sci_en + sci_en + + in + + + + sci_en_dual + sci_en_dual + + in + + + + sci_int + sci_int + + out + + + + sci_rd + sci_rd + + in + + + + sci_sel + sci_sel + + in + + + + sci_sel_dual + sci_sel_dual + + in + + + + sci_wrn + sci_wrn + + in + + + + serdes_pdb + serdes_pdb + + in + + + + serdes_rst_dual_c + serdes_rst_dual_c + + in + + + + signal_detect_c + signal_detect_c + + in + + + + sli_rst + sli_rst + + in + + + + true + + + + + tx_idle_c + tx_idle_c + + in + + + + tx_pclk + tx_pclk + + out + + + + tx_pcs_rst_c + tx_pcs_rst_c + + in + + + + tx_pwrup_c + tx_pwrup_c + + in + + + + tx_serdes_rst_c + tx_serdes_rst_c + + in + + + + rx_cv_err + rx_cv_err + + out + + 0 + 0 + + + + + rx_disp_err + rx_disp_err + + out + + 0 + 0 + + + + + rx_k + rx_k + + out + + 0 + 0 + + + + + rxdata + rxdata + + out + + 7 + 0 + + + + + sci_addr + sci_addr + + in + + 5 + 0 + + + + + sci_rddata + sci_rddata + + out + + 7 + 0 + + + + + sci_wrdata + sci_wrdata + + in + + 7 + 0 + + + + + tx_disp_sel + tx_disp_sel + + in + + 0 + 0 + + + + + tx_force_disp + tx_force_disp + + in + + 0 + 0 + + + + + tx_k + tx_k + + in + + 0 + 0 + + + + + txdata + txdata + + in + + 7 + 0 + + + + + + + synplify + 2019-05-10.11:03:41 AM + + false + false + false + false + false + false + false + false + false + false + LPM + PRIMARY + PRIMARY + false + false + + + + Lane0 + DCUCHANNEL + + true + false + DCUCHANNEL + 9 + + + + + + + Family + ecp5um + + + OperatingCondition + COM + + + Package + CABGA756 + + + PartName + LFE5UM-85F-8BG756C + + + PartType + LFE5UM-85F + + + SpeedGrade + 8 + + + Status + P + + + + CoreName + PCS + + + CoreRevision + 8.2 + + + CoreStatus + Demo + + + CoreType + LPM + + + Date + 05/10/2019 + + + ModuleName + serdes_sync_1 + + + ParameterFileVersion + 1.0 + + + SourceFormat + VHDL + + + Time + 10:23:27 + + + VendorName + Lattice Semiconductor Corporation + + + + ;ACHARA + 0 00H + + + ;ACHARB + 0 00H + + + ;ACHARM + 0 00H + + + ;RXMCAENABLE + Disabled + + + CDRLOLACTION + Full Recalibration + + + CDRLOLRANGE + 3 + + + CDR_MAX_RATE + 1.25 + + + CDR_MULT + 10X + + + CDR_REF_RATE + 125.0000 + + + CH_MODE + Rx and Tx + + + Destination + Synplicity + + + EDIF + 1 + + + Expression + BusA(0 to 7) + + + IO + 0 + + + IO_TYPE + G8B10B + + + LEQ + 0 + + + LOOPBACK + Disabled + + + LOSPORT + Enabled + + + NUM_CHS + 1 + + + Order + Big Endian [MSB:LSB] + + + PPORT_RX_RDY + Enabled + + + PPORT_TX_RDY + Enabled + + + PROTOCOL + G8B10B + + + PWAIT_RX_RDY + 3000 + + + PWAIT_TX_RDY + 3000 + + + RCSRC + Disabled + + + REFCLK_RATE + 125.0000 + + + RSTSEQSEL + Enabled + + + RX8B10B + Enabled + + + RXCOMMAA + 1100000100 + + + RXCOMMAB + 0011111000 + + + RXCOMMAM + 1111111100 + + + RXCOUPLING + AC + + + RXCTC + Disabled + + + RXCTCBYTEN + 0 00H + + + RXCTCBYTEN1 + 0 00H + + + RXCTCBYTEN2 + 0 00H + + + RXCTCBYTEN3 + 0 00H + + + RXCTCMATCHPATTERN + M4-S4 + + + RXDIFFTERM + 50 ohms + + + RXFIFO_ENABLE + Enabled + + + RXINVPOL + Non-invert + + + RXLDR + Off + + + RXLOSTHRESHOLD + 4 + + + RXLSM + Enabled + + + RXSC + K28P157 + + + RXWA + Barrel Shift + + + RX_DATA_WIDTH + 8/10-Bit + + + RX_FICLK_RATE + 125.0000 + + + RX_LINE_RATE + 1.2500 + + + RX_RATE_DIV + Full Rate + + + SCIPORT + Enabled + + + SOFTLOL + Enabled + + + TX8B10B + Enabled + + + TXAMPLITUDE + 800 + + + TXDEPOST + Disabled + + + TXDEPRE + Disabled + + + TXDIFFTERM + 50 ohms + + + TXFIFO_ENABLE + Enabled + + + TXINVPOL + Non-invert + + + TXLDR + Off + + + TXPLLLOLTHRESHOLD + 1 + + + TXPLLMULT + 10X + + + TX_DATA_WIDTH + 8/10-Bit + + + TX_FICLK_RATE + 125.0000 + + + TX_LINE_RATE + 1.2500 + + + TX_MAX_RATE + 1.25 + + + TX_RATE_DIV + Full Rate + + + VHDL + 1 + + + Verilog + 0 + + + + serdes_sync_1.pp + pp + + + serdes_sync_1.sym + sym + + + serdes_sync_1.tft + tft + + + serdes_sync_1.txt + pcs_module + + + + + DCUCHANNEL + 1 + + true + false + DCUCHANNEL + + Lane0 + + + + + + + + + serdes_sync_1_cyawstn + serdes_sync_1_cyawstn + + + + + serdes_sync_1_hdinn + serdes_sync_1_hdinn + + + sys_yes + + + + + + + serdes_sync_1_hdinp + serdes_sync_1_hdinp + + + sys_yes + + + + + + + serdes_sync_1_hdoutn + serdes_sync_1_hdoutn + + + sys_yes + + + + + + + serdes_sync_1_hdoutp + serdes_sync_1_hdoutp + + + sys_yes + + + + + + + serdes_sync_1_lsm_status_s + serdes_sync_1_lsm_status_s + + + + + serdes_sync_1_pll_lol + serdes_sync_1_pll_lol + + + + + serdes_sync_1_pll_refclki + serdes_sync_1_pll_refclki + + + + + serdes_sync_1_rsl_disable + serdes_sync_1_rsl_disable + + + + + serdes_sync_1_rsl_rst + serdes_sync_1_rsl_rst + + + + + serdes_sync_1_rsl_rx_rdy + serdes_sync_1_rsl_rx_rdy + + + + + serdes_sync_1_rsl_tx_rdy + serdes_sync_1_rsl_tx_rdy + + + + + serdes_sync_1_rst_dual_c + serdes_sync_1_rst_dual_c + + + + + serdes_sync_1_rx_cdr_lol_s + serdes_sync_1_rx_cdr_lol_s + + + + + serdes_sync_1_rx_los_low_s + serdes_sync_1_rx_los_low_s + + + + + serdes_sync_1_rx_pclk + serdes_sync_1_rx_pclk + + + + + serdes_sync_1_rx_pcs_rst_c + serdes_sync_1_rx_pcs_rst_c + + + + + serdes_sync_1_rx_pwrup_c + serdes_sync_1_rx_pwrup_c + + + + + serdes_sync_1_rx_serdes_rst_c + serdes_sync_1_rx_serdes_rst_c + + + + + serdes_sync_1_rxrefclk + serdes_sync_1_rxrefclk + + + + + serdes_sync_1_sci_en + serdes_sync_1_sci_en + + + + + serdes_sync_1_sci_en_dual + serdes_sync_1_sci_en_dual + + + + + serdes_sync_1_sci_int + serdes_sync_1_sci_int + + + + + serdes_sync_1_sci_rd + serdes_sync_1_sci_rd + + + + + serdes_sync_1_sci_sel + serdes_sync_1_sci_sel + + + + + serdes_sync_1_sci_sel_dual + serdes_sync_1_sci_sel_dual + + + + + serdes_sync_1_sci_wrn + serdes_sync_1_sci_wrn + + + + + serdes_sync_1_serdes_pdb + serdes_sync_1_serdes_pdb + + + + + serdes_sync_1_serdes_rst_dual_c + serdes_sync_1_serdes_rst_dual_c + + + + + serdes_sync_1_signal_detect_c + serdes_sync_1_signal_detect_c + + + + + serdes_sync_1_tx_idle_c + serdes_sync_1_tx_idle_c + + + + + serdes_sync_1_tx_pclk + serdes_sync_1_tx_pclk + + + + + serdes_sync_1_tx_pcs_rst_c + serdes_sync_1_tx_pcs_rst_c + + + + + serdes_sync_1_tx_pwrup_c + serdes_sync_1_tx_pwrup_c + + + + + serdes_sync_1_tx_serdes_rst_c + serdes_sync_1_tx_serdes_rst_c + + + + + serdes_sync_1_rx_cv_err + serdes_sync_1_rx_cv_err + + + + + serdes_sync_1_rx_cv_err[0] + serdes_sync_1_rx_cv_err[0] + + + + + serdes_sync_1_rx_disp_err + serdes_sync_1_rx_disp_err + + + + + serdes_sync_1_rx_disp_err[0] + serdes_sync_1_rx_disp_err[0] + + + + + serdes_sync_1_rx_k + serdes_sync_1_rx_k + + + + + serdes_sync_1_rx_k[0] + serdes_sync_1_rx_k[0] + + + + + serdes_sync_1_rxdata + serdes_sync_1_rxdata + + + + + serdes_sync_1_rxdata[0] + serdes_sync_1_rxdata[0] + + + + + serdes_sync_1_rxdata[1] + serdes_sync_1_rxdata[1] + + + + + serdes_sync_1_rxdata[2] + serdes_sync_1_rxdata[2] + + + + + serdes_sync_1_rxdata[3] + serdes_sync_1_rxdata[3] + + + + + serdes_sync_1_rxdata[4] + serdes_sync_1_rxdata[4] + + + + + serdes_sync_1_rxdata[5] + serdes_sync_1_rxdata[5] + + + + + serdes_sync_1_rxdata[6] + serdes_sync_1_rxdata[6] + + + + + serdes_sync_1_rxdata[7] + serdes_sync_1_rxdata[7] + + + + + serdes_sync_1_sci_addr + serdes_sync_1_sci_addr + + + + + serdes_sync_1_sci_addr[0] + serdes_sync_1_sci_addr[0] + + + + + serdes_sync_1_sci_addr[1] + serdes_sync_1_sci_addr[1] + + + + + serdes_sync_1_sci_addr[2] + serdes_sync_1_sci_addr[2] + + + + + serdes_sync_1_sci_addr[3] + serdes_sync_1_sci_addr[3] + + + + + serdes_sync_1_sci_addr[4] + serdes_sync_1_sci_addr[4] + + + + + serdes_sync_1_sci_addr[5] + serdes_sync_1_sci_addr[5] + + + + + serdes_sync_1_sci_rddata + serdes_sync_1_sci_rddata + + + + + serdes_sync_1_sci_rddata[0] + serdes_sync_1_sci_rddata[0] + + + + + serdes_sync_1_sci_rddata[1] + serdes_sync_1_sci_rddata[1] + + + + + serdes_sync_1_sci_rddata[2] + serdes_sync_1_sci_rddata[2] + + + + + serdes_sync_1_sci_rddata[3] + serdes_sync_1_sci_rddata[3] + + + + + serdes_sync_1_sci_rddata[4] + serdes_sync_1_sci_rddata[4] + + + + + serdes_sync_1_sci_rddata[5] + serdes_sync_1_sci_rddata[5] + + + + + serdes_sync_1_sci_rddata[6] + serdes_sync_1_sci_rddata[6] + + + + + serdes_sync_1_sci_rddata[7] + serdes_sync_1_sci_rddata[7] + + + + + serdes_sync_1_sci_wrdata + serdes_sync_1_sci_wrdata + + + + + serdes_sync_1_sci_wrdata[0] + serdes_sync_1_sci_wrdata[0] + + + + + serdes_sync_1_sci_wrdata[1] + serdes_sync_1_sci_wrdata[1] + + + + + serdes_sync_1_sci_wrdata[2] + serdes_sync_1_sci_wrdata[2] + + + + + serdes_sync_1_sci_wrdata[3] + serdes_sync_1_sci_wrdata[3] + + + + + serdes_sync_1_sci_wrdata[4] + serdes_sync_1_sci_wrdata[4] + + + + + serdes_sync_1_sci_wrdata[5] + serdes_sync_1_sci_wrdata[5] + + + + + serdes_sync_1_sci_wrdata[6] + serdes_sync_1_sci_wrdata[6] + + + + + serdes_sync_1_sci_wrdata[7] + serdes_sync_1_sci_wrdata[7] + + + + + serdes_sync_1_tx_disp_sel + serdes_sync_1_tx_disp_sel + + + + + serdes_sync_1_tx_disp_sel[0] + serdes_sync_1_tx_disp_sel[0] + + + + + serdes_sync_1_tx_force_disp + serdes_sync_1_tx_force_disp + + + + + serdes_sync_1_tx_force_disp[0] + serdes_sync_1_tx_force_disp[0] + + + + + serdes_sync_1_tx_k + serdes_sync_1_tx_k + + + + + serdes_sync_1_tx_k[0] + serdes_sync_1_tx_k[0] + + + + + serdes_sync_1_txdata + serdes_sync_1_txdata + + + + + serdes_sync_1_txdata[0] + serdes_sync_1_txdata[0] + + + + + serdes_sync_1_txdata[1] + serdes_sync_1_txdata[1] + + + + + serdes_sync_1_txdata[2] + serdes_sync_1_txdata[2] + + + + + serdes_sync_1_txdata[3] + serdes_sync_1_txdata[3] + + + + + serdes_sync_1_txdata[4] + serdes_sync_1_txdata[4] + + + + + serdes_sync_1_txdata[5] + serdes_sync_1_txdata[5] + + + + + serdes_sync_1_txdata[6] + serdes_sync_1_txdata[6] + + + + + serdes_sync_1_txdata[7] + serdes_sync_1_txdata[7] + + + + + + diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_0.vhd b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_0.vhd new file mode 100644 index 0000000..6228fec --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_0.vhd @@ -0,0 +1,161 @@ + + +-- +-- Verific VHDL Description of module serdes_sync_0 +-- + +library ieee ; +use ieee.std_logic_1164.all ; + +entity serdes_sync_0 is + port (serdes_sync_1_rx_cv_err: out std_logic_vector(0 downto 0); + serdes_sync_1_rx_disp_err: out std_logic_vector(0 downto 0); + serdes_sync_1_rx_k: out std_logic_vector(0 downto 0); + serdes_sync_1_rxdata: out std_logic_vector(7 downto 0); + serdes_sync_1_sci_addr: in std_logic_vector(5 downto 0); + serdes_sync_1_sci_rddata: out std_logic_vector(7 downto 0); + serdes_sync_1_sci_wrdata: in std_logic_vector(7 downto 0); + serdes_sync_1_tx_disp_sel: in std_logic_vector(0 downto 0); + serdes_sync_1_tx_force_disp: in std_logic_vector(0 downto 0); + serdes_sync_1_tx_k: in std_logic_vector(0 downto 0); + serdes_sync_1_txdata: in std_logic_vector(7 downto 0); + serdes_sync_1_cyawstn: in std_logic; + serdes_sync_1_hdinn: in std_logic; + serdes_sync_1_hdinp: in std_logic; + serdes_sync_1_hdoutn: out std_logic; + serdes_sync_1_hdoutp: out std_logic; + serdes_sync_1_lsm_status_s: out std_logic; + serdes_sync_1_pll_lol: out std_logic; + serdes_sync_1_pll_refclki: in std_logic; + serdes_sync_1_rsl_disable: in std_logic; + serdes_sync_1_rsl_rst: in std_logic; + serdes_sync_1_rsl_rx_rdy: out std_logic; + serdes_sync_1_rsl_tx_rdy: out std_logic; + serdes_sync_1_rst_dual_c: in std_logic; + serdes_sync_1_rx_cdr_lol_s: out std_logic; + serdes_sync_1_rx_los_low_s: out std_logic; + serdes_sync_1_rx_pclk: out std_logic; + serdes_sync_1_rx_pcs_rst_c: in std_logic; + serdes_sync_1_rx_pwrup_c: in std_logic; + serdes_sync_1_rx_serdes_rst_c: in std_logic; + serdes_sync_1_rxrefclk: in std_logic; + serdes_sync_1_sci_en: in std_logic; + serdes_sync_1_sci_en_dual: in std_logic; + serdes_sync_1_sci_int: out std_logic; + serdes_sync_1_sci_rd: in std_logic; + serdes_sync_1_sci_sel: in std_logic; + serdes_sync_1_sci_sel_dual: in std_logic; + serdes_sync_1_sci_wrn: in std_logic; + serdes_sync_1_serdes_pdb: in std_logic; + serdes_sync_1_serdes_rst_dual_c: in std_logic; + serdes_sync_1_signal_detect_c: in std_logic; + serdes_sync_1_tx_idle_c: in std_logic; + serdes_sync_1_tx_pclk: out std_logic; + serdes_sync_1_tx_pcs_rst_c: in std_logic; + serdes_sync_1_tx_pwrup_c: in std_logic; + serdes_sync_1_tx_serdes_rst_c: in std_logic + ); + +end entity serdes_sync_0; -- sbp_module=true + +architecture serdes_sync_0 of serdes_sync_0 is + component serdes_sync_1 is + port (rx_cv_err: out std_logic_vector(0 downto 0); + rx_disp_err: out std_logic_vector(0 downto 0); + rx_k: out std_logic_vector(0 downto 0); + rxdata: out std_logic_vector(7 downto 0); + sci_addr: in std_logic_vector(5 downto 0); + sci_rddata: out std_logic_vector(7 downto 0); + sci_wrdata: in std_logic_vector(7 downto 0); + tx_disp_sel: in std_logic_vector(0 downto 0); + tx_force_disp: in std_logic_vector(0 downto 0); + tx_k: in std_logic_vector(0 downto 0); + txdata: in std_logic_vector(7 downto 0); + cyawstn: in std_logic; + hdinn: in std_logic; + hdinp: in std_logic; + hdoutn: out std_logic; + hdoutp: out std_logic; + lsm_status_s: out std_logic; + pll_lol: out std_logic; + pll_refclki: in std_logic; + rsl_disable: in std_logic; + rsl_rst: in std_logic; + rsl_rx_rdy: out std_logic; + rsl_tx_rdy: out std_logic; + rst_dual_c: in std_logic; + rx_cdr_lol_s: out std_logic; + rx_los_low_s: out std_logic; + rx_pclk: out std_logic; + rx_pcs_rst_c: in std_logic; + rx_pwrup_c: in std_logic; + rx_serdes_rst_c: in std_logic; + rxrefclk: in std_logic; + sci_en: in std_logic; + sci_en_dual: in std_logic; + sci_int: out std_logic; + sci_rd: in std_logic; + sci_sel: in std_logic; + sci_sel_dual: in std_logic; + sci_wrn: in std_logic; + serdes_pdb: in std_logic; + serdes_rst_dual_c: in std_logic; + signal_detect_c: in std_logic; + sli_rst: in std_logic; + tx_idle_c: in std_logic; + tx_pclk: out std_logic; + tx_pcs_rst_c: in std_logic; + tx_pwrup_c: in std_logic; + tx_serdes_rst_c: in std_logic + ); + + end component serdes_sync_1; -- not_need_bbox=true + + + signal sli_rst_wire0,gnd : std_logic; +begin + sli_rst_wire0 <= serdes_sync_1_serdes_rst_dual_c OR serdes_sync_1_tx_serdes_rst_c OR (NOT serdes_sync_1_serdes_pdb) OR (NOT serdes_sync_1_tx_pwrup_c); + serdes_sync_1_inst: component serdes_sync_1 port map (rx_cv_err(0)=>serdes_sync_1_rx_cv_err(0), + rx_disp_err(0)=>serdes_sync_1_rx_disp_err(0),rx_k(0)=>serdes_sync_1_rx_k(0), + rxdata(7)=>serdes_sync_1_rxdata(7),rxdata(6)=>serdes_sync_1_rxdata(6), + rxdata(5)=>serdes_sync_1_rxdata(5),rxdata(4)=>serdes_sync_1_rxdata(4), + rxdata(3)=>serdes_sync_1_rxdata(3),rxdata(2)=>serdes_sync_1_rxdata(2), + rxdata(1)=>serdes_sync_1_rxdata(1),rxdata(0)=>serdes_sync_1_rxdata(0), + sci_addr(5)=>serdes_sync_1_sci_addr(5),sci_addr(4)=>serdes_sync_1_sci_addr(4), + sci_addr(3)=>serdes_sync_1_sci_addr(3),sci_addr(2)=>serdes_sync_1_sci_addr(2), + sci_addr(1)=>serdes_sync_1_sci_addr(1),sci_addr(0)=>serdes_sync_1_sci_addr(0), + sci_rddata(7)=>serdes_sync_1_sci_rddata(7),sci_rddata(6)=>serdes_sync_1_sci_rddata(6), + sci_rddata(5)=>serdes_sync_1_sci_rddata(5),sci_rddata(4)=>serdes_sync_1_sci_rddata(4), + sci_rddata(3)=>serdes_sync_1_sci_rddata(3),sci_rddata(2)=>serdes_sync_1_sci_rddata(2), + sci_rddata(1)=>serdes_sync_1_sci_rddata(1),sci_rddata(0)=>serdes_sync_1_sci_rddata(0), + sci_wrdata(7)=>serdes_sync_1_sci_wrdata(7),sci_wrdata(6)=>serdes_sync_1_sci_wrdata(6), + sci_wrdata(5)=>serdes_sync_1_sci_wrdata(5),sci_wrdata(4)=>serdes_sync_1_sci_wrdata(4), + sci_wrdata(3)=>serdes_sync_1_sci_wrdata(3),sci_wrdata(2)=>serdes_sync_1_sci_wrdata(2), + sci_wrdata(1)=>serdes_sync_1_sci_wrdata(1),sci_wrdata(0)=>serdes_sync_1_sci_wrdata(0), + tx_disp_sel(0)=>serdes_sync_1_tx_disp_sel(0),tx_force_disp(0)=>serdes_sync_1_tx_force_disp(0), + tx_k(0)=>serdes_sync_1_tx_k(0),txdata(7)=>serdes_sync_1_txdata(7), + txdata(6)=>serdes_sync_1_txdata(6),txdata(5)=>serdes_sync_1_txdata(5), + txdata(4)=>serdes_sync_1_txdata(4),txdata(3)=>serdes_sync_1_txdata(3), + txdata(2)=>serdes_sync_1_txdata(2),txdata(1)=>serdes_sync_1_txdata(1), + txdata(0)=>serdes_sync_1_txdata(0),cyawstn=>serdes_sync_1_cyawstn, + hdinn=>serdes_sync_1_hdinn,hdinp=>serdes_sync_1_hdinp,hdoutn=>serdes_sync_1_hdoutn, + hdoutp=>serdes_sync_1_hdoutp,lsm_status_s=>serdes_sync_1_lsm_status_s, + pll_lol=>serdes_sync_1_pll_lol,pll_refclki=>serdes_sync_1_pll_refclki, + rsl_disable=>serdes_sync_1_rsl_disable,rsl_rst=>serdes_sync_1_rsl_rst, + rsl_rx_rdy=>serdes_sync_1_rsl_rx_rdy,rsl_tx_rdy=>serdes_sync_1_rsl_tx_rdy, + rst_dual_c=>serdes_sync_1_rst_dual_c,rx_cdr_lol_s=>serdes_sync_1_rx_cdr_lol_s, + rx_los_low_s=>serdes_sync_1_rx_los_low_s,rx_pclk=>serdes_sync_1_rx_pclk, + rx_pcs_rst_c=>serdes_sync_1_rx_pcs_rst_c,rx_pwrup_c=>serdes_sync_1_rx_pwrup_c, + rx_serdes_rst_c=>serdes_sync_1_rx_serdes_rst_c,rxrefclk=>serdes_sync_1_rxrefclk, + sci_en=>serdes_sync_1_sci_en,sci_en_dual=>serdes_sync_1_sci_en_dual, + sci_int=>serdes_sync_1_sci_int,sci_rd=>serdes_sync_1_sci_rd,sci_sel=>serdes_sync_1_sci_sel, + sci_sel_dual=>serdes_sync_1_sci_sel_dual,sci_wrn=>serdes_sync_1_sci_wrn, + serdes_pdb=>serdes_sync_1_serdes_pdb,serdes_rst_dual_c=>serdes_sync_1_serdes_rst_dual_c, + signal_detect_c=>serdes_sync_1_signal_detect_c,sli_rst=>sli_rst_wire0, + tx_idle_c=>serdes_sync_1_tx_idle_c,tx_pclk=>serdes_sync_1_tx_pclk, + tx_pcs_rst_c=>serdes_sync_1_tx_pcs_rst_c,tx_pwrup_c=>serdes_sync_1_tx_pwrup_c, + tx_serdes_rst_c=>serdes_sync_1_tx_serdes_rst_c); + gnd <= '0' ; + +end architecture serdes_sync_0; -- sbp_module=true + diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_0_tmpl.v b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_0_tmpl.v new file mode 100644 index 0000000..a6828ba --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_0_tmpl.v @@ -0,0 +1,19 @@ +//Verilog instantiation template + +serdes_sync_0 _inst (.serdes_sync_1_rx_cv_err(), .serdes_sync_1_rx_disp_err(), + .serdes_sync_1_rx_k(), .serdes_sync_1_rxdata(), .serdes_sync_1_sci_addr(), + .serdes_sync_1_sci_rddata(), .serdes_sync_1_sci_wrdata(), .serdes_sync_1_tx_disp_sel(), + .serdes_sync_1_tx_force_disp(), .serdes_sync_1_tx_k(), .serdes_sync_1_txdata(), + .serdes_sync_1_cyawstn(), .serdes_sync_1_hdinn(), .serdes_sync_1_hdinp(), + .serdes_sync_1_hdoutn(), .serdes_sync_1_hdoutp(), .serdes_sync_1_lsm_status_s(), + .serdes_sync_1_pll_lol(), .serdes_sync_1_pll_refclki(), .serdes_sync_1_rsl_disable(), + .serdes_sync_1_rsl_rst(), .serdes_sync_1_rsl_rx_rdy(), .serdes_sync_1_rsl_tx_rdy(), + .serdes_sync_1_rst_dual_c(), .serdes_sync_1_rx_cdr_lol_s(), + .serdes_sync_1_rx_los_low_s(), .serdes_sync_1_rx_pclk(), .serdes_sync_1_rx_pcs_rst_c(), + .serdes_sync_1_rx_pwrup_c(), .serdes_sync_1_rx_serdes_rst_c(), + .serdes_sync_1_rxrefclk(), .serdes_sync_1_sci_en(), .serdes_sync_1_sci_en_dual(), + .serdes_sync_1_sci_int(), .serdes_sync_1_sci_rd(), .serdes_sync_1_sci_sel(), + .serdes_sync_1_sci_sel_dual(), .serdes_sync_1_sci_wrn(), .serdes_sync_1_serdes_pdb(), + .serdes_sync_1_serdes_rst_dual_c(), .serdes_sync_1_signal_detect_c(), + .serdes_sync_1_tx_idle_c(), .serdes_sync_1_tx_pclk(), .serdes_sync_1_tx_pcs_rst_c(), + .serdes_sync_1_tx_pwrup_c(), .serdes_sync_1_tx_serdes_rst_c()); \ No newline at end of file diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_0.lpc b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_0.lpc new file mode 100644 index 0000000..b79efbe --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_0.lpc @@ -0,0 +1,97 @@ +[Device] +Family=ecp5um +OperatingCondition=COM +Package=CABGA756 +PartName=LFE5UM-85F-8BG756C +PartType=LFE5UM-85F +SpeedGrade=8 +Status=P +[IP] +CoreName=PCS +CoreRevision=8.2 +CoreStatus=Demo +CoreType=LPM +Date=04/24/2019 +ModuleName=serdes_sync_0 +ParameterFileVersion=1.0 +SourceFormat=vhdl +Time=16:52:37 +VendorName=Lattice Semiconductor Corporation +[Parameters] +;ACHARA=0 00H +;ACHARB=0 00H +;ACHARM=0 00H +;RXMCAENABLE=Disabled +CDRLOLACTION=Full Recalibration +CDRLOLRANGE=3 +CDR_MAX_RATE=2 +CDR_MULT=10X +CDR_REF_RATE=200.0000 +CH_MODE=Rx and Tx +Destination=Synplicity +EDIF=1 +Expression=BusA(0 to 7) +IO=0 +IO_TYPE=G8B10B +LEQ=0 +LOOPBACK=Disabled +LOSPORT=Enabled +NUM_CHS=1 +Order=Big Endian [MSB:LSB] +PPORT_RX_RDY=Enabled +PPORT_TX_RDY=Enabled +PROTOCOL=G8B10B +PWAIT_RX_RDY=3000 +PWAIT_TX_RDY=3000 +RCSRC=Disabled +REFCLK_RATE=200.0000 +RSTSEQSEL=Enabled +RX8B10B=Enabled +RXCOMMAA=1100000100 +RXCOMMAB=0011111000 +RXCOMMAM=1111111100 +RXCOUPLING=AC +RXCTC=Disabled +RXCTCBYTEN=0 00H +RXCTCBYTEN1=0 00H +RXCTCBYTEN2=0 00H +RXCTCBYTEN3=0 00H +RXCTCMATCHPATTERN=M4-S4 +RXDIFFTERM=50 ohms +RXFIFO_ENABLE=Enabled +RXINVPOL=Non-invert +RXLDR=Off +RXLOSTHRESHOLD=4 +RXLSM=Enabled +RXSC=K28P157 +RXWA=Barrel Shift +RX_DATA_WIDTH=8/10-Bit +RX_FICLK_RATE=200.0000 +RX_LINE_RATE=2.0000 +RX_RATE_DIV=Full Rate +SCIPORT=Enabled +SOFTLOL=Enabled +TX8B10B=Enabled +TXAMPLITUDE=800 +TXDEPOST=Disabled +TXDEPRE=Disabled +TXDIFFTERM=50 ohms +TXFIFO_ENABLE=Enabled +TXINVPOL=Non-invert +TXLDR=Off +TXPLLLOLTHRESHOLD=1 +TXPLLMULT=10X +TX_DATA_WIDTH=8/10-Bit +TX_FICLK_RATE=200.0000 +TX_LINE_RATE=2.0000 +TX_MAX_RATE=2 +TX_RATE_DIV=Full Rate +VHDL=1 +Verilog=0 +[FilesGenerated] +serdes_sync_0.pp=pp +serdes_sync_0.sym=sym +serdes_sync_0.tft=tft +serdes_sync_0.txt=pcs_module +[SYSTEMPNR] +LN0=DCU0_CH0 diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.cmd b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.cmd new file mode 100644 index 0000000..a65388e --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.cmd @@ -0,0 +1,18 @@ +PROJECT: serdes_sync_1 + working_path: "/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results" + module: serdes_sync_1 + verilog_file_list: "/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd" "/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v" + vlog_std_v2001: true + constraint_file_name: "/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.fdc" + suffix_name: edn + output_file_name: serdes_sync_1 + write_prf: true + disable_io_insertion: true + force_gsr: false + frequency: 100 + fanout_limit: 50 + retiming: false + pipe: false + part: LFE5UM-85F + speed_grade: 8 + diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.cst b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.cst new file mode 100644 index 0000000..0a83d53 --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.cst @@ -0,0 +1,3 @@ +Date=05/10/2019 +Time=10:23:27 + diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.fdc b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.fdc new file mode 100644 index 0000000..5424a21 --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.fdc @@ -0,0 +1,3 @@ +###==== Start Generation + +define_attribute {i:Lane0} {loc} {DCU1_CH1} diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.lpc b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.lpc new file mode 100644 index 0000000..6149a02 --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.lpc @@ -0,0 +1,97 @@ +[Device] +Family=ecp5um +OperatingCondition=COM +Package=CABGA756 +PartName=LFE5UM-85F-8BG756C +PartType=LFE5UM-85F +SpeedGrade=8 +Status=P +[IP] +CoreName=PCS +CoreRevision=8.2 +CoreStatus=Demo +CoreType=LPM +Date=05/10/2019 +ModuleName=serdes_sync_1 +ParameterFileVersion=1.0 +SourceFormat=VHDL +Time=10:23:27 +VendorName=Lattice Semiconductor Corporation +[Parameters] +;ACHARA=0 00H +;ACHARB=0 00H +;ACHARM=0 00H +;RXMCAENABLE=Disabled +CDRLOLACTION=Full Recalibration +CDRLOLRANGE=3 +CDR_MAX_RATE=1.25 +CDR_MULT=10X +CDR_REF_RATE=125.0000 +CH_MODE=Rx and Tx +Destination=Synplicity +EDIF=1 +Expression=BusA(0 to 7) +IO=0 +IO_TYPE=G8B10B +LEQ=0 +LOOPBACK=Disabled +LOSPORT=Enabled +NUM_CHS=1 +Order=Big Endian [MSB:LSB] +PPORT_RX_RDY=Enabled +PPORT_TX_RDY=Enabled +PROTOCOL=G8B10B +PWAIT_RX_RDY=3000 +PWAIT_TX_RDY=3000 +RCSRC=Disabled +REFCLK_RATE=125.0000 +RSTSEQSEL=Enabled +RX8B10B=Enabled +RXCOMMAA=1100000100 +RXCOMMAB=0011111000 +RXCOMMAM=1111111100 +RXCOUPLING=AC +RXCTC=Disabled +RXCTCBYTEN=0 00H +RXCTCBYTEN1=0 00H +RXCTCBYTEN2=0 00H +RXCTCBYTEN3=0 00H +RXCTCMATCHPATTERN=M4-S4 +RXDIFFTERM=50 ohms +RXFIFO_ENABLE=Enabled +RXINVPOL=Non-invert +RXLDR=Off +RXLOSTHRESHOLD=4 +RXLSM=Enabled +RXSC=K28P157 +RXWA=Barrel Shift +RX_DATA_WIDTH=8/10-Bit +RX_FICLK_RATE=125.0000 +RX_LINE_RATE=1.2500 +RX_RATE_DIV=Full Rate +SCIPORT=Enabled +SOFTLOL=Enabled +TX8B10B=Enabled +TXAMPLITUDE=800 +TXDEPOST=Disabled +TXDEPRE=Disabled +TXDIFFTERM=50 ohms +TXFIFO_ENABLE=Enabled +TXINVPOL=Non-invert +TXLDR=Off +TXPLLLOLTHRESHOLD=1 +TXPLLMULT=10X +TX_DATA_WIDTH=8/10-Bit +TX_FICLK_RATE=125.0000 +TX_LINE_RATE=1.2500 +TX_MAX_RATE=1.25 +TX_RATE_DIV=Full Rate +VHDL=1 +Verilog=0 +[FilesGenerated] +serdes_sync_1.pp=pp +serdes_sync_1.sym=sym +serdes_sync_1.tft=tft +serdes_sync_1.txt=pcs_module +[SYSTEMPNR] +LN0=DCU1_CH1 diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.ngd b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.ngd new file mode 100644 index 0000000000000000000000000000000000000000..8d07b12e74d6cbf2c522e24435adcef98457307d GIT binary patch literal 390123 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%0D|<{eLSg zT>kE*DyMK{bDVYde^+Th_~RcHH6{(?u`WimLE<~)^jo%yT9ZO8wz@NLk&Md%$3l(j zB0pbFE9=n{CZdwH5DX3kXo|WVLA0(GTmr@lAe^H(4#vlb7VVPg93JxHz|=5w);NUTyxf_f;Z0VY-wlfWC) z#b=n}{JdfkXsRILXQK|WH%&2(#I4h;Bci}Y9pb7r?^8`pUW`pOdAu8%X7S+L|Cv}k!?i!$)aFeE3l1{{ypTK8 zG=al~ifI-P6`XGIP{YG44Aq%#>7qM+XYmL++=S%w0QT~CrUl;Km2uwuKU>2493jgZ zGO==NunM7aGZr*mXtx`%nCjbe5iPL9BtFCB@nkl`)8z5|Hq+$sq%~2;IJD8O z86A~JwG|zvNj__?=&+c)8=7S@%XlK4WimyzXPZoJX ze20s1IN#x7$aFef46aUxi(%94aCytu<-kZIU5<$|*jVV2G5QubY|b$YT^JSYc45@8 z$A#g^f>NqM8%0QLe#v9vj%!< zf$hMlHqJdhQAZI7VhM3FSK+BwNIr`_pVYys|jmMsd`_Y4{A=3O}{0IKx#ypq}Zn zkxb5V*?fX|jP#v_-Cb3A6yIOlly1fT1`VicX{m=Oz!b6uR%#CfhA z4%{oim*bO9{VuT#Oc#0MB1>Q7yA>8$J%OxPVbLMrfpvjLgLC8s9u4;Vd{@9j;zExl z9$ObX0&2&LEKnThU2NGF$^8-=<)L{#EU1>kpt{tiiIcPo9hfu6rBK(>-gI%McbNlo z-nh&*!d1T9AqyB}j)842)}Z3a624bPkWH>kJNRaGk+nk97_V=X8L_TFy{{JJ%Z=)ZqpL0mV>) z;hQvyi2Iu~ju>~3fD`RZl<};$VV>^RThKk{2;NO*7R)9ycYq>0VY)cPx+SMWm<4at zNjySt))5{NH|HXuAr7uvbPfm5tvVtW<+ti;9MZQLB#x!qbdm_s+jW+hHg7OkJh1OF zSZw}wgT-#$VL)7)I}M1de79kX{kqeDc%0v*D>CVBAaabA;#Y$Bpijk0Mmx*t10ZyF ze+-xi2T~#_-(( zQYO|s4@lW)mOUtC;>h$tDI3YM-%FW@nw8=%AxikYU?zmkKS&v?{XvMzX}Tq+ACe-j zQN=@2O*rg*u%Ko#s5n6u~H)EtldB;URDsB>@Y5y3D@E8zo z{Yl)75&r*4FvkcdAD1%W$h}e~%6?4BMB$H1nQ(HIl!@|INttN9zet%V{cqxKv?$>( zf;n1L;Rz`do;@LD!m~e1negSW@=o~jH^~&fJSkIgk#T0nW(}uQYLKnNttlEPs&8q|1R%@E6+-%aJpZ}MvA*<<(;sy zS};cn&sIyB@Z}#;CQA5+lnGy+lQL1i=Y&iU*GQ3Y<#};8LYTaViE`hO3BS(5Ym)ah z;VAl!5^V$MZ#!zQZ&thuM#;RM`TQqh7x&;3h7~WdS|@#?3&Z5z7*V2~Wukij6n7(p zFaH$G5uytHQYNbYyp)NCe?iKGl^3K;l<=aIiQ2v>WukHaC1hoyw*L|`q4sYn5(WHQ zibM>&BxS;t*MzK8$X=05QNYXcP89x%)DsnYRo;p6UKV#k?NzBJ+TnF65?;P0??mCR z3udWs^9?Bz1-v0;qE+6MGU3XbQWh7b=cTYzaNm+r;mzAp7#C*WQn%cJc}a~6yYDEW zaQ$s1WlMd}R7R+`^?(rH_39HbZwT;pt-bR$U!MGb5F@E2#`1`IlV!24^*h+=w22)B&QJmGcJ9b_J;Su`47S1GN_TBU0WH*g@t4!4WKZ)stCGB(Qi)iih=HQI~T}RX|vj+)3Dk#LeQDvh?*MO7@jgJ~` zB^UAJ;p2jKur&QdGf!^9x~7<((TNXz(2wRR6VN^-Imk3^ewwV}om@n3Eh+6P zMR&Evo0{Q)YXHv}laZ{UDm^1Xi79|hd{H7f*fk{EmKLT-F?fSP5qLtPL9Rimh$dL4 zpcI9!>noJ-^=(`=93R5*D{aY=;v9IrPH_r4V7+X_Y+|z{+M*`cD{h5yWO9SzR`8-} za)aV#@RD6}{X%wV6QA6$kWe%VT6@C*${@-{g{+{e8x_*0L6qFMkS5x3<3gIK)=)<% zzI%aY+19bDzMq0H-olZ}5rj>1aGL=oEzM4h};_8=7NNrwAoQwC&)N z627B@>!o5?ZC{iD&v(p6ic}7fvr|z9XOEqW7Q@jQD?mZp>{7G@w9j@$8EB)Oi!(sk zrGN`aal00fp%Hg2U>c1RDk ziD~^dMm>z9uOFexdlj(4MhsbK1P}Bw?ezN6l3Da0-nAw7^>S$yN*@qce`_td*KhF( z(X-EQA)-6?{S8Fe8^AlF?B}&4pInNdAH zhZnPozq*zjUd$L*qQ10xbR97dEM^NH@?sf57$1l!9K*-H{sXa4m$HFMMJ>t(vVLk&q%5cXovCEGUV_7wTXM>Fq}vnz(aGd! zZxQszU!-mFBH^_hQsjh~@LO8U-$bWx$9I#daxW*Wkl~rPSeHxFF=xJt0r;x16hEc& zhojxq$qNELse5WjvCkGqFUhoHLO&HrCLOUVfeJ`D1q8b4)FqiVIP!Qy?L~32l03*| zXeTSlgAEVtgO}t%me@YHN*?T**G?n&h$LBQaOB@TMH5!}tefX6$ts^R>DHNeaI~Nu za%^Il*N<69zuMHd&tR%8T|SKBH*=C>O%Wf3ASI3US|q_Zj{?$Dor{Z&ix~FfOnYIo zilj2$tIa#2@dY*U)G|527OQ{}=?E_?B+qyoBP zWh7dov4921;h(Z68;cv_x4x2@T*O-uWr?SdY|Kv*Z?m$<0f}&=`cw?Jq>+sh$Fwob-<_Amo>gk~R5=ubuc2SF$JP7jlwX6!QzYzKaTI za?c-KK*(SZ0`46zli} zOSoeUTVdeyP(8-55(@dp2FYU!sPd;!lE)gl1w6p+^f<#zNc0`@9QRv{Vqd)6Yt%Xo zI{r6UBU`-%Y*~4P(^9Y3WN?T>))p7D7MwjUFK!1LGTsuMIG{Ck-g06wi}JihPEjWn zGa8(th*W*jKxVa7;W=Kr*zeJD3tMKfYZYs+nruYN1u87U>@AYQDPEHri&OLo1F^X8 zP9A`z)@n$zC+8wXz0vuht)n$vtG*YqqK7k;<7tdXa?bYnO;BgZiS)0xU*bpBRBD($psd{Y9Q?P zFSN?AC^+rB*s!ul9=o7*FLEUGXBi1UznD=JYUnu~hnBzCYl45DPIbe}M#+l|it-Cn z0;HD|l*0V!mXu#}f>tgPBs83likElzuzrQ#x-fwi#uddZAYWYR zx4@4zSYFHk9speJHy~@ljAADE!S6LiZJ?sp`57>Om0yHK+cm{XM$}yE*OktL;J1L5 zxy~;_tLOY?v68*sFG3x2euI<*EADZ$#86Wae7#?lpYz_}=<-7aZulDt=%Mj$ETD(F z-&jBo{c%$PJ=FfD0(waFHy6-@sDK)V=q&}*Fv4yrpogx%)vw1QubMnpxyuoXu7EFh zIyQxD1h0bcETGAsGfCc6P#2wy+T2}$!LkCjQJn(8gMNG}8}a5hbJM^H`!D$-)L=*O zgqKBANP@B^TjiPW-ki^vNyCRillK_JAhV*e?~Um;0ufqcr6E#j+cJ+BzvH(MN7F=6 zKc>DFKg>%0H5>7?m}MHF{)CrEQgzZIkMWADEeD2|QE z$KDghx00 z)q8dzr+6E%dLR}|{bPUv(eQ8UhK8%v7XKPG`H~@%Ye(@6Y>jSuxVw^nUYE;f+GUyf z^7%JCrk7)ymz$jHZ_h6*Q+n0+R$_7dqM_%k0PGFJ zcEI3Azf5?|PvD#@8uP7Ug@}h3uNR~6k<**S7<_c~RxwAoA>J&?;9~N{iV=@(^F^(2 zLGO62h%>!+yz1gH$-90%j;K!^Jq~DbadsH-dO( z@o|B2xvHNO(B$^}q<|(j{6~HvkLOPdSY_d7UPZZG`rOeJRUIM1j-AQ0c?0upF>Apd^t%FfWJHix-wkM|zEo_4ekfqe+<%E&`9m?QawjC89{l** z%yOFf{CZ~Qor3!=F>Q~dY0*+qP()+6rV6WgXW(>u}A(rY3#5)MlbTVA{Gu;tbJ zR_(JNE^5?`xL97b&p!K*YKgZPEH`N`rg19Q&SGNz*-H+?MSMUm`C&eyjYSpL8jUOX zpMi{V^Zs`rTb#~+8psw$@J|ET;_UywfoyTE{&^r<+~L0rWQ$YiF9X_QWB>Egw4DZ$ zGIeQWfI^Yke)ZbYx`^}UuLUfb=j*9R0b`0rK1IEjoG?QT=p8{0>ZsSMR$WA|m*X|d zMyJh=&_6jis^qw++E0xQjEG4MYeC6mYHKEE8YfT6)Hk-awbGY&?_zxBvi2oCi{$Up zQ-ia_UALp1-U-I6kQ$t)`$6KKrh?QukeBe^0mBQ`v${LP1}e2K3#2hJe(w+>MwM}T zWq0-T6&fObUjEFbYk&#Ynrm7!HRG!q8|xa_MeJ)QyrdDv*VnaV8mlJNY2vk^enV4D zAeeSU4g!%gmaBH53nN!Nc3zBFTidK^Vj-JQ>dEE{nyKDTW}Jstt|ZcCDnA(|JiK$3 zWF?^twmFCGSIuQmk5yAa4`WMuAU^?==je zu>B}u)`+ZG1zSUhn3U=upR&=Q_K&p3iKsabr%-8GDl#!z>5&uA06~H#e>g|WB8S!N zSIw-fSw*mvG0Nql!LQ$Rm2JxMe%j0~oxwJoR(R-zERois=BnL~%BRK>o<6j?QYp)B zfMo!de4ZSCVy^NZ>3TsR|5)s4meMUgBC7R!4$Q-tW}zUCn8cwc1tXj zsX@-eGZH-~vw~zC#Il*h$df)VxIG)Hib1EWK74mvX~H*BLnR-6WtFBNY7jU?@<&d| z>T(1gIe1J?2Qd~|NBa0kDM`fuB3QSHQpL!4;>IohZmLf@F-ySbw6t zD^S>1+99RB&!}ac71s?|7p;fu zK~rkzYbdGpvvj>KU1Qoztxu9c)stIk!mMhjucF!h&}U-g*_gJvmPz%ERSm@1fHb1b zt<7|~A#iip>xVRw&PG`(_2NTtl_zlj=K97A`Gr}WunmA!HrLYS##v2VUpqAt zozdA#P_%jcwAT6>_IN{ZN}9(`o zSrEZlK*YIph;BY674oGbQ5pMY#1Ji0yxl0@CnyA|JrJ`Tg(rt5NHP%FR zErcAt$r?gRCQYWsJFvN#E?;k`uWqSonMN%$I}T;mOl_T&*O{@C8*AF?o2VnFpR|I& z=7uRXlbTw~s7ljM8bZM94XrKY$u`i4(gKX|UMAKzWyJ0+wN0L6gX$ZnknAkzlb- z9dR8coV#SlJl`d%OXCzhnR{Sr@HqBp`em@S5N(w?w7#}&JeglXQ1m*6WHW4^B~q5$ zZXLnFePu7*zdjc2z-z>fS;RHkDNmxqxrU&oM#Siz#$oF;DxrCDLu*|bygfPw-lcVi zOlCI@eXN&QE9+|O$7UMps$h6K5J++AxVp@wrdqV#E)r^++T75PX=rN5v^8b8?mGvP z%%rNRnHJI7yJUrlwyBvZHBFhCiJ97Z>dDlu0S-IOht@Vyvm|fJDRy;zTc)OAVsl`A z*Sr#`g2%QrO%g?qu+JiSC^O)tg4EEgFxOgB-%?xE zR)sNJ9uVsfRoG~S)wR{PG&eO&%T!_5q{?zqA6-H5Ue%DPL#&NbeBj)iqjV+(5z|I1 zFfdy~(UKaYwCmcaaaxehhvp-q&xu*nL>o5gz!=Sfz}Z4V!8P@Vwzk2eikLJ&2x^7Q zldv#kuL?~QJY=hK3qu}CTDr)BNsEX1BW3Z>>Zy>|TGt?2vMR)?YHM5IUOI$YFd7dE zO>t+T$b)o_boXG3hiV;c@nFBw;=#2_i-)RKSv*v$I>hQ4MGdM$)%r%tuc?}lgDRmV z>jI7pLV#(L2lF)nuO6!KqSj=g^0g)l{*MhOD~>5(d8~T0C?>gT+IonWr3&G05%0vLW~=*2v~6gsA6Y|7L^8=1Xb&LJ)|!Tqv<@J_OoQHB zRyB^6RjC;UdYHhJ32J^gHB;TQ$>vffbr_2EvXBmgT3^#Vk~W{IStgg(hEr;gb!Iti z)L^!WQoUefjza4j(c`gfgs0n@`bPBk5ixnoE>_b93OVd3h1NHsPmjt;Qhg(ObZ#g` zf6fi1=*@Yd6n!}_l%nIhq?Fb;lrQy##r#kYZ8tyEL!WhqQhf6xb)*#24l9B6k{A!2 zN~yMmS9~H}bSbVVQ!P;zN|VwRxtGMqq0#JnjaegifMq3)6`o2c#B|FfxdcD!S>x4U6e!5#0=8vpqRN z53EHMj|O8QhBDnOCY*|EqQ7%R`Sl8aYzFxCWPtV+1dxPNwT6 z1jE%Tx;cDWGu^yXgI-<|6F65vCfsuatOXnBOdHmMCk9|!ZOfEQYeRia9sNZMPC>_n zGPyQR9UDSZGtEu3qHC=m2S<(!1e0kN70dLcAyzwwU-y-`xu>(LvPshQkD zzV&+aMoQU99=$SY^CXYn2&s3XN2VI+WUo!(%gJ6nAv-IOwM?ZU-I{5bf{E{l0H*y7 zFFQ^#3!nwQ^!Sv3%E61cV1-jn1sT+$)Ke`T#4szJ7AR4_XIg7B{OsiUpcVbq-&+Sbss0~AJRt17E?hK`%zdyXzbo3ZO>*(jYh$y%MAi^#Di z8@ZMUQDy350LXT6;3QQm_*Ol=(LJu?4|%4JC@Q=b$F((UR3IW&}_{VdhAyt;0r^TR-s(|(?f_(Y~*-8KLl0sS`mw=wqQS7kN{VN zJhZ3i-itye6+&@IIEMYj8a^&lUt6V|a&c)Wv|cwZQ(Z+9ln`9(3Yutn!=+phSZi*n zreV>e4``xuvPCsfHKKmxX+K zidkFNrmsgY4~4aLjj|S(X=cdNVB>Ikh@(qom*fHybdW};dBXjx0p&5H)45sorch&0#MF`Fh}1IQ+jliMmyM`F|XIS^^Krj6HrCTG=1|j+%MNTT22z_jK{ z-sYlM?%v|SFmX#RB3oZ2F|56Bb-1u_hr`9sVN!QG92lMSU@j5{3l%K_{PzwQ zUG#g0iyr!egCYnYax9?R9&)(w>^28QuRZKo;Lv>7C4>El%SLDZ(P8sR!=nzHpFKV5 zve8C=a@nZ(pIkO-{+P=~)gN=&sQaHCHr)QRO9uS7L*_Gu$6Yp&SLx)s>J~a(;0(FS zWUCnbi$-sywa?hZ-M`6DvG1KzZrC11JXkQD*JB+n+3FO$29w-q0&IhHaxPx z!?nq+5NnDA(^ioV=V(1c%O8?Hr76=Xpt%ivN>k;wXrh&hXo{yTJ=J_K#vzOTdQfH07|`Pnll%IuN!JD;+XRF z0vf!ge8Uimrl<8FPv~zM*2Y%T0=22Rx{4R6uNry{RgHCMU{T( zxATUoShr+q#?hH6A3nSvh-t@CKe@TKaVnD5+kwSE11}P=%Bz72Mo0}gLyKBEE~336 zdM6*KLM(PW;fnihLs^sZs_mUXT1P<{oFBasm?S6Z2|`014r<;p(6%}h{%&BPwoWtf zu1T$GX`8|?6uhtFjgyM+s;T~=W~~ind*yx&b!36@$|@Rd{YBz|79Q&PYJ?j zC||g?u$cNXfU73clku@tHFBrCHn7A3VU7p&S5gwsgy(l(Ni&4m=X75Obp43*YmWj> z@4gAxp&^9mHvwN|;b63U8>o;-KWO|`*U?S_zta`;T>71^5F8PHuhaF@j2|?CI@$Xv zG!dNAsYB8qJu-EIw>Ffi$>N6)nyMcX{wEuevwnCEs}B4A6Y2!TtHZt@J$mXu@4p_I zI(YoA$EG?Y{K=~)j?ez*k*R~g|9Nbd$pgfny?Vmtt+|M-dvLz?i)ku6^848o1V?_q zWR;Du{o=ChUriZD69@gTfiW7I`jKCHP@tk6kPpUg-@qL2&w)USC7$>@IxgCcS<>B0HN}OdELV4K#r~Fib~7EI8RqZc1Wa$N;nDj0&fJHvCkbTq)VH6wYx zO<-C(&l5edMW~`5=cTs}RO|!A^tPc&cnm2{2h-bxGMf5>)4ue!fjM|)oc5)+Gjxp8 zzV!BiYDIgVKRSdMC?-Jbg*;WUgNkb&;6qg0{{&;4~9$`RgrruVTl_`o@R zfQ72qJis!f$L4TLCZg~_%MzagrVn(u=!y{zT82u+To`R0cPyjd;tm!~vp$GQqQVrzuuke&B zeUM>~_SwO4TKXVOjUIAZXL#v@4NY+bhEu`x!G@l3TA8lYlyJ1C)`yjvj(y~pt}>LY z)53JMp(@VK(lv$(B@=x`Tw`cx=Yi>3OHH{~YiNWEG+w#YnM%R3j#qDWhNftEJ`hYt z0yXWpDP3jot&^+t*gywkjZg2WZhQon9&2c7D>0Em#~G@kyV|I?#+hpRfna*Pp%a|Z z$s@Y-cth1VXH3_ds^XP_bbX)^7*hv+=?R90ec+d#5U6?%{L&KxW&KDmJuy&18}s2^ zx*?$Ihj-})ld2By(v3PE9LS}cLMz&dX1Ymd2S^rk8Hj>A~q;x=mM5r+4WiV-cB)?E|m$teg^|pXdlq9G#_G z@&T?r?MSx;u$Vab956jQ7Lbkey7cUvE(i|z(v$K5uFml=3mg%1V9WwX<{TJP$sCuB z$ze{&<`;c~BfRunNJ?tPBmW;2u&m>`^xPP+=smwU{enV2(K~$M8WOx-Q`dk@d=#;w zOKa%NFg*_n@6^;xE~B&A!;k5uyM?%eC`YW;8hAUOE+d1h`4>~^&KTkM5k0+tt|A*% z&DJ#3WJW@#cQU$@*XWwL1cBWhZ)Ju#S7iZHvRTbD0lxmK~csz!^YBrq%L zJgd7~F&5=uyHwSg{z7J`?1*L_ozYZ}md1njq;H7KoW&(5>q}swCB8HvdSEFuO5#h~ z%j50TTuUJx9A7%CG>#@+#?sQ^`1#z?tKuXZ$}m{b_|h38;}{*sfVDwk^LF}hnX-hrB&7D#Y+Iwat6El-E61b5In z1G25?j;_zb_4ZU0l+Mi24bkFEI}@UH;RSRc+7KcT&%)h-bQg(srebvcC!iPLssz73 z9$FovUn|Fk^3TfC=L3%pQ30O=c#!t9?DUEpBhqbRDhn4t!1ZKpvUy>Q zkabvDRr(@89H{hN4+JT-2)m~WyeP*y;>XnKvvC(iorOy<3W$o4%|OV-F+#{kCdtOV z7_4=;Rf%y47$r0`NQzqsqa+l!mqIEAkFpBZrGkYqCB6xP|L5Vw4R)EPMIXsPZ45EA z2l0qhFevhq6Y0w}ZB;onYQxsQ97Y1q1RfNm+Wm@xrh>i?`siA4OV}%FdNeAmut_bf zuFUBy89zbj5*uGVNnZt9GUvdIazBiSt6;}sa0@HfuMSNhT?G{!iqEE`uMX8kGShsO zo`ZI!Zba0ALQ41}KVOo*#^TUOQ5=qlYxJV1dZI4qE>w&L5w#K(b*(`Y0i?K+a-CTc zk2|BNn_+{xKs3M12h5-Xu8)zBTWqKrA9NA+6r8vsr#Q0zWcO)Jk_*g;HdWQ(2DZ#y z2XmX*A%TLfhs5U$w+c7N4Kbo@4du{Z#EWc<8>9v9bZ$uU2Tcm|H$s=pLx{`;NbzZ$ zDH}P3p=(K1bDuPB(u`#ydsEZ5K#br5Z z=k2__I8KSqQKHKfa=N-WMv30ZO06@M=u9PAq%Pi7oR9L7d`3)OT%|ZysEaF==t_lr zk(cC8v-0Be08tl9b5gV{CNGw%i*uFe0(Ehb5?!c}6$-grU0kh1*D2%}b#aLjovV=J z6mp8XI8ljCRLDsRS*DN^6mo(>PF2Xs3OQLJCn=;ixKN@~)Wz}Y;(W!qL?J5_a+bO{ zTV0%`IOnK~^VG#@>f(W%Y}E%9a$|6zL}x4HRD~R?kYg2cp1L?+iLO!?SF4N9^0KVu zId!2#$1CJgb@5(Saz0iUpX3#yE?!X=A1Kay3i(JOpQwxXmFRtiyrYnJ)y0QO^g)2A zi_ewlGj;KWy7*FY)&_{WxHu<$zDQkM7?a4w@}gqHJRva}`0Him#St;AaS54~i>6P- zMF(A+j^r?#M5h6nO$cAiq>D2knn@zQn4vCa(FNP-P#5hv$!S(d6Cr0oy@il7VR@G< z7V~s*2#L(Hw5^+s8 zr_S9mPi^=;b@xJYBlQCz;)1l66GDeW*vXP;XF_m6&wr)!+YrLl*?=w(67-6LjE!%l zDD^EN+?Bt|3wqN6J2oQkB02QbQ`$K|UF4F5)nD|A9e9xy5L~@i8vhL|09GiekO#Q_ZM~XAG%=mABn?S z|0RSkepDC#Q=FfO!{ncFL3K}kCz14eba4`V9->5R>4Kf#E-T3N@LXPOsYEn9(O5)D=tgVe=D#rY<$462JQAwubte`Jfv3p%=% zZfrysT>9qfVrRwKOd&fcWP6FEUQtL?aki33>MOcH1yiGPvd}WRU}RxTB3(+GBmd?f?)AMmiWw|J?MF%Rb9jq>nz%{#hybDxT$ zUvtmj__-I!0iuY1aDWa@gfJV~;$6!VJjE2k$KK4`5S{S0T;Ng>q`69IE~!5MsOUjc zvYOfSK6$BmY2%kSlIAK+n7UtSZgj?1JKCB_rTOKGQ=^s;KY9=jMV{GrTT94KJgoU`d%NYqd!PO*{=pu$B{pyOEO;Lp zjfj1X&5Pv0`=~b}|G^$MN;WT+1@B|SKWxKn-mc91Bp;FgVDILfhnI)F&xS}EcQUq0 zw!Iyh_j#|*!=BCN?aRC`4FB%UxxArS2jgF9+4hFPo;jvccYEyZ?cv=Ub9DLb65HNA z9^RfFd-vpAdwXXcjDI_4m66`d!@E1?=<+KxmTu}U4{vDR(M{czb1;4h$hLQ zhljUY)+vL3S!k8P?<83m|KicY_?c>S!p~h1`44gWX5J}--^j3ZQ*U^9J1l5 z*SNZ=mt2e=7u)6LJ@%@AP58waM^EM)U-kVhc}Mx?Ohp> z{}6w#GInH6!}u+Q=)}E^y!MudSIyY4n5LV0J?r!(zcdn^7%}WUOtOsla*M|wo+EoJq&d#_DYjSAtYhUl*c()-W62n>!Cg95!Pq)^1IvN8 z-Vhy2#DJ||sbl4gZD80-Gqzz)=hf0(bmGQ_y&A?gsWf;o@HREr$ZZ;ppI z*TXx?hk0~kS+`v}J-TyTj9>MRPIxnjp%NN1cu+yH(G`*Z2;(=(X%D2J2zWWc%PWwu zg}bGJ2- z+0lu^D>WfrXcxjv?zk68xKb0QZpcaDr@uUVPjupeF-?efiiKvwZ4I=z2zO#===)Wf zZ(X?IX{5PA*W4*DHSfG(3hn;hUZn|B*DK8{)>eHLofua#^dG+?8lCWEUV$j;&#?&g zOT0_N_{G!cgs+BZSnBZ{^YR*&9!Yo6313%gSW3i0X|IOyJH^on->lRy{<1)HVp&YX z_$}k;gm3d2mij{u<(93|Fn%vQI^lc6zlUPrjmYY}1M~3jhe{3OuPQ_*j#Lo0%W&rX z*rh(~;`+v&bJiv)!Yah-*1O8f`Q&nAEHG$;)efa~XPjJkL2*T}fAWXFL(_cc9H=L-4Qouy)TlOjaR9 zyxj>lmq8;wtle`4lbMz$675_r!@uIg+C6J9nU(ZJydA3wibV`f#ve2RSw@rbo$?fm z+M0|%r-EXYQpEioj~0+QQpoyUZ!p=3mL}s{>>+bCS^0X0wHun$WPBez#fBN0th^RS zkYzL(-hBP>tE+m*YJoxC@v$;w}Lcspps z2ey1;HJ!ZA)@1yF2^2dysmb_8YKpNlx%jYtUv!wiSjH3aek*JytHQtH!`f|hm~5mJ z@pi0IAcIDHSi6^SM6pqpC*th}+g#>qvho)VCOajm$@pe-;K*t+{x}MX#cfT-cg<65 zv=p&E_#-GFbEFV5z8Rikr&^kfKU)+sSCjF(y(l&&qshweGFW_LZCw`OvR0NZv$(8v zqMpoQwr%jQ_^|jY3?@6g9yZfqvUXl8T>WP4xU79We0FC&tc1POGwqreiQHRM4 z(Fp&tb|>SIVyD%U4HYs+3R%11IHK4%OP8I*W#bK9HXKJ38=ui-LmeiYVC%Az3?{3V zA|4AHL6A98$oid%BZ}1|by*FUO*C}b={Ta;#EdSR#ATE0dNPN#J6(!+zvB!pbES~= zTf=3Ole(;$%ckI8@nP*)v=p0?@kGKOm)W*1JHue@&aiYD^8}fz%WQ|qrY3dS6fQf{ z&}BA`D0XH>moY{tHqFsxlW|0`>6R`#UC3NrHrZh9W+ZjlM2E@Ff<}B8UN)L3*3Ixl zY$?MZwT$lwQUnh0DuxddfyVf`pIz9Pjof3)-efNGIb|02M! z`42CI!v<9GyiG$tNaOEj*jenr^@jF%DFeI0aIV3Q+FDcGJx=8LpTiH zu4zWfI2bN#VM!T>#AW?Lo~)b$sJr->_UG`{f;Mo>^@2J}>KE;~CIwU}IPvL=~GH zFTD-LqjAxPNKE;B2R&>kNmA8!Id3cbhQo05QBb^qg*F`IQq`3f>zx7zd*&SCah{Mr zCReP}`&>NWzcg%gka-jqp3h;UlLWt>th}iWZ^QN`n0F=ve(~lPcHn(jfe-%OmRJYB z%*vTz?Q9o;f?49I)^TzveN{QQhBHgOLJn9`IRz`HPSRk@Xlm~u$Fye z1R8n}JGlpdSp8|$_pm>hD&94`bjo~eXlGE>(wz5Vp67O3RCNWI63GqOT5>DiOX$fh z%b{hKg++lzGP!$DZ|w{r^jr?xlOwp5GB_3qZ+vpEfg<4{+f$1BAy~rEmoyLw|0hcu z%5qFrkOWLovbfomNS^Rc_5s*fRIzCv95tc}T(uN)m(NB&hpH|G{zGlx+JKABRigqP z8xir>f%PxXy+NHu$TrbT+=u(T08wx?+%p%V8&Sw^HV_(PH(z&1u-9GmpgUGWjqp>_^-S<93|Ro4aK6>tysZr~W| zf`k4rWkS#8&@Uis?@AeWJoGDrIrn5@^bP$w4mxBz(aA}Ng;+6D%pAmCoSKKQ@^B+j#DB+!}Dz;|GJl^rp z&A$&V4^Fd=33CO%xrQRgg_w~L;@sgt8R>5`w^GK>9cIEIxbtKJNu-ZUaLQy1NqI+? zmoJ;9I@$-Z_fS#IHYnIDwCY`dAH4gl>tS>#ReW#NyS9$AF-#fHcuN*dJK~1C3%>06 zQIO!!C=-fJJo8P8;Z6$UtR7*Pjj#cy{|~*ZPmpxH(nqNikgb z$g^9;518?RNlbthJ5Uh**{x!4y&*r`V3;U~_p8T??1Pp> zx526vnFojR>d|bJrr1LvDxC|*WFBJk=~|SHd8osIiDEOGSe$~=FL+CoeAO5)FAYfu zhnQQvf=5cf{Wd9HK*tp;6tZ{2Ho7)T*{+9J<29g|; zSC4x$9Fri{Y+!52GFu>Z=Q^;}lEo;23nA2!byK$aBF<37-i)X8e1a$Vl?F}m7ih2u z-kGdWvi{F{yyEtzLD;t;GYD?#Lu`>`^n3MKvBT0KwlXw`8_ozYGFTw09+4zOmlQ$` z;s+Ps8W9k8Se{aY*vgOw0wQ>VclId+u`FWjUylpyN4hwl!>S#bZL|6Hh*M|mA;+7f z%#JB-el(8=iF&Ma8N)|psp|9$mBk%))H#Tm#fDeFZ0HGx{U^y3LP%k5Hf&LfnKD`Z zdORZJwNvvWx)-wlhk88d##eAg2(%~D0Jm*f2Yx+Lj$;z_XtqJ5YVtT-U=oWIvzx;( ziB9GGXo3=xazdyjYh2X4ju=Dm=qbHqfhY6ukTej<0$cFTWQCITf7atM%f_#SeFrkT zgV*{H+hiF1JUXmuPD$txd!Rbi{5U7Y$Y6nJ^@!}5Z8AcrL7dq3p8GgNc=VJS#2%J3 z5D>xBhB+xFD+Doon5xGm@_fC-ZMgPL_QkvtTj+?@0WGJ{ap;oFK3R%A9Hi2O&5rsa zciU4GIy%RWj*UZ?q;OM%9ra7$yNyjH=cL(D3A4*l>7U&0IN1GSQRy4}h<&Bb;mqE| zVJ!!s}bNEaR$ECw3;Y+@RPa0V*3}_#Th44_|d*e=>*Uph{rv#=AB% zIKmR~jRf-_u_(40TNyXy*ikfzqYRa7;krt+d^AKQuXEkd0FE3gnU-cPhrw=55MH?M zB(z+Uq>?we-3YW?lcSP#A=dI_w0z8_lG*$ymc$V#I*FsJg56rsx0**b3N6>BDSWQO z>`p<;#|kU0hwH!_8cxXkRd09EY( z^p^Z+oJD38z|P=K#wW>)0m4PRg9#ZjM<73s^OiNRdm~5TW;~RMN&fA&WCm|J$slt$ zRz;0@%hPQ#PlA`TxX;NBnM1QwGM^t!amhR}h2-(0Gtja!PNk1>yQydygB8%x}ALm zDE*4JJP(8agA9e)$%D-ElVpY*3b%7){NX0Xh^i;Xk$FJ|LkKQg@P-$r$n1a|w>A8R zha2g)em#fGi;%g-NeZ`gn8yV!RqTXWTjjBhaq7Tzr;~ZHLFPjE2y%~$K*E9qx>g?B zIJL7^EhO{O5SjB)dJ8zx%PcZ4G%#{qzw0B6-@g6gFEW!!#2Ke>2kvo69ME$Vu2LQc zI{^brI&*1?%sJ?~w~DH}bJ?8@w~~3K4f;UqnQ7mB#OSo3cNv*iC&-)~qHrJOu&eRs zyazUuc`bsPWm9;lQk6SbjBDP7%&O}gsR9{`4c6*)$Rm)r?A5@*FtcDm1olpCb zd1IQ)X^60=Qgt$RH8{E{nW+q!XC`2!9QJcorf%3x=5pYgiU^NZsxHoq;g`=Q^H$)( z&okkOQVlj%U-S5_WZoVka|#^xRH{x+|Cc6?C-cq#nUmqLQmM*}`}bY}vhN12Njdao z_(XLvTCAIZzWxPV)hP<&OO!V)hRd8|&p+tjWZnZ@6XF!^rBt1bvT4WOLgsx*GRFsD zrTPjRr{4YaUNY~GlR1`IDOG2u|J1oyUOot1*bN@WJS+POJ71Od`GCxafon99(od<5 zGFpCm)=gxt1g;f`uu3_!oYI}WKO%EgmduAT6h2m29qDx2{p4+Au6D@8_v!F(Wn~(T z4rz}F*8rE}!b+*SIUhTZ-AU$J;JOdEVoGHhEB>^;Co>IP_gEC}tNQ9@lr$U-izf~6 zn4s{<%F1+dmz?n$nNQ`&ybHMcD%BCrn)jDqN@i_<%sYT9rW}?V-)5d$MrIvw-3DB} zmFh@i`?fX%$b8x%^OhWiM<`W=lR3J_C^DZ-psEZCAEQ);5!u-4WimHds72r!;rPrC zaXzn_*PF~2fa^x!I!37s=koVox`NCXfomDVr5sim_XTcwip-aQ>pBPY^5OeRhRkcS z6duKoHU`MNDnq5)-2nc24Kw+NXgR@QN1M>{3WR?OKiUk*Qbat4+r43tdAUnrTyT-) zajMg&%?H1exh07i1M!dMW^bj)T%4ltc*k#enz3Qo$QER7&60UZ29fZFZ#!fzO2VUR zIM%rCx|cDK-f_{`Mj*WF_tIp(iLS@1uE#nvnoU23%=bg+9%qe9_>A^pfXvN6I!t+- zXq?ygu!G6`$RhJ~L^XkX{3J-`Ml`%$HJoFtXyY75=BIHoUq!>2s!hk2|dp8knLiq2{s*|0D%B-MdeXt*_op0232;qUs!2xg z?77>?`~|q40In;QYLRhj*}92j{t8@=yA+<`_$6?Imr^ZqI$ZU@ zqh#(%VDtmmbfuc)yju0bzsUU4!khtISE#-&Hlm+)f0xYNz_kjvW+>I^#<;#GzDMRB zgJMr+V5J;h?39Eq!*bvsECHW_!*i9@na;7x{^&^NKCHo>awvSAvbx;4<@i1e$s#O8 z*CF`X%4(`{S)VNzlXZ{-RT34YR7vCPz8wQ(9h`tF2P@_9Oyiqoof?zX*rM2f5d783 z>T+Y?>P!!^4h=$;rSLgQHPt!y%kK^$3twtuwH6{&s-*L3{Enx{Y6e`jX;`VgCOcz) zZFfCc&4H`VpzyWI>Jq1_`Be$Bg1}XmLTxCkGn}pOOuvn+RyM`f2VkXCmpQ#V-qw|@ zHX*1I6rQD2XBa&~=lnrdTi{yn0+&)rPe&;Cebk z;cE=PY%Vo+-}zZJSx2NP_Dl$UDV6PfUVg)yWOYtL<-kfgT|N{hUpuPusHV(nsu?Vdw25tA_zq77JnCuopmY zu&DGM*KfGcT`+P^GE#dF7+dzOm8ct;yK9K;=?t zR;gaM&%0#J(PRxsQ7jV&O4Zjod#H8yU1XhLLzRJ*QoZU%hRs5C3<^=~#SkJ?4xh3c zrFNH*6$Y*s9V&fOsW#c)Y^j?>)?nazDM+QyDAiN$my_HXWR(LKCd<;TO7)t3TkVT? zlU0$1Do3Tyx<0*6xO4j7do5X3l4390=u4?ybBzX@7LgSNu9vguOR1i;gV)@74p}Dx z*DDs4zGeFkH`FyMM6jlPuXN%y41jZY?Pcz|NB8n99hH@bH(_#cSEccK{1 z52ep5)jD@en|_Cr6$7q~0eq!Zs@L63D^|@SYb0=OOdwxM^&j`JOc|=4eXrZ-BFjp( z*&e%m43RZDPO;bGRC0bOfEpcR;3z|-|K-&@)}h#@5S7g0y3^40CI@B7i*!6%z8=K4 zHG|nru&L??csZM$Bdu!Ky^c|EE43#ook&i<%{5=bZWX*+HHb|lV zs_Xu_PtjoZdzKwe-$mBaTIM@AL?(|%^`2Z-vzAjRIcsjSRb zm34K0Sn$$OWX(rVZ)d5DY~O0Hd*R*zyU1Dq2HpY1JzS|OGu+qb1TP}%;tW*yMWmsx z3jgJ{yz#arWL=V?*t-Um_4FN<9bs22`}hR17TXkiKSN~)`>OD6d&mz}Rb(YY6#F1V zWlepDWkL{L_R$k2y+GEL!1ZAg z5!y2N@E`6gQ`ciaUY&+2M`hiVRR?$9-tkSzx;9C%k8CPypsaSeeLh|KAX(P~*GF0O z<*UltyO+(H{4H5G0N2MBl^x_e4F6$Yc*(FaWZeW@AE&A8NM+T*e)89nELk@PDE5hg zzLeGPcIQ{_Lxjt-P^DnytIFEBzwEr_WwLGsu1^E#%Xb*wWxs1bJC&^4f$P%*aQUjT z_Vz<%U+2iW6SzKgsjP{w3h%SyUw^rgth?hB`(K>O1{;#7GQ)o1s2krV>)!@c87eze zS?zI4TD^;;+zVWvg{bUk*SG3u9~pnkCd&b?&m36!s_;MVbIV7pBI|zO`aFm_G<>VB z_Ay^LD?ENy=#r-hQ_h+(J0+(yUO7-=p zyEZc(96kbEZkEc9@>OM>?d#t^Y6w}60@oK7>d;q(_t^J5U-3FwYjRMffy-8X*<+hM zyOgZ88H#;rP+4PT^|$-k@xvOBl?JXaQ&iT=SCw^kPZ{>a?PNU(TwevKtdZ|9{FhDB zeoKY50(bI909o zen8d>DT;j?#1ElLHQ1T)c_{H~~z!uL8<< zHhw(iM;ntk%2L^h{0Qfg*ftAC25b3xfJSz=D0FC!9c@NS>}@I8%%|-)42pekP{|&y z+hXGgzYVwbXTg#^iA8Nc{0~`gIuzR;pipyewiTgl$0T0jHw+z~xV=lGAIQQ~8Qbns z=m@21k=yg@fd7&8PKIJT;uJbose0vxu8U(S_8u77k)cqBoP-?;CVsZNZzt=01ocA* zR!Y?)cSoRN1z8`4pmHeGQ8{dx`)~5j8DwGJi2WF(P;aH`ndskhHWt~R2BAs|byy<%?~cRC`UbduPQxnaLq00ujvaIgS>FLy&Y)0xrD~CwIj0FK z`1=4ag6Gdz%?#{Qz9QBq-D;;rG=&u|0v&Z~X*Z zzqsg2sha1^y&=?M4!C}e!%8{qo(ttlCX)qm?AHvktW>QMV}q~#Le@@$V!wsJp;GnC z&1u+sIa#}a>o*7aQmR%tdz^C&S$_i8&LD;QCHx3`C2qSrhObh80oP8fYvzPl{r>IX z2uqR#KicC`?01_=|8SXZFV;gl0{H1X&5rh=1xLu1NjvOrF zLab#lPO-nS+-u5XX_>`E7l7TxV`&|vs_)YngWP8u)-p+@U)s#>@Dz?f(iX03o2A$u zMiSSxk7Lo8p>Rj;vjbZ0$>R55e$){y{{b%@4d$g&5J%vpJwNIkr`TTbQq5a-LCd`< z3fFL*ftLHg#A#f2BwFrEpe5IJOW_DiT##lyy8}Z2Oe90>s0U&RfQievu4js>2uxhc zk9wgcfr*PlGJPeB(rvS~r&FYNkg6I4@oTqI%}Yo7e$$xP_8RQhq4EoPBz@t(k%3J@ zs^P-W9Ur&aOp#;JS)&x(r66=^^*rDC!?p^Q%vV+y zg_bPH9KkmLRW)|O7VmigqCX^#l{3e30s=lH1GczsAfiIGl$;Y{91KDrhhk8Onkt3e zc7sYUcbTpXEx)&LA%Y(bM#~*8F00r~SB{oVf)t+PNC4rvMl3r0B8pT5p-NJCo>E<4 zY$-co9Ysv=(IjU-EQyA3A-vJZG^pEFHpa`yyRW;30c)qeq zID_we`Ui>(MNrKwsFc-tM#b<)?xDy@;IUbn!V8tv1#db8LOUabt^^U zX{cNZAFr%RjBk?GofJ7WNmVW4P${bcMvuu~XDKokxLRZ=JV;sfH`Z^Q3wp-^S1?53 z6O>hnQ+4BDiy{+%E9gL_tU^Y~@;lz4NKJsMS_UaRP+5f>XZ_!AQe} z&8xmOC~`V*wamdvsg5%aX*A#ricA5nRyM4Z!~V{s1(o+vr zXd8s%&FxRNdQ;dI2IJ)WeP$L#F0-J@LZz%; zaIbi;$4-h|9;B*{m;zo=RvG)|fzJ=5$Wq|yn5NQKmFh)z(x0Coj4Oca2!l%3D^;!i zg>}_rid+R;N2I8<&h>+@b$_4Q@KuUjlcK6l0V-?dtIC?W6O!E`6uHiZDgl-6u&kwh z*rsy^Q)C%%b#kffaHVQt&%5OBdns}waCMGTS!<;_%pLgLzz{`Jz|}bemFlaxJuooj zGK$>nQdO4_m9sF#=cNf=$x$Y6PJSvV$Is9mK0!JC_Ip9Z+!mdY% z!l!b($I!BeL*Y2rtwqb8L0sA4y2sJ7XA(Mol+NKOhxxF$WC<+`sg_gat zR37BIb!d6Cg-r+is1_}c#<@4hTh=A0s<%Pq&G^xJ*!50Pc?;h18MN#ZU?0NfFmZZ| z^|UE6I3!NJ&B}Iv*l-f-Wl^L(Z`UB;Es$bIp~_kZy>?;= zg~w4)q$Rgy?RL7%ws(Ln>{vS{`-97RB-v`xlZo$972`wfyA=CS!25wLh6LhAGEXLc zm5cSnj}Q}VCS(4#yJ(NwB+D;q!0!eDsy>nFav~JzjO}59Lm?#LlI>)ITPd4k zz?ki4f^$zM+_POx=t9bPCv0yMI%2X0FdKZB!W(e&@m_EEcw-OU(-$^fDDnmp)jNs5 zWr*Wl%n83(UU1_-M}_C`P&6La_|I&TfDNWl}*A)O&-1cyQ> z@%B#<+)A0ii)AL9dom9%7Mtio$^>2zj*gg&gU%{c(1H|s3&Z?QsgZs z5ATGn$nVOu#JdMas|<dh@#X`~WVi637LMZWu9U8yK zmkGROE_mTMP`e)9a)Wi@*@{lsMzCs=i3Hx9EAJN=ym~*p_ba?F%)aGv*ccRf8w0Ff zeygJf-%TcpZ$cJ1TpjoDR?h_b)ftI*W}5FN^YESx-J=c*MZ;@m2o8l%;*D4Yw^AnX zMw0~Rp3K8r3EP=zDHHh}8ldX4c{`rp3k@GHAGY%3wyv0I69Id|F!b*jsU_n zK`*%K;Xtt_De<0!jN&If5zvIUlYHNshj)g<_PvSl{CXZ{QS}HPTfzVt=1IUYoX3n@ zih*K|0FILq!dT|_WbpEKQpyD0Sdyw|I84Uz4)ya}_N9|w&v!xMJ;d;)F2lOO2J6oc zF)`N9?iHDloyOa7ynB4SgCE%s@BIqztd6f5aNeCFpSbyW z$6^MHW5n`gRF6RpRXv{yE>u0EbGAFu%kLRUwj)u5?B_S0qUy16A=K&_Zlz4s^Qmc1 zrq%N)vYm%_G|=cA?nzWHW2KZ+ulfAjKNjS)RECGl1pe7mHV z-wAP^Z7;v4LAT96A5G4(t&}2UAMY6Cs5&Qv67OjN$P6hHcv;RTNM1a=I3HD?Cfj*< z$D!TiEVJc!2iyKlZC@E4-cByRA*lWxn{SSrc?XPoP~=Ob#VcqJMoos;u1|3X+I$Cu zj6l)OcTlL+XXN;33tMR=OyFOVg>J~q9e3GhbGD7ING$&*TZlw&4 zF^+MY(TesLVmn9;@5NJkTb?Jv$yAOKExrBXlMF(StQ}S;2fnAXOxz=d)kxWPpAGu} zY<$x9@n_(uCq=$-^4XYb^ZlwG8~1^Y6H^`=k?)Z3H*$dG0&`@WrLi&LzX`UNmBpvA zG1&nSTL>i^Q`n7N`?HZ7Hwb%Kzy^Bp4P1D`I*;`wWle1+JHsaQ$YcfCh$uGp+Qn+) z*EYv&g`-~RC6mWSDf4Ti!>F1w1smI?Qq>0fk_LhejGhTUC7G-s8&Ne<{&77vI@kxO zjXxK!-v>uWQ)Gwhu_5nnh-}aCjmHB2g#QL~{6E&i|3{qdLuL`N$=(~#(+z?PA><_` z#zEKB&M=M@9zCUo^+#J82&^-5G~tgplNH2jDXja7Vh#U#4)fHTB0r_`u#VpY$>6k{ z2cr5s5Xm`uuJ-|JSwckVV?7(x?nw)whIPpKFFYc~d^G1NHLN*D8VIbjvNT~Ii?A@( zVSbel4%o8F50uvy^Kmi^1o}|qmtu`m&p~TwRKEUiXy3ac)I69UhyRAH|)$Oo&VarjJUjUUP^6J&~ z-x(ciSB!@hHvH&V*>ba8TnII++Z*-8Ee-4}-dN^U_~d#0J0lH54G+M2t*gsq1+kv2 zupU$t>ync{J{^wwQRE+t*!ng63nU>&*6?28u6~sE+m21_(2f5x%eZU$XIRB?};V48=TyU+Q*Xphbeh-X?6&DZH zdMw(|(epYe$!>{Z5ouT#xG2Ab5Ndh7HdF@T~?6M1Yz56$wMue??F zIVpbgm8kh>Gcmr!swvt$sI##canDJ!__S4b62tXSk0Qy&k~meLlM)TJ+IVPZv!4YU z&2pYnticI-ezTXJVl!WEguK6Hll|){5CR= zjd^LEjUe#*XY6Rpkj}={U}JWO#iy}xrA=@sggP7Z(o*KnfS0fB`K(|gD3NPywDdg7 z+5YMTRbS0~6lUWL#YT&wwejGdb86w}1d6r<+WKq+GyL{AkBv*~)kbUJS8TM2>ujV9 zcJCaEPh;a+jEZ1J2z53tO-Y&0#+YDF@ohcYS|ZojXybX7Y+R3#k}{Z+f+JtZ~ODuxT+o-ZGm60(JrC0ahJvJ31snUY%Fsr+S(ODosFyZ zXXEY_Ri>zowi3C2YafV+TgPRs*V`F*K2jD17(JrBUHac7U_EV3I`*S)QU4dV*VPthS*1>L4j>V_d z#+?Ay*%Cs%HtzQtYUh-W8}GYJu+dc_*Vr(!(urW>Zp<6&xZ{Fs*lONrR&?ID@v{e* z_cDrNqgmc8Y9PneDKGTu)%Dou2K@3t=GVp} z%XUr|Y;=>zH8#5Y27--yFmG(&jtjCe()LHnAw}7^>8(*q5YAwV9+k*vqkEFyF6`CD zQ(3(>a0OXoqgPO8VBsCp}RT#$|F zYNWI-I&b{6{_}qDK7^uu()n!k&Jer3+hb#6P_K=?z^~XiHmOjSJ6my|F4w)gL-cR*;ReRBf~>S{t{|yn>xmDkyqv zHlK~YF28NvV`FPbXQKr86&s<1&c+u>c27HtPn$(oI~48f33WEMO2CSZ%bUD`8&g?r zlt|F!*BzJT|_7er`^FhdlxK6&nN7Ivc-b*fR)N zd>R{18WbI12%*l#7eOiWXVE{_T+&3aae_pyu`w_$4Fnrc<*53%43iaP<3!s(r?eTK+B*|QZ`d>R|IDExtz5bA7f z4@sHN#u3-887tT*mB=+V!dYn`*r>}=HNP%Un2l+wHd+?1jp(avy&R=zSv;SOu+1L} z;j!@>^r|)n1HWRUJg2cyb9jzDGeX4dpHrT8C>pkfP-o+}xRm*9IO~VD7HkZb$Tc>~ zbJ9St@oa+7Ba;=ZjWgA}5iH6^>pLGf42~)(IwX#07vfaYCCg+5*_fu- zXjycm^au`2!O@8nwNm+Pm=1r8hhU@TaB!p8hyuT2qcWtk(JRNE@xkKL*mx21hUp14 zHsDq?)K=zyoZou0U?VD#Yiv}8q=8`Lr5x4t$}w3%HqKHb<#5SH2m1iOeI5S%7Z1VF zP>NQjJvQXkr)V_8pH;$6eF5-q>-dM(!yk&X=a|3`@XH^I%vUl57ec6E9e(?oUK}et zdP)uJ&^)Xg(Q_!y+7-llw!+$0j)MbYopH(Q55UndiVj0&`5Y;+*7Qp9XRipX(V_Td zQ{{SiLeF(6uwIiDk^5L*!!uxeC52GKdXY6&Tz!H^PpM%Yo{$D2uOO_Zv^du3s>=DJ z-y7Qno|S#u?T;;m_me0(0`b_ZumhrGQL?(gNyGn6#R>x|=cBvtv^s#P2n1fs) z)Ue+DVa)qJ)i5NL>euX(vr;CoZbn|M;#g;^ympj%J>XS}7sf8X65fYXw93fC8XX?s zPs;JIHp%H&M+J4P!-MR>IU-6Q>l>KShBFxoTf_R=oKL;++9W5H3hOA(i(CV4L2(S{ zvVt{yj>>CuIbIKl^`Sq%{0lvfpy;Sv9@d(Z9R9E$59@GI!(LwF2_0)Z#Gd^lBKNVr zl_IzhLJjM+U1|o4xe1qz@Zn2B{3WhF#S>B{^13xkHSrLW6~?Oa+O8{7$E0T*^4ZAp6*(54b_Qm}cuGbH zTJw( zq|9ey=@n~k7Hmv0Jf+5lZAk-B8!kr5qT;nt>H6R5+81SG#-1*0U&SdDwUK*%7MCL> zIwi{=W#+MQUQ%acD)1{d&a`zlt_ZQ`oQatI+V~QMKP4-Hh+hg>ZJd{sGM|kh~%bvAB@v*)+5k5(JsI24_l6GFWWq@e#OS@jLyb=VB@Kzh}j=0KN=K0J0yfU z8_QfN^Vw+B@$x?e8|OHlQe$IwMj8k0Pt}G|l#RQ3{$2&|V<>vAmCwd( zpn4)L*|@D98*_kPu`$=x*;oa;$6XP#&&Ds9H)ivo`LfVPdQCQO+~zgZ)>h~L&|#rq zV@^hR(a$M!eFMS9uUV>DRh*3rRBaeVN6II;i`JsYu@p_%`E1Nh@JAqewQ+AfHqHZn z#l{5zosB18w}!#cN6Jpj8*>vvsMp55u9W$;@%VKQl?pb_lS-{NE@17ok+Lg6HBWHI z1?P?P6&qcOvhixeUtWgu(mjEIvdZxZj~)!_G{x$ zi=yYJgivQ=r7LAV8}ID-WS?N;LZ)NLH8$oOp3Iv!cE_pa8Sc0+8)~FQvX z`#6fuckb_pN$1s z{wPkbHl8tbHWmTDV&f89XJZT4SQivA`)usXP;^070#R%{V@R3LM(K4uUKDIBvOJ~6 z#wE5i;PVE1Drn7?;%qEZBc)r>+Ax0@yb9hYQ1lWvpABs3i>*t_S@h+4Y~Wjj#>Qg( zdrEDS414~lh*`41o>v-OP~(3bgfC=1W5Sk+6b|+9q**q+9{~YNTA5(b;GNHfkBiIvY(~iY^HWp~eQ>N}12b zz8~6nztmjecuI|pD>KqSu+c0>wQabpARCx|0i z)?=eZJvOcee#OQ$uFggWuu+#1G5aH>d4{4_`pErxqqc=F^Vv9dUBgzQHm>F<>z`Au zafN4ZEy|v{Tib!RE6j!(Dcy?J#`bIeXTtj=ie78yvvEy=Kf>2zqfI?Ft^#122hwMwtwqu6 zQ!HqtTDW9u(b^9CvvK{hi&3X+-nfyqX9n6xxykTk;tb24l3Y8WI2#wK+UQ=CjkhqSQDSDHW&&G{u{>WvIjee*d_4~%nz^~X?Zs}~4f{kZFB4(eB4lcl@B@i`I`q@(E zkCbH#hKW1DqBk3!Qe$JeB@IMv9FeBl(kzn|t__Wiq9f(jhh9Axj;2s_c_yEYn;9y{ zOJwbUdTiVZ{ECg+Y@LlEuzNNrV)ohSoTTW@Jm~thF~AlLweKmjXT6sawQ;NEDK$23 z^9=+WT~ky$q&ORws*%!LvT?xQ_5*9SF*a<9vTtSloFcDJMQ_dV=VgmuLTgKb82G*4 z_V1{NKbm9@855DqAB))Iw&B8q!<>Ky?E0$xc$2^ik5YN4i}AqkEV;v%ajfj|Wwki@ z<5Mv6NtOA2MaMzw+OKYhqcbRaXF5OgV=Vp}9x)DT-eUO#RsF z?K|LT8bu!n=Cg6X!5>QRu~AizjR%2WvGGt^XJZ`Lc)`OVM+$qwee`|LQviQUH zJvK(yV`ByID>hbUbv7n~jZB=yr`5)B8Hzq+387vaqxWaykMcoyR}NcEtdPhxHdbb( z6Tt@d-_=fZn5-ZhS1LA+FIpSFHD6i_M>8n;XfmITl{SBgfXBwTdTcxv(AijP=xo?v z<3$goUmGXb6kTbftGwD6w?7+;S6%&-VB;~?o*8IttTjBDH;WF!aI+mIE6B!GhCfpJ z7Ojop&+KRgM`uxVt&`8jV`=_!1dol0_1H)Qzp9NVES-(%VB@7Ai%+YKutm|w(n6@$ z#>D;Em~`R@aX(`;ZFmM68&6o$iKvaim^Y?7OjeMMD-;_8iq^)v?OS(+qnQ+aB9qTX zItx@uFZ5cw9ve>qzhYyZt+O$Uv5{l(X>63c6isJ^P-ny5pN*D(e*2cFji)TnKx1Q_ zEu9E9D$-Poi^}*EWaCQ3M*pI0?5dq`DIA?m(RFS<8&Bo%#tK`qF})rewZN~~s7vZ> z%mo`Sd%*pXVkIg1lt+=y#`OK!xbV)yx(POFZHBV`NU2MDGH;|rF>lOun5-Zh_}VYO zll3n;Qtr*QXXm|H6kQ+4XQM92U((@?lv(xIcpCT>8(5vIySHoSfsI$vEIzF^PQ<)X z7ZgIBjamD%5lc@PBG`C3=^1FX@r)y#h}sy2d1D@z6=dTwRU4tAY1@p1pN&1O?ielDc#fm2 zUmF`T!n0g&jL1^$Lf)<*8`mi|PAJO8!tzt*!~1NCK5yl-u_2DvqsXOF?Yw$yya4=) zjf|_au^4P@Oo*6$He#4JHZbB@;fr$PtFL+cv(aYM=Lx~a3mMNqtBs87$-I#=67$Al zhsg@EajjzG_@Zp|o6+<-I69Z2FWUKRWD-E-%Gy|1kBygrU$OB@Kxbnq*m%tY?z3?U z=8cR;kF;YgysdlNuWChu{Ud>(`4fY1tsJN)1YGaInwC>Nw zBS(Mmw_sx<1DVIhYlbKDYGbTJwfI_wPeC@WQMFN8l#R=eKKNWXnoH5woP0JmrujR7 zyjgT9*mxb>;OhjYfY*Uv)y8H^XX6Hky&s6hr_G|LVWezK3!$uy@nB=={%jmMbu3<{ z&DNr?8=iqSQZ`%CiKvYUHr3wXFj+x1mMJ#El8p}b0lvewUp8PO93?2aIpeY6|9bIy zmcQFp;IF+Vq~qUG5C6?Bd*mC7NZY|S4%P5_RtPzXC<^>~F}Qh)N{$sCJ*9?qizN*> zR`%}Q+M8V_D~J_T$n)nh66*oKuV4RRdL;ji>*lw zdF=}Dur2G&;k7G+>=jQeJ}vXrDAyY#IB$-eXb{|rh8i24ruBJUWPWSXQz|ylmoyNW zpM=b>3^G|kHr{c4Hm-K$em?gAnScGnnTNyC`4r8j^Vo=PWvGCW{{R`yf*Wk9^~S+F z!2g|mYFYH%xXuP<5tF5`W8|;iB)j{B>O3tgr$z z-xfo%@n7IqY`mY)*?0nMY)OfjeKyWO9Uw>eC^n{ssCI=TWj-4tewur~VB^0MxyHu( z327i|axC(hax%=`xm>#aqx zp1qOp_qvdxALY-0wQ1z~O;_gnBSXjfNm|eK(`okJG!eOvb!LFzLI|}n-(}WccsmZO z@{bHpsbT#jEe%9o&(2cq(_B^%>qoX4^G2~TzvuSXZiDyv6#aC+8SrU~zw6Db@*%c( z*PA%^eHPS_e;(42znEf=m=-bnRela;z^5%Cl;^(L7_LKXDf2V`c7sb_5Nv!F^pqMK zpNFIYXM;U=y7t8slNDrRt7790$;JVz{LKcxo&`r2QS@^;1N!H_&ocb&cHW%#X}!#U zQ4jw{@Rs!=_cK2Sqx`cB3zLm{J=dEZw9K)H)Onu0(l7dnC4?H*o$oyH zFM;)6aZjmX{W>8HM3rA)QSD}j$qHiKrbhJ2qIum=+j0;bEu`o-@jR@xn?w9fg5K=) zV!gb6o7J&y4X_srvWPUS7X}e#NC-8opH91K564>jqTwkutlxTG>M~f)BJ^!p!`%aF( zwNYXX=vaTKSHmA<*h?H)L>kshQUn)5sO9zZQy**TVP!g4=vaS9NCQ#B*iTdYL59f+ zVg+S#t;(K;&hNH3;N0}Z#(vY`=n{(lxZha`xBReoO?p_jCv~hpr}eyI-omRVSwtGv zWQc0tN(rHcb#vuZ_13R9vFm7;QZy&e zN^%~q#aWiUA=AV9y`y9OwO$RoN%q1_5v4y5UxD$ePN;qjpLpxdiv-s19buv8_1B;$ z^J@4?j8`|wWCgK)t!ntbqIpdHDAq#)UkpZ%mr--W4}L9AbCc`aJQKb<^iHeyUt^shiZRyWAsq3U7%J)>jYozwIBqr+aQ3O{;Y zZ^C$W{gU*tem;2(-rUJnk-ukzg^qQ1&XajHd~<+me{`6vAl5Gx)_)bv>+lDjeF=^( zr|93=e5^l)_?urntUFyD>p%5s_}2h?5iI*?HM~5FFhfG9)o}m4FX9b~4C_wUQ))H* zPh1*^8om|d^;ae;f>qVn@wU zzLrI#VZ9yWbz4>lHLS-y@K;)3{oD4G3M>3d1A+BUjMrVfUBSHWPRzB8WQvBV(0&6AC`RW^PWuuUu*L?-uufO;VHGe z9^#WD^7^1d@Xp#5#QMF$%HFzBc-?f-1M_yl(N$D=sGE;U^+FY;Ux@H#M7;UkLG^~%r5oSUNHLQ=#IPnsJ_27)B z)UY-WNdtlPQG?)}$qHh9#PHX{4;ICmJaySCaC8k-wn*kIfw(kDk?U7Ml0pu^e~#QL3<*P`Qf_*LC6 zg`;b!vQ<1EYcRy$)a~W9sjXveU9W}@53m<^vyX-qTL|icewzHb>AJ7a#CxxCeywC^ zn1wz!wa$7nZ*F=LfdKNm?c77pyi?npm$zlPh*8W9m# z+d9HRui>siPbS8zS&qE+Ofp$PtUs&qx~3@BXE$}OgQFX%(y;Tfc8;?b&PlAD4IOK@ zxSrQOE_;5Z1?K?FwSuq2;w` z4bS-Z{1_bFM3vn``B?iTkXQMeX=Nu%$9hz~8ZNQWGRGoPSgjXrgqaXR4ePl1-~KGH zcCtLBhV`hlG!QlXa)Rngc)NmFx2e3YE}GYanh)Cv?X5v9NOf7L?y1!d@d4L|;M>^6b5TgFprSbHU+1o63nA2M_~PeZ*~+oPqo>rc9&1Pgffa<+RVA3LAl971 z`ifob>Q*qjh5ev#3sv?@cvxkyb(I)}k2>C^sLEqP6#L$gSq|A6^167v(K|YYmMIal zyt-u$1@cNu2<6qSHw;i5k}^N@Z?Bjxu5ML^Y)`4!Kwr{8u(8Fay3xG1f^6(lRsN=1 zjE(ZdlN;duR;oNso|PmUl_fcfZ4Y>%*Hr~@m!f*Ko@$A|Pf7zZ}+wG$t0x5Jwb z!J!aJHnw7Fs$wEE)N141Z<{w4<6uD0Qz|ylmoyM;WN|_mSDcN16dRk1*2Z5q?l=|R zZ==fN(|NT~IUqx^9dXIVXhUaXAn>ahU{G9VVTHZQL_>{@ z@uU7TUa&DxBG=d$6qg2qjrVY7n^>HUy=tUvE?OIhHZhKe_uHv*kemVi+8F3k?1zwK zV_ZEp!oaWCC`;&U*kI!aN5t&2@xD!!16?81*%)U?nLkoqi_cvt*a%DH8XIK^X&~76 zFhq5BaW=kFwedz#Hf~?s`89aIgDT5%`L$6NpxBQ=$p$v@Xd|T@_!S#NQaT&c!N!kC z5wp+6#}>L^GCnE}wei2jM#@A(%6vA)-G0}Nf{k*CTw`MhN6v z0;;TJV|qO{qQI}%sLbkY%mo`iTOww^HoizwrR52AHl`b*p*C;4zOM96!A4Xf*Vw4c zN&~^hS1GES`+u;ZM#}3&N6P)}Ph?l>?xxBUq!8-0G1rhX zpN)2_M?Npu7%q`(Y@8gF27-<4S*lxDoQ>V8HeM@Q8<%h1aWlOCn<`IE<+Cxu0jh*# zV_rQrs(@dyF*2mHv6!*pikSV{_yP0A2uBEYHs%>p=Cd(z%c6;bjVg&;V`F4U8VELi z!o0D#I2(T{HZ~PyICoiQ02&UJ{wgTiv1dwY%HwD#wozB*oenv7JH5#?pFh zoCf@g4XnkrZ=*MWjh#smv(Lt#m^a2SS>AeMsUc-P8wX9k_$tB1X%e}{hFFEG^~PVA zH*P4(MtMN7@m5hb)~wpL1mQSTIX;-r23vjZ%ta@~WFS{n;4tH<8*GA8)x*RHMW1>W^u`wwt4a7*^6lbG>nm4jV*%<#}_n+bY0jfMb zp3esM!fUm$oYh8FvN0L>6&q7>Ivf8+ZS1l{%=Kzxk}ZUC-q`0Lt%j8OY;4_mb}zxk zWQkm3V@ggMa5f?V6xhFuvN8BWJJ1kI&_i4re4F8|MGs@N9B$JPb``q>r-70Y>0kGJ zcQ2ejNR@WNBcmY=8EGS}b$0;%n+Y0{FmP1aC(bsW(~vp*Xi8FSUq9G|Zhe;!+rG^{ z?B_^fZec$)TnM4(#5yy<97!2>Wu0MA<&>l+<1giAf6EV>A9yEhlQ%kI@&@Q<@Q1FC z@Rt1$-mMVUemidyY#yS@Gc$g=J%kUt8p67VgKWFChp_G;i{lk<39q}~*71&a*cNUU zN*>;aJ)y*lvjN;hu4TE~HH0oe5&cJ50v$MipMN^D}yb!uxK&R!_p_ zVX8b!O??9I`s30l)3g`d`Vi3nVMx3y(o~g0v9lEq)xC!wDSxp%>g(Qzr_vk?Md6J! zKt7I33!&#Sa!`)oR?2vO&HgE>TOr#C_vUdy)`izj-z)m4q0k-ZztGKc`OtS zFGd|43Zcv|epOvx%424;xxkAb^5EQS=j9jk7rKx#kzf3{hmM$x<1P2`mTgBi`ECS% z#A^9{^)2Il*sP?=bJO{FO`BqC{rpyB$*h$1yuO0zkWqm*j7mW61@-I4x$FT$B0M>M z%~8N++Cu2zHO~N!3a_EWi&FCHJC5*j!=Hou?UzG#ZYhnxvq|04jy9XrJ&lb1>B_U?I^bn< z>A@~A*1c|%X{A^w3NM>m;7|zV$iv(Mw^Al@*dzg2(39~T;{I6Ju5+b~cVeFDvW}RH z;~iqlkyo~3KfG**mxs4w%{ec?W-V1-;pSIqCZOYeA*JJe*3uEamLyaD5GLv32s11o zHkQ=vS@(iRg;($#&9j!*u5gu_lO3viEy>z3gyjwVj1GRs&d=!W3SpxYtuJBoI8|N~ z%FpPl$l)WdoLg>24j;~WVXeP8DK0>Z^Wn{?*}vj)-dS$5g+B{L%czO0yy^&{#9NZ3 z^*77xiD}tlYl54TUOSP|NYfl-IVs~AweVG7{c@Yhct#gHGNXf!*$?jxhM&=EH%;yg z8*IP19$D#~#NRR{>n8<(A|vrm3{h-%NaC%*1<9PhzI#8TukU`3vj?lelZH3aEJbiA zgr3XDVZiG@+QwV&^hdiI+iT}lFk9cfpOG?ww;S>+?hN2~Z!~L?PV4UDq%EX9mnT3prSlxSg83*b+tH6uvI_QYC<9M%A`7PZKFZ+(>jo8;t z9RC(|z-kSTQ0Nnhpp^6UTC8Q&wZch8VFU$|xX$im{<$ z;rDq?$(#*WUf=t}f8=~l{harC&YYRaCj2!E+?}yzlQzv<7?+}ExCMNEt_sS@;(Yy| z_N3GN|L|IQEIfU0vnD*1ohrjD9CY4w@A0ah8vl9S-l+2wHQk3jR;=0TUFK5Dya)Rd z4CkaZ!-auy*ERE7q-I;(dFW8wW$L54a%l5i*O#5Ci94)?fvmiy)4-W=LPuOqIQ%K7 zI(#Xpb!eP$X5YW%?WprKH9c6WrG_VF{eN>cwWSq)`LB1Hf$+2}!`+3R8n;Z-OnoTO zp7<^P(uyqjzfyZEL+t|tt}8s<5k}r2POT^7P9rJ8s5}bNE?VO7zz| zP5a%Jar$Y`Vy=!TbLWObK8K&j8bs~zM3>sn(j%9fmNQG$k*Ry3oHCc_k zzmBn#_SX*W-{Ek(km0=0;RCBNG@jV)a`5*#G@hfTDd}2=8wdPnRL2qUx0Gts&Z>^c(DbBhQn$c_I?m+ zvU407PwaNzblk6KJWoy2J>^gjv3-lO>2Qk(|LM4PxOrUo6$7I7zm-hCccxKN4OurP z{BBWJKIFo;FR`h83zoz>mTQ*hVDq@rWbYaGqn@34&xwf!lFzg>v?G?prEKHBdrNl}C3 z2OGC%wI+-;V)I0EN?QZS;{!rRT#k+PiG)ja&T7GETtMcWz2pPbDN@r@*c8QOU(bDe zTht833*hi~z1_6mf?)i*q>pYx(q?E51@hlq9*W_YL$fU^Mdi0~>oT=pP~*2-n$Wl^ zCqZ(!whu{bO@QPJaQje}B*=^X)j>WSf_#3-YvT9a7W<`ZS588)BP<>WD#U)QuR^0^#it>4gF z-R7O4&13I>u=*wel~1H}gUwSK2y2Gq8DNcXS# zRQo(Ny{I=OeSg*dXqkWbRr~$SrPMl6?P*4ue?FGG3mGP6yM#(o)C_w>sr@roYs}F6 z56f3DtkopLH*9L3A$$r?uVkv8o>-HoFAlr%ay0k?HOt5W+mjjupMN;+H~@E^M9$Xf=7UsSZ;70CO-l|!yZ-act+uUJx4eiQW`wSOyC zT6II^zjJ9{9;kA1r?FpzH+_SuI^jPwXa&2$-FeI#c)jYp)ZO0y|v@QYi z_`5aRKN6h?o9D0D=7>Ir@qzUfYQodQ8k?n(up-CQ{#->^QS0?NtmO|qZ8Hy>A5`P> z0~gN&T(oM$rx<>zBt>nLhyR==r)=V}bo+CbDks-#q79bvoo(7Dd({4c%jLv+{UKbh zFF3X9)p(}UH0&AvVCt*X^bsHmtkqq0R@yw*J)bq79>0qf`lT9zUI*gtaaNkgP(>%6 z3O}FK8n00EKaH+d6X@*M;r-o!^Q5OhUnzRO5Y&1a9>(B-mGd|TU!$f^;HTudAXP^<4mrhTs<#UUm43aIQ;n^ z?lUwdE*F0&Q5)msINO&6)f_eAbsU;g+Fu*9fAa_(aXB{D>vLyyW5!L?!SC+zHj2JM zO<$C2qAs^iAf9o{sLSE3!rO^5Mz-8eB#$7p*@)-bXi$pUCN>f@ zt2N0F)^lVlO-7x#iTcygnpmNHbBT^v6D#yuuew6_UM=d36}r`&pO>M|Y-+-j(#}_j z+=g-d9E_s|m)iiVaC$}it@Dv`HOP86{I$fLhYl0{Y(f)K)DDk`5E{~&bl6&=T%E79 zzXr)~NOJX6hp|iJ+F|Ufcx?+UT=JzwIn;TJntlK$;YLq(ZU^|Qp0jh?WBlv8YHhZ! zA5h{dY%(Gib6chJ=FC_9d-Ja#ve;CK)JA zHlMgQ4!>!wiB1~#gLY7qHTK(Udi4s}Yx-(eiwRbh-Yb)@4N#{{O)LD6-jNQEd$$ZF z`of_&h2(aH!-kBG#T~JY&Zusx`&*Rg?V}yj;W-s8E8&vf9=q|Fd%fq<%Gk=s>6m=tL>)` zg$!4m(B~x7nM+N7VBK|Ivkhf)w~1%X-KIyy+-=T8U1PVwT)kfAp@e?*hyhngc^ zt>43JGe#RTMvUfcln!IGH&S7Yz8|H;Wfl*`@XIlJm@P%^mt(XsqqS;`qH(1uzZ|2z ztD5wCy-hje^N)Q(zDrkI!TkMV>aMC+_wp%d{9S6shc9dR9#J-KK61F!C2q2Gj2@0_ zDQ-pNfO1W^UQVj+NpGU1{!uw(y}|JtxtxBnrTxARMn`ZtOpNA>4J~(gTxrVh0cAoL zT9bZHbSd{{g|&51y}sLjc`V1Ft8C8s@%CF$^gU``9}xA0L~ccIJCqn^t1;!uSxVgQ zX`B6U>DVBxH(Nfq{%LWa2FT~qlzZEeqBizIh0u`J1jt4<(JxS%FvkDZ|M8_$7;D5c z$Xs}E?fqUAWbeCyt@Bot4MFbUp2f5FJ~elRpU#0gz~S#^)DBP2^0%RBhwlO8B3vrv z#bquosv96BhLU?K%a7%Fh@oHmHcb2gM~bRRdyGZ7(>wdM^U&VoAu(Lpd?Ul1Th*lB zJuxp&iMj&h$^QkUVRLrrjLp#G2h_ZYUu&~H!#@J7ZO#O&XMAmQCRS)6s%@TCp%hMo z%H|`;TNTKW>h)@Gh@rM;q^NCfT%p`dPiu1j-6;z#sx)Qu;57E0iq@n}Jaf%GBFeGN z*hOo;AK7+1J%RckQgakR*m=E9!eQ;Z>Uy0BD<4+ZYtA-qk8}Ly=QlMrZH({abCX;( zICZSUt#EFl9)$d1)8?D!-4`O~FQS%nqB{~~> zoT@TQ_oO%3Qs+^ zVs$6fAhp8;pL)i*JR;sNr9(dT_$950HOZg7&JFdH_SX&*|3Zk~>T@}ESl>}~SYKSt z;qcJmgF(wxsPi#3ch_5uezux>!NMQ5IGW+}paxIs4y2gIr{ps_>fXmPu9W2wriQ~`22LJ?I`gS{2XN@T zN?%2Yg$`fwjkn}E?E9%@S?zGP!*A%g^Kko2u)|kvDQbs!L!5g>a0su1`$RDl6;NJI-$D@=w@d%x;q0Hv$V0XaenH- zebyKoW=T;Q<3Co(-K8-}bd9~rl)E!f<v7*vF#WAhD|0jl4GS6>*Ry3o3{FMkdD( zP=xEhb|~InZ5!uuVwK(%uF`s^*5Rmdl}_EieO=V~oSN~_pyn8QRhfU1NewP{6&T)J z(G0JIr|^CPH%IvCX+<>OhM8IE@lXuE$3`i4RSi+T$KWfIL6l!`e#(ml+Y1t!takxH7Z|R%`YFsRaAbn|K~@d&O&NF(5?0Rk&jPj2HNjO5&q%; z?f1hh|KYqok6sPFKf2oQ-VQ%Wm&2>ZXt_eUk9;YrChg@uG?u~@Y=57o+=p4ENx$~5 z@O!nVwJrh5Cz?u>-`inL`29Zg`#9WnUctsQtXoen?twassQD1k6jw$)#C*>Tf5D6z zTz+48TJ9*n`F*4O1tZ$;JeR*xLi@cKsi`F%O32rq4<0=;Qq+DI_=IM)CikR;S!hwE zDZk6$cb=;?=@;)3@)rwD`VAx2$Lj6u*Z6eKh3`&WfQA-Rb8oBGZyUz_RZ08JRQSt= zwBMM`Um>FW=Fi8>{NQQ7108-FB8R6Z&wdv^+Qj&(@oRq=r+lU&3#x|gCD3BF(v;s7 z(9YL$CD(JJ(Wd-Bhsz1SS9#U-yvJ(m+2Fg=3HA4(&KJ~tXr|Wh!6p8AW9|1K_KlnXIXu|I`q2C^>`8DEqz2&`rMMF!dxv^C1w=X<(_}XuuEdMO2=G!O2 zKg+58Vxz?mF>1f(A~jvvsPf$_L;1eihq}fl;kQp#`H)+^jfXDzJ}mLPD85IhDSwDA zr~Dofq5Qc*6MhGWe)n31K9t`>eafH5#SFhkLOV3BwJrhj60If5 zZ|bwge(Sq=tDkcXo6|NJ_#KKarRKw(TAQ0!C~-74Cb8!7nIVmJ(xaZL=j# ziII-BxhIZJ8>D#z;WAE4j8lH|iWF6oiRl>r=9bpPHkI(xl>b{+X%cJVsS4#=;#w0n z`6*F;&kSqAX7@GQe7k$oQWRZA&Hde4o87^80QgCp+uD>kwW4iy^C@u>)~k%xElQL) zuDW{n0{7p`a#WgT;{G`0yGNy{ZH|gkep_2>(&kv7^4)x;DVyWcl;5JHHEDC(Eamsg zvLOwatFuHvv~3F`9foixT&hv`su{N({HO%>iZp_#}_Ouz3@P z+TWF;wmBI??Wf7fh7&Vcvs5`{vyh?uE`l8IPtxZ0QOXY}b2+xz`~C3R%5P>nUt90D zs%NJg4xCemI^R(9aX{1A?-^KybE|%x693?e_M1xcPm*ZA8wUI%0NQU?+$U^M;-Q3o z?W?hOoT108_TIZ3$~&r{YS_L9dul2zE34-1M?A`J7-&uU#hEhSHT3(gQ@ys{19zSM z8rRn2mhUhc4K1hUlj1dgbDx0I{D|heNriu$L;F3`;h%KSe!Il^hXAzS^(_93r5v7) zR(k~QY(5d=10&`4L6`EIRFn_3_j>SqrlT~;*M1b`y2Q06{qBl&u%5-5;QL<4m*0i` zrQa)#d-W33`Iee-yWE*?Zjp~K$OloeJLMLF;pdj}n_C#=uZdTFb8y}t`Ese{*LV0+ zq&yUZ?=;-|$WJ1NerMobU|}E&YQFf8G#Xc$^81WU=t67K@9t?rN303I?}mQ)Znd*t zAD#M+uz%)U_4&t%(<0Wivl1LWyU=PhMLmVmB^CG|eJR|C!|xgsV3(AH#ao zlcH)e5yUA!sjM|&GqJD?jU}EA*?eM&Px*IKHxnC-jcs$THC;OC`UbXo&xUb>?m^KjsXi$pU=JE>V zel2ND+WfvuXk2N^=86pEC;M8HG_5G*pN_I7Y#zU6njcTP`3)5Pk(w`XYi#EKlcvOE zZ8QJ0OZ}gU>qWb&Lj7S!(VSgIs-kJWY4d0H<*4+cO{`248kC~8`9}pqb+slJEoCXU zs-iU6yxj#hXP31mZSIWr-n3a`o4vmY_oC^m?M3{nvMNZQp1bl7)cJ{;FZPsQ{prK} zV{kYnq6U|L25WM1R(r}v@HrZbyE9fOo-Lu06t$;@fKXLy?8*F3uh3dedfEq`@*+#1 z`zcucSae@#8D_FFzxWR9Rbj12$h*v#Ig$r}6T|EcYGm zDYJ0Nn-SOA|73-KNjm?A%XI~wMD-}p@HHHCzEl`^4p{Lk@1Z|a^JURmPtTW)mqhsv zOS~jfm%mrA9DfP8I|I)-70N%amyO($5(CSGsZyJ5p|tTSf&9Y}{thAT#jwIBs}~$8>Xmi?tUQ#~ z+W&-yzexxk@qYr(byoGHws%mA$N22-*$eEKXvtA^jiB_%?G zQq&Buh*JJCS8L3W5?5P<#+9Zv`fKBaF0|GqK)J^K;dgZC_v+B^;5GT(+y ze4|zC_c}OqquTGa8RL^n`D;AmlS}z);>IVJ@?$Lc<ij{?w_+)F_Ip=g zUJdSwikBwJ@159+9`&`~J1XK5sCLy+asKlW9!ls}Tq*7fq^SJz%aipl35vnKqWA8tikJGFjChkjpv{W!j9{F9pR2x|S_hZ(r38nz=! z#tW7Fy>K`QL?z#QUHN)N3?)C(=dUA>!_!yB#Oo2t-={>qjPXJxKcXZHsuNLyx8r-O z-bC~Kk|lqytIDaH3O>w?^jQ;rFZLoEz~%-4_1-a%e*0bsn|-=D)b|?x$5sLL*^;xi zss005S9qO25`52$qZ`rYDr&wPp(*%pjNy7JF@-)q?j{-cN;?%Y6WeS|Tgy;IT}e_D|maeD@fTDx3mhl2Eb zE^F&Vl-0&Wz;?A(hksGxBb!Z24bh#ks`R@tV%)}u^sn&#&-8cQ=fyvTmFD~08v6P7 zu;Q7wr2j5f2j7%Q`g1d#==%o!+*TQr{`{!8eUnp_pIf2`VjH5kR(RC$# zzGa*r)mlh@enqzz(yu-+>Lckh=}&!KPSS6zP<}y{wJQC@r&ygqMr(BrkLB|SxNWr*aLWK8;B;@S${ivH3#Qe{nlrA3J%QeralzhOdhah{AC`T=VqF2#}+ zH}jv`S_|pVca>()e_K%Cm~OMshKT+5qPni6|5cju)eoc?vHyjxYsCJNjP66yXVPD$ zwI=EFE90ec)UzMn1e>rA+NgxZVZAzKak{OAYj~ zv^D*0*M@%kGtcdT=If|=GUBik{X$*ZpkKg~6@C__Vt-ZHq>ppCI3cuIXe+-&?HOXi z@+(nqvZLv57?||Cf+^OJqQ8+Rcq{rFyGZ$({w5A3W<)jpO>Ig{jq_x5rjH>@QPW?M zAq-q=VeGFeE6t$)mevgVOSqWWOC)`M47IY_UPwQDl~LXK3tda9uG;yT^hTc6B>h&0 z3LCquh4g>)sIZBnwL1KZ62I6~*wmI9)Ay?Mw_BT?f7huO-HzthrREtR(V70n6_fr( zaryX8OkrWej7k4}lYSwh_6#v$g>_L65BgN>Z{eEsw{%SUTiJrQqQA98sZA_Re;cf* zCrg?>4zm59@^~_8=x@RerJf4{8DwOKslxbDM>)`S@wApk>K z3+Zp+D$R)fEgh}N*k{sP*;zdY@q`zSlaanCIq`!l%YtY}3tMa~~VxLLx7-&t>?{8CK zrxI&b`gWa11dnk*`g_QdivFISNq;X_@K*GDIF#BHQ`a@X_zHX5=-t-z z|8Aj8izlOoz7?0ErjPBbuwzDRA^q)rr5W_UEa`G>78(}xx2R}M(vM~lgVpvz`g@dA zIfMS5p4MdSGwHottx5VvVm0+}SPSWQ4cM;M>Ku&4-n2x8zgtoR{Y<#?Z@)IN|MAoR zc@)jBPtDJRXXl;2N7Bk*ePoDbrvrYQ@ zTY|Tue?SDOjHZ7;fZnkd#AFl>EFl%}WYo~_QI?{nza`>ruc+2S`g^367Se|aU9Qd2 z^moW=P15fMT02Lz7SfM9N;By1XKPK;XVUvyT9fpT0_g)-GU#vaKnt{1=P>=PZGvg3 zaqNfmclcjof3Vg0Y0sP8?IY3r2Gsm2mV0OV2V_k8`}yL1vfBA$6_ftPQIr0jag+Yu zs8^_7_Z!d)Uoi$*=(W%gnDl#>1aC#ZkB3yC>GyT9hDw_Lp$^94@nqD{KcGtRBJRN6 z&ZokDzAR{*`3td%(hT|=SE;sfT@m|x#&umuf2SLe{WQkc$73yw{cTaMudB5>hkfkeQsGeii_3xjkwNvk-*q+m|HHGsEw-=Vl?81` z&2tdVo$2>gOvOYNdZ+nIa!;Ot$dSyyevzK2`e0kb}#mI>^FHP{btvs-{MfJ zM^@kQC2dM=me%xJEu^aS4+oq}(mWXkeV*~YQ7Nj}=P#khz_k{}etlMH2K}vkU9QbS z!=i4ytTkaKaTDktnATcIzsXaY5&O-q)+GIQkZy6bCg~pos!5x*D*eXe&_}DKwK@l5 zNw_F?I7^a#vq67tcK+kj4c*avS89G2TsqTFB5Ikpq~BbTp8=FRe^cC~zY_=}qSdLd zA!E|-i+bm!HT~0MNfrBev1^?A21EsK75f7!l#0eReWy%`i*OyNb1>S%89pTj;$Qf8 z_0%V5C94F*pc6wgRA{cqf@bVD#g%5z->FKq%|gSXy@rggE9u`6#R{uvEu?>%u4~Xg zJ+AwZ^qKU4sMaL?6C7xwy(<00Ezq1Ymt(EY!B`Tv*=$;Bi2amPjs11jhW@JLYY(CM zji`BErIx;f{WYY2I#$Qoh+#?p)WD>_7wU%eo1-TE)~xtEsJi1jN0wCd&n=tu&+`Ru zMgROPQl6$iFhhxRTuuLiG$qc;@MP4`cQ98hswJBkhIl*O(^?q&rv^$h=YSJEHOahcUxNdFvN*PwrHS@$97GwJhutx5VP#i?+#n&z7ig zL0W2{-#?7~_1A{}=l$jn!*p#-&7aw|^an;v`sX2k0CoaNA0))}TfF5d?4LF1pH?#I zpMiR(R&?xVWJyK84NS3W)YG0pX~A33za&nnzu|^%dl-5U3=uH1yN0sX<>5oez zE(5KF^sm-+4f=!C0QLPolO9}Abrt??RFcQ-;|oa0j19LueDA3{NbFV@x)ff{#7NDeoNV;-xe`r|5DVOP|~q~ zlPsy|-wdWkbMyPOWTxy^{z^h*OH&~n4|Mi69jz{yGQS*n-%le3Ev<$0?-B&D zat!*z1VPs1b)QM!EeNtE=?}p8vcgD6f2s$q!hNt-=P>;lE*0)6OAYjo3U~eu*CzJA zyw$bQe3Y73f?#L*S=XdLtR((6OU3?O7!tV2$t#?1ne=bAP5MJo@4jm6KM*zPKLDm7 z{Rhi}x1vANN2;vpkIGVFbVkQM{*`zj%ac(Q8cm8Q$8q%L0 z6}%Pw=@q1WO}`_c#GTdHf3`%aEiImm8v2ivq^Rk?P{E9|BvwR7-?Now(7(n}nq0)< zB=~@(qS4^4jxXdqAR z{6iGsHVbVP#$nIkl9K)e)LRy4`Y*|n>eTm=Y(?Giy$q&3Ed8u+mIuOFP5%{_Qd?oe ztaG@BR~@v;b79aIv^p|URD9J|4f&Pk+ z{;bvLUt#^9>F;(@%Q0wvOKRDoR7?LAJhfqplK#tS5?{I?rm*m0)}(*8C)bIjKec4i ze-`z=_B4Ii5UWPU{v21N6#cgx!CS?C*#>V!d)ENtEAS^pze;QRb0cUo&XZxpK9hbW zDn&JD{&I)H%W18J^k2*>&7gm`r^~fjXjssnTGE=N|6v?4SZyz)|E8zP8T9A4T9fpd z^jnVBB>f9PwQRFirEkwIv0bgzIT(xmzC(q%ETJ6e{}NvJUs)^q?;rUH+S`g+x<_m2 zmwl7|oC@{-25Ujme=}~t!{Dre9iY3sUe78(}xU&?4r z(qG_Xg;m=N>3^W>8uULzD?C7b>SNL$u_QD}|Kbd^fVGhRJevyhN?NOPP~QF|VAE3L z*bnK?3Rb({xBkzuf53&2JJ9^r)M7cc^yj5b`X6S+m&hpk@0U&b;{%iaoTy3vZPcq+ znm&KZuN4$!?0;4=>3{AC-irQ0mr`3J+GXr7ajv_ zg@rC_A^p#wEpoJ0hkud1*rCE=TWTEp;m-fOvljI0`bCDK`E96W55JcF!iq`%^EmbY zE}~;U$e8q}yC(e)e3SmiTrbe{m&uZf{#TAk|7%+X|0xi>75x<@ zN^KL@^ndoyJ9dIP2cs?g;-XCjq57PkulwI*d4{mt%EJnO8CT(}verWS%c4p%Vtq`17;)u&?dm;TFE#00lCax|&u_ShRdEIByKLuKo^e?rju%g6TNWbDz z;b%{4bq?CFF>Np{HKrf#{4WQ!v45@impgy$9be`4`}acg+fvH`>00_f$4&Y_WyBYx zDf&P7CjGa{CjDgO0u4$|EDKXivB8B@Rsz85eF$x(JzvX-lK|s zaUF|N-J(1hHL?G5T#B0huVu`5Mr$GcAAF@5^xrD$a%~nG76g}7v?k05ZFxp(A^kr} zN;6{rPfu%-K9gSMYE9C=tU@r#T1fww2*Iw_>Ku%v@rn|`wA4WVCa?OWcfZx>5B_WV zwRe2!8^3)U&3C7kdXVV!tgpz=e-N4K%)ctiKl`g=|Btk!C|;5jK2n6mv=x5L%94`) zFR0hytJp7YBTLFjDt42tNczQX zGjW1Ntx5V_Mw&t~2wUyRy`nz7^7UYGeO@xZ@izYya73emiPO zRBGvW$NtK^FS1ag*sUbLmP|}x5udOYr#DG|VN|Y@HZEECGj7l?k}to&OiWdAXIWCw z-x+;YcmCooWx-p;{;ocywskc9-LmN2()4%FpiQ0&gFe$Lc6X(y>F*QeforWwAH!Fg zL4Tp3z*h}nL(u;-uIozr_&^&BX)UC`v#x8<-?^guko1}KE@iDr`qyTtxT|QdO5fhw zrs8f{F2`D(1C#c?0Tp-8NDcI_4`YAdwV^-z^zS`1zdf}i?OOV~Stk8m9Qmb#lD>tV z0^H=}6~6Wj`o(Pmlm2$7_k3K(K0f6q>WQ7d`1hIV$jiANWc17KZE|? z1wpi@PJK*zA3=~cN&k9~-Z#zdh4l9;QL$%SYjqCOKggkCEGjk7zcHjAUmN=KKL6uZ zG`|D2q(Gwc&cAQTq`yx@e66Is?iaB@4f-q6CjFgVlm6~pucGN6C`+o?KPYa}KR7CQ zEBXglDAnE8^baXx4SAY=FCT5XJQ+3g_bo|L)9)R{jI)G-#{E8quQY@H3PGVW{heJ^ zPCmG_5A_j)EQ$6)`UmQ|2K|Es!H_ED3y9bDn|Li+V6cSu=lbq@Nn`vg?% zbeH~L(8h1ihU-X@UyUnN zThF9_V9BK43-xAYbnLfgWj(p`AD%JkACVTk75#p3N^NIp`u(Hm9Vsyx#r_qv$#YRl zzfp;r{t;!&xGf8svESEKT1X!zbh$Q*XPnOw2bQ!Z=^yDM25qf{^jif%j_K+hU-583 zkTrSTXVOOqf~-mUH&>|GFV5|S^be0vv42!+bqWKqii@a#;#pJ&oPJP=>0tLV2{CjDJ)lRiFe&nrW2mc_bgkH#9~Jwwtz zCMr_u%zsQp@K*GXEhClH^pEqwJJ9rx&r)i8o{L)g{X8jZ`bVd!czB?-F!oz5r5W^h zwRO2RdL9-oyO=zknk&-`P(+MWM@_&om`?U#%~^E*?^zsj}rk5f$L zng1A<`r}qq(NC8oMRDdY?xP5|S!k<>#VbmRa4Ggjy|>Fc_6N$6iv9(%6-6Hp!c%+M z`i}1+-2HE#(ey9I-T(Gg`v11kCZ+|wRX@=!?)Z+grKspPuFo^>YAvLnE-B5RzfYjc z2^*sB;VhvOMc=+WKn%KC3+WFGlxEPsprkcP|7nbcYl!v~{o5TXUgWY?rQdjGhKd(E zTC2mq$i6H}#edsU1N{Xdeg0v%|L^baSnq`smZ14vsO3Vdmi|T9UzxY0e_>pH`Ky@1 z;y}4)%gHMq?8^9-^pEyT`o~-HOE$$+6)%+~75&Q`GxjgH1#cDmS6GzVA+70O8A0#1 zj{PeG>i>?#lM&Jvv@WVhQOEw(CCqqSYa#uC8KoKY4|a7qVMDZcw5K(>^Ir#A$6Hzp z>0jz9&7gmoqcusNNndVjO~(E(n~GOhtX1jTS7Mc1$&%3O9HxIw7Fqxa8tBh=s|ZBKD*D$)O#0Ucg14gYmXIoG`Zr)jeGu35Z*9n7e?eMnlKw3L;TJZq#yRsh0i? zag+Y_8TngvlK!>6;HKywfx036ODiV*D^YKrt?3VyB^CW!J(K=zuHdccBUDm5f_K*d z<15}_gLg&Kzth546a>9k1+5$6JVTgq^_(9~7O&4}Eu?>~uQY@H5hY!&%|aWZJ^2}W zZcoy`%RvlQ+Y9Lr)pZT}w|c5QMW0FE=4wsSzbByL?G9@p{h>bF)moi{vDkNHsd%R) zHIDso=O1aU#m;}_vu{m8^Se{a^@!#kE;`WDS-ib$(!VV#zS>(|_lKrU`o}sZ{p+$O z{ToqlKBiAhRq-BKQqdo7oAmFs1aC!uLeI<+~%ac(P`?r^+sOjH> zg>zd}Ya#uiX{8zTk9BmpHcQjLE~_<3AHyi#7}Z)x{~kwa2L0i-*5uC5r0=z~Ch6Y` z(j!Kvv&yiCRWN>T&;Pr}$Axi+!?@vLh$MDu%4%Prv2nf{23Nq@L6 zzxG_lezs!LzX&TQjQv~VCjC25?~{_IKRP1o$us}xz@$H>BzP5s7xm%i3Q`lDGA zyL@=&A022-(r40RN?Mcjv5bpjJ=Vh5zaQluahJ`#9&%$A^i!S(u~-j=xR;UXVQ}#tx5V1WU2V5&00wRp*R&MTUx7gFcy1U znTk_bLOI0#ry+g*?#=)2Gym{RsU7X@MJ>Y-m7Qb%QQxFLu_AufK+&HNH|e`+lm6(8 zN&g|#`^?t#XV@nF$1Rh-9}&D2eLp~|qUk?T0&k@19E`U3q=&I6FrDZ>>hlaSX>p^% zKbBCOSkYQYUw&d5)XHU$0A8C_S>pJpL0tL=sKXV|KoLH}{IBF3Vw`%Kzr zN$e4l{zwN}z*(tP7w-J+C9TQWXVN)OYm)xxI2H3QYa#vV6)F}St<~XQWcy_*&Q41W^cNWP zy|sva|Mty?q4~Y3Fdr@J;$pqTZsCrjJkg@iju7 z`sT`3)YG1K(t@|5|85+qvZnuD6uoCO{r4(pQ%pt;{d|RID2)AQY|MCEYhmoq%qY#E ze{WWoYqK={8NSve{k(-3jB72VU;V6~5&Ls9s+@{_CjCxYYm)xh2o>KI?S=H8&QS5a zD3@cc&SCoPQD_yZ@u@G|`T1uZJMaAe!(Vf3Rk~&=n*TesOsLe-e;51fFM1O#&JDy5 zo+$cn%RO68UU6*Pq~D&FDKTNiH)OP{*#B6TRP^zYTV4x_{``vIt>}MJrqs^1rvE8c z)Z)0NzaWb|pC_Y+{=1$Ob?kSP2m{wzNdIk1X$JkVab2zrx$+r6ds=J4jCd~aMxeEj z{>QqmL4ST!l~eSY^!$p}B>jg$^^-DdA^k#yil6#gt8*}xMlYb^f~?f=W%4g)^wXZ$ zM8nPfa#uP{iJtEhEls&n*Nt*q_Ud+ z(m17d<+(8E3o@VDQdEN$+I&}QA^mwJr5W@m2@1S#2pfq@c;#?0v6l$?jeCQ_d#=_( z`ipd3gZ^S)l~eSe@~QYmR%?>}cxX#9tX1hZJ_7n*rnOe*p#R2+aVjp2OO5GQs`UNU z=wJEQ^sn?f)4zJq_9vnFeW~S%Y%TpIICn8ON&gFr5(j$vIsYO@{P2LH?`KTXit7z4k?}C&mewTwE230fNiBtFE&cCY@$(Ui{hdnpW}&U(Vq2yp z{V!3E^CbOWWJwkKzkn(7RP6s+7Q7Yxl|E9~za;(NvX}y_1u+@L-!qij4dX^{)rV7w zYvY(TSBg6Jnbx-@tqJ;qs{F(>QwX2*=A*itup#!1#kSTY{nH%8Wl3w2K5M_|x(5AU zDyp2K&!m4XYfaLBv_i#|K5HTU!O(uoYOT(J$;K)0_IpNZp#N$}|H;*2e+{4Ntljyy z@4D>?Xg)?Q&pWmBf3qYv8T-E?pDD_n|7TC66#aKfGOx{I`pX0Pa~+cY_YS4j(eyjW zm-WQaxMLkKtQKUSc41+#X_|1}{rq9~1 zj@H7R|7TBW2K{$Rx}30)nC-F^tqC)YJ)(#~M{8C3u%)z+KFn!Np80Y7g+;AN`cpFm zqpVfwH%{{jcC}XLF#X3+cfF|8IQGMx|B2OO|Np-8Z{NHGe}PDGYIy}*I^FSgtXq=Y z1pSV>2qlJ;6#Wje#ZRy(`ky!^{a;*JPtyNg)e}?Iu~Az7Sc{~;aonW837CSnjQx&H zDwNtIs_Ac9ro?qwO@A|tb+F5m5z=Qe7_t;K{aF#rI7{McAnCtVCJbL`2K`SQrO7Q! zkp9Khnv8w4SNxqN(VnC~Hz3$jnn8bKK``9;ne--tV7T+oV6DP+tMn6dvedC@S!;C; z`bxa*QO9P!)Ik50kp7da)BnHk{C8G%-4M<1M=f*ENoV?-g6V8Tt)#!PXVUK)2*Qf~ z64d2=q0K^D9qU*!B_^z+3+i#6q`zfFq~s)ZYz3xa>~HN0-irPc4e#i}hawTd#QUbYxXf(4+eAgKAdZ={@MR zXQ|~gWbGTJ`me&Q#ZLP%U;R!k3oT^1RKGmTn&-?<&B3=2EJ`D*LcP!+dS2{Os;7gU zt->j+(NxbeHB7d2XANV#^A>$Jm|DKHDHX#Ie{{IuGMI_^NQp+iLX&ZeVv~K&`#OtM zmSTU1CYPh+ei3Sz5;i&3d-mytCsNC|sD@K=Ycz{MGaG}YHtr)W4?If8*2Hzgehk+ntgdrjg}R>@iVoBL}Gp#n%_ruqUPZI@B=T zs(Kq|ZMXj&MM`cGAghdOac+MzpHhd~n34*oq7|fk^cGh0thzs6ewLD(XDF4hC^kb> z+tNlVOYsdvZ(F&PvLn>+SXgbGH)PA?SCrhkgscpv#OLK2k2lBcj?a6{ITE@JQI(DC?Zp-yKcK-QtvLb}06!=xvV(Qe{-jaBq9slxnf5 zVPaTqq<8M3rmZQtR|#1@ma^z=?<}Q~7J^Dt`+FIwEUJZr9OaFlUVej;h~89d1c4)Z z>lq-03Hno1i#tdK)G#TmHqzQHd&ZfR+|Q%b;b{y~^maf7sS?H45!DX#DRo2~-ok2Q ztfzO`y=C^kj()+<7(eo-uCQLWxa%B6-!y()mw)}rsvdYzIDF0v}9CVK0W zrc{3ii>ngBl=RIaRmLF0YU8awhu!cIB@*iHVl89P2k z$<_*`{*k6$VzWx(^A)Lol&IIYqW%78KaCUe`T_Tya*^`Tw@4kCrqt0`6K0>|oMM;!O9pg}+O&l(H40=DNjO&r3huQ1e z;JW?0eN4&YFqC6$>h+mumS?aYyGRA<8d174=&X%?kUNTXJmDS0Lab)rZ0GsCPWgY9na zc>^WSb|`gHl?5ee~s2`+CS(Co}p(O18n*DHhfLC(L@n+5edt79}r%uT!#AKOxL|D8R1-V*9x) zPN`EPs1^40L@;aR)+tI}5kXdl>T`nLRj_hu07N2nb(&JAr7?*?1k?wk>(fe9KR0au z^`PHT7YwK5HE87YIMtWKtXaY3n@?$@%{zJEafs)r}C^aBT_4%M` z^QGX3uBWY_1xd6Dc_?j;s>Zf9+I#EeaYREFVV6Y=lzh#Hs%EFsl@# zuDSFdlpGFU=Xj_UHn`Ba?#%Vqq2#^rb#4@Wg|(gycJI}48YS<8uXA0DFw9yQ>~Pe- zhfwkX7g-hX3LAXI@t5Cw1|>(PDRrJh_1}eAOPy{jT6#P@O421BMh^?be6ThxQLRI;Ol}67F*ch%g%a{SYJv`hA)I% zeI=~*g%h3n&Rj}PwJ3FA8hwSeUUC+EeoQkZr&W+uLai`sNibo{eH=>8fUk?<)a&0O z0v?Bz*=4F*f5cL!A7b?4QGbcj`Mcg zdJI;}i!P-ujibe|v*WFU{l6bh$(Pf}@+fwv7~?DG`Z8R}?hvV0J)~TWF>LV|um8Yv zPNC#$0kSF-yIpkshEJ)>9dsSGf1I^w(}Q=T4Q3Zj@42TBsIweXRGdGaGP_d?$^pELenD|Fk+jZ)u_Adl>#z5sKX+ z+ISybUzMTQ!y@%z2C0A=287j4@$Tw*#?O@e$fp#x-iGtTG5*tQn{X`Xe(WNvM6q#V zjGv(E!I;PM!h)w*H(xw)14@3HMHc4qA<`zLre{?jW^@+XH< zH)0eR>Qm}A?0nc1(d0%bd7Fn0M0cB@PkHv1>)%W>KUn6uU;GqFGAa;lP4u^KU45N10;FE8ON5D0!z%F@7&jty`v% z@~O|JqRlNUl)B5poo8HIh|TaXw2wH4TDQ(13+vB$LcK#c+?wqC6y}p8 zydmqYGn-m>k5g)d4PRlcTdeJms-VF=BgpcpVR%^U7H`BC4^5@k9`JRag$Bb~L#*uV zV~(KKz2WP=EG&mvH+vUm9#}}N`@q-z5o$O+Z17a;hhpYbYVGMFD?<&Z8Cl+Iy{=DC zYdnoCTwQ}ePjCH#;G@Y0T}`d~!`B12y1pM~&2e6xaBFXBJrKSgz}5A$FzcP5=dw%J zq1J=p>%lnH&kM8ObtVtGW=Cp0q>L;NeL2;>-VPp_bJ3I3TJKS6WR&U`gjw%68+`uU z$JE*zzDBxK|9RNpd%<4Q*hD{qAU!^Ul!vDuB6WgGDKAQ~dql|-QPOj9^%r?3qojvz;7*Z; z`<&D`2bWfncM9r_!!|HMq)tQ0@ixUgQSx+@9Pi`0B~rKrNIhcVawJlGyZ1>eMM~sdR6?pkv1KClZ`7OYQ0!}w%An-rGE$;m z8%j>GDYjUoE|M9FCxiY*m+ zSE1yz03Jl@>Jp`DYinCybbl9 zuqgJuNZ}%pdLm1)A4Td8lzcLRl&E(XN<3XV>mgM_ zNs+oIpw!cGTv9~pUJEG?-bK9;4yFDRrPv~ocOUBg$EDapk$M0n|5KsZQ$CY^5G9{+ zDE5)4HxebEDN}5oC^;&i)J&UVZ;HGzs5jH6*t;S%7A4y)T*5@jhfuOTOR>2k&qK*v z1Syd>&Os_ev3EpjJnH2FioGpT6HqdrMoQG1h?4md#mXXu)tD;8F=~-|G(gHjo~Snk z^@>r7y(LmpQL^Y#>~oRA>PQtUNQrunp=5_cvCl+mhJ#d@Vjqfb>Y;&O~Y^O1>1O*nE*{N6D95 z)XVT(=TY*d3dKGUc?E}3FFO?bSmYHWNR^Qic^xjLX4w>bU*tVoLdr)<XO$(K>`wKNVLB5#(9 zR4Ic0D6+1)=j-=biIR_(rKldT^^e$iU*REt%IM-?Bh}2 z47b~HB~0v#7jzeMDzQskyj|&YsYpc~@j|6fmjHRKe7n=riQqq~HpVY;(4Z7mll=Au z&1y|F%&%?GxYA_v{Jti^^U4j9?1bOipd;4UX6*j>>NdxRHhW}NeuiSbsI^?GwRuBU zyzx;s-I938BW-qE4=XVo5QWW-t1a=8M~usPCSBh7sA;g8W`1GRpDS5Tc7?Fb&Os~7FPFnv%(O?t<0m=0;)ijr|evlzj% zU9KLtus%-ue zr;bscENI#sSyozT6J2Oc(p(v#XEzk>37hw?ndWKf*BfB754C<`*V=pp3$vG{ZH}vm z7m;ewjUmJ+7W5n9@DU|yn!lH*V_ZcRG;NNvl@{9U@M>)SnI&|@ z<%G?#Yqq)0m>urHaQaef;MCfj3S;#dZ4-wxesQX7PDz_KCkKYjXE(_3OI112D$P}8 z>X=%!BsOn;7uzw_k_AnhQ&eTO!-?3O9H??~(I(fi2_3N}Y(Bi^MSJ9zCy#^8L#cJ4 zTWj+PFls1in@>cdc~TWYn_&Mb)+)5_*E6~ku7 zG~`uncHB|sm)3GrRht_`siQqBMQwA#Go>7%en$vVSMROyE&=J=aHpi`b z(KZh1-UBvmYF%2YwfP)u_I0$)J2Cja*pS3%I-c}Qn?;oTf26&4fYikQ|G&d2Hq^Cu zja^Y;E$D%u0p)J*JZ1H5!AeBz0(*2R8mx$*s}vPmL{y}?3fS4p^~1Vi0~KvY(+ zEBbrA<~6U(+;V%LuRrb|nCDC;^L#z#HOXd^O=vSy65yBYI0AioP}0s5i>mT$?ih$g z6XZ~vue2|Dw6SUPP2N`7+!XxeL^HFK zE5G%Lgz};lXj8sutt-1cgW4Q zK5EjY+q%t#7yi=$Z1xbPxk$dvgJbfp1!dC$D>f`hax|F|(`M${tZDN)8*gI35g0W0 za7E_e7>R6iPhVs#hc#`pWOJLa3)N21+&d*Q*V(8^o8wxyx&7|%*T8Vj5TzTfe4Fjl z@-7Qyvpo#HJ1j_K^Jp*@o*rZlfjT{D`#@a}*`&=J z9a;*{f?yYFTV?YAOJw@UcGBkEt=s(M?{TBS=9!}OS3BS4Rld9{MA__{lQ)7Wo5xs& z%|)*{rp*!9(xp*_HV7h=wN)Aqo%m}%y zw0Uo=)swxKmK1LdTlW;De>nLzZv>lX|nD-HruBJ>O#F-K&M&*89exuKK2<2}$^ z*0jyzTd-MVsdj1!Ix#6S_xPwun-8{b^MMDe?u0#;iTKt*zRig#c^8(lIROS==CREa zJd@@?+q5}7i8p1@s6v`2rA209ibS>vpX)LceAcwh6Fj9EGzZ$O5zXR=$V^Y7CT*r# zpR~Ql{X76{mW%jyk$jt-9eLN7vRMpl%V9y1qsbJzrp^1Hr9PlcgVI?JjViR+*%q13 zN@SZ|T#+fxQA5?S%*|p~X@<@Fcw0rYYeHnENln_E+`7$6J1krVHqR3Ac2>U4X<2!f zo3hy%O7I!utqk|jEKy;vOl!h<$5o&mAYg5 zMsSDE^Xf}{4}0Myz7KC`_W-m%Tf}#D^8JoZN*BuSXow0pRDMUHC%A?w&sQ>2v+`C$ znpl~)(|C6w4Ue(nhsVt5q#84IDQ7C2rNCc!I)wKyW=2ULcupX@FDXe2*oA7RW^ZXu zz>ZKuzr{bba3yn+w)x6UC5J+@b3}ZPw6a;Gu4HCz11r6Jl~EbbrrRH7R5R~bc*7&@ znXTaclCY5)j+&uoLHIqJHAH9rv6XyH?xf^w2+cbd)}a-=NfOZ^vHb)2j9o-rR+$Zv zjn4kQ9NP5~@x8MlG6mvJ9Iq?7Zs$OY%
    zC7zX%)^o!mA7PeyTQWJyAgRyX4f5L z%W)pwk{N+N5oya|KPM$JcUmN>F7Yl;=$19;7_43NyX{nr`b^&R342kMv>&)Cjr-ya zWYHcE-cUwsjOZ109z`H@WruhqZgQ{rk%d-DFptKs6U+F)-U(E0yKOl{Fn&STP@TsQVc|LGq&KN}UI&#~({mAPbT&cZ6 zztoGM$l^V$&^u}cy{-#F;4NBQ)$iP`U|{Ep_G%OQ<)<_phtqOxICDwNG<+$v{Gaj` z&gqL_q8t?P_+^@uK<+}ftc5|CZoPGn3RN}P{!RizFB?29*` zAY2Tb=Xj_U3Ig6uuGX&3vz*pe@&~3J(F;a>fruZ?N2M?tM@8kW>1x&=0i{Gt;g25^ zGolec7V2~~76y3VI*mD;^_NCP{HQ32Ml|9_gjyJlgRZ%HYl_A(F|~n?2JDMFp=exg ziOj+PwSv)D5U%8%=krS5;@mhP_+$x0<3bTXHvhO5KL!|I=<{)H4*1v6=#Vg@(Glu& zG^!$aKR%5)jK&o?0UeTPL?bhY4eNz)_E9gqNYUt!P#YN0=ooH5(Qtf`slsN3qXBpS z^W1o;)o8q*-eD+2<0297n9E-gJNWWZ0+lHXlV&uIhfEM%SMq^=;wQz16Gya}eC>qCer4fx2T;719(a#Z?CL6VabK_+ljrpx+%E5a-GYO*6 zTf|R{=11d%sC-01Wy&GoIGh`qx0*%cq?8ejcqb2^pP(^^(YPil;wPvO8PSLz;!;Cn z@jQD;+c7d4uoqQnMB}6sZ$Qz2OQEnw)CxyKuN&!B=fJ>k0XAlhXv9xRn{%VsjK-pmqWD}0jX8|Q4N(Cdl4wLD)2JF6(RkwJTRoZ^r=-;e zMl_1UPAD2T!qxkaqS&rrG#2P+ywvL4*gtE30@1ic#5*VQq7jF$2l0^>H8(oN%xHAU zn$b8lZOn~DUqUo4Q9i&k+au z0``dQ3Pxk0&XgBhjmGNCyH`RqE*0^v$^2-X3i*GjrJ}LuLzw?zro_AD%xIhju?bhv zMc>BoIUe#6MxzqejZhvnw9cDuqjW~RAuedBpV-BM+ zG$!JwIV76V_`+i?jK|SPY)5 zIpKD)xXM?RhQ%{c!VgpG^TWu5fZkCnXz{iG!(!V=`S;M}6(Zh~*8sMdc`J}liP1-- zcqy<9$!0!Hn--U*Fc>%x<5M79>3}XsG%S97(#Pt|pp=Pei_kA`KolWPnWZVz3R>Kt z=k)8G;Vt64(Ag1AGDIH{FU{rQjF*AeEBHJyv)nVi2F<*#0G!9Ek%u_p8V_{ALl0+c zpX-L-EOA1Qs?zWpH1~=(Ze>>Z*sh@0b$T^h%lX@)*ZJqoJr%qVUNak-dEJ=8`|@x^#vC3C zCm+3B5{)^0^tgT_i0e;TRjIu~zr2C;iZ|(HHl|Q3==DeKb#<$A`10EZ&xaBA74d|V zKZnmt$j2#_*S|c|D}4QBEJ?UZUnNImc)cCaotNODhjX~^k3HdON8pVDZpHuagFRM<4546fsR5x+s;Z*C z(v;V4EK#+Khgw0eKWMKjTlKo6U)^gk!mCBRcQ)VaCE%wYA6BdObxp4OIVRWrZG38% zMj3J)pAzv)d=d?>!QM-+Ca?Rts?y-PpTir_9G>8as{L)$3VQus=j+O#wX3W<&!{;Y zyj~;XmwNeLFNYQ9YF`dBBB~B+=JoJqUXK8;*TiU)q1XFjB7S*_M8oU6J+Em?UJr9s zrQ!8(M``L5A_aRs!bYvISIzaCR=H-|?RX1#y;j7pNalNWz|S=vd+m@mxpss&glCCW zu_QhrO`{CGJ_u`*?HC4!xK0WL^p5Qcdi_Cj{iao}ufKjN zUS+sW#ILmTyA$M)A3B8hPk-3am|6#grZFgsz?+7jNT` z*Ukx5X?X1tZa`iiaz)jtQEXSx>ra~N+E%%aIOIaSzI45a_lxFxy(S_bKUZGQXy*0I zW?p-O*Xy!0^3dxe2@!|u*YMZuT;iIgA3sZ8&uGExnR#9xbwpLq*1c}fTvxTq^{qP= zH^N|UfMEssUa!l_hvt>nvvVfbbD&Oh?Ulx7=<~cj4*ALfFy`>SYj&7MUeC^{Kp0%l z$#QUr>ywbLy=2b?xvtk-*R<;OiGK4g0kX+quU=NfZ}fQR;T--YTX7M24G&0$*WP(vr+cF6;?}*wx0ig5xTe)PeC~bwBG;Ql z{3bWw>wu*Efdb{VuVs3@3g)-wdR2hGSCHp*2IT7iB^q4+`2Nt1vH!qytk{rh!0HUd#$wP&nhUdH~FU5{+{V|fQ!GffFm-_ zC1ygtR@x*QUjOdB{&4boldmcbul+sVfV|GKMAZNnwZdNY9A4e(9DeM)Sp#5%14Mj~ zmG5;(RQ?!*@;a=U*Wt~)jsUOyV>HTeZJM1E@gY$X4X+opze%mb!+cd~cpdKX2IO@f zj3$?FaTp|D$Fv+B>}aebf7F78Q+1nd;=J9$yDn&O zY!UAxh!0DXXjojI8T1@JDuq3&O2gu9w$juoL=Rt7-EN^)(BjYkhsFC2JYZX}m=y8h zseFq!C+Lo&V6y?nTx1@N);qj#G&okT6y5nITA~q;` zfzlMk<$RyjBpNtVeSdwKaL!WEF}==?@&<(S3tLpp&Y@P&YcIpA*P7Q$ z9vly26hlP(w$09U?*MlL;45^>&IMW1>%z3@_2m@)S`Lkpz2dLy#P47`*a;AXyJGg8 z)nzyGx*$tim|hpAm8KS;7d=t+atgJAUK3WxwO6ZL`<=g68}K?*#P5vebG;j8?SLG6 zt+Gw8zGZr?hL-JN*>{Z^;bH#JosD(>ct{U|}b@P+%A9Z~gh47Gw3&(bq? z0B7g^P7C*O-JHF$9gJ{U^(`KJ(*fO5Lj!ov0YA(p;LBaEl>3o~p1@&^fWuviRV!@N z3PuBN98u@_UHF~4U0b~F-Szu}FN9IwEaIun)~W}QXPW)5&6@f9UE1`&E(QLT)i8fw ziHJDdxeb4?Na?le*mhq}Ca-I=s?wO;-=%p2@_J?N3miIHZ=ymTS zhP8#kj1=)no2^w-BJu~qR3dL|=Jn@hUVj0v6*i4B^!jR6#HXOv-0KnEBKUbbJZsw6 zg4dt(yq+EvRll_Eb(o&zLtCBY3zxitxAKjGVez8HgN;8NlRtk(Q?lycq%q6=NWz%q z@LQ$^Wxq`n@4hCJ;VggM6VM?$-_C)Zmf$S^H_2L<^9#0$!c|3x2JD3^!&wgdVvWdm zO9|K`Y6Z#PtjQ;te2Y2X{rvY{fPsw`@kb*0IsYg)9t0Cq4&C3uGo#VYHKVbkV@6{q z8*jO%F^AE3BM|XNwK+#c1G=S#Mjn)pc;?dVN~w0lz`6<@IgDuDe|V zUT=Y6RV3&H~ zBU`7O@DFiNE9iBk_Ig&UIiEbF-Cf}IRuPBK1bIic8NhBZAKCn4z-xG9^N$6uK$(tg z{&C<{Q|@5n^D{K&aF)aAT6{(bEzEi7mKqwf{OgLfa8(C${#chQ^(;TmVU1?_NonDC zuu&@*4Tv)z*#__|Z!zclKX~LD5DgcGy4ec&9L(#%KIi-?Su+~NX)_v~Q)V=}B=Mms z9G`KVudzk^ITa$+C9Z(}DOqZ0MB~#ZX5C8BC{A;wjz;GcYZQ%`Bm6E&)Cxx9Sv@!S z4azO&LD{ZFvtZO?MSLc&fML!*pOe2yNyk3FN7l@PGt#F2GgJ7O7>zQ_gIWmj^En=R zm+jpZVD5yW@(LK{{6b(nG$)4%OVt42uk&Ca)als(p8()NUmTI~scvx~;tM6T zW?nn&nuF`wmruY&ld|W6RIkV95m~vJp6G28fCcJzvqj%zAHK8 zI=KC}bfMUPGN3KYS?>8tQ)jaW!IAAL54D0`;Y$!cr;#tj+Xg0Ui{~`9AL#~O?-B8; zWd1C#20z2oJj-W+S3S$|ITk(3@i`Xle6EW>(tzVL&S|n)5wG@1G-vs&fVD6hr4PRj zzjco}KU;4A&EPt-D}1;R0e_e(ME*cW_;X#<3PxjuCVx|_tNr}kH3viA<3+qCl^=~d z@IS)hXuJ|Nqwz}4j0SvkH=^-c8h@Ds$7e)iNmRt^0us$=yrL$Ikq2vkK9H_X`mf}| z4PaA>#;aM@C>r}lh5uR_wSv)@q2~rZO3w*Ki<=oUaM}lh^$c!mpM73woWa z$v@Sq*9E8Te?54eAmUA~A|HBvD=B|@T;=@R;75CXCvAFtH-$ehljrqgIL~=YiH29_ zvzN{#uWw5aFry8x@1!|6_0llT1qUMGt9+ll;H{w{F6 zImxs9Q*f?xerdv-<;!BG^UtFAGduWa%<@lQWq;Qr(VXRCIX`61u!q6x10w!uEI;R$0oPG6H6^Rtri@u$y-m`X z<<;9J49eBp#qfvHXw2a(|1u%s%UlwTSq|N@7S8g{yB_tpj0Wt5E5lh1`(llv(asaF zN7M>NW44Zl$I)o<4DX9q58Vc$@t}x*x!G#J92}4G)GV*w6+DKsyn45&>3_Ez{sJD2 zG9>>MOsD0cozQD($sX5{*IlKDW~)8)OTF+p&2|Y0at4B2l}iL`E8@3`XCRr!qL#=2eulG4t*0HVK9?L{F}{I`&Hm^ zw99#LG>{Kh`|9>U9_9gE(X4I{3M&p+b$jAP%5K*U!m(Tv8?j31X4m<8}% z`}`q2KBQ>059fi7MteCA^a@zy3)my>tza~s*U@;Q)jU|f{{`z{)Kf(K+s#({HLiSn z39W$DCqXoH9(00eX#a4<8QyG&BQjR|Z{VzFjZ31j+V`FD=40gbB(;Tc)>GXn${P^* zts|nkQx3I)UT0~qPqymy-kF;)52lLv+Raw`bqV8;25nmt4KeGJ<4sJWn@gylTo9 zKubNNFO1>O^U|2Z^=)lZ#D9{5#$*hy(^UVD4eN}4qkK6$*@5fZ`RrUD=c_LWJE3U& zWsB+yW35JGv?f1@XL*a!IQ-b3FNbJ6BH|mY{Am0Pj&J2pu+@EFwbRjXJTn?sLhkEm z^mXtzne(CnU)RTfW^+a~`uNn)m>b)kAXZT{98Xmm(YVs(4JaDF=0tU02epE8W4fLj zE=QxqJlLyWubUwn(?t9iJO2#tH(-2gN)8iNnHwM)dN$k$(a`>Hf@qv#WUgz|KmxCes8+_Wr%!3;}rO~wud~t2{O)hE$z0TBLALl%1(d(6i+D?ZN zJ}TnBNAtb@8IkXNQaL{a{AjO39n_23K*{T|K{XNycBtLZJNea-R#^l7Bd1l7A$IZxFyggZzd-K!+rntNqjzYhlhGKj4I& zC>jqXRizP)hZDR3MdQb)sD31dTES?H)OnC>H5y-ad9esa{Ui)EmmiI`wtPjKipF%9 z-Fmfu+B2gu!!@JvjDxR@pfQKXzMm~o*48G`jK*}IwJ;h3UM{0MGpe8VRHYG(8LrY) z9;}A7_ZbJZg3*|%=f-0kjTZBu&(!t;qTz|MZSq&Zvh5=Bt#m36<^q4c0?q^edbNKc z3iq(vI3gntesKhJL86fdN4wglnt-*BxPJOiToN{RKF0#P6~Q`PJ4Z{Rj&tL z5&IrS_!JC_S3u7BvK_MWHG9hID?nF!eHG|xudmto);+QnuJ*qr1$42Q*SltRQeIzi zRi)weRfji_Uh#c?)vwv874$kvd#$wi3SH2`8J^qk@!!DfbWzqWoj=QW2ClceyxP}* zS3S#X!K-#&2VS-FdJBIL6US%d{9jQ~wlivS@zSe(jmug%%cr$l0WT27<9w~7DvfB= z*-9hwB|R)rU2maQC>q5-w(u*E_rVlU@3Wcl@V}#ASWm+M^}0vzvnkstC0}hwKj&DD z*W&N8)Q??O>b7mGvjWUk6Q;&syP&*b$$v*g)^Nx!}laYha{>Wmc+Lu zLbt39uwVmxXCid2H0mDToCv#MP3{C=Zw)&_tqp8e{7bO;Zpf1i$dXHnU**0yqUAn`1rvaW?$ZHu1HN&>@NZ zi?laK1$4`rv{^C|h95~PP5rpy#Xvn9S|^*mQ=(?9hwY@zTO9eI#CB$54skDBc)*2wSqFfX=ED^2-5Hz!~htdZaId{J|tjT-vxcykNC!26sP z+C2V}yN`or&x*2r9F@UasR>sT^-Zi%u%fYU52g_-85;wp$Ek6I#t>xG$ARDpSJHxi z@uyvCqC8-Vm;|{!)XH|!82+FCaFLcfDcuIlj*$UCW5pX=n6DEwznf-C(8DB z!=*{h*FB>6x+pcKn%zD5LQuueb>s^{DZn+m#N-P>mCca>{-`UCOwU(*EmX}OQ4&>` zrEvWfx@C>ha{IKXaUG>m_xQe1*ad6SCjJm?&By>Xw25y%-Rx~zhRw0l=it$1rYJke z%eT2NSQ+QD%~8PUo)}Nly|ZMDrs*CKg7HzN*~`MU2>-NAX=z`FM7D{RMoA(_m~5h@ zy|b#FvbkdnLgcYVG+{-m>1ClNX@1`VO}vt#vT=tQ^LK&aJTJ-)@$+pCf#HsK+2-IB z{wxdI91L~GdTRBlxzU#|PFFO`Be*!zsKQCRV^-8)OwhaP5?|n6GdRVXw28l4QZty_ zkxhIrJM2QWqn+TQT~m${(Y&RFY&2+o_2=3E_B>0J9UkP{JS&O6rN%ag#DxD2;>pm82p9x*(B_O#-tOutQ=>({vZ$Ji=F+G=~4@KfUO*frIH^7V6U2=pa0L zjB)ah9(WF{=Ie=VYUjZ2=7_Rmtvry`8$9`9WOY)o0sQ_i1o;!xop15ca-B=Z5*g!~ zWeGg$;7|;Zo8XAI!6T9VUVvH{1L?QqLR(b-#O>64Js)G`s%>eu$fMD+1ZwCPU*FEZ z_+0|-->J3M_UepNeHlyywz5v@5lzz6x5=($OJ)Qu1<7<)mKb>gKaH1>gS%+Q(-lubFBn%+J8(Uahj5YM_ zB|Gj2&C;T*GcPVYvKq&sgM$oqO`n`R9H;|-9~XZ!hYuA?z;yo@+nf>L(Go{sq#hm? z9EU`9NPv-E~DA;B-1mva!+kD%_^CBF9VH18l1Ue*6b5a1B#Twas2yDK~nzH$*BWj-F5UELvr+}|U zaa(EghZbz&mw)Q8xa00)-T<2mL|IQa-{uQ2c*sBXp=utKfS=0E#VO(^ZB}o}nYn30 z>0ULe&?e^G3p`Zy*#pVV3pKKdqGeeDR z;^aQVR_&BcoZJfn*2rcg5H-`XsG-d+E4|H^pvju%R%;HtADX=^%FgnYO@9AH&A6C( zY`ilkDkg*njj0Y?8Ir*?@(&LX<6>$!WTkYssHnM9HKZ6}J^$fJ8l9@M0)qifS}FNE zA!?>NSc6tNUf05jw_&C4`FGt5&0Y~@=LGpy?unRICZxa$Fp_(zISuO0b#X6wR_;L! zhoh|Q4#Sy{VhyR7f2~_NCnaD<_$R5%ZGp-ZePDlkWdA>4&##KI^CJ0HCIXe1#W|LO z3Dz;R($y9f6D{0}wt~NWQ8TeQ75rh8np8jy|09*s-E*R*tBu=AE9La8`nG}SQU>#? z`RV0zdZu-LY}Qa1*K4Be0xRFs(Y|?ld88{(F9}cW{z)iBX{eku@`UnepF~~)@r3e7 zm$m9K3>aOOR90%+dH89SM#xr520NnWi*VR>}N2n{W82Bl8dQ+5Lkyf5~h_yTC;2L(IJk{>(K#7k~wL3u_<`OPQ zqUOs8{Vvbe0hDU@u^_XQHSP>wKLj1(_`*d3UsD9#vWDmcW*c;_H0oYvB}5+n!u76n z&m`^$HT2u%elM~u*u>1bM`czw`Mkm2j_5WT{C3?VfY-_g@SnZH|3DQyo**t-gZ>tYvc9~Uw1WtEpw$GxIN^zI{b9GFW-#);)@3K&W z8CK+A>H8S|nn48qM1+T1QsLr|NmPTD>(PoNYjWta-Pf=~+*ptSseKdUc9j;?$!%9g zS(9dvV9m-LYtoY3_S=Ngx=LeGTb*QWsD=GC!1&grSQ{p_y=_smHjP>vwpzL`tiRu7 zSu1j2+mcrzXqq&jKh_HAf)nKW&pfUbew`LiGQR(Ch1n{@(#@NAx%OCjEar$y?F?7wN;qmGo=jyrrVj zQuJ%vMDe+H42GsJX{`=ORP;+uhe-bJvZm?(;V8|Z|EJCEDlO<(_D2_nFn@`D7a;gI zHp7|IP1FB7P?|x1lg}E_N7DaztP%bF0#WmC8nuvq$*Wlbc3CTOU|;woKA0vA=-;Pv zf9#gfAMx!6uS54$qHKVdN56Kjh(W*hP$-poD)(y-1sbp}Q1EIG^9}m7hkFM7+9OBI1qrs;zTZWq!AE36Uy<2?a}SPSWcEv0GtV2(AS52V2&YefHmv;d>1Y5Ex$ z^D&`T+mNx01mNMy|o|L>5eLDfA9MkXa(o^0t7_~j1m!UZfMjrj* zB#BJ_xTvV@ETe|GDu<4%G7Mj}Gw7ch%kA62LGX2A1qPCYu4Ndw9S7`?Qa~*D1X+g)5{&_ZQ zME@WU2%^+{$gRJ9J+o%Et1UJsE8mpN2GY=cO&>TApYgi?`4t5 z^!I~28s@U5bAPy_G=u&Ko7-vnH(RU`{XK!gNR;yE)7Q9o78#!PfjQN#E73>NqdnG$ z{-KVj9V0cJ`yaxXZ&9R~{>PT6b#YT#`5)Bu@7)sm?>BArGFYh6QP1gwhQ955`y{`iDBAc2blzqJMZy)J~R~roSvLYNy!PPUrsTE}A9{azCZ% zPuP-`f8Upe%m=G=qU^p{KK(-+lm63Le9DUH!%saM^q)zY^q&Pb;W>Zpa|wJZh3U_X zne?BJn)IK~N#2V7EG(s&{%k0Xf;FSafzj5^weXo33`Sn=9|F}Va_(;jdGvIaHBEm; zT4@ITXHwj*(tCcQQ&7l8$lr^G{q@T~RM)Z$_{$@!{)Bh?Z zYG;R9kpp8X`Nl%ixNRFKc6mS__s4Gu{WA_b=uzmeUX)FC^Xb0^`KELKb%=Q9fa$*x zG3mb%nDpQDP5O&Ge0GKDXIzthm1ENPZOL2FueLA$8#rVn?c)xK^~Lp5}n=Wn2dv&5kPMxeBAl@`=V`fvKIN&5J>Ozk3%HBCR`D$Sr@ z<*-Kdk+g5KM)Z%4irQ)mHBEmN(633bR^-4~N>+Plnl#LPgZ`GR{F8b-0|!viAj+m? z^XWewGwElO_~ZrC{{U#{m46Aegc60V_QR-2|HB+U#lZAG%9`{)PMh>UNlD&{{-;=i zBRzfIU+U8nA~G1Y%X0V(1^(sb{?joM6@7fDqc)plP3QgxGP=#_FA2A;w3z;fQQns5 zZv+Y-=2+A8Kguf2p#O22HKLECKS{Ah^xFrb_EV{8`s;F{cBzl;P%Cnf{tvzY)1+bU z>y`iBEy?|7kGNtHbl)h-p0e`kzYj6ixxX56@gyKDLs+{eV$xp|nDo~IDZTQ4=iwdP zOn;qg(*NEu>HlC$-irQ@P?`$%iT?T|JvkwRQJeGd{&5UO9{u-agu<1-=lX=GU2RcA zGxyh^l$ZN!0;L(bzt(4s=&!Lw?ROq)n*KUhX$Jl89oC3GlK#PFjp!en7PUW0P1FAg zX36>_w$t=~aRitq4e0mL^sm^A{wP#hzScL&YksA7w?WHmAq-8T?73t<{cj=0n*OE) z-kZ+!|B0FO|BagT|IJZJ2CNRA3z6%B3{{;-({}RIxUNk~mgq`vT~SinxZxM1OCKwj=ucL}W?P-zR|U{0ViPziwYBJ(OVj`$wVVGyMZ> zd@~^iL(`YE{+1C6b06=2hk;W=BlltWO4G-EFv0Dl4Y}=}4r`SAD{`W4FPk+@e{V}^ z2K{|dlIsi6ueU|rJ^^b){{%;XQPe{Er6D3 z!nvPMf6NeZ5p@5SC|eNCqhGfh#29%K{q~THeK_~)j!BsGkByo1fwkO@=)>2Vcq6W& z-yv(#hwsgB4k`Mvl;o{)|9B`p9Ao+?`1E#08H~CUb1)VcgQ4jYX`4jO{aYcA+9z2H zb03DUG=u)JF>Y6BLC3Pceb~c&UZ- zOU6LE6MSqJ=6=aoTYzcOF!zHn_dned`oA9a)kk3UZBh2RlSjXHLeiw)JwbQO$q?4{ zh?(@yh??}z$eHxd%+eRzl>0r?CjF9>Nxw8Hc`N#HEWzp`kNb6HQ0kN8+%Na=ErxKO@TRDlMjeMvgV24_~_1otb4#)9;y9nnAxL#TwB^ z(xpk(i2f;AQ5Tn*rVoc#u#4?9{kzhluG}LH=zpnmf2otd^8bh2uk7$e4Oo3gl=5ub8ofB$B4veK_d`i?^X+tw; z2lT(t^gr1W`s1b#-vj!4SClnI^6A@YlRkV0SaD5^kNX2%lYY`M=~n_9JYvwwf2l<` zEE4?-eUtuez+12Ux5IY8ThYG*_Wp>=^zVXRt`3j;cV}TN9tI z>8EX_8T4PYSfiC6Nxy`WoDoF-bf7w4YMTDzF;TZ5hN8}WFDvR6I;7!oU(;WWJTGsTt5BT5Mx}y>72hNLHAYtT1J-!UGgkMye7e#re74hZ)ZsZ`Zb#V;?3xf@d|$4&%fGp`nctXfYlE~SzzbWuZ9?F`gpCie|X$q z1~fGN&s>xK=MI%*!0NuRsYJQ|rA6BfvS6=uUqxg|ed7Bnkh~TB-!Z-k6BFrHy27NrvG~y9<&cI7@EGMwbUk2 z4H};muUj8uP3L}2Mz?wH=W^Um+K}7+lx2GSH>Q+k(EmBf8qu!Hi2ZM&2@w>bLgj(J>jq`nEtLq+h>{BTIC$T)(Yt(68Ulk`I~D%3r^Igtn9P>$eYN ziRjnw;7i_=`}OUh^f)ZdGWY9u%)uPu+^^r+g0XlQ3{79s`cXzm=f2|$7&tXFavz4T zG@bikg48+$iq9jCH(=Y;cBZ^{_AW}zrV{`nENn%r5W@Ow7H$8e~`r*(Z4Ye^-_}i(Dbc9 zwKM1+?6XGnk@O)RYec^S#&@XHH2rI!-C?0tAgyzzmG-PA8sD~`r{$rbnc%35x<1b`Rh+ioAgggne;m)P5LJ%=*bVFe@e`xUmP{* z7w05zMZa?vN&(Y9H3ECLnSNL3V5$f)6r(DYACt9AzclTy5G zr3D?!-0zfRjpz?{ME%JL)-?T7VoEdU7e`qm`bfGs#~RT;Cn4%PXHnDi`=>?ysVEsM ze`QM4ca{5)^dHl?KYg>@{}12sy)$gnQn31oDEl{?Pk+C_q+e#qCw5fsmjeyG@|QzP zJVU6ops)I~d@9L+)mL~_BKl{$v>mPd=Qy&YR{mbL7Sc~y+@e-c^=gH z7@$1*`voL2{oyd2GK)1$zZ@mZUxR*mpfs|9=Mi9qHKLDNg~ytvf3~YMgZ?=VYeXMO z_p(_d`Uy+aC#0t74~>cXbCcK(wIT<`S$b|x)Su^pBy+#xGqK1v`3rt4U+sr}wj=0QM`cMtzd8pedr5V&SAPwZo{TZ{>ntdF4E_3qsPLi~0}Wk5ihCq7bcEC= z%bJGnq?KkszcR(`DlH83o=H*PH_4iYepP}s4ZUAXX$JJGqpT718ei03onwul{|~fl zq!vOiy&xj$ud}e7hJGRVxIRG|JbO2}1?VFSALU2pLH}~vt)0N(Qc>P6k`H}r2y_Lk z>;!#Sn&1)iz5&4_=#EWwl`vMArV)52sKe0jj!_*!A4esMP5nKdtW(hMjY`Za(Hj;W?OAgZ&8n8JS)T z6_0aJ)u|n3`r|Ty%@6KRWNBk_d4DpkG_|~+2$}AsSkus-O0uS*Pfu`v(wJOzo{q6b znT~*GL|G%~7sHrmw04pxANZmSws-q5Bok&1a%~FF!xi z;j?oEe50x|eSt&pDAO0(1dlTPWsB-6E$FNM6+lvAG4xjgsw3#H`m`NEf6bF61^snb zVph=KfYMVALw^%WL!-RBFG@qn#TXdSI|QQsu@s4BrY~?<)0w`|R+^FNFI(JB+9+wC zLMyCk=&uBa~vfR_*bEeQ0PS%&_$L+}XtJ2t^1=X$gEY3Ogmem@MgBKV&u$z}zZhGqmEjwYL($o+@q{XnbcZs_$3QGTeK4}HE5 zZ+43@^c6XRN6^2{5icT9g`&meN9wiR?yc% zX}ZnOzk|{Ui=nTx@x4_T0|WX2mZ+calW0O;kz-9m|2nHQ1Nt{>f>KJPT9RaV2vPRG^kBIuUQq$0vL`D5~p;qMJSU$;#`gJyL+Xjjq zXKWet>#_q5hi<+UyS5_-e#t}GGshCLjKnV>i9 z38kkYx3>qcqG2y6jpk!|10*55r3YhRK;OX;^(zu28qi_jtc95l!&jPy4koyrv{BMF zi&j_*p@SjTLg-*iX&O41V~wB#V6eyDl7QDzP!O-E5X+S?BAb14*NT2Ftv>J}`;31s|LqFQ3I)dKb zq3sCzF}5rz=*L?e^LUhu%@9O?Xsq!w|A6gKtIN2ji4joV=dMQy5oz6<4`i7ugr;t z4xv`$z}QRHCPhQX7>aUvpVmUA-~9jnIsJrow_rDcD2FSaJwL@j@{_g=J9)-k_YGaM z@N>1WXv=hI=$3}(Z(#8y=%+#Eg~#-U)06O47>A+T2@`tvm5x;O(Db{fXmtZC@CSgdL2x1uBg%h`+{6~P>91RVjpK5GQMpD!9{ z_G;*VMMcAHvRw$h^qPohxIKs4%1rOq0`yj{y^pk-L%;j3U3$Z4zY*mXUOx1cOSlO7 z0}hoa(;u`69xd;aEUK%tps$9>5&9W2%Jj(r9To`s6rZ-EOrPq>l7jw_3)kKw>e_q5 z!w!J;8TunodN#(;r=_6eVGIoD80eHsB11>*0f#j?bP41^TWJRLNfx)0Ht+|~zzS;w z9S;|i1J*S3DZbK-OrPqpM$oHm(eRMV8bOC;5R9T0LNC1z#{5XA6~X^R=?xLlFf9em z2>Qxg3!l@ig7;SCL!UB!c`@|5Qk0+P=0hJDfotelUf!RB?7A~Nrq9fp(4SA6&}RXX za+foGcG84CCt*UL8#AHLi%QHY(_etnb5Vw##!{H+FWOMbVGIoD-C#K$i5g~{THX;7 zH#C>`nOW7&fc|`%x2?3GkCM&+WLAnb4SjZ!H4S}ELTLu{xiQuVIs%>-WsRWU2wM0u zANrtDdXp;}(z2b-^!~nRc+tjfWv0WWg3T_@j42F#jMY5Tk9wjncC$*9_jdB3FUrEt zW5pPHCM^M}6S=CCEUD$)Pf}f_1${MCC*bmJz|d=AR7aU!8>Q_A$(FS_SyGu^mz9_m z^!l`@nCUR|1}tSc(;EX(@w^QoFrl9WnYk!SB16Ya&!kz?nO>DrngQKUa=S_kIxdMh zXoWR`j{VidSkusJqe?TN*XCFw=m@wj%Nju+7!eKiY1DM4Ct)8Ap;qL;SV}8>(a;z~ z;7>wd_un!-ANrTkC#FNM-->eh7@2n>_gn(5p~DFoE$<(@W~P7Q5IkDmKZVT0qj;qS zeKjn#;8(G1hQ2I9bp(A`K-&@Y&wN=@&_DMiW(EBVD8UM%KBs>PrCAn3{|crDCn0~> zC^;qzS)IVZG|%*pUDh=8PaLHg&_A`gowQMMq>WZs)6kcpB=@1AFAJ1rK>y5Vji4jo z&pp-%`e4w$keY@*1or!7s1-S|uhOBeX!t4{fjuOQn&&r3s z&Vg&_IfnkdP4Hyo8h)?{9zp*xLUjcF#{e$h!W58kYFO`69YN1|v>ieJ$(1DqeS;%0 zE9e_-Q87Eh(0|5KlA-^Sgi?SpFqZd2a-w0KL!z1K-`lKd=s#FWGob&7l7van4|GJs zj{$2M`g)%=4L#>6&4B)s%NjvPz#AOa2>Ni)Hrl9Z=p$^=@N=jYISBn`S2X;Rgk}VN z&6X|i2YfQof?n5%ayVDW%k+-|_zkRtieF98Ebz*!5S!|;`+p@Ru-CvBAM0o!h!WG#dahFA-sgDvh)8pD%CFvl7} z2f$#FHG)3U7hn`M4Sh7U+dkBa9E3gw`fF!FGlKs6mSy@LZ$8lvdR;5Z2L^f28~0Ab zHS{z?-zP=z2>QNBf=AHzOHf@Uj7v1`AA_I1av1snQK}>82jplwf_`9DmK5}Z(h{?R zZlwUM$IuUk5}fGK$JWL}d?>jX10&O;IRQf^(a7}1eNwDx==&y>Wg)!csxp|8PJapl%_tX7XgqHeAYDd6Ft^6^pjkr8PGd9tPykse6r0NLBGuvji*RW zL%#z;SR86a4ve$(PFpl~PDbFb4HP^6x@DQ3vc7);x>+a6M|t_sOCZn?UOJI$EVT$8 zWqLe9@CbT5pt?#6`f4om@m1vvz1*WZf_|1u+Y$5%N0t=y%L0j6LBHG=6=|EHU*SP1 z&CvVgM8%7+FW6gn)wt)sS*kZ z_n)BG??w4oHy?U`Kyq@Hp%1VL9zh>y5j=vPj8GjxPX_p|YK9JOgP&v>ieBva+P0 zKb4l474+#TQL!M#(BVtgiUl4+pW)+Mb07o;bbMiPBYfv5MHBj?Db_Uf$C64jpg*4A zc9j-%EWteyV@*SUGRm5U{$x&RMy7jN)(AQRek#oxL4P0+jnh-8Y3OiGyYcBzD{^2g zrMtm|p5a3?f<8aC`SRY%wf8YrbLeB=`2vsW>qR;2tNBN^#yet!i=e;cP>G<=w+S9W zUjUhx@YK54xG-W|dv9DAP#r;k*{AIY`YWC+Dd?}dqM|XSuDv(D2Bn2jhW*jDgN{3F(d)i6-=y9M&}S`L@yw=nE`vR|)?UcV~wCA;P+kD2>QdIWgXNs^hZ3=_(7-@!T&_* zv_Ld2NkKD${!t6i|HBozV|SYIAoTi^D1RczhyJ2(TzhW}RNhmjuZWt^SL96SUuTVL z?~UK2sg5#zWs0_=Okb6hC6(#lCM0GBeKnL`Ni*~{P_x2v?E54`r?_;r@G0Ul}U=62Es zUV8^CtZC@_21*S*yn)hy{&!4mtDbN{z?-715p)l=9BLZ+Q;ul-C)A1@Fj+d?6JQ#e z5%l-|Tc+nP?+d?+J_fyR6y>wLeCW$l#G+f-Kx;}T6# zKoVYiZ`vhdEbmRb1hk!m-n6SPO9Z`XH&0?F=uNvr>Ggzy-n0jne1^VfR#dzZ!x$LQ z;o5uS@)U^%bQm~mVWz|Im8PMC32rBClpN@w71jv)KS=?GSPP+pEv0GbV2(A)bN~z% zStIB(K-*nv8u~M^-#tRD$U*4OdZKC1Yy|#froXpknf~BAUyXxae-`CwHxGK#p^kCw zz3DKUz!LPsErLhTkBCs6j8@YTfpP7<=}4dIWQ3ZI@@PAPezYq~3VM4-Vphq{d z(2s@En^A^-ToOty#=wBSZ&bjLNi?A!X0xWDA8sklfUa+#BmJF0;NR`LoZE0DT^^Mpu@Fy7&3__^wUs+hQ{*VbXuS^ z1N!N{($rnSx2eXb>%_$EkY zxOAQ)no1M6t<3c0TbAi#+Ap{VBJ!&!uS(`aKOX`eUVCr4AVTm6`UL^OqfEchr#gb( zJ!)KgZ#oUK5~c_JGD%a9ENw^7uceZLe!VR*E9f_*MMX6n#kUV&d`&l5Pzo4&f7q@@ z#=w9M*WR1XmjOh;;fWj!9RHd_zaUVW0sTT>X$pFgFPgeXS<}!@OR{D_&nnG;er>1` zbOe08&Fu*K3!Z4YA&r`b{-T9;Su1j2?4>U`qN%^^kDzZ^rnevWD0cIkD6dcCLmveY z!fWqMqao}FkD!l<5IllDCZM`X7^`T4Zx-~m_oiDts-sMIUD}SIk9A~8LBGwGm=*Nf zEdc8?^gEzb8)N8qCZOa+;7>!xYwt~?Y!XfAqb=6t(D4ksX$(p@5e(>K0;Q?Tuz%TT zg*6TRR*y9e-F1~_Kp*R{M$i%PZ8mEJeLiTnTc~O13j)z}N2nD!FwWAKEzxvm0-8~# zFWs_C?>^J+3BCR<%HPia6`H1QfF!*3-t-`3o`yatMeqpv+BCeeicV45`z zeNswk2K32EZdYkR$2~VVqG?KkH4S}gj5Q7Yp{UXf=nv&sBj^bD;Vf$e9j;C_Jt8#? z{nbD;O$)Um2gXwRx+R+6gd6_aK(XT&TbAjauZbQB-TWcSKZxdM`plGZ?Y-&wB*BxB zYnqiHcm#cRjOr>a=&NZ?)VTKEG$%)O1buFnwj=2C(z2wWzmSrc74&pcRMa~R{Y5Ng z8Tw0}sA#Y;1_pGv_TDrzMWPA)`6O!^`mBV~4Cu3C+^*7sj`7+%SYb^=pOa%vL!X;f zngM-Ynl*xsfL}KHGJ#U zZ3tY5lm8hO{s%6?OQn+kGnlIe@qY$$)e!#AP_7!v${_epm+b@5u~(FS>ID9C|F?_p zg7N$<%0ElsXyE@liKb03T2cO0OjNuT6N|TUu(TZV@-0s+-aac!0PO9kSRD1R6xdL5 z#o|5Xc0mB8oLIcSjdd#$qT(G#EIvfmt?;3g6~zOBh=4(C8;IB`xxX8x?<~r{hN^dM zQ4HU)aaD1$X4pmdi1Ke-s7k|Dx+<0%QQm($QNA)QD&DhTE8XGAxm?4adx`Q@Fpl?9 zBG%OlJ3J{@HgnspL^)nFdOsp!r&(du$;r0UhQ2Jy*TBBsPm1E3bcdaibEb}+Ey~xz zzTSrs!*}95!cMuP%lo>b{5#lJHX(`!Ib2mdD0ndb=H8`?g!b z9gRQ0zCMVF;$eELVZkv!XHFF5Kf=B~@I-N-tCl&hB`>^1l&^<Rf@kxK} zBg%h*eJycC@p8S@N5RyZ2OksV8*He`L6zQWsk4K9#PgzjBkb!#M-+dqt3C}bJ7n8! zMETFKuMe}L_$yuYvD5VGfzw1eUI6;Y7R6ucs!xJGsqRIh{5ROwM`=;~nG;6iQ|I34 zi3>&f?@3Ydu_cOE>8e%1sr!C>mMH%N_VsZ}6tC7*tApN`bYCdS|AKve5)s8~b=BJ7 ztTtQ0<;cHbU!Nq!;@9N-+63Ky5{SiBZUpAuKd{-S39-07CQCUe`C{=~a?bwih>E2# zvG{`o*1=gt#Zpf!{=|XOSrO=SSyU|k0=GLWl7^Bi7Ox1fBrGUF98*r{?e?J78FDsM zr9{PN5XT8YSar8^?Vt;0inH1zpbFx6zuxLDCw9%uQR1v3*xBb0$B9N&aLIj_T`JDn zD*6Ahb{^nSRNw#Jlh6c|RcWH)fY`9GAYzCRmJ|q*=!yjr3uDKIivo5Wv7sWaiVaam zMZ~_g^u)E3h`NFW6?Fs)@>N_F5wZQwoqNx{XJeLs*5|*^gPVEh+;iXgOxf98h`0)K zTwoerW1sQ#&i}x~jvkb)!5nWktFHB)Tm8~kFtKwGS7D9|Ov7uu9(^Y)hKXHpuFo*X z8_cR}?MY6*3YfSZ&h=Ro@|KxZ4|>sYPd@|`ySli_gS>~$To2g;?L5@zj&pq;fxJh} zs0Zw~M_u(3Oxzyl`aA)7OU7at}+cD@K%m{aW|OQ1Lyj}#ktHV z*E?wNVAKdEq09?H-hF1<_{Ok^^DlPB@q6;3_lf4tvPLx?wPJXPnDRLEb%P)vfjq zm)_M0CicX+zO*54u~~Jy*W;7jzl4dsaIPsD`!bM{#8PbcU}9gKYi%4ynTEI7bEX~G8z%08bFH%=?@qSLJ7cGtuY!sFaISSRXt~Y`;PJH^ zw*LzMKOr|I{3RUrRTNro4U47S9bEFD<<68?>Tf~W*AZwzeX*3lr3AFx?Jw#P7SxzHm1%04c6Q1)#QT3$$qr2!5uInYw)AL|1xTuMR9ORiWq5G&W)(DJ%J zZqEoVC86c5uvoWe0?NJ%Lrc;YOM^nV6o-}%{dI#}DBEB`%clvkZm%FN#h~TOfWPEG z+5ZC2@{PX@d!=wG3N7Eq#k#$1T=JmhCx6}ENhte10(rmrGwc(_r38%Z=8DRF;!u{t zUH6v1ZeI(RaBppqOED<>33t#YPgL#~z@<3kzvYkHFA8NpTadrP^4EE|6odTL{?gzG zl>LJLx2F&M%E1X-ibDRo{?h&-T=KAsU%9^vWt$?9|Ej<4fFLdS;Fj~IF$Wn<2Zk5h=of@$bZAH z91?@FEnytzuL}imDGvE>%B3ij{chosUm5anDTd?xbweE}+ZurU*Zrko*mG+Xm;B0M z30(3Z|22Qz!8Vlr5y2&Y-S7Y|C2))Ub;DgK`!j^w?k^n@#w8c>U-l~x@u2LlAmqQ| zuN&duk^}kTJ_jZqYT;4}*U6;>l>KevIKMK_#-$|WC;X+60Vw+?j7xsyNEeslkpGgu zEb@?7H#UTF~f9Ws>%JIEkexqMG%EF~6v0{592z&vfRa`I35N5x+B6+zJmq%pUNcW)s}l8fv7rDJR;-zkVa{iS0A zxa2_oC$6YG*2Se19VqV|z$I7Acf5s5QM}st>yA(0k_Y)K{iPFZDDM-2{P+FJ z69c%Efc#Z*$%FE~AzbHIp5)+?i{t!tQ!OapC5V;&x~U0Vav;COU$SjnNo1+*K>2_mIpX#reH!Kht4k;^m}$_L`x#Li-= z;5ZwX@X9{Nqg$%{5^MHzHMc{-qA$AP@B{H6XLH204}-ueF0AY3=df#&_NP`+7d-rs%n zlW(>_Grk@)<10k-5VLAn>dX->he7i&95E~i%_Aau)JS`e&BHH%<~(eehpR^=^r~>6 z?0|cIhvqR6XfE)exyaV5#@RPd>VF|Lm*6No_nQwlbCm~<>|H+xn#*GN$AadF8FjQh zp?Ar*&^!r8O~O&fnYk(w!ymu+acHioq!K{LL5G@ps{oolx1d^gm|6y!3>+VrZUaL-WiOG+z?Z zt1b`yYHxW1nlHl~zooXubvKT7YxiZbsc1D(P_9XlT9zN8x8z&G(qO7RR=naN3{Hycp-Y z7w5vic|~(Q9C{{RJP(>5a_~Li1B5sCe|0KaW7ecmSH8 zi9z%85#6vVxy5;MCupv+q4~uWgbs59Skw^3KLN;d{G;t<51L=bV{e@;*1d@h-n1Zp zonJW(EAceR+u&EON<#B08}csmmp-C6xsqUJI3)3uI?4qtNO;?kKT6-T|3!4qXx%La{h6mWER=xTiwCtb4KMu4EarCNT$&sCQJ_A~Y+0Zf+ zS09qnt44;qTyW^0(2|GE@ZP0ml$mQxJTmQ^>CiF;=PJO}MP{yX_H|uKaV|WcTkw2t znUK&8%Y%KKUH*WUG8g}Zpd}L0tB!VN_Z&3}T8<7v%OqTVoJ*^g|7AVh<@IUMQi07X zaP>JJt!gaLg;4N}y#{4F6cra!E{&x;!48cE1fRmxrO{ zvLv)P0ln&K>%7A2=R?cfIQ|Jk-reG8Yq=o^E%RJ_Gwd%d2tmuu3CMHBvDdN?|J)wK zcfH&I;)h->pC#~3hhMoa0WIqy_%_2|`p$-y^(j0<{iPo*XxSLY z`7AMR6L#5zuSO;Q(pFsedpv*-2t?#dl)r#4Q{p*Cy--QkIZRBvT!{xXZy)iWu}-{b z`9C-BZ28Xt`O+m>-xM+N0_OkR+~5BR=kQ;~Bpc+{Aq(ZD0y%i*cJpwx4KS*^jTN2W zoig?XSy@3dhYpRlQQ2wGmXl79m6K@hP<~sL9S0wfx>i<}#r$WSePmm+cNliY&Ff@k ziSBur)yC|(FHAq@Tv<6rd+yuT>^Tn}-r&hf++utH&OX|0qbEE(?WgBuE6>-nuQrum>Yklv_xoP;e8}%9j)hO!s_ayBdCMBvbFn3!Mdhcq-Xhbpqqq6_ zuVv*O395X*t;!B(jXEMU`wjkm<@n%ds zqmO^1AlWp3tZ)>!3zDr$if6&ZO@nwqvv~jFpBMhEga32$=YBsihq!@|?5nWxTJ$1->lnO0&(TvJ))ob+@eCF;0~?wAHiY;L4Itva(y4Dz9&=vcnsP zFFjpW>VGtwcVkhfL+8I?s-;l%92@Ux_yn{xkNx+stk%J3JPgbf~P% zOH$<{ZB^zr*Z8gQg=&~hl}p;1J*WGme#`s{yeFc{N7|}{?T$OQ|W zD`)w$i=KD3HG7AH4)|?jcO7s<*BhbnJst1{=l*zG6D%AzB zzO(&jWa5U<|GDKy%YPQm{!gNAlRs}xAP2wiv;(<#^VJzY-^lgS|0&Iqn!^spvE5+y zQ}}%peH)A8w+rAMKt~UM!cRl6!hfKN=(nrs*Qr&%Wp|zlSlS(CFTsDQ!TNR8{qVCE z+0EZFoZtk!N_0f6<@nvPki_L&I6fAHQx-V^n7!1_g{hlEFgp=iGWV!Qall_N`(6hM z-u6?Jy*jABY%}{Ao0{XU88zF*^4WI;89RP1Eu4Q-c2wj6QBKn zOH7Cye?}Cxok+>(})zX%Z&%(tBUxy_igocw8!Gv9J{eUex!%Zky-43@jBS+*W60Ve+u zhq3Rt)WBFyc{fbZSpJ#Dq@|~4*I8B+MA=xm$1BDV!m~YnkDuvgu>831Ox~VKFW>!<8sP-4rkKx43}7I%TuEnETdf~|B03zpyJFR zj9ne02F&sZo`*axE6P18G?wLjYgCpKc%9ngr|G)ZmbRC{vUC3Zd1%=YDo%4??5DaZ zvpgokjbxTbJDmB)WyK`EHOlfxUZ*Ti)~vN<#w*d0d!M!kT6Thp(=khP>N3lU6gQHV z6&7dGathxXWqB;GQ%YcSOpVjnEL8EO@3+fey%ANrz?2X1Jo?(D zE==_lo1jsB;NPlazqMGMR2{oM%$QW2@`j{W7|364#LXgX9-32wF+Q)h9H1hMS2CcSd~ zji|K)RP>F*Sot10NlvbYvu`IN3$3FV`r%O?*2UJ+7 zwKYs#Oj;FvA_TQoMdvos`Xj;X{L`Rf506-OS_9|3T!&ggsMr^G;$K1PVzkEoq@mUt z`+JfK%})G>kT~8{TKl*Jv(vg}!5TZJ98f=TO8hsI{7wc*bj@U2qL z&QNh~5(+!&E==ptAhkAHf5#Y8TAc~8op`Qh*=e0w_4A>q)e|aarJ%4&M7J?7{X;?o zg_eIUEA04h)xxe}Rwq>}F7y~vJ9d^uEDKe9J>BPms?Sli7gWr_1iMA4i@EF;ZkHse zRV&Vkapqr03cIHmQ>pF{WK5~fA>_XuY5xt?amUpSMAhCL3ps-Jhx-iu~ni3oe*Ubw949R0oInSgHE1ODsFpN8HA1 zP<0Qe_!w0O$Egcb-7i7VsJ_9qlz4gLSin=gWZRPK5|8}Kf zwT9*Z7{;}f>cKH;DC(r@2A5cNsv|cn8HlO_p<+`E3Wo=&3sXJVB4|?mQWqN4L%5bw z9TDearRpyUV%e!Kn)9Hzliw36w|AlN&=7TDsw2V#jp_znXjJpKmQo#=?!?>1G9hKr^ebvfdnq{XtWzP3;RNV_I z_rO#~N2xPY9pw--s(ZcCQw_(c3sW8A z64a`dy&TTub+wRdDb=D7uam0#q=;pwnt#pj2~^z&Du-H7SQMu&=6zIQAr{DoPO!4S z&6v_EX+tX%p}Op}8oS=SKWgm@l_SGYIL@IiMyqlk4YgKbiARNI$CgGJlNX`Ny#Jzw zpJ-gTQ@Af`?FW@(F|7%@3)4E3E2ztOhY(XxX&s(qOlgI6!z|K5tvy!99zd1Do;kOV`9{WX-#$s8m)59l-6-tLDb0$gdL)>*=ao+?DRNl9R!tUc~CgnrY`1M zR(WKCpqS3TMJPPR;!N(?iU?y;werj)V@mZbt)GP|exmW`g2x7;>JX^BAOVGy4s|xF zg;P9&TD5X&f-|Xl0wHnNqf$N5B4|>bks_9zYUq;}UqICmR9=Rup6F5+rg}o0piwn{ z$3ZZuI@MxzO4SZCrc%A^Kc-rD+S#w6>QJb>7LQ9iL7kcE)FeTpI>X^is-6;NOsSq~ zGp1Cp2@%UK)rt>~S&OQ}pmKo)g{OMdg{hvBB4|`Ebvcu&r`wDv)iWH%lb$rF!RoRPFu#XF`w)Lob2vk0Xs^^8NGgCcRw>GNy z*Z0&zFsV8{!I)A#-(yUvF4O(8I{@sheNIKy5m5PD7z(2{b!MvPM+q8L`WtHez4r`{ z)hX2r37HSIE1%WPGZ=>oZ3F^!afQyp^jcT36nN+<=e*jc8syfsJpY;JS z$0ll2S6G}$)vFxFRH}1b#$>8h|Mgqj*Lyb1Mb%MI)eBXxwx}~xof{&kRjay2IFqW^ zxQr>)YZHtq)t;JVm+FNxXAeTv(NNV7Rj&(EXQp~>nwEbPSk)tqN!9DM0&bF0o##0se^lM8=Hn+&H4Iha{rD{| zb!Msy;slNAK{jXd0Jzm+Or?5Tm@#z#E|!bP6WHMJ}t8s#W6>j49Re zF0t%XlfBFCL)BuaDo53OwEitp1lxmqvEIZZJr9*c_ z)e@+hgsS(as0&lQUo)dRK22X9moC>*st?9!uox?k%cERk*{PluIPGUt9S2pDQT3r9 zbz!OxS_F-1SsSVkb1kL1B+kc5)#F@Z*{L4cyUQ)8Iv%P{K-EXI0aINPrq)LFC|xL+ zOm!*OQmT(8`BR?nYg)02T1cgsH)P<=&Y7;c7$F-sQ6qT{d{nHjf zF;=SDF0t%XS8VyU6RJ*tsxwgaY2AgXKE>0LANo`s--c@3A_de^sXiNKOsSsk63b5Y zw*~t~QT1@BItNvsO;8u68cz~5shW?&1d|8A^I=w}R9~tgX#IjS}FWRsKRVPAK z6jfjFs0&klK1I-|p58{PRW_?rs?`o-O7(n~Sazyk{k&Mb=P!e*S*VI1m+FVUjjj$7 zGpc8|p<3&(I;C3YGNx2#YL=bqu;t4vR4s?9OHs8Rf2N04txMCA_onBkF?j$qxHJ?u zNvSp_7*nd3=(_AwyRVdQ8DVXBEJL8E#}8>+8(tWK%EMu^=;U+ogiPIdpft>V=x0#*1M z9134^s0&jy@6nCwoHkV7&|}R3@TNsjjFs2bc`mW+RG&Mjay+UY1yu`B^-bM{slE}X z)<*T}HdLD}R;N;J2{WctZ+3}gr+UVq0Y9MXB&fPA0);IJ>cZ|#o09~Es(%Vq&Eu*{ zYeksX$pmlph-Ihsz_JmCq1Mq*^{4}dZ^x*MNwDf>uAsh-SdpSaty=i5!jFlx++2q#aOBOr0$oU z>X~ILZ$#B&q3T&wU6rKHOm(G4P^(rgbvcu&A8;+D`eBsUN!4fnqw1Qks>J7}$3fML z2`Kz9MV;Ak`JrZdXIDMp5=5r7R=1(`Vub3lOYqZvV{b*R$xu~iLE*;<>SDC2;x0k0 zRrs;Rn9}+*&Y0S z*!{f$wN8R6{1wNAKjzx?2Hd-4T#?-O(W1KOiWloLkv_@UL{CL!w3RPYT3RBvE zX{BGIlA)1Y8rJwjRtslcwh^k8Kw>V=et?zVQc3Q!Ouau$I zDNwaB2!+2>V|=E66ISH~iJG*2O)#dkwx$?UT0gkNveUYChb#9$ty7`u=O`5Zk)$q6 z>xU3QqqWInOlkcUVN7Y^4VQXkrm_1e{F{b5s~-ibwl z7-LFnv#!fd>!@XY_C&4Iq3Vwi6hV|aGp%1!1dY~KhcTH}QBGQ&Jmj|~s4hFLryCA< z6}8TQs()fo)FDh=nAT5eDfowc5$HOTR;Lg_p)a-mv4~}-HRXk!jzO(6p*lAOMV*7x zg=zgAC#cgZ3h3#KR+lt=U#mLTp|RO%z5o6#6H#j#RCkF$(RLnnVOm=w1dUcFmoc>y zyCoTuX;pXjh-IgB-ldOBL9Mf(x_caoy6a$!R(0nnwKiHE6O1XX9YTyLt?prB*=hYa z>Dpq{Ivc8Y3_?*4hq^GW+#o@tWu`MbamO@$xf6pfjm=K0a>e&!QR^J2?iGciog&nQ zX$8|#kcYgOR6dN>&Pm2pTD=HmdB64Uhc&07*11rG+ehx~4F#+24Ti&%DA!&feS2erb+A?w7WK7 zS_9IilRL4uOVgRO_6RbjwDxw0Wv4YD&;Ly@QK;TO0!5ZhU6|JH5rQVI-7UscS_9MS zb--+jMl&eV@hiuhcTsP{$_r5TJi6X!I#~f3!%Eyfuenr)Y+s} zG{7ThwDxisQ(A))j47>By-C?=-PASbPSlzS)ny(O?e9`&qg6d#L#b3P908x{LX^q`D|ft;KZycL_!Nhd7gGXUJwus#Zth zj49QlV#Kmj9Wv$B)u=ifswboBP~F9-77a;JYpq(1?+MgHFsXWQkTI3&@DO84^*B9A zcB*ClIt)S8i=g@hR2?3t&P?^-1VN*El*O4;9l^Df>Y)){Cl7$*W5lvkJ$hj69jJOS zRG*BhhbE~DQyt+EG^)p0oJrM@TuZ6uM|qu8wg02)W7id4gsPW7^%W$A+jgQw@g+is_{4=@w^FwUBEm)uJS?lc}B` zBbJ?NL)9ScmUB5&&qCGW2z6nqMK(dBdbY)xR4w6JN_AX{*GbixF=E-NUbgRa@%h^o zP<<(?j*n6oraI0cXjIR)IFqWSTuZ4Q9^`dW^^*UnI@x~a4^*84)mNhG;kpY`o#686 zXBSa zsYW8aPO4u0A5}YF&_{gn=|J@js2WL9XQq0jN6@Iwu{e{elem^rJvz$kr0Tr?sQUOB z1BRpORZzVERgX?lXQq0zW=8dDi=bdq^;oW@RLzU1sFSKU|3}rwHXn~FIdh@mhe)p>2GPSFaerBo~8)X=Ejrt7jhR%Z=A1e@ht4b^v}YGsHzGu4VPK{1_F zz1iYSrg}WrQmQ8;d7Vu4uK%cd;(D(FRj+~S`%v}72z6$vC)fmy>TMQhQuQRRrBtV; zc%4*ToTkctGwb}Ru?)Ypar*L`3(@jgsD1$7V%t$_DlFyiimkqj8_C}-Su{98g=j8+ z=V{SYhcW;6A=0vV7F*cS!{?g*A>v}+Gs~LY?F^PnLUrrV@;az~FbPGcCa3|kd<1*T zhcJp-*t+_WAZOEkwj|7${H=}E589kb%gHXWR+iPPGFjdl{q0z^ydF2vg`zX{ug%bJkKnY3KW>y+jD4y%({R)44`X=Pb6Ig%mEnHT48LCbkia|pg4Kij6J%reg- zXe{&eOoI8AHHSK^PFmIsOJjbP)$c{Au9aoxEJv<*eiB;V0M+k#P;_3L8ZgT-HbG-q zkmO8S7VtV{IZ`*ovFf-y&ZDudENhNVWXN(%*|clW@m~TnT;@Map;}LIdc~mNc`%UW0n2a3!DxADiW)G>XY{rUBmYWNbCjNmETQ^w zj|OkkvicpH>RMYiCo@?7u(xv+S}uU{8vATqm$gC0Z*RL!|G&~HMgcX^RukE%_i2$vU*b} zLzbs@x(RD@ZiAXBXnB)E4UA>Y37Q$p9??O0?KwY#Wxl>VB;(GrxyCcH@Za z(DGiW+0}uf$09Tlv+V8>G?v}StNAQ-~ne$+M?s#{_2`J#l|IKSHdv`3Zu?^2Qiv((77aF8UKim^W{IzL>e0%wCLYg_zJE7$RP;-48imGgCz%1v52^z~8 zE@v{!XOoPnJ^mc8Q|~Cgic{UcEF&2#ol#9cprs2ncUn+X>rew`c@Ljmy`#X7Y}G@U zOUt{{aue@+pyoC{R$3Mf4bs?lTlPz?D?-Z$q2@lk5;eHgfLT815Hwl3an7WrYcZy> zT;y^l_xKt;w%wK!Hr^UT%ZH%mGtBa(1T|%rp6+TazwoHgWcfveF=hEs8k3fPIaJr$ z@~KR(JxhkYDE=nb!%*`Gp5w0usR6TmG)d4{eyL|7OR5pi$hL8gKdsH%ZFy1epHD~2 zB~bHB0E*tQ&1CwuXPHaTSZ+--7kivPwr%-`L$$3eGrx|%wz`jar~3%h{27Fz<~TKA zS$^jdG?w25Ig`ib*A`>j$Z|`R>RMUW{F>=5cx9Kj>dR^u zF~XU&+~_f;j>`?&NaWiQE1+hxu4`@iaVE)ToEb+KZ>dBeq3t=|9x)ME~ z&9|vvE6dDxZd;q~zZET?f||dRQ1nfb8W_vk9FL&3tj!5> zCM_Y%m^yp@wmIwQ;gzV?d~?vsGV>n4a_z%7H0Nm?>_Cxuo6Rh@3$dBxm8iCh%bB#y zjWf25EJx}sY;76Obmw-_l0bj7d?a%1=vk=k7lfi;Y-+&b+MQ{t4^nG)OHiRcL25dCjLAcej!>u2ekv@P_#Kt4VdMiC_$6ko*rj1xBfO`+c@-wSyb1`vO43(YNvF$cQ>?r z9%_f-p|_RB<1^h*)b6Ld8q0mt%%$aCVH%Bf+prvxpt@F;wI^q~(Y<8r-X2=M0JR6( zQ1n-X8ZgWJBtc^tig6|__e(LR_V_8fp)i+w{8TDy{gqB;%jXuC<)Y<_P+Jg%;()6= zm@Es!1dZj`C}+|#>@ub-4@+ax^1~q2wa(Jcbg}t)(HB^oQw6mp9u(*5I9QewlGN2$ zP9S7HzNjq?5fr)kw>`B*+Q?-2ww~l)mYL3;yk-9g%W9~7$A;q0VVa0pzGo9OmdO}r zGRwm~#W_+oxeJ+~e9ACBg%8_VU1GOgwpt!3|6EVxF8XC)!+OYf}M1xJ1E7Mp< zPrL{|ugA8|GNa`Sizm%M%UY;?0r&X!ahix()rhIAJ%oP zENe2}_Uu~aHlSr4)IOYm;$V`RGRvh7L1Xy{pIzPd)P`BzHukvru&dpccQ3v8FSM+O z+Q%&@-dRu1EX`+a#`2jobD8C%k@i{M?^0bW%kv+zGaQ%8df$E~S~fuK0}&|h6Ql;r z@S`?C)P;h{EMG~nx@}mlu&J)y zmizWy)C(B_^e;Y7g$7%<;^@dWjWttb=$DKFGO|iwj8jm+a+k3fZ7#F zC>~@{17^7}NYGf`9_CDDxuBg{F4A?aENidHboPu}S@INGz6`bZx=_52o}5|U6X8Zt zOI(>3dYnniYaPb6k>zz!s%vGL`RuuUhh?9l~$Qk z73zU?+pxS^PtwY=*3R@g?k(TG3tGMkwddm=KhUFznB@g2g2wU!i!+(!c`jp_Eo*iO zQC(}xE8`iiMDI4-eg;~;2DNhoP&`yOV3wC8sjIQXV_7`}la?3j!IUM`UYKBY^8T`J zMv7P~%ewu-87wQhzH%H|z7Dll#G!b&Lk*ba$8mzj@?%15kFSmqG?tgToOSf@n64Xa z6KiEzlkv^$1=DVQ5iQ?<+Bsn;J~T-UjAfnqhfLbC?m(9c1@p74J21$YzsI5W6NfWt zIbE}VS!UYfFHafQ2`%45OFS+Qv#2SvoT0lK%V>%UjpdLqW74wjtSD#F@@$*fzbqpe z_IPmPtY6V`In?1V6D%&!O_}A01a&o*hqPgNh@Ktml;yAp8>^1XGc;>unfbW9d-efK z(6Slo&cw54tQKOHqxtOeLzcQxF*du}U!8vT&jgw zmOG`Wt1$9kd+K(wIFo13j@(@B@sc(y_leTjc3Zx7UE@%+Tmg0a;vS#qPy=S!FG$c> z?h@uqTK0`IrYv_(a3-_dH%6@8mfyVc$J=Q6Hq_z2`Yt}gr3TD$K!TvLv{IZ&OUq_V zS@!cdla_nA#9CQqK6}be+u;+mdRMZNNo2SZ-LZChceH#LEnO%+#-j$z@?<`fIxg)56$*2iWm$wVWx1WlnY8Sh z$uje6PrqZbf~lJS9X;jb-g;x~s`@`xF%#%TsK|lx0WV&}7-kqPkXDX1093 z=BZQA@;#{Qgs(lvJJf(#ny>%0W$ikT3bkeJx*%iHvi5VAGnr*)n^-H$%%5#s8(TOR zEmuNaXS6&?$HpxG7oo1ka)ZN}zsGC8i!-Jyzvgx7xO^f?b*(JxAe7;_tULSIaTlQJ9=qR-O0BSemIX=y%2F9{> zE1yYyS@L^=3Wd4Ma!ZOab@nWab0)KVAxNyEizKW2nQwIA1&~NDY|f%Y3h?*Pcd;3TcnivUuKhmT#u0wzcJbnXW{SZJak1 zEkA*}<#_g7Y*Pbf`HF@n%lji#n7!o#G_>`16q&!MA9U{YnP~Yb)IETE{4z&(Fn7TZ zCI}kK<`8Gu?eVwcG`3ZinXi{6v2HkF&Kjt@0MGF`Nov5doE;-*EN3~K2}`J(sb|MJ zb&fy8$Exe)y}GX5mS-2#R1A*Zuq2(7)cO_cRi%|n+d9z2*Sl%4uOlCRXW=vV$l;TWThKRMY ze5i9gLzZhkdA=4cJ*c}LkIS1pYQQY-(CWr=VS)+;la{xq8O^lB-o4#nbt=ny;>3jI z=yR<=hX71oZb`!vo^*5J_*f85xYPkS{;nVv=X{ws1wZA>`4Z|ribL@&A!-l^bjSCL zF1D$?-XbWB&ch|ByA#*QhhS&o64bqGE9747Q$DC$m0;|IiilwEyPO?t3HE_QECMvEH+s9O`{buzIv zDaKS{Y42fFVxRLlPLPRx5u>ptF)zwlt}W*MGGbUe6T^Q{w&#>H@>8-e1d6V!ku);&c~A7l06W=lSFV)ffa8B>XUm}E>QRv(CS<|kI)A+4WGY-fkn zsbj3C&6rB8SC})ISZ|A%NvsbcJOg1=t}PPl;}OIowSBLZUDy6rj){E>^#f8+{9=$A zu*7=D2%5xtCOPxZ%KDx4V60P#ePQvs8Mp-XT_c>y#I{fCCllM9k5!5Fr=k8CD37uJ z9zmQ}ot1keh?&GJm$O`3xD0R%YiDAoF8;yA#MVRo{xK-7$2Rn!yNh}&M93u8KgyX* zY_~XLDzWtm#?&!p{+fm8Cll+F)=wt3Hy^7K+s9@7)G@ZN!^rDGBm~7T>y2i|*nUasY7*Nw$eB!R?+9ZuvHF}SV=A%TW1Pvv z2Bh_qiG^%drxF_)W=thE%;HQYb}%9T4D|2E>JRn^nzM3v!mxHGHtX-J#Cz!tP+yRQ z;^j0RpY<_zaN1VOEC0|qRf-g4Vnb4lsl>XcB{9Pi`*oiXt5e6=;5cV8v3x?}3{;8b zdjyfG#12bvCKDUw5;MoxXos_0TeuY9f8`?w7u$7raoOMXw_sxbgZk1a6u%Rp1}w4B zL4xKOJ4_dv#74$gol2}%oH2Ebg_4}fV{CX@KbcsO%j#5O#SUXCu@ajznb^26F_YMM zi?du?BvwkO{r6+@7ko1o6Z;*dA#~%&>%I zew5XzV{CMaGnv?le5^|Bq!6o9iA@c1CKH>g`5^NUS)>>QrLmW1Pvv&fsHJVrM2< zol0z4oHLo&S-PJ|?CdDjnZ(YC7}n0jzB!}(YD{b+)X&1t3%(3f1D4p?nwi9==|Xdi zo#9X+GL_gcZEg}fF~RCoVkd_=lZi$7Se4iez17%HC3b<{YQbb;7lx>xNo;12vs_#3 zy_qS)+L_oVTV54s<&RL0zwWU3+ZZ)qiHY~r@*%cbo|Q8^&g3x`wHQ;0jnd{Ou`_K} zrxH8c<4h)YDIcp6yDZ4+RAQHp`R6o-pDC%TlSM#wdv1{V2P9=72 zj5C?obx~p_vFjt8<=P^#c_G8vnb=-WPq+vZ`w8lA3q$cH-GC)_okv|wV%J)n$;7U< z8B>W(br@6Eu}fXf_D-OKg!vUC~Hg$L_}YKMBq!I(^)H2>q_ag0 zSYi(+2#R#%mH#0^{~P^2Rhdp*IK zOzaJpm`UtShqGK;xGcy2%0~_^w(DKe(`%*;#l$v4J^q@-lAROOfF<^3kf2HI^$2G& zu~%b^sl;w^8B@pD;|b1WVohoNWMXggvFaFm$6;etV(;3V$;6UjVkWWoEY5Omk=RN? z?SGe4Hhrf{FtOjDeoYWc%wOtbi6!II)+F{$iZhwm+abnOV)uj@Q;EG6{HjUb{=ELCLhD0Ia{Fq>o}BH z_%l89XBVGD2${rI$2gOTeVAlSCH9cVm`d!OAZIeM_tN^w#L_3m?{#c& zVsS1ewiW8Pq@d(L8jsKV82cec)Fk%5Bxf?Q4ME0KVsE4+F~bu3^~(sWQ;B_*%_0yif#QuVYy*wxxqnonC`Z?59C)Ut6!I_^}gZXv~>r`Uvg1l~q zB@+8P#F>ALH9(v*nb-h6RwXtd#p+aI1CyM|#P-zvOk#s#RA&;~D{5Ff6B~G1o;b$- zhK3>dF3Eh@%Mu%8QCE}LK$|m}nB_9268m18i?K5-v0wXmtWF+d4ZGT$$;8q=`&WtW zA7gbYu>+!<$;1wf5HpD#6yhw`7A`}AhP5-X{lDMyK}_r)Xc%chNm+~~MMvEm2;}16!UU8|@~8nz>`?42A11LwT+U=-=G!fk*gx9bB(}fB z$I7$vptOE6vC(|2N~|Es#;U}|#5t3Rg=54_Vq>G6<=P^#!iZt*OzgbAN6f**02<0{ zD5(fh1D4oW%}ior!UP4AiH&v`lV@eaE-qv0tQ?-;OeU5W=1e9wUT?M71OEHUhEl!N z$W&qz^i~Td6FXdQh)HZ>kme99*A|IQOc~bB#D?VT{TwEi0}aOopk%5;4On7_y97l# z=UHN=Qjas4nE7@~Y@z?zMZ=z9UN^%MW6gJjqMuA`tjFtQVn^w%7X4&mlk`?2Q;AK| zTP>JO?C2!*Gl?A&=PcJ2F2}|UYiDAUb3Sdx#B!nGe0-O5x}Jz7c1)PMiY=6hO>#Js ziA55Osl*QO7*oesDIx!wB@>(I5EOIB#L_b|$u)bHx-)tP?cMk3q@B32ML+yDCJ`Bz9$#Gnv>G zamG|)6B3N6W6XR7zw6T6;|Rf)}WSwD4*-QaL0kFgtVVkWVh!kp#WBC+|F zVeL%p$=(-C!o)g5!<`{0xiUx%SYkIO37W)i(1n7@#IBF9I+fVbHe)KWIWf*;Vsq2_ z$;58uV^w0eh1pn@*zFc)GO>k({4=ntC(>Dn|CJAsVy-RN9SKSBmJ}D;byn_Ovtn0F ztP3Q9>rM+v1$b#9}GNRAT1^8B>YP3vnhByD6=oObqW6)dS~M ziQVflrV?A6;7lfVpG(XfWA{6p<=P^#2k^i0(eA_w1|Ef(J(QS z*fNW=TwAz2MyUPA*tGtyUxkTvg@)&YP;#4Yz!G~jZL4KskEE#5Bxb(d634`at}t@a zl9*u$c5jrAmB-lqY5inkPls8ZO6(czARjn~N-R#ue>ISa#XW*1v1b#U<=VpKIoGgu zo|RpeZ#WGT>jn)g@Lkf~5o*8^dsah{j!f*C7!{hto=P&N61ySAm^v%XcZ6cBOl(uk;YLRcYiDAMPC4T_OsqRJe2DLo?susH zORO$!t7T%fAu2S9RYw_9iQOJ!OeOYooHLo&b7}o#VrifKtHf6FIaFe+BCMaf=YL=K zGl_i=q&mTJZIRdqDZ|>C*wH&QEXTyQhXxPdB`whnSYqa{;hAG>rAITF#NM+QQ;FRd zVoW7g6X8rI_Lj$)OzcxWRwcG3$m&#LYf_xaW9+jeF_YNman5pWk=Pe8!`hkH0}JQ; ziHYq14d1y?@VoSBTsGDI4%av5d-X(qD5EOMXv9I`8 zmDtyDR;LpCCdQde?As_Yli2zQXSud;`7UHwI}`J!-7y3c>j4eFgrVeFJvmG4TaUV$ z#J;gOlXn;9+byh9iN&?KN$gXXkCn&R7is-uVrifKtHgfPTaEoxVky1Vg2}{w3ep@V zv7b_$<=P^#pOc2QGqL2I<>Iw62n~OFP*SfaVu}6aP*<_l@;dfof-{+z`F0EIRAP0y zp%^>E5|-vWLcwHW>(lzl#J2FUDzPmoHm^$T_atXBv8{1pCb2(aoaNfW<L?M!Ul zlm9Hj#CC+nP7aj3jBV(l?_mG12${rww>guE{pK>J5?hsEOeMC_<4h*@v(1^GSYz5} z|1z=09KF@(A`@%O)mtr?pIBpu2=&v6HFgYfmTO~Tjh%vqwKK7q!}6cO#CC$lpamsw z#;Jih#u_^$2;EfVVyH>{nBeR|4CzhYuLL*stcthe_;PLjF~Lh9xY`cZ8y!pIBo@mkLc{J@r z)>|!@Osr3g`kBP~Mmfv1h087x!*XC$7h8N(II6RacOM@9^XEn<7luS4Fl0h}5?aKkM@Mdg9A{|WScg6kM`9}r0rj48+(Td3MThxPlqve4y0VhZVKm6d(?b4CH7tg?hj}jl44`k9t|alnLRo*&RMQ4#tw@ah7D`N zfsXv&vDbvt=`ahm<g+@aRmV+9m^U^6Cv0Yt&a9%mhK2^wQAu^hZ8)Gqov!k9XmN-bhp98GvWu6BdsXzB-zkt7uS6QVBWd@T6O zBdE0+$2g2htucWVV@m5tkC@me+q&@Iaa`?oSQ~`KV=7yhL^ zPyYc6cZ4y3rwQw~jSGMK_hzRXZ+I1B+ZD#-;>*+ywsE7qIVRu`)Ug%(onTDGmSZy} zV;j>$N15H;Jbm7!O{ldSG@hJEW=!qP=`mveue~|@=TWa?EnXxpOu(4lNgDTG_vZBl-_~IdJbU(vr}fLYH}QIY zl$G&%zNO}d-gu2Z1jg)xpQyKaJs;CIqOI`z9v&d+88tF#^Un$1_YpH>wm(noSxbc=S zv36T7DxAIyEeAm3)kzq?%A*F%@_Lt`vAizHnV)6jb%exwE}3QHT$`X^ewIz$qQu&5 z*=ysFd(d(qG~N`3@gLE6e5T(-*0@l2HI}!#R4JIWyp5YH%XxgPvg{h8vF*0pC*IHz zE%$`RJJ9kIiyAP?d-+W2xLo8?p|QN@-gTtAhWz!Bp##ELGn=`q`J0*y*N zz$^#H2^!16Va}xGerZPj>v+>ZUZ*Ul>biDYKL5~jyQAd+&}8Frxmh=5mZv5H>R~KT zNpU7E_qP~Rd%V`>Oz!cE_1Jb>M$ed8h?WOJ)3i8@|6Mm_mggkcO!6FWIw!)Jv^?8m zOj3lqU{&c7Tv%JtIXtKP3&n{obo6ZffI%RoKm^0t9 z@ozo0-IiMpc;y(h90E-N#M*7S-QKsI zkCq{5I>>|49NmCf4oy*4V>#5}Oj-_Y!!p-mb?WT7AwjI&mZ3lQ=!KR;q3OmDl!}d| zhrSZs93x~b=O;Lmmcv}eRF>z5ITP)n>7gjGc3ZyEWy(`%ISiUcM4(iB>_QK1InpL% zEc4Rxm6mx9t5cQ>_*j+YBF)-u`Dwq&7*+1U&@|eC((V>b#P;~2Btc_2GL1>gL*lGX zSw0x%OlE2B`dV4e*_`S3@m{yyT8oy$p=mMh@gBM1w4Vi~ef9PWRr!TM)3v&_P}t5EC+pQ=nocnPBi<$_$e8@R zrs-`$zJ51bjGgBa%ucn>iq806H8&5M$}rVk6V%0gjMTJ(r>eBB;Y@0k?i!-OLf_Xa z-91h$JFU~FUGxQNjfAG7gHYOE&&IT_)va|}WA>%lL^4XtiV)OVO_QR;veQ~Mz5fc- z%7>=oJt!RzqAq5~mhRyZ6w~=TwsiL}Xa0^Y9hhQF?bu4)(5N1-$7ZKGHFSLtRS$!v zNAMUNWYKIU!O}f#f?_&(yv^eZD#5*?yiOi(OB`a^X(czjdnam*f~Kd!P`Y=5y08Q- z4RwM|l}Reps-^onjHv{lNE<6vpLD4%JJmlX{WStrM?+JU1Eu@LsS8uxH%L&cmhPR# z6N%RML^lG1JTwXyV|1VN+vVw5wP>QK&<>M)1b zN!8_HV%e!)`+Z7W8^h4}RvbzX4pJAE>M#wpYUx0S3I&s=RZAPH!(+V8S1monC6=A) z9~;MSM%A&<_&%zR2vHZK+SHUboqWZ4Gf9P7we-+9V=C3Ww6VTw(|s)vOMYSqS7E@x78bc!*hT99N+seTh8mYwQv-~YT9sun}jyD2Cg6QeFnwZJB5 zRM)ti`Kpb7@j9hCHpuJbv07*m%T6^A*i#$;CD8PK2ucg%)Wy6qHU5<(sE^CWuM>KKj9 zPOIC>yXT|UcxYN{L+SVwbunp`PWZQ0(-$rkqN>vJ;*81Tt?A1IvFx!MZk7K#lcl_xH{_Gdpv^ zaJk?9Ax}Ox@4Qc*ncYiSuyeM;7fxW8>{@vJXI#YNlCqn!Rdc)}VPNa^9|{^1Y5n*g zwtfmG?3}G+*GnEjTXpdI-vy|N+p?QxYe-x|W$RB@W5SmDpoop*zu?pv+c{fXJY@fX zwqj7Nhi?<`g*z z{weRDs5!MLsj{_+uQ6dO>}gEc+SHY-bGAn8w%M0x>o}%ap8hwyMtEem>e74E23|s2T3cSu|T`Bqda~c6Kx-Z0%xeOxWscO4d1B z-@ks>iD>J1sNWCw)`*0hMYCnw5-MB!q%gS{b3H& zoN3B#nys@V5-MBjWePH3>(F-NxUIv&vbJ-!-l{wGVzhMv)DObFbxtsgX6sxzGySfk zU)A+T#U)g>j{Xl@gMtY=XRGn0L;-CLf%>=sHRt-Wn`Y~L9Ka8i)^SCRiL?f{8^_Z+ zJ|)L>&epDXzx)K+IuYtmi$l!?!7Q4si(EOiveoXQA#ADBn2qDMh6NLL&emDK?s^Z} zItl8}!M!!wkq$IlV-gZ7TW1*>6SmHlNWHMBKiikEbGAO3`}vD#>tv`OQ-qpJ;&K+v z)>u6F=6XgL$c150 zbJ5mNsGs0L%~eS`i)QPZxP;2qJ+{V#t?{PDgslmNWSz6Mvd-BWJfe0w+ByU3 z8xl}+TUgGb*}5ZODy@1`LS@S{G$w4}z7L-yfcmTpHFx-O7R}aOu7t`~ z+SHg>#EhXaVJj<9CqGwP`s3RzXlo?Yzg>WuyPaSf^`g1`iO*j_EKA6NDy`*ljR{+C zMp{C(y6k#g!g5?E5=5)l*Nj_^R?h(s|KD;oQ{*K0r~Epu z<`LZjx9V-=%8@~;UUx@h!s^Dh#`t1;Jxs|uVHNk_@I|MbhgL^{w~Y-oj~a3oZLy~X zDJWZ8>1hdDTelm>6WqEeC+wW9F+<+{9c`Tp-cERNnHJ2V*=qlLk}s^`%64c~*xJ$2 zm`H0UTe42r!i8P+XnJF`bsl*8;KHik%G$!tY?lJa zS?8>tGpqYhw0b^xhx$-6)0eYoR%b^fWVX1~g9|$2srFB4Ojtc6sWD;o(1c{2u!?)| zg*WW)(CP)?4Z`c-961U88GQWmR8dlu;J|{$gsr1e8WXmTPD<7}TLb6(do$X)5WK-f zsChc*rrDb7$*GksD`datUkp-Ew#Mjb30s%68^;q& zq~wI1OK`W9PhNqx#(*~=4mB?YvuFt}mNU~kcYYS%ZAz%D-eYJ?SRF5sde`rb_a*Fv zRXmH2Ney8i3tj@=WEW}{2O(&u%PXFoTG@Iqp)q0Wp}5Ax!cLAz);U|X^Dp}XZ6&~) z5r&#qT{(+ptNj<1{M4B4%YkTB*m6CM30sf5l6Arsp2g9FM&N8!W5IhCFD~^#2-?Cn z-~fKGwD`h4?dyzNea6$6u&QoBV6}V?KI_PFowM3DW9106dMS7>8&K1jl(T47m-rGY zs|&+A<5m|IH72YsDrihtU7V7v6IO8#zSDU0YP5P8cuVlw*c{BFEq1Fbr)E~Ut;Vp% zgssM+#)Pe=f@Gbuby2^5c<)-(<>0*$ftof)&Z61MBqUU}vOzm!!d5P&kK+rQPfFGa zTet@w8M5Lwv~>k|?>kVFjmufIh0VJXs)cF<5u4fOV&B78(x0f z_h|J>@K&av=8eFCX0_nSsg>2wU7c~OUpN{QseWl|Of2?FQ?gE2#XUG<;w9Um)vLfO z+EDXWQqH0+_A*C8W|iCePESkN`aVdDjpGS^UzD|-vo-OUQ*5+#HF$p{p=LR1c?2)A z-ib@3Z2k5hwtoK)TfhH*Y~da(bX$&zcqU&Ho*QCxU!G`q{ z8siBzbc<_@C)lt-(4=z-p8VP9v1s*LXxIW5_9I8mtS#&(x&^+l4Vwk+FjZk|^RO%q z7PevYqGX-0g$bUq^xpw!>pEyK!cgPKmDSxNI^$ON2y0BFx<^rC!s?y{$vR;b z&*H>x&JJkx252}47kgz=&Y~^$*N%kDDz|k&L}S9%fnkjaTL%^;>zu8(GcT<`TQ@?3 z8Hbv0Y&nZ&Yjs>gW$TEbom$xcxEZJ+nv%7hv$eFa!;NU`CTOVhpk_@(&Z61+&X7>q zs!3{0q*a^Hm`JNGE?MVn?eXen-O!c;4X3zJgTFw6BlsNVhhS=Ei=P@N>bAtfo}}9n zR!?qMOPA+{QzEiQ=d9j1;HQyj^=4=|s{l1W8gdrx)c9GqAgqq`?$G(sH8>dn5!gwhab#X!TBLc+P>^^}})&wb-?I)1)|5g3sz{30w1mwAeU)x;z(5*g0EX z<2~#SvAdvQaSCcT@TCLI)D_>36;y6T{*7Q4df`N>2mp|#Oe3p%`mUX$@FXQskar^y(E+2x%lT%RJ&y$8U zmqUYDmCIAxIVYEmL-cX$aG5X2CZ$=9(>UkR!`MAqY<^6Y7}ZAq2Okwu;HEJr#T zzvC0vb6Ly(ZV0fUDdA}(35=&=tAQpJjaIw6KF0c{705aUykg&%fn4s zTasntA?4opyw*1HMRfT%G#-Ijo@~eoG?%-35~?hBb#&ILESq{IWNoR-C(6Ah>a)e> zx1h@z(0H&5wL^mmG?$UMoK?BpBdN1axoqqo)Rwp`fA;J*=igd%`2;i`kbv6Z!33Ji z4+E%NM!f&G%ckzGtSxa_{@==+HT10e(B({MJkW;P5h*!=a@n*=QNqAw(L1Br>Q!*lwm6y}%wuM!&L|H6Ia z*GZl2PvgExN!A5_!))lY+EoReRoRTKi6~ZKVw1+5G7S@(1x;P>H_Z8QIf0hgSH6TS z9iG^4j?Q>uzuOuUiTz<}OeCh>-LUz1Vt>hDZ2kHF7o+hnUqWOevA;cyiNyYKb;c9> zckRTQ)MrC1#VQ*UYw8k~wH5ENhD#^kkBQBOroHjn$Lz~P?y;t=C81|Si8b|U$0)I; zKE8zP8D8cxM>~5OcXOvje9svvX zSks>ESe4EE?G_|svRW|cH zFz8WnV(;}mI@WZaA;+n+^8A8g74ESY=RNCSVoyVpgRh%z zPRa?i#MI|#DzPiEh#xAkt89&l#I80qCK9{G&>2tcT8Xs8uJt8UiCyPuOeA)_t23V1 z4FOYo>_#mec^z|PDZSFH=&Zc!^~9@~*fY>HIRdqJ_`wXp@5-ht1EvxiUzAWKHX(4t zo*}=E-J8hqJh5a#XZ)YBu*b@bv@$1;kl*UA2PbM`c_Sme1&Uj+8 z<2vJs&53ACB=%HTV#AfuM60Fu4kbMZ?&wQ zEJ4bjA~VMIv@)iNs#8Vt!)VvTW~RoTo-lcQLLdu(Cv-S))9=0Vf@DX3L%#^o+*quFrf)o*@x)fS zI^&70b~GjuTVrcXB=)VTGoILY0aJ;6pOE8JVntW63KJVR>!+TWSPGV`pM=`k!K7MZ zD}z~8Vt>bFCzaSg5sitn^53w=L}LFIbw-ITQ8#I@`6#g^kkZES#FlhPYK$kgq$;5^ zN^D7Wz=FhBFCK5ZUs573}(FL9H#0I4_ zCK5X)sWFk*u?d~=#A*Vj602>;s%*C3>s(pe1s_)Q3U*k{)E=1F0$6euo|RroPM{K7 za%x0EmDtd*&Uj)&iy9M&4J&9&Bz9U#XFRdtNuBY;PETk|Bz8tzV_yI5kTBvpyA=gAMocw(108WV{n zY>kP;#+o`4i5WWMiJjtUOeA(oL}MbcTTPwu#Kr}lRbsaravWn-HcRY|f?^dWR-Ajs zAWZBfSTY^2WBIt8Kuc_rFQH28K~HBqv4>oZiNq#58WV{Pe;&d#oL+vRPu&ifUYiiQP70_s21@g|Or$18SGKasn-}sYwY{ zV$b+G|wD#9C4s6N$AZH6{{kOX!RzmJXOoEaS>?DzR)qu?iDAdtATOnAl=i@;P4l zeN#@LCDstksuEN0I8H_FgcnO6>cH9H z#iBlLtikr!4+Wj^#C}Zaj3@R}Qez^qpA#Ard+e9E&iEetHDD^S|2cA;O6<3kVihL# z#H<+&nAj`OyonFBYkWC@me_Z}tU+SU>$!4ZkXUn9M`Qe~Y+m2i7~f;f-AtWPV$B;E zI-|szH60?882aCuR-(SMX3GVkrSxIn)eIV zMkUrS=%f_YD^?{U_xg+v4i3|<9qDjh{i->{lgj)iS;k)j3;(TK{A!t zVG`jd)Z+D6^Wi~{iW7V4jU!*d#9oKy6K$ydH)y0Kww*6qsl;jxot@{h^{SJI&LaBM zy1CAmkkyVg*tnRdGoF~`>Wn9LoTD+3*kD^@BC+F5o$%kMdQ)eQvyIgIYNbH`l&Uj+u z9m!N;6N);kve|yW&sD6##D+u;yA%^^facjA)NSg^3ADr>(;e|odzv2$y0d4<6Ps3$ z#mGcr(^DD~iMdIg@x&fa=!_>eBd#%#*b@9&L}D*HI^&7G5-^q6tL<2o&7Q|=sgO9j;KPc3SAKo|s@*ZMCTM;; z4t3kRasq9SWgH1rVp&^fJh7aqF_Bo_(3nW<4T-eG-tZ+R)vqCd3mrKDo*T#f%EXUZq*WK#(z4nu8$K6j^H}>f+v|u?9-yocw(Ow zG$s=JJf$&_*cX9IHXlDLzf9=k_#Rss*O*A`tBA%#Vqb@K#uNJ{U@Eay?O2t~5?gJ` z+KLl<_tzu8$HbbUr3+s9cgJbu5hV7%fYU#uNK1 zqBEY@-(ii3#QrX7OeFSCL1#R%e^ZhLiM52F2^DzU>0I-|3)<%pEV zL}CMiHDtA84d$}l{a#{^nQ^UF?6D&w8WV{P3~NjzHn6BOp4d?VQ+w>_cC5-~UXC$j zZN-UwIj8wEOe_s8V=yt(mlJ4-wR>gCUtP4E?a6^^kDcRcOe8kS(U?f=Tw7;+kDX`g zjPJ4Y4ULJ!E|7?wme|E+NE{U>_UdVO9gm4+pk-VN z>W=Z`1X^N;$0cOx(Ce|5Yh9i3J$9X=F_GByw#GzaH<&u(iQQ=Ej3;)JL@XVV*iF8K zDlx~?8BgryfT_f8X~(K;me{S@zGD|qBUBxNQ`^MfQaF9CTLr_DVL1I-2VnSQ7I~NR zXUzTy6U#!&BY5SvTx8;qzbjjkjzlW4`)!@^#3q^=6Nx=wXiOwFNh0-ntYwlfA?v{t zd(hLENbDh3V`7g@c67!Qd)SstB{roUtHMXnGBv5jRhZa@KVGphCYFPi`FK_iapVNr z9=kSRDzVwY+Aziwn^TYjk%`2fN@+|a_H^Kq)$%>|OhO;W6Pp{?m`Lo|h{i->^TImg ziRu4}gSe}+B^8WQXXW#ztgZO0tb2MvBPN!ImNtAnHq@3AXou@7Nj>iM?xTOeFT6p);P?3W?}U<%zBE zC1iW{QiDCi_dSh?#6EC!#uNK6U@EbX+OaB|&G&JTcEyQ3-hcHpOzcf)`85J{=NO^j z2(DwRac+L7#MYQP!Pq_o41WS&x4Pi7odf4H9eZ608kl zlvrz3N*l)$YpqUdjPJ45^#YecVy#`{`Z!9gb^VCOcw(*H!W!d=wRS7&j1p_zAYega ztsAyuRW>Hp+TD<~74NZK!*xxV*jv!r$AP*_d^v$itaY1|getLZlRD#x^-O3?B(_~# zV?!5v&44t)VK=w*wfQC zxf&B&3ay9YS$Rb;ftFa8h@4d=7BO_j6WdQBdi`{n%N*_JOUP=+8jSVxbjB0g-_;pU z>;Ok&BC!K)jfun#GIhoiJ2+q}vHtB?mCd{yk_d^T;yrf2nm<3q#Fjy;U4**pTseW3 z*fFMrDzRe?o${3@_BC*RHjfuoAw{^x7yTX)AC3a;yR%Nrqt_loRyvL3x{IowN z_BOQMi&y?Ta2k2YD}U?0jzlW4aRr_6#BNJzOeA)DQe)z*yd!YQ=Hq+p&bU5~Cw5mv zV*&V^uaw>|R6GR-D*{{hvA$6MF|*pTsNw1XE6+?XjsT z2~}c`Bz49Udo-ajk=SE#jfupjMRdj!n;zB~Pi%ToV;+_OeOYKJ645{pmnLX?<(A5tA0ITDJHf8T34A+H_ZpP46ZcyKhiLVt+-nT9Me_VV&{B{w_+U68onetFqBcTgXu3D%@iqF4^G&OzZ<_ z+d2t#PrGsgEwN9M5(bI2ZS3fb5^L*WYm6t>wuz}RzQ@|ahR!IlwoN6XGnEo++tim3 z`|`xvHuE&b6KmVt)fpw$wne~##M-uO$Es|W*j9y*I4a&_ZL@a01QYuZ+V;WMV<|^Y zpb~5AV@s$K+u76^Piz-MVG@2-<4GQ1=o}BM*5UYwPYyq!Jq-5$y?{ z*Z_T;NG$5ffvlD%X1Y4#d+bO@XFRciw#GzaN0}NEi5+d|j3+iIU@9^FTM+R%f7`Kf zSzGZQJ9e)t-oeB^hPE*UsH+bm*Y?;+L3fqd$+D4_*vYn5<5?4BC!ihZ5;n*r0v3#WGb=IhR&*Nw#P0G=Bqfdi+Vs96Z-_(ZpS^= z9G8=7iCt$(s1m#0&>7!jH%P=%6p7v7OUP=+8qDR5p3Zn;H@Q0Fi8+qOL}EAF8WV}# zV(N_Vv0DwvRAS@Wu_~K+xh;6Y6(@FqIk7h;=0n?~9@J$cvXPe95jZzLRALiTI^&5w zkkpt+Y*IpFBC!YKI^&5w6ww(^Y;ss*BC*Lujfun_F6fLWHYH#xv8nA?mCX`+RF+nL zH&krt<{x8XpF-OUHq^Zp4rT~m!M4pwN~jWhDxou;*wb;1iNv0XXiOwFH>@+B*xaJd zcw)~MG$s<8m(rL>?75`Qcw(u9WGb=e+p#K}B{ttxaRX#Qdf%w-$kFgvz8-#GaZT(=rt|jwr;*G4s`Tm5u zcZ%)i+fdFY=VE{2v%tY^zZF93aeu=jDSZ5I5x*UDlKAiSC)>N7FylB(rRpxK7{w*$1Jj`b8_XCx9n)RR z3at#e@qZtpmCvzcEh}>pXvLLQW*d<1T3{VCE1#gpIn-8JS>J@rY=aFXE8P--m4hPd zO6Aw$Z)4EP7m)6jEKTK4d`|eGx=7`p0$ABF>!7TpH;!WhjHy)WK5-%Q4|yglJ)8=y z^eSF*K3e$_(mmW#E3;CN-Yg}oWJ5)?;_$9=fzq2BkeQWgZ^btO2Qx-iwuo0~Wn9?Ss2v_O4TD(l|1i!wX!hE~3TbYG`5 zl`V>p-ouktwlcxWo2-MflHM}{*)573ih*^Xp}nnWAX(YV4HjtKR_2VEz_#rwNblv9 zTG`Hobic5)(kqEpQYBXUIgs6s+6E_c-RH=9CD}l-vVXBcD^EQ9J^sF{S`Fy~@YPYf zOI&tGJcIfN+qO>#tTznSK})4SF2;_+pG@V86lD9baoozGc7;}|2K1PPR@OlJ(6tt5 zHv`fGe3{Db3A92_RrA0gm(>6*$?-{3Dj0C z(6`7=WaGG%3o5;?419h0bhPplq%U0Sx-t|`<}seMG7L}Vw_MgiOXZRXWQQ6Y%2d8f zL3UVzF-j%j2C1z3chH)NBj=%&pCO&_N*8EE60D`c)ple8(w7%`SD8xP_qZ=cB->d@ zUtvRbq_T2lp+YN1cT2EOA%B7NmBmskqi{)<24~PHJhiWjmst4$_r)m2)ESh%&O_!i zMycEosnE)KlfE8^R(^%_4e?Sd7sb&^Q7+Kv2&8XLu?}j1>V7mKdy()b2BvQ@AUiq| zSh=;*R5rM?X)CnyKS9hxf4^l)D5iMU1=&8 z3~a>RUiBNK?_Mhv{F2pLR*+V%2}AncBJUdPm7jgcUQG!EXHfb+8?x7g11rf&Q~7GZ zrt{It?~qQemCB7SSj$am>A+N>~@`fCq83a$JN>8IEF9rUmX z);l3-Wr_jm=aMB>{=~Kqn;gmoN`)Xh#bAuA;M@Mn-ZSrWZItbme<1yQvNV-xNwkuX zR;DK){bG@K4bGsyOvp|X{-l+cY{*Ve1XdOn0xS3`W*u+eub;MhF?lv;TPb7%-s znTr>^cd3KgE9nN@E6-2@!CtBR2N!Lw7g%Wu2Ugbo>+qnd&pyHaM`Ms~ij-P;-pA&i zT%h?Lq+1QvL0PH$rwG~SeGcUUwI(4u-(!qYX{&VGZg$}{!_Z0>NVnOgRu(0|dM_fa zERI9^eAYm>@-Oa-MeS2bpN|W)SS`?-m7dJE4E*PBv{D7>H`h9uU&mD5bETDfOl6r} zYNY_#*L@CUD)_r1TkkPOsVsMb1zPvEUD2(j4y{x}dbwMgN^=s@@1>-b7BsdZ%)81n zD80gfY;%%BF)$V~A=~0JMpoWedu82LE_uj&46UpO>G#*#D>>ZE9~;t29?zf^4(p)y zO8R5m7yO&{VB5w*DahvIY#>?r#H%osdE>7!&`MWGf3nskZYl1L&kNGZG8e5BSqII^ z7ns0OYOAaOCbi6E1IfylYOkz2m8u0><6FM!^&$Obp>%=X!`-neNag)7Snu1cgJxwF zrt+T0paRFqOkDUG)=M=?3XFMyZugB9Ja7Wh%adRtmgpuvdNvLH3hK zdn;Yyko6tL$jXn23a#w!+_NuQ*#Oc%CQGe+=|cK{A!%i05v&hP)2fGj zslr8DS!9f?{N`6^<%-N6_)M!eg!J#BQY)*AkjASx|AaF8t%+7rylark-#%nlQ(LuH zs?pxJW?<#tWQA5f-eZ#*w6YPT|4o%z`O$_00St>6LkGCR*u^C2Q@K-|%DU4TCf24+E_vORQ{!i}72by_NODkp078jI4A| zRhUZc-7)s-aAU}HU+WC|*M!Wbrg*ZsP!g<QO{;NZYY-%775!?*bLeYCPE zWcrp~S906M!(8}hJ*?+CQvWp9u z{x>@K;YjD_cWmaHRAShv{3N27ARc zATz|}UFEioZGmm0CWq3>iDAf@24iI9B&R|v-rGbl66f!r}kX(eq}xk1`S zw#B_N)aOuIx!#1_Fpn{^azmvj^Nyj{K0zzJAalc7C-cZST1iSPb_6oFn5=`AN>AJ? zBPjv3S8ho`&W^BwWM!NYY}<9e;_o}+pX<@e_K+E8mTucon8Tf}v~pe;tS?vt%}VC3 zFyuyg9EyRlUbuhG3o}Mm?u=AuWn8y2Mxd46kh#k%wK6&knF*e>a@N=4AD|fBQ7+INWR=7YThdlo+TG%Ojx{rZmI&`KXj=ls%C#v9l?ID;mHAoGmqDy_tf5ah-itZiT= zGuMFJ1ctbkxy1?>=;enmy#=l844G%crB)^;A@jT~Q+dD#>#H#9pe@kz1;|ZIawr$b z@FDkr&loMx{7TQD_xn!ii&l1l%>1>^pedNc!eD`>;sx(3hjq}bEOa0@g)x;%Y)52M z$Dof}3gyF%tQx75lkOr@bHt<1($zP3xOG}@4x#h8}LPCn#jt5g~*-7D|T z7&;8C>;{>pwf4$fJcC+;y)qBapsx!hR$6hd%uTho(kBkNc?|IdYI7@0CEN4CAJNM0 zkV%`Rsl0&Km3%~|vH-6u-Z4SKB`$H=l}D_J+(SYo(IMC0QMk zR`Nb%K992w%1Ue(2XcAF5Q>4B&vCEhea6Vj7sqS^34R(8}1<#4FLtevtXaF13Qcm5=KaoIzhXkoi5; z-pYVeBamC^wzu*JCdGeQu~dfN9hUd+GRgm09`>*C4DS=3Hu!V=1y5-Z{Z!s=;hS4qSJG3CUA> z{`?>|H~=#Ln(U5PS*JC?Z;8dB8vIj`tfK}$_Q~_xZhvl)3L$9klhfUK~GcGsRrVH zQ}zSZV1uw6*inPO@BL?MY|tOF;S{^mRMu$?dN>lQ2AkNDt-Ha5nEBvcLhNYvpon78Du-LS#okliEB?%)gxgA+~MoymTn z8tfh{R!7g^)xDm$4;vf-*@(yP%VhKLBZz39AP&`FUq2Xzeal~qCM2&u=E=XY!2rk} z9A0JIGdO!l-*d1*6tX66)4_(U(;5tLBvcKe1<5*U@V)Ui z4ynd3YL3NidQvc#*5K%(oJ=)1#+0n128-UGkiZ5kA>LaD9E0M+w{UPtKmnmi-sB! zsRqOFY4c;<4f=#zKYs6AY;ZJWZQP~_Pu6MAU_??v)nH`B4L+C=nv4wwLH4`|yN^)L zr8O88Fx6m`FJVW|;D$$gOv47pK=xvX-5n_Fv<4RiP&F7Gkpnww5dQJHJ+Z;DkiD$P z?)j5-T7$8kgsQ=%u4ElG=>F2eBe6jZWUsZ^oqV!RYjAboRyDXLEC+Vf;G{8ihhu|U z$T|gff1a$<8rU2vc2ONogHEKsL495!IJ?~4Q9n9?5M%8qfgud8^j^|tjq2^lXY4Hepea$ zfod?0>riZP z5@cI(7xA~Pyf*lS)0~u(sRk{+WF0m5ZmHWB8=MT;H*godACYz1Gsp!@HQ@JPu^)8Q zV8i$RZN>(tKz6yq?!F2pQ?Km!omK1ys=+c>4(zDGcJZz6#RjM1El@>vPnE3Gp22&b zgsQ>&VaYmbu(0bT_1Iu2Wbvy`yi-cnX$|<7_3Q_#f$zwH9W^*JbKB$CU>Ib-DzN*X zWS!RFOIJeGU}aIVjv7quyYfS9a2jO4GuT~C>Iinx>R>X}fZwsi26xn;D)ius*kCwh ze@?P{mHwl_kG6!W0lyE4@s1kowoRWOu)*n&{WHYwK$3H55&c$>P&N1?7}!yR4es6q zUj|m60Xayp`-Kdu zi^N?!45|kFt{uiYdIp;h-TnYD$i;{KJAhO3F zM`D9>Ah(an?wFBvT7$j95~>D!+mfxjL7(s`gAc312BRQ%K#JW5BkQyV{TvBZgZ*vE zI%@Do*Rj*F!MTt-EX3|^k#$;w{y|sO;E_95na3+pxg}kQ*Fl_m{{z zt$}4os2Ut6Q3oelpYS974|xt7TnIV5j|T4=2?~SX$>NR>_5;;`-x0!CN6%o>Lz{+R zgNq;UVj^i1^(b><6lW9qfj6 zH<*xII&(etiPyz=n?;e`xA7khMtKsd2Iqw(>!`u&w=ZJ9aK=DxjLGiCkagNK7#&Qe z8eDA4fgLqi-+FN*Hn;?Gm#5f07P3xjaA^QlgUf;}J8A%L^qh?i5|F#jV0TXZM+1IW z1p9$%aIGl^cGO_$#0N)XgRzjiImzyakagNKxG8|D0l(LQ4eqGH;D_+gsDZcO<@K<^)%e9c?xLpuT7$VM*+D&nc@lNlAaU;S@36r&kb4o& zgR~hGszrXmmQXcV5H#)R8T_>1=Et$YwfH4EK7%(BaxN{R#ld8%!7IVIjvDM>o^TR2 zxDIlSarRw%P^g}PXGo|TGz3mMYVhbeKYWP|u7_M3o(C&DIhXbfT9Oi~2Ccqi>u%5| zeClqet-%I2K<-W4MW2|mPHT`4m}5CgK*v4^|8TC_?2^!eTOaUv}d4lQw=@{%Yo}|&?kINug^Zg1`gytv)MP( zvQBH@2T(QmwBiOwUfRmuW!?MP0bP z7J6KLC*-TjKBt|7PP`~zZL+HByC9Fdqf8KcMrdaI4}VVi^?U}Z?}mKWvYq-lYz#X@ z5nqGqdmz7l*-rffd!neD%Vww^5BY9>IeXDK8^aD!v>`pHo&fm`&2mM9N;_?2v#RQQ zA-|DZuEA-}0zu4q4pjbVo<+RR}Osvm&-W?s3XOCoFxJ4DeI276FF3G!Q% z?R16B#;`-|y)7N~p!z|`Z&|j}bsihT4pFp~&mL4i1bO_%zDy9e7;FqXMA0@Tdr&z6CK&t_xTA&Ry$*@NmSkl(Isrw2VYh8?1)m&+bh zPlbH1vYj3^*cf(*qTckN`Vq+YHp|(Y;m{yew1dq+^`nsA!7W$xRIrUiC&Qzn#~{CB zs9aHs4WUC6?PRk@)zcuqQ`t^0(HJ&P6!r1ggX-y!-??n3R}*XuJH+1G#b6JrUC8fZ zm$TR4voY)tMSUIip!#vh_w~vZwIv@(_DhNmE>h7mknbNUQ-ptOx1{KhI2Fx>{2|G5MH`tVMThcE&qDsN zvYj?fl@uM$JI#aq;bl8*W0VvfL9G80tv zJmm2fnE$>kXZ9?X6bzF8 zd|la2!<>?$SdoG1#gMlmf{)UV;4JV!5L0 zO*V!dqA1Qgy$bnw*-p36#99%*aj5z=$e&QQ(_LX|gZ~j179MBy>ySS&Ue4aVk&>d5 z5)4$=L;j>xxuQw3Ms_;6Kt&$pPYIVRnv#-L!rrO8Qv>8rE!%0jQBpLNcWQ+Eu(F+= zFiVO~i!e~#1o_hv;Yli50{P*Eaz)RR8#Ycnr_+m6)C~DEBISw}I&2I( zM9~P|sRi;Q%658{Cf15Z@=mRgx65{Fv{?Z=M5i<3>_K%K_K$~^5?|M73rTS&?RgX@05l7sIr~jqcK`1{-Jku4)W)f z?euYk6|h6t<1b;V^N>G3RnFe$9#!Cf#E!V2z(DmIkiRfouIL+^jbVrAbP=_#eiQN+ zCCU|jZ%~CQ8qGTuAb)Y$PCut)k+3(0cX|u*W6E~Yzmmq!W9WdGnF z#5RH0lVMVuqH;)Wj;cs%D~QdqNo|d)Kx!L^%{EDGiz-E`C&cC$q_#tqB-IOIPmu_1 zk19d3H!7dh4iI}fPRc;#k=hYr&qPS=gvuq=2V!%>q;^K-klF=RkyKxZJ!_NN6;*-M zZV;PilG+_riqswud(I%WCq(01?FG@}`OJGm^tdGbbYF;CaZ(Y8#`sV7gJ^Am*Z~l& z;o}a3=&}5#2SIcY|LMUHJ(~ZtKSYm;Q^g?=9mvNW3Q?2)^e~8uxBG`f^azK>9Rbn9 zQlthz^w0#UC`9`gNtqBm*dTQzL=W^y4TR_cE~%p-8sTaXME5a>9RpGE75%XgUEd*A z0|S2MKdpu6HN0CLM6c%EVi3L3rg0WTui)d3gXm>(VuK-i3HNe5M91*jI7BbzwI@Jy zbcDtYf#`)csS_c3ew@@v5Ixr+buvWH;kBng^lV;xDn!rXwL>9l^Pdib=t%z4(;zy6 z|8zJ+`L#E6Iz)#hX}&WcIy6pd1Vm2_lNt%plQ^>>I>aS*CPYuLNu34JS-kdah|ctg zodeMsDN>^#>iVS4h3IrX-+2&y%p`U`L?20zx&We6Y*H6ObTXgsB8ZCj#G@hlK#_iW zF+?XCq{cur$>+NSqW7A_5)d8F=Nk*ryIo?JLiEl8smmaGyGQB@h>qj)T?x@!4PsY8 z^k$#b)ev>~%-2Bl#w4+8A$q+>>N<#C=a9M{qHo%yZh)xx-1tU_=6LN*5X}_mrw&BZ ze3qLb+QQi_5N+n{R){W%)3|XEZFET822n3X>UM~}?vlC#qObDWJ0U7Q$iEAsizD>Y zyCJ&JCUp-)U*z+Rhv*9qu?Y};p3iqLM4$7C-3QTmVNywm&Lt7LAEHn5`6fbij!p0Z zh|Tv%O@i19{HG71a)~_zu?2jV$*3G+52GrQngX#GZBkQF6-Ye-v6oCzkD^MEdJJL< z4N}ukB}q+(*dh`k7gd7f{Xl8)2Irho`KkFCaJloQly@R*y{$Vd8m@4o`YCDiBJkvg5>k4d{Xlv=EX_9 zfXXAa0AdXhQZJ%%NxcNI#xSXcs2oy@P!&lnhFFtL>Sa^~Qm;U4iAm~JR4G!gL9E#z z^*X8~sd|XDkO+CG5+oZ?`J@^l)*2_(gvuke1Y&IwQq8DbQY{cmhe@@ea!9376-i|v zma$1?Q58t#AeJ>ry@4u4>P?8{3{nMDNm6e?EKee|6jg%cGE_dPw`9;tUA z_GX0CyQo}J??J2(Cba^UL+X80MN%I?>@Azrho}mqK7!a%lhntkQlvhC*fN8Z53zSV zQlCQX-3Y1AP`RW&huC{zQeU8QNPUT_NNOd-R@kJzLRBF3HN@UGNqvJVMQRnqJ}^kF zMwKMB24WwQ2z`qxLGn9PKB?~^_EDTv5tT>k2Z((fA@w6Fm())X`y@>2XH*WUUr-fE z{R%PPCiOp51ya93>{FA}@2FCw{(#tL2B|+$B}x4SvCm0_{zjD``41|e)V~n>BF+?k zhZFn4BLxuqGD4~gDwk9h#8!q$Riko9t%s^esw>34vPrFvsz9n6#J)C3ZHOvGY9ok! zW02~ODoJW%h^=BG1U*nCNa5?SRX(XO#8$^i;VZJ$9;wYBwkASqb5t&=Eg<%7nADc2 z98z1MDw5h7V&B=Mwn0@OwJpTHH%awGl_Iqr#EJ%~UZ|3!wujgcOoX5}ssyPWQ2C?` zi2WERwIeEz)J_olDMG3bDwovG5c@eyY8O-vslKR+r116HFE%NBmG(=4)E*G~)g-ki zsuZccAof3l)ZVC)r1pi_Z%l+Bf+|63KU6-ceh~XTPHKNt9;pK$_D6)&fv8+k2SM!5 zFsVaOIiwCnRU~y7#Qw5L9f7JqY5>IkHc3TMrAV0&`^O-4B&sB-fe`zbi4YuxDnaUK zR6eOeV1?qOjzQ&-IuMT?~sk6b_Bu?raR352OV1*;3&PC;tIuEQ( z!=%nf<&e4nRgu(%U~OiTx(HQ))M&6aH%VQLDn)7xSX&sRENIePGUJ+8WQMsh% zfVFp+)KjP&Qct5Ql6nTLeQZ*5Q58r%3)a3Ssd=bUq@DvSVvtIqN|JgWto@h>!F;d| za7n!Y)`4MC3s5P@hYjFT#$@<_b}*1!mu8(QyQm7J-UDlpNoobE6sh;YI>sRN0jeaa55YQ?i4c5* zDnaUFR6eOsz^aLp@=X^$V&Zso%gFVw3tERe{tWV4Y}^`V&=()L&qoWRUtBRg%;{V4ciF2>wNt zV5&<9l}`%5Iwel33o4IP62G%f})CQ;uq&5WW zG?Uaus8Xc5gEibBwK1wBsUBdR&P1roCa4mm!l-;wn}T&loYZEhJW`v3H6lW43sf$t zEx{TYCbbnRht$@nilnvy>+B?{ZNWN+iBOlGs1l^ML*?Re{tlU|nF6>WeBxYFDr>G)V1+DoJX0ur6XE z)MXD;2~vBa@=5Il*628?y-|6j_5thS2&o7vm(+e>jR}+Lhsq(fKdK_B1Hih(CUqdH z0;z+*N|>Y$MwKGfAFQzksY6gDNgWE-rA&mn9EK`E>Tpy(sUyI;EKX_wDvwkYtji;$ zOjItZBf+{NOllx1htyH1ilmMP>q?u{AXEiX$AEQ}N$OZsDN;3HU2Tx6MU^B~2i7%A zgu28~B}iGQd{W1Ob#0u~U{oHdM&*;b7_2+vq{g7~NL>QfT@g|VR4%EpVBH-ibtx)`)McoOq%H^R9-Gt^ zs0yU61Z%uW>MB$zQdfgD!60=FswAmv!Mc};P?zgaB}iS5$|rRLSQ8ymH=-(%x(TcY zY*G%Y0;!w9nq-o?1yzdFtzbQ9kQ#?7N$NJR9%3TY<#tpFQg@*8N!8 z2J7Jnse4elq{f3aB}{4pDu>j)sEVZS18b^HDv7E<>VB{uF-c8Cl_K>3SdSW{CZS4_ zdJwF~mhryZ_Cp86?M`|iq(<7uFLFJNq6f8GP>M>LfscEQ+q^5)Q zxJ}AMRUq{^STjsgGf<^SJptAe2C12-lBAvlYbFz+F0)W2NX*>Upr9GD*!xl_K>5SWg?I7NAO! zdJ(K=mQvq+Ubika`_ekyJfc z&)K9rR0UEEV5Lk_ji^$jn!tMAAhiTll2kKT^O*>BX+f1B)r!g|)dtoJaZ+hi9;pmi z3nHYls9aJxuwD$4%A;~fy@9Go>P@g-vPl(C6-d1W)kXnu^N$PE| z7Bdm*@(!v5sdrKNq}~JTeJI6BxF(8Y?t zOk1~uZmnm(C0jOvZw!j=HZ<;Axa!ke%~C`CjPoG^*)rLwnG8+f%xlF zR0%3lABw*rP3?e6)K2kVPg3nrf%-`NzsIRvP>%Xo{5Qf>2b7^cfdXo`_#0Ey|DYoE zsrYXusL!B0)hYg_7_|q=Qi1rJ4MN`MP@4JzDp6mGza>fSg$mSHrW#A_GtpLRzpbQt z2W+I&J7^oB-q$AB$>$E4UMBU84ODuEZ6DG*V)KmNx3-R`LN-pQ#I^yIXVZLW^nPE) zQx!H$r@GlLoa%0~Y^u^U(#*$IJxrpE>S+pLRFw&IQN2tbi|TFiR8${RhobtLI1|;+ zw2`Q=NfS}Wm@*J`tWEK#{6= z+5(0eWCIlHMB9H*gKd664YBnD{14LK#|P9&_V&Lz*`D54L+#~zb&5SauZG#X@9I>0 zc3u6zUOiW*nG@vvoQInW;M53nfSWqq+`p!NXwFYlXPE2H)JSuDnfj5reN4sev0-(l zz4fbpY)|c~pV&*c>MVO`R-J9{ysC4|(N(@>l)ZAQ&b3EI)p_>Dr>e0hHr4s|!lk;v z9+*@Y+WU^G)}B{XqwRG=l`y9U`7tiCxBb)@ds4i%|M;vYy*lc78{Mf`&?>K9O!x=Q@74MOT_C{0}hm8f5e ze<(>^3l*r8_}|2->!2KUz4(X2)UTin^=l}gZV>-Sin1fcEl`?jfJ)SK(O#0e6)I3^(JD^OfO6DtMOTEW+n@|}I}}iNi0+o68lfU} zr|9kpY9^GY?h;)Yqwa>X)GX0G3_@x)l&0oDCF&m0J(JYEP=U&bu8LFlK{;x!=w4y! zcTk4hJ=N>q#J0ZHo5P=Uhv$LcusB$T6;i#|R~t$;GrQ&2$tMf3?NY9&;po)$eY zL9K%F)L%spNm9>11?pMRu{iY{l%t*(eNvcu0m@LTp@7PZJ~>6Lfr`|N=42)QAkfi2 z2^8`QJLco>n#en{Igj5F>6+_in$ydXcNt6Xnq}mtq0yM%Ga2*p({giq%&nN)Oj6vL zdoStSg86-u_b$)gsN_F2=IxAYcfH$N^{=O2!TbS3*Ily=uUR%1bIByA%P*1PlgG`* z{GrJ~JM(96Z+sQ=4wGhf=9<(c`0pVR^xP*ye$07E zHaBP?W;D#}-KYC++Zx4;p7><<-R4oy_ogR8;0%r85Zx5WgICE4pX0)JZC7pS5b*1@wqsx3>-kB@f)4MREk=*1yy*e{8 zh8ex$1@621Ol^G^GfvGccAsuscBmFJI=)Z1?`~<%AHj^K?((qnArrN)U5puh+f~j_ z-do(f^Ciq^&92TmPY36oT7wzg*O!CxETOuJzL?QqT^DlZ1DCgFF{6jNAzhxm);A{I zf*EbnO)+QgS6{arGdiJDotJnYHP+N)Mzixjsq)h@BzUE0aG#+=mPd^phI0-X)i$T_Tx-K&C;ZP`wKa{uM`2^*< zCGF2)Mu+gQ^RtwHJow}`%$`YOIWJk!dHqn#%4DjXd0x|^(=b<ET|EzjN;O4bzf$o*vOW4Bs`Q=(PObFTkZMTkuUOie}2Q?$ej8oH80S`Xy^p&P(1J z-*E$Gv_#g1oq5LQhQDD(*JEAAnMXu|RhZG(*bq2#ea-z7Fr#;|$$j^~2M?TvIc83< zJ5R5POvEq9C^`^ZOU~TXbirZFXfm`WocXGn2k?)t=umSeygYkXjOlm}Gg<{ZljT{4 z`n%4;jBY@O`w5oX&Uh0uZuocR%TId~YwPj-B#L|bdz}yI?P;6yHfG$mKbZdxA|*g$ literal 0 HcmV?d00001 diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.ngo b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.ngo new file mode 100644 index 0000000000000000000000000000000000000000..d20d04967ad55dc34aec51f1a9ff50c2f56196d4 GIT binary patch literal 202007 zcma%k37i~7_5V(Sh~P1bC^rM5hC`U$+?>7H-6RW1cG%s7Bfv~9Adq8{4G=uA5d}ri zfggtm?DpQ9WRKY+n`1X@1EL6mqoR2K#sl@QD5K)fTmRqps;Z~Dx@VSrK4SOx9rfzf zt5;R8yJy{8zED+BIk$rU9UghABZaF-%ZBaiH?$;MZridhSy>U8npI$Q&D?Z6z8UwY zGuN{EMUB;sSK|IOalg23?#ksKSul5TMdXQN5+qX7SXbR#mu#+IUf0xIy*vTJdw^F& zYU@_j*VI*TgEJ$dI>>BIExrOX$s8DrYA*ZC!U$a^3dZlJR7`BGUc+6eu%5Np8P+V{&`Tj^z5A*KA6n zL)4{yD@KC1uGzRFxo*v-jcY3+yZ^~16SO9oMmx~5XG2D@tx1Zu=K*~_fI{PW;M6rH z8&@<`L1Vw6F!eSCa+dttbbq zNtIzCLwb&JN^*caR+;z6nw`lx6_J4(LGcF03qW?jSW7BY486+!Ii|#Tim8Z$#xdLV zq(snGvMXrPj?Hj9nq~+*`Io3i(1p-aAr1;hj;|#$;`df435jFm!GuQ&%$$YAnRB2s zAI7(lhi32@*CWz$A~UVXe}g|QO47tqd13gy8C}Se!7vQ|7nEXGiux)d2f7L#Nwb$1 zlS8xYFd9~zWEHu#reS4sMP%Zu(Xw1kFyPQxMccGiJWWj)qJ!^_h3lc5L!Kk1@gIbm zs}#YSvG_DvV9rQ)t~Ar!;vkJYQAXMPBH#GOQ>FF6bhP-Td|3{$1dK zph*s<&zIz<1@OS93#I9-1on(?%9mw=#qD-k4q@?u`(mZJ$dhdG@!%{Mww zD9SP732glH z`O-|3w!RoW84r4L`e3fY>)u{ zIVlP2ir|1leU>En0u|?YG0oaMYm*HS#{aEQpRA8Vzk$?f(vCQ(=1H=R3kTCbKapnq2{U`+o6F{qP)?V+#K3!6%0D`k5EaiM)TxbqG4t+2W=hpUs^&r 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
    Cnh#9AP^x7RZx|@(ZWvUtzBqr+Rqp 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd new file mode 100644 index 0000000..e119a1a --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd @@ -0,0 +1,436 @@ + +-- +-- Verific VHDL Description of module DCUA +-- + +-- DCUA is a black-box. Cannot print a valid VHDL entity description for it + +-- +-- Verific VHDL Description of module serdes_sync_1rsl_core +-- + +-- serdes_sync_1rsl_core is a black-box. Cannot print a valid VHDL entity description for it + +-- +-- Verific VHDL Description of module serdes_sync_1sll_core +-- + +-- serdes_sync_1sll_core is a black-box. Cannot print a valid VHDL entity description for it + +-- +-- Verific VHDL Description of module serdes_sync_1 +-- + +library ieee ; +use ieee.std_logic_1164.all ; + +library ecp5um ; +use ecp5um.components.all ; + +entity serdes_sync_1 is + port (hdoutp: out std_logic; + hdoutn: out std_logic; + hdinp: in std_logic; + hdinn: in std_logic; + rxrefclk: in std_logic; + rx_pclk: out std_logic; + tx_pclk: out std_logic; + txdata: in std_logic_vector(7 downto 0); + tx_k: in std_logic_vector(0 downto 0); + tx_force_disp: in std_logic_vector(0 downto 0); + tx_disp_sel: in std_logic_vector(0 downto 0); + rxdata: out std_logic_vector(7 downto 0); + rx_k: out std_logic_vector(0 downto 0); + rx_disp_err: out std_logic_vector(0 downto 0); + rx_cv_err: out std_logic_vector(0 downto 0); + tx_idle_c: in std_logic; + signal_detect_c: in std_logic; + rx_los_low_s: out std_logic; + lsm_status_s: out std_logic; + rx_cdr_lol_s: out std_logic; + sli_rst: in std_logic; + tx_pwrup_c: in std_logic; + rx_pwrup_c: in std_logic; + sci_wrdata: in std_logic_vector(7 downto 0); + sci_addr: in std_logic_vector(5 downto 0); + sci_rddata: out std_logic_vector(7 downto 0); + sci_en_dual: in std_logic; + sci_sel_dual: in std_logic; + sci_en: in std_logic; + sci_sel: in std_logic; + sci_rd: in std_logic; + sci_wrn: in std_logic; + sci_int: out std_logic; + cyawstn: in std_logic; + serdes_pdb: in std_logic; + pll_refclki: in std_logic; + rsl_disable: in std_logic; + rsl_rst: in std_logic; + serdes_rst_dual_c: in std_logic; + rst_dual_c: in std_logic; + tx_serdes_rst_c: in std_logic; + tx_pcs_rst_c: in std_logic; + pll_lol: out std_logic; + rsl_tx_rdy: out std_logic; + rx_serdes_rst_c: in std_logic; + rx_pcs_rst_c: in std_logic; + rsl_rx_rdy: out std_logic + ); + +end entity serdes_sync_1; + +architecture v1 of serdes_sync_1 is + component serdes_sync_1rsl_core is + generic (pnum_channels: integer := 1; + pprotocol: string := "G8B10B"; + pserdes_mode: string := "RX AND TX"; + pport_tx_rdy: string := "ENABLED"; + pwait_tx_rdy: integer := 3000; + pport_rx_rdy: string := "ENABLED"; + pwait_rx_rdy: integer := 3000); + port (rui_rst: in std_logic; -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(132) + rui_serdes_rst_dual_c: in std_logic; -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(133) + rui_rst_dual_c: in std_logic; -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(134) + rui_rsl_disable: in std_logic; -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(135) + rui_tx_ref_clk: in std_logic; -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(137) + rui_tx_serdes_rst_c: in std_logic; -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(138) + rui_tx_pcs_rst_c: in std_logic_vector(3 downto 0); -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(139) + rdi_pll_lol: in std_logic; -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(140) + rui_rx_ref_clk: in std_logic; -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(142) + rui_rx_serdes_rst_c: in std_logic_vector(3 downto 0); -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(143) + rui_rx_pcs_rst_c: in std_logic_vector(3 downto 0); -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(144) + rdi_rx_los_low_s: in std_logic_vector(3 downto 0); -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(145) + rdi_rx_cdr_lol_s: in std_logic_vector(3 downto 0); -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(146) + rdo_serdes_rst_dual_c: out std_logic; -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(149) + rdo_rst_dual_c: out std_logic; -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(150) + ruo_tx_rdy: out std_logic; -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(152) + rdo_tx_serdes_rst_c: out std_logic; -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(153) + rdo_tx_pcs_rst_c: out std_logic_vector(3 downto 0); -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(154) + ruo_rx_rdy: out std_logic; -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(156) + rdo_rx_serdes_rst_c: out std_logic_vector(3 downto 0); -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(157) + rdo_rx_pcs_rst_c: out std_logic_vector(3 downto 0) -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(158) + ); + + end component serdes_sync_1rsl_core; -- syn_black_box=1 -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(88) + component serdes_sync_1sll_core is + generic (PPROTOCOL: string := "G8B10B"; + PLOL_SETTING: integer := 1; + PDYN_RATE_CTRL: string := "DISABLED"; + PPCIE_MAX_RATE: string := "2.5"; + PDIFF_VAL_LOCK: integer := 39; + PDIFF_VAL_UNLOCK: integer := 262; + PPCLK_TC: integer := 131072; + PDIFF_DIV11_VAL_LOCK: integer := 0; + PDIFF_DIV11_VAL_UNLOCK: integer := 0; + PPCLK_DIV11_TC: integer := 0); + port (sli_rst: in std_logic; -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/sll_core_template.v(125) + sli_refclk: in std_logic; -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/sll_core_template.v(126) + sli_pclk: in std_logic; -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/sll_core_template.v(127) + sli_div2_rate: in std_logic; -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/sll_core_template.v(128) + sli_div11_rate: in std_logic; -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/sll_core_template.v(129) + sli_gear_mode: in std_logic; -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/sll_core_template.v(130) + sli_cpri_mode: in std_logic_vector(2 downto 0); -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/sll_core_template.v(131) + sli_pcie_mode: in std_logic; -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/sll_core_template.v(132) + slo_plol: out std_logic -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/sll_core_template.v(135) + ); + + end component serdes_sync_1sll_core; -- syn_black_box=1 -- /home/soft/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/sll_core_template.v(107) + signal n48,n47,n1,n2,n3,n4,rx_pclk_c,tx_pclk_c,n5,n6,n7,n8,n9, + n10,n11,n12,rx_los_low_s_c,n13,n14,n15,n16,rx_cdr_lol_s_c,n17, + n18,rsl_tx_pcs_rst_c,rsl_rx_pcs_rst_c,rsl_rx_serdes_rst_c,rsl_rst_dual_c, + rsl_serdes_rst_dual_c,rsl_tx_serdes_rst_c,n19,n20,n21,n22,n23, + n24,n25,n26,n27,n28,n29,n30,n31,n32,n33,n34,n35,n36,n37, + n38,n39,n40,n41,n42,n43,n44,n45,n46,n49,n106,n105,n50,n51, + n52,n53,n54,n55,n56,n57,n58,n59,n60,n61,n62,n63,n64,n65, + n66,n67,n68,n69,n70,n71,n72,n73,n74,n75,n76,n77,n78,n79, + n80,n81,n82,n83,n84,n85,n86,n87,n88,n89,n90,n91,n92,n93, + n94,n95,n96,n97,n98,n99,n100,n101,n102,n103,n104,n115,n114, + n113,pll_lol_c,n125,n124,n116,n117,n118,n119,n120,n121,n122, + n123,\_Z\,n127,n126,gnd,pwr : std_logic; + attribute LOC : string; + attribute LOC of DCU1_inst : label is "DCU1"; + attribute CHAN : string; + attribute CHAN of DCU1_inst : label is "CH1"; +begin + rx_pclk <= rx_pclk_c; + tx_pclk <= tx_pclk_c; + rx_los_low_s <= rx_los_low_s_c; + rx_cdr_lol_s <= rx_cdr_lol_s_c; + pll_lol <= pll_lol_c; + DCU1_inst: component DCUA generic map (D_MACROPDB=>"0b1",D_IB_PWDNB=>"0b1", + D_XGE_MODE=>"0b0",D_LOW_MARK=>"0d4",D_HIGH_MARK=>"0d12",D_BUS8BIT_SEL=>"0b0", + D_CDR_LOL_SET=>"0b11",D_TXPLL_PWDNB=>"0b1",D_BITCLK_LOCAL_EN=>"0b1", + D_BITCLK_ND_EN=>"0b0",D_BITCLK_FROM_ND_EN=>"0b0",D_SYNC_LOCAL_EN=>"0b1", + D_SYNC_ND_EN=>"0b0",CH1_UC_MODE=>"0b1",CH1_PCIE_MODE=>"0b0",CH1_RIO_MODE=>"0b0", + CH1_WA_MODE=>"0b0",CH1_INVERT_RX=>"0b0",CH1_INVERT_TX=>"0b0",CH1_PRBS_SELECTION=>"0b0", + CH1_GE_AN_ENABLE=>"0b0",CH1_PRBS_LOCK=>"0b0",CH1_PRBS_ENABLE=>"0b0", + CH1_ENABLE_CG_ALIGN=>"0b1",CH1_TX_GEAR_MODE=>"0b0",CH1_RX_GEAR_MODE=>"0b0", + CH1_PCS_DET_TIME_SEL=>"0b00",CH1_PCIE_EI_EN=>"0b0",CH1_TX_GEAR_BYPASS=>"0b0", + CH1_ENC_BYPASS=>"0b0",CH1_SB_BYPASS=>"0b0",CH1_RX_SB_BYPASS=>"0b0", + CH1_WA_BYPASS=>"0b0",CH1_DEC_BYPASS=>"0b0",CH1_CTC_BYPASS=>"0b1", + CH1_RX_GEAR_BYPASS=>"0b0",CH1_LSM_DISABLE=>"0b0",CH1_MATCH_2_ENABLE=>"0b0", + CH1_MATCH_4_ENABLE=>"0b1",CH1_MIN_IPG_CNT=>"0b11",CH1_CC_MATCH_1=>"0x1BC", + CH1_CC_MATCH_2=>"0x11C",CH1_CC_MATCH_3=>"0x11C",CH1_CC_MATCH_4=>"0x11C", + CH1_UDF_COMMA_MASK=>"0x0ff",CH1_UDF_COMMA_A=>"0x083",CH1_UDF_COMMA_B=>"0x07C", + CH1_RX_DCO_CK_DIV=>"0b010",CH1_RCV_DCC_EN=>"0b0",CH1_TPWDNB=>"0b1", + CH1_RATE_MODE_TX=>"0b0",CH1_RTERM_TX=>"0d19",CH1_TX_CM_SEL=>"0b00", + CH1_TDRV_PRE_EN=>"0b0",CH1_TDRV_SLICE0_SEL=>"0b00",CH1_TDRV_SLICE1_SEL=>"0b00", + CH1_TDRV_SLICE2_SEL=>"0b01",CH1_TDRV_SLICE3_SEL=>"0b01",CH1_TDRV_SLICE4_SEL=>"0b01", + CH1_TDRV_SLICE5_SEL=>"0b00",CH1_TDRV_SLICE0_CUR=>"0b000",CH1_TDRV_SLICE1_CUR=>"0b000", + CH1_TDRV_SLICE2_CUR=>"0b11",CH1_TDRV_SLICE3_CUR=>"0b11",CH1_TDRV_SLICE4_CUR=>"0b01", + CH1_TDRV_SLICE5_CUR=>"0b00",CH1_TDRV_DAT_SEL=>"0b00",CH1_TX_DIV11_SEL=>"0b0", + CH1_RPWDNB=>"0b1",CH1_RATE_MODE_RX=>"0b0",CH1_RX_DIV11_SEL=>"0b0", + CH1_SEL_SD_RX_CLK=>"0b1",CH1_FF_RX_H_CLK_EN=>"0b0",CH1_FF_RX_F_CLK_DIS=>"0b0", + CH1_FF_TX_H_CLK_EN=>"0b0",CH1_FF_TX_F_CLK_DIS=>"0b0",CH1_TDRV_POST_EN=>"0b0", + CH1_TX_POST_SIGN=>"0b0",CH1_TX_PRE_SIGN=>"0b0",CH1_REQ_LVL_SET=>"0b00", + CH1_REQ_EN=>"0b1",CH1_RTERM_RX=>"0d22",CH1_RXTERM_CM=>"0b11",CH1_PDEN_SEL=>"0b1", + CH1_RXIN_CM=>"0b11",CH1_LEQ_OFFSET_SEL=>"0b0",CH1_LEQ_OFFSET_TRIM=>"0b000", + CH1_RLOS_SEL=>"0b1",CH1_RX_LOS_LVL=>"0b100",CH1_RX_LOS_CEQ=>"0b11", + CH1_RX_LOS_HYST_EN=>"0b0",CH1_RX_LOS_EN=>"0b1",CH1_LDR_RX2CORE_SEL=>"0b0", + CH1_LDR_CORE2TX_SEL=>"0b0",D_TX_MAX_RATE=>"1.25",CH1_CDR_MAX_RATE=>"1.25", + CH1_TXAMPLITUDE=>"0d800",CH1_TXDEPRE=>"DISABLED",CH1_TXDEPOST=>"DISABLED", + CH1_PROTOCOL=>"G8B10B",D_ISETLOS=>"0d0",D_SETIRPOLY_AUX=>"0b00",D_SETICONST_AUX=>"0b00", + D_SETIRPOLY_CH=>"0b00",D_SETICONST_CH=>"0b00",D_REQ_ISET=>"0b000", + D_PD_ISET=>"0b00",D_DCO_CALIB_TIME_SEL=>"0b00",CH1_CDR_CNT4SEL=>"0b00", + CH1_CDR_CNT8SEL=>"0b00",CH1_DCOATDCFG=>"0b00",CH1_DCOATDDLY=>"0b00", + CH1_DCOBYPSATD=>"0b1",CH1_DCOCALDIV=>"0b001",CH1_DCOCTLGI=>"0b010", + CH1_DCODISBDAVOID=>"0b0",CH1_DCOFLTDAC=>"0b01",CH1_DCOFTNRG=>"0b110", + CH1_DCOIOSTUNE=>"0b000",CH1_DCOITUNE=>"0b00",CH1_DCOITUNE4LSB=>"0b111", + CH1_DCOIUPDNX2=>"0b1",CH1_DCONUOFLSB=>"0b101",CH1_DCOSCALEI=>"0b00", + CH1_DCOSTARTVAL=>"0b000",CH1_DCOSTEP=>"0b00",CH1_BAND_THRESHOLD=>"0d0", + CH1_AUTO_FACQ_EN=>"0b1",CH1_AUTO_CALIB_EN=>"0b1",CH1_CALIB_CK_MODE=>"0b0", + CH1_REG_BAND_OFFSET=>"0d0",CH1_REG_BAND_SEL=>"0d0",CH1_REG_IDAC_SEL=>"0d0", + CH1_REG_IDAC_EN=>"0b0",D_CMUSETISCL4VCO=>"0b000",D_CMUSETI4VCO=>"0b00", + D_CMUSETINITVCT=>"0b00",D_CMUSETZGM=>"0b000",D_CMUSETP2AGM=>"0b000", + D_CMUSETP1GM=>"0b000",D_CMUSETI4CPZ=>"0d0",D_CMUSETI4CPP=>"0d0",D_CMUSETICP4Z=>"0b101", + D_CMUSETICP4P=>"0b11",D_CMUSETBIASI=>"0b00",D_SETPLLRC=>"0d1",CH1_RX_RATE_SEL=>"0d10", + D_REFCK_MODE=>"0b001",D_TX_VCO_CK_DIV=>"0b010",D_PLL_LOL_SET=>"0b01", + D_RG_EN=>"0b0",D_RG_SET=>"0b00") + port map (CH0_HDINP=>n106,CH1_HDINP=>hdinp,CH0_HDINN=>n106,CH1_HDINN=>hdinn, + D_TXBIT_CLKP_FROM_ND=>n47,D_TXBIT_CLKN_FROM_ND=>n47,D_SYNC_ND=>n47,D_TXPLL_LOL_FROM_ND=>n47, + CH0_RX_REFCLK=>n106,CH1_RX_REFCLK=>rxrefclk,CH0_FF_RXI_CLK=>n105,CH1_FF_RXI_CLK=>rx_pclk_c, + CH0_FF_TXI_CLK=>n105,CH1_FF_TXI_CLK=>tx_pclk_c,CH0_FF_EBRD_CLK=>n105, + CH1_FF_EBRD_CLK=>n48,CH0_FF_TX_D_0=>n106,CH1_FF_TX_D_0=>txdata(0),CH0_FF_TX_D_1=>n106, + CH1_FF_TX_D_1=>txdata(1),CH0_FF_TX_D_2=>n106,CH1_FF_TX_D_2=>txdata(2), + CH0_FF_TX_D_3=>n106,CH1_FF_TX_D_3=>txdata(3),CH0_FF_TX_D_4=>n106,CH1_FF_TX_D_4=>txdata(4), + CH0_FF_TX_D_5=>n106,CH1_FF_TX_D_5=>txdata(5),CH0_FF_TX_D_6=>n106,CH1_FF_TX_D_6=>txdata(6), + CH0_FF_TX_D_7=>n106,CH1_FF_TX_D_7=>txdata(7),CH0_FF_TX_D_8=>n106,CH1_FF_TX_D_8=>tx_k(0), + CH0_FF_TX_D_9=>n106,CH1_FF_TX_D_9=>tx_force_disp(0),CH0_FF_TX_D_10=>n106, + CH1_FF_TX_D_10=>tx_disp_sel(0),CH0_FF_TX_D_11=>n106,CH1_FF_TX_D_11=>n47, + CH0_FF_TX_D_12=>n106,CH1_FF_TX_D_12=>n106,CH0_FF_TX_D_13=>n106,CH1_FF_TX_D_13=>n106, + CH0_FF_TX_D_14=>n106,CH1_FF_TX_D_14=>n106,CH0_FF_TX_D_15=>n106,CH1_FF_TX_D_15=>n106, + CH0_FF_TX_D_16=>n106,CH1_FF_TX_D_16=>n106,CH0_FF_TX_D_17=>n106,CH1_FF_TX_D_17=>n106, + CH0_FF_TX_D_18=>n106,CH1_FF_TX_D_18=>n106,CH0_FF_TX_D_19=>n106,CH1_FF_TX_D_19=>n106, + CH0_FF_TX_D_20=>n106,CH1_FF_TX_D_20=>n106,CH0_FF_TX_D_21=>n106,CH1_FF_TX_D_21=>n106, + CH0_FF_TX_D_22=>n106,CH1_FF_TX_D_22=>n106,CH0_FF_TX_D_23=>n106,CH1_FF_TX_D_23=>n47, + CH0_FFC_EI_EN=>n106,CH1_FFC_EI_EN=>tx_idle_c,CH0_FFC_PCIE_DET_EN=>n106, + CH1_FFC_PCIE_DET_EN=>n47,CH0_FFC_PCIE_CT=>n106,CH1_FFC_PCIE_CT=>n47,CH0_FFC_SB_INV_RX=>n106, + CH1_FFC_SB_INV_RX=>n106,CH0_FFC_ENABLE_CGALIGN=>n106,CH1_FFC_ENABLE_CGALIGN=>n106, + CH0_FFC_SIGNAL_DETECT=>n106,CH1_FFC_SIGNAL_DETECT=>signal_detect_c,CH0_FFC_FB_LOOPBACK=>n106, + CH1_FFC_FB_LOOPBACK=>n47,CH0_FFC_SB_PFIFO_LP=>n106,CH1_FFC_SB_PFIFO_LP=>n47, + CH0_FFC_PFIFO_CLR=>n106,CH1_FFC_PFIFO_CLR=>n47,CH0_FFC_RATE_MODE_RX=>n106, + CH1_FFC_RATE_MODE_RX=>n106,CH0_FFC_RATE_MODE_TX=>n106,CH1_FFC_RATE_MODE_TX=>n106, + CH0_FFC_DIV11_MODE_RX=>n106,CH1_FFC_DIV11_MODE_RX=>n47,CH0_FFC_DIV11_MODE_TX=>n106, + CH1_FFC_DIV11_MODE_TX=>n47,CH0_FFC_RX_GEAR_MODE=>n106,CH1_FFC_RX_GEAR_MODE=>n47, + CH0_FFC_TX_GEAR_MODE=>n106,CH1_FFC_TX_GEAR_MODE=>n47,CH0_FFC_LDR_CORE2TX_EN=>n106, + CH1_FFC_LDR_CORE2TX_EN=>n106,CH0_FFC_LANE_TX_RST=>n106,CH1_FFC_LANE_TX_RST=>rsl_tx_pcs_rst_c, + CH0_FFC_LANE_RX_RST=>n106,CH1_FFC_LANE_RX_RST=>rsl_rx_pcs_rst_c,CH0_FFC_RRST=>n106, + CH1_FFC_RRST=>rsl_rx_serdes_rst_c,CH0_FFC_TXPWDNB=>n106,CH1_FFC_TXPWDNB=>tx_pwrup_c, + CH0_FFC_RXPWDNB=>n106,CH1_FFC_RXPWDNB=>rx_pwrup_c,CH0_LDR_CORE2TX=>n106, + CH1_LDR_CORE2TX=>n106,D_SCIWDATA0=>sci_wrdata(0),D_SCIWDATA1=>sci_wrdata(1), + D_SCIWDATA2=>sci_wrdata(2),D_SCIWDATA3=>sci_wrdata(3),D_SCIWDATA4=>sci_wrdata(4), + D_SCIWDATA5=>sci_wrdata(5),D_SCIWDATA6=>sci_wrdata(6),D_SCIWDATA7=>sci_wrdata(7), + D_SCIADDR0=>sci_addr(0),D_SCIADDR1=>sci_addr(1),D_SCIADDR2=>sci_addr(2), + D_SCIADDR3=>sci_addr(3),D_SCIADDR4=>sci_addr(4),D_SCIADDR5=>sci_addr(5), + D_SCIENAUX=>sci_en_dual,D_SCISELAUX=>sci_sel_dual,CH0_SCIEN=>n106,CH1_SCIEN=>sci_en, + CH0_SCISEL=>n106,CH1_SCISEL=>sci_sel,D_SCIRD=>sci_rd,D_SCIWSTN=>sci_wrn, + D_CYAWSTN=>cyawstn,D_FFC_SYNC_TOGGLE=>n106,D_FFC_DUAL_RST=>rsl_rst_dual_c, + D_FFC_MACRO_RST=>rsl_serdes_rst_dual_c,D_FFC_MACROPDB=>serdes_pdb,D_FFC_TRST=>rsl_tx_serdes_rst_c, + CH0_FFC_CDR_EN_BITSLIP=>n106,CH1_FFC_CDR_EN_BITSLIP=>n47,D_SCAN_ENABLE=>n47, + D_SCAN_IN_0=>n47,D_SCAN_IN_1=>n47,D_SCAN_IN_2=>n47,D_SCAN_IN_3=>n47, + D_SCAN_IN_4=>n47,D_SCAN_IN_5=>n47,D_SCAN_IN_6=>n47,D_SCAN_IN_7=>n47, + D_SCAN_MODE=>n47,D_SCAN_RESET=>n47,D_CIN0=>n47,D_CIN1=>n47,D_CIN2=>n47, + D_CIN3=>n47,D_CIN4=>n47,D_CIN5=>n47,D_CIN6=>n47,D_CIN7=>n47,D_CIN8=>n47, + D_CIN9=>n47,D_CIN10=>n47,D_CIN11=>n47,CH0_HDOUTP=>n50,CH1_HDOUTP=>hdoutp, + CH0_HDOUTN=>n51,CH1_HDOUTN=>hdoutn,D_TXBIT_CLKP_TO_ND=>n1,D_TXBIT_CLKN_TO_ND=>n2, + D_SYNC_PULSE2ND=>n3,D_TXPLL_LOL_TO_ND=>n4,CH0_FF_RX_F_CLK=>n52,CH1_FF_RX_F_CLK=>n5, + CH0_FF_RX_H_CLK=>n53,CH1_FF_RX_H_CLK=>n6,CH0_FF_TX_F_CLK=>n54,CH1_FF_TX_F_CLK=>n7, + CH0_FF_TX_H_CLK=>n55,CH1_FF_TX_H_CLK=>n8,CH0_FF_RX_PCLK=>n56,CH1_FF_RX_PCLK=>rx_pclk_c, + CH0_FF_TX_PCLK=>n57,CH1_FF_TX_PCLK=>tx_pclk_c,CH0_FF_RX_D_0=>n58,CH1_FF_RX_D_0=>rxdata(0), + CH0_FF_RX_D_1=>n59,CH1_FF_RX_D_1=>rxdata(1),CH0_FF_RX_D_2=>n60,CH1_FF_RX_D_2=>rxdata(2), + CH0_FF_RX_D_3=>n61,CH1_FF_RX_D_3=>rxdata(3),CH0_FF_RX_D_4=>n62,CH1_FF_RX_D_4=>rxdata(4), + CH0_FF_RX_D_5=>n63,CH1_FF_RX_D_5=>rxdata(5),CH0_FF_RX_D_6=>n64,CH1_FF_RX_D_6=>rxdata(6), + CH0_FF_RX_D_7=>n65,CH1_FF_RX_D_7=>rxdata(7),CH0_FF_RX_D_8=>n66,CH1_FF_RX_D_8=>rx_k(0), + CH0_FF_RX_D_9=>n67,CH1_FF_RX_D_9=>rx_disp_err(0),CH0_FF_RX_D_10=>n68, + CH1_FF_RX_D_10=>rx_cv_err(0),CH0_FF_RX_D_11=>n69,CH1_FF_RX_D_11=>n9,CH0_FF_RX_D_12=>n70, + CH1_FF_RX_D_12=>n71,CH0_FF_RX_D_13=>n72,CH1_FF_RX_D_13=>n73,CH0_FF_RX_D_14=>n74, + CH1_FF_RX_D_14=>n75,CH0_FF_RX_D_15=>n76,CH1_FF_RX_D_15=>n77,CH0_FF_RX_D_16=>n78, + CH1_FF_RX_D_16=>n79,CH0_FF_RX_D_17=>n80,CH1_FF_RX_D_17=>n81,CH0_FF_RX_D_18=>n82, + CH1_FF_RX_D_18=>n83,CH0_FF_RX_D_19=>n84,CH1_FF_RX_D_19=>n85,CH0_FF_RX_D_20=>n86, + CH1_FF_RX_D_20=>n87,CH0_FF_RX_D_21=>n88,CH1_FF_RX_D_21=>n89,CH0_FF_RX_D_22=>n90, + CH1_FF_RX_D_22=>n91,CH0_FF_RX_D_23=>n92,CH1_FF_RX_D_23=>n10,CH0_FFS_PCIE_DONE=>n93, + CH1_FFS_PCIE_DONE=>n11,CH0_FFS_PCIE_CON=>n94,CH1_FFS_PCIE_CON=>n12,CH0_FFS_RLOS=>n95, + CH1_FFS_RLOS=>rx_los_low_s_c,CH0_FFS_LS_SYNC_STATUS=>n96,CH1_FFS_LS_SYNC_STATUS=>lsm_status_s, + CH0_FFS_CC_UNDERRUN=>n97,CH1_FFS_CC_UNDERRUN=>n13,CH0_FFS_CC_OVERRUN=>n98, + CH1_FFS_CC_OVERRUN=>n14,CH0_FFS_RXFBFIFO_ERROR=>n99,CH1_FFS_RXFBFIFO_ERROR=>n15, + CH0_FFS_TXFBFIFO_ERROR=>n100,CH1_FFS_TXFBFIFO_ERROR=>n16,CH0_FFS_RLOL=>n101, + CH1_FFS_RLOL=>rx_cdr_lol_s_c,CH0_FFS_SKP_ADDED=>n102,CH1_FFS_SKP_ADDED=>n17, + CH0_FFS_SKP_DELETED=>n103,CH1_FFS_SKP_DELETED=>n18,CH0_LDR_RX2CORE=>n104, + CH1_LDR_RX2CORE=>n115,D_SCIRDATA0=>sci_rddata(0),D_SCIRDATA1=>sci_rddata(1), + D_SCIRDATA2=>sci_rddata(2),D_SCIRDATA3=>sci_rddata(3),D_SCIRDATA4=>sci_rddata(4), + D_SCIRDATA5=>sci_rddata(5),D_SCIRDATA6=>sci_rddata(6),D_SCIRDATA7=>sci_rddata(7), + D_SCIINT=>sci_int,D_SCAN_OUT_0=>n19,D_SCAN_OUT_1=>n20,D_SCAN_OUT_2=>n21, + D_SCAN_OUT_3=>n22,D_SCAN_OUT_4=>n23,D_SCAN_OUT_5=>n24,D_SCAN_OUT_6=>n25, + D_SCAN_OUT_7=>n26,D_COUT0=>n27,D_COUT1=>n28,D_COUT2=>n29,D_COUT3=>n30, + D_COUT4=>n31,D_COUT5=>n32,D_COUT6=>n33,D_COUT7=>n34,D_COUT8=>n35,D_COUT9=>n36, + D_COUT10=>n37,D_COUT11=>n38,D_COUT12=>n39,D_COUT13=>n40,D_COUT14=>n41, + D_COUT15=>n42,D_COUT16=>n43,D_COUT17=>n44,D_COUT18=>n45,D_COUT19=>n46, + D_REFCLKI=>pll_refclki,D_FFS_PLOL=>n49); + n48 <= '1' ; + n47 <= '0' ; + n1 <= 'Z' ; + n2 <= 'Z' ; + n3 <= 'Z' ; + n4 <= 'Z' ; + n5 <= 'Z' ; + n6 <= 'Z' ; + n7 <= 'Z' ; + n8 <= 'Z' ; + n9 <= 'Z' ; + n10 <= 'Z' ; + n11 <= 'Z' ; + n12 <= 'Z' ; + n13 <= 'Z' ; + n14 <= 'Z' ; + n15 <= 'Z' ; + n16 <= 'Z' ; + n17 <= 'Z' ; + n18 <= 'Z' ; + n19 <= 'Z' ; + n20 <= 'Z' ; + n21 <= 'Z' ; + n22 <= 'Z' ; + n23 <= 'Z' ; + n24 <= 'Z' ; + n25 <= 'Z' ; + n26 <= 'Z' ; + n27 <= 'Z' ; + n28 <= 'Z' ; + n29 <= 'Z' ; + n30 <= 'Z' ; + n31 <= 'Z' ; + n32 <= 'Z' ; + n33 <= 'Z' ; + n34 <= 'Z' ; + n35 <= 'Z' ; + n36 <= 'Z' ; + n37 <= 'Z' ; + n38 <= 'Z' ; + n39 <= 'Z' ; + n40 <= 'Z' ; + n41 <= 'Z' ; + n42 <= 'Z' ; + n43 <= 'Z' ; + n44 <= 'Z' ; + n45 <= 'Z' ; + n46 <= 'Z' ; + n49 <= 'Z' ; + n106 <= '0' ; + n105 <= '1' ; + n50 <= 'Z' ; + n51 <= 'Z' ; + n52 <= 'Z' ; + n53 <= 'Z' ; + n54 <= 'Z' ; + n55 <= 'Z' ; + n56 <= 'Z' ; + n57 <= 'Z' ; + n58 <= 'Z' ; + n59 <= 'Z' ; + n60 <= 'Z' ; + n61 <= 'Z' ; + n62 <= 'Z' ; + n63 <= 'Z' ; + n64 <= 'Z' ; + n65 <= 'Z' ; + n66 <= 'Z' ; + n67 <= 'Z' ; + n68 <= 'Z' ; + n69 <= 'Z' ; + n70 <= 'Z' ; + n71 <= 'Z' ; + n72 <= 'Z' ; + n73 <= 'Z' ; + n74 <= 'Z' ; + n75 <= 'Z' ; + n76 <= 'Z' ; + n77 <= 'Z' ; + n78 <= 'Z' ; + n79 <= 'Z' ; + n80 <= 'Z' ; + n81 <= 'Z' ; + n82 <= 'Z' ; + n83 <= 'Z' ; + n84 <= 'Z' ; + n85 <= 'Z' ; + n86 <= 'Z' ; + n87 <= 'Z' ; + n88 <= 'Z' ; + n89 <= 'Z' ; + n90 <= 'Z' ; + n91 <= 'Z' ; + n92 <= 'Z' ; + n93 <= 'Z' ; + n94 <= 'Z' ; + n95 <= 'Z' ; + n96 <= 'Z' ; + n97 <= 'Z' ; + n98 <= 'Z' ; + n99 <= 'Z' ; + n100 <= 'Z' ; + n101 <= 'Z' ; + n102 <= 'Z' ; + n103 <= 'Z' ; + n104 <= 'Z' ; + n115 <= 'Z' ; + rsl_inst: component serdes_sync_1rsl_core port map (rui_rst=>rsl_rst,rui_serdes_rst_dual_c=>serdes_rst_dual_c, + rui_rst_dual_c=>rst_dual_c,rui_rsl_disable=>rsl_disable,rui_tx_ref_clk=>pll_refclki, + rui_tx_serdes_rst_c=>tx_serdes_rst_c,rui_tx_pcs_rst_c(3)=>n125, + rui_tx_pcs_rst_c(2)=>n125,rui_tx_pcs_rst_c(1)=>n125,rui_tx_pcs_rst_c(0)=>tx_pcs_rst_c, + rdi_pll_lol=>pll_lol_c,rui_rx_ref_clk=>rxrefclk,rui_rx_serdes_rst_c(3)=>n125, + rui_rx_serdes_rst_c(2)=>n125,rui_rx_serdes_rst_c(1)=>n125,rui_rx_serdes_rst_c(0)=>rx_serdes_rst_c, + rui_rx_pcs_rst_c(3)=>n125,rui_rx_pcs_rst_c(2)=>n125,rui_rx_pcs_rst_c(1)=>n125, + rui_rx_pcs_rst_c(0)=>rx_pcs_rst_c,rdi_rx_los_low_s(3)=>n125,rdi_rx_los_low_s(2)=>n125, + rdi_rx_los_low_s(1)=>n125,rdi_rx_los_low_s(0)=>rx_los_low_s_c, + rdi_rx_cdr_lol_s(3)=>n125,rdi_rx_cdr_lol_s(2)=>n125,rdi_rx_cdr_lol_s(1)=>n125, + rdi_rx_cdr_lol_s(0)=>rx_cdr_lol_s_c,rdo_serdes_rst_dual_c=>rsl_serdes_rst_dual_c, + rdo_rst_dual_c=>rsl_rst_dual_c,ruo_tx_rdy=>rsl_tx_rdy,rdo_tx_serdes_rst_c=>rsl_tx_serdes_rst_c, + rdo_tx_pcs_rst_c(3)=>n116,rdo_tx_pcs_rst_c(2)=>n117,rdo_tx_pcs_rst_c(1)=>n118, + rdo_tx_pcs_rst_c(0)=>rsl_tx_pcs_rst_c,ruo_rx_rdy=>rsl_rx_rdy,rdo_rx_serdes_rst_c(3)=>n119, + rdo_rx_serdes_rst_c(2)=>n120,rdo_rx_serdes_rst_c(1)=>n121,rdo_rx_serdes_rst_c(0)=>rsl_rx_serdes_rst_c, + rdo_rx_pcs_rst_c(3)=>n122,rdo_rx_pcs_rst_c(2)=>n123,rdo_rx_pcs_rst_c(1)=>\_Z\, + rdo_rx_pcs_rst_c(0)=>rsl_rx_pcs_rst_c); + n114 <= '1' ; + n113 <= '0' ; + n125 <= '0' ; + n124 <= '1' ; + n116 <= 'Z' ; + n117 <= 'Z' ; + n118 <= 'Z' ; + n119 <= 'Z' ; + n120 <= 'Z' ; + n121 <= 'Z' ; + n122 <= 'Z' ; + n123 <= 'Z' ; + \_Z\ <= 'Z' ; + sll_inst: component serdes_sync_1sll_core port map (sli_rst=>sli_rst,sli_refclk=>pll_refclki, + sli_pclk=>tx_pclk_c,sli_div2_rate=>gnd,sli_div11_rate=>gnd,sli_gear_mode=>gnd, + sli_cpri_mode(2)=>gnd,sli_cpri_mode(1)=>gnd,sli_cpri_mode(0)=>gnd, + sli_pcie_mode=>gnd,slo_plol=>pll_lol_c); + n127 <= '1' ; + n126 <= '0' ; + gnd <= '0' ; + pwr <= '1' ; + +end architecture v1; + diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_ngd.asd b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_ngd.asd new file mode 100644 index 0000000..c265c78 --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_ngd.asd @@ -0,0 +1 @@ +[ActiveSupport NGD] diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v new file mode 100644 index 0000000..ec34b40 --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v @@ -0,0 +1,2003 @@ + + +// =========================================================================== +// >>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< +// --------------------------------------------------------------------------- +// Copyright (c) 2016 by Lattice Semiconductor Corporation +// ALL RIGHTS RESERVED +// ------------------------------------------------------------------ +// +// Permission: +// +// Lattice SG Pte. Ltd. grants permission to use this code +// pursuant to the terms of the Lattice Reference Design License Agreement. +// +// +// Disclaimer: +// +// This VHDL or Verilog source code is intended as a design reference +// which illustrates how these types of functions can be implemented. +// It is the user's responsibility to verify their design for +// consistency and functionality through the use of formal +// verification methods. Lattice provides no warranty +// regarding the use or functionality of this code. +// +// --------------------------------------------------------------------------- +// +// Lattice SG Pte. Ltd. +// 101 Thomson Road, United Square #07-02 +// Singapore 307591 +// +// +// TEL: 1-800-Lattice (USA and Canada) +// +65-6631-2000 (Singapore) +// +1-503-268-8001 (other locations) +// +// web: http://www.latticesemi.com/ +// email: techsupport@latticesemi.com +// +// --------------------------------------------------------------------------- +// +// ============================================================================= +// FILE DETAILS +// Project : RSL- Reset Sequence Logic +// File : rsl_core.v +// Title : Top-level file for RSL +// Dependencies : 1. +// : 2. +// Description : +// ============================================================================= +// REVISION HISTORY +// Version : 1.0 +// Author(s) : BM +// Mod. Date : October 28, 2013 +// Changes Made : Initial Creation +// ----------------------------------------------------------------------------- +// Version : 1.1 +// Author(s) : BM +// Mod. Date : November 06, 2013 +// Changes Made : Tx/Rx separation, ready port code exclusion +// ----------------------------------------------------------------------------- +// Version : 1.2 +// Author(s) : BM +// Mod. Date : June 13, 2014 +// Changes Made : Updated Rx PCS reset method +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// Version : 1.3 +// Author(s) : UA +// Mod. Date : Dec 19, 2014 +// Changes Made : Added new parameter fro PCIE +// ----------------------------------------------------------------------------- +// Version : 1.31 +// Author(s) : BM/UM +// Mod. Date : Feb 23, 2016 +// Changes Made : Behavior of rx_rdy output modified. The output rx_rdy +// and the rx_rdy wait counter are reset to zero on +// LOL or LOS. Reverted back the counter value change for PCIE. +// ----------------------------------------------------------------------------- +// Version : 1.4 +// Author(s) : EB +// Mod. Date: : March 21, 2017 +// Changes Made : +// ----------------------------------------------------------------------------- +// Version : 1.5 +// Author(s) : ES +// Mod. Date: : May 8, 2017 +// Changes Made : Implemented common RSL behaviour as proposed by BM. +// ============================================================================= + +`timescale 1ns/10ps + +module serdes_sync_1rsl_core ( + // ------------ Inputs + // Common + rui_rst, // Active high reset for the RSL module + rui_serdes_rst_dual_c, // SERDES macro reset user command + rui_rst_dual_c, // PCS dual reset user command + rui_rsl_disable, // Active high signal that disables all reset outputs of RSL + // Tx + rui_tx_ref_clk, // Tx reference clock + rui_tx_serdes_rst_c, // Tx SERDES reset user command + rui_tx_pcs_rst_c, // Tx lane reset user command + rdi_pll_lol, // Tx PLL Loss of Lock status input from the SERDES + // Rx + rui_rx_ref_clk, // Rx reference clock + rui_rx_serdes_rst_c, // SERDES Receive channel reset user command + rui_rx_pcs_rst_c, // Rx lane reset user command + rdi_rx_los_low_s, // Receive loss of signal status input from SERDES + rdi_rx_cdr_lol_s, // Receive CDR loss of lock status input from SERDES + + // ------------ Outputs + // Common + rdo_serdes_rst_dual_c, // SERDES macro reset command output + rdo_rst_dual_c, // PCS dual reset command output + // Tx + ruo_tx_rdy, // Tx lane ready status output + rdo_tx_serdes_rst_c, // SERDES Tx reset command output + rdo_tx_pcs_rst_c, // PCS Tx lane reset command output + // Rx + ruo_rx_rdy, // Rx lane ready status output + rdo_rx_serdes_rst_c, // SERDES Rx channel reset command output + rdo_rx_pcs_rst_c // PCS Rx lane reset command output + ); + +// ------------ Module parameters +`ifdef NUM_CHANNELS + parameter pnum_channels = `NUM_CHANNELS; // 1,2,4 +`else + parameter pnum_channels = 1; +`endif + +`ifdef PCIE + parameter pprotocol = "PCIE"; +`else + parameter pprotocol = ""; +`endif + +`ifdef RX_ONLY + parameter pserdes_mode = "RX ONLY"; +`else + `ifdef TX_ONLY + parameter pserdes_mode = "TX ONLY"; + `else + parameter pserdes_mode = "RX AND TX"; + `endif +`endif + +`ifdef PORT_TX_RDY + parameter pport_tx_rdy = "ENABLED"; +`else + parameter pport_tx_rdy = "DISABLED"; +`endif + +`ifdef WAIT_TX_RDY + parameter pwait_tx_rdy = `WAIT_TX_RDY; +`else + parameter pwait_tx_rdy = 3000; +`endif + +`ifdef PORT_RX_RDY + parameter pport_rx_rdy = "ENABLED"; +`else + parameter pport_rx_rdy = "DISABLED"; +`endif + +`ifdef WAIT_RX_RDY + parameter pwait_rx_rdy = `WAIT_RX_RDY; +`else + parameter pwait_rx_rdy = 3000; +`endif + +// ------------ Local parameters + localparam wa_num_cycles = 1024; + localparam dac_num_cycles = 3; + localparam lreset_pwidth = 3; // reset pulse width-1, default=4-1=3 + localparam lwait_b4_trst = 781250; // 5ms wait with worst-case Fmax=156 MHz + localparam lwait_b4_trst_s = 781; // for simulation + localparam lplol_cnt_width = 20; // width for lwait_b4_trst + localparam lwait_after_plol0 = 4; + localparam lwait_b4_rrst = 180224; // total calibration time + localparam lrrst_wait_width = 20; + localparam lwait_after_rrst = 800000; // For CPRI- unused + localparam lwait_b4_rrst_s = 460; // wait cycles provided by design team + localparam lrlol_cnt_width = 19; // width for lwait_b4_rrst + localparam lwait_after_lols = (16384 * dac_num_cycles) + wa_num_cycles; // 16384 cycles * dac_num_cycles + 1024 cycles + localparam lwait_after_lols_s = 150; // wait cycles provided by design team + localparam llols_cnt_width = 18; // lols count width + localparam lrdb_max = 15; // maximum debounce count + localparam ltxr_wait_width = 12; // width of tx ready wait counter + localparam lrxr_wait_width = 12; // width of tx ready wait counter + +// ------------ input ports + input rui_rst; + input rui_serdes_rst_dual_c; + input rui_rst_dual_c; + input rui_rsl_disable; + + input rui_tx_ref_clk; + input rui_tx_serdes_rst_c; + input [3:0] rui_tx_pcs_rst_c; + input rdi_pll_lol; + + input rui_rx_ref_clk; + input [3:0] rui_rx_serdes_rst_c; + input [3:0] rui_rx_pcs_rst_c; + input [3:0] rdi_rx_los_low_s; + input [3:0] rdi_rx_cdr_lol_s; + +// ------------ output ports + output rdo_serdes_rst_dual_c; + output rdo_rst_dual_c; + + output ruo_tx_rdy; + output rdo_tx_serdes_rst_c; + output [3:0] rdo_tx_pcs_rst_c; + + output ruo_rx_rdy; + output [3:0] rdo_rx_serdes_rst_c; + output [3:0] rdo_rx_pcs_rst_c; + +// ------------ Internal registers and wires + // inputs + wire rui_rst; + wire rui_serdes_rst_dual_c; + wire rui_rst_dual_c; + wire rui_rsl_disable; + wire rui_tx_ref_clk; + wire rui_tx_serdes_rst_c; + wire [3:0] rui_tx_pcs_rst_c; + wire rdi_pll_lol; + wire rui_rx_ref_clk; + wire [3:0] rui_rx_serdes_rst_c; + wire [3:0] rui_rx_pcs_rst_c; + wire [3:0] rdi_rx_los_low_s; + wire [3:0] rdi_rx_cdr_lol_s; + + // outputs + wire rdo_serdes_rst_dual_c; + wire rdo_rst_dual_c; + wire ruo_tx_rdy; + wire rdo_tx_serdes_rst_c; + wire [3:0] rdo_tx_pcs_rst_c; + wire ruo_rx_rdy; + wire [3:0] rdo_rx_serdes_rst_c; + wire [3:0] rdo_rx_pcs_rst_c; + + // internal signals + // common + wire rsl_enable; + wire [lplol_cnt_width-1:0] wait_b4_trst; + wire [lrlol_cnt_width-1:0] wait_b4_rrst; + wire [llols_cnt_width-1:0] wait_after_lols; + reg pll_lol_p1; + reg pll_lol_p2; + reg pll_lol_p3; + // ------------ Tx + // rdo_tx_serdes_rst_c + reg [lplol_cnt_width-1:0] plol_cnt; + wire plol_cnt_tc; + + reg [2:0] txs_cnt; + reg txs_rst; + wire txs_cnt_tc; + // rdo_tx_pcs_rst_c + wire plol_fedge; + wire plol_redge; + reg waita_plol0; + reg [2:0] plol0_cnt; + wire plol0_cnt_tc; + reg [2:0] txp_cnt; + reg txp_rst; + wire txp_cnt_tc; + // ruo_tx_rdy + wire dual_or_serd_rst; + wire tx_any_pcs_rst; + wire tx_any_rst; + reg txsr_appd /* synthesis syn_keep=1 */; + reg txdpr_appd; + reg [pnum_channels-1:0] txpr_appd; + reg txr_wt_en; + reg [ltxr_wait_width-1:0] txr_wt_cnt; + wire txr_wt_tc; + reg ruo_tx_rdyr; + + // ------------ Rx + wire comb_rlos; + wire comb_rlol; + //wire rlols; + wire rx_all_well; + + //reg rlols_p1; + //reg rlols_p2; + //reg rlols_p3; + + reg rlol_p1; + reg rlol_p2; + reg rlol_p3; + reg rlos_p1; + reg rlos_p2; + reg rlos_p3; + + //reg [3:0] rdb_cnt; + //wire rdb_cnt_max; + //wire rdb_cnt_zero; + //reg rlols_db; + //reg rlols_db_p1; + + reg [3:0] rlol_db_cnt; + wire rlol_db_cnt_max; + wire rlol_db_cnt_zero; + reg rlol_db; + reg rlol_db_p1; + + reg [3:0] rlos_db_cnt; + wire rlos_db_cnt_max; + wire rlos_db_cnt_zero; + reg rlos_db; + reg rlos_db_p1; + + // rdo_rx_serdes_rst_c + reg [lrlol_cnt_width-1:0] rlol1_cnt; + wire rlol1_cnt_tc; + reg [2:0] rxs_cnt; + reg rxs_rst; + wire rxs_cnt_tc; + reg [lrrst_wait_width-1:0] rrst_cnt; + wire rrst_cnt_tc; + reg rrst_wait; + // rdo_rx_pcs_rst_c + //wire rlols_fedge; + //wire rlols_redge; + wire rlol_fedge; + wire rlol_redge; + wire rlos_fedge; + wire rlos_redge; + + reg wait_calib; + reg waita_rlols0; + reg [llols_cnt_width-1:0] rlols0_cnt; + wire rlols0_cnt_tc; + reg [2:0] rxp_cnt; + reg rxp_rst; + wire rxp_cnt_tc; + + wire rx_any_serd_rst; + reg [llols_cnt_width-1:0] rlolsz_cnt; + wire rlolsz_cnt_tc; + reg [2:0] rxp_cnt2; + reg rxp_rst2; + wire rxp_cnt2_tc; + reg [15:0] data_loop_b_cnt; + reg data_loop_b; + wire data_loop_b_tc; + + // ruo_rx_rdy + reg [pnum_channels-1:0] rxsr_appd; + reg [pnum_channels-1:0] rxpr_appd; + reg rxsdr_appd /* synthesis syn_keep=1 */; + reg rxdpr_appd; + wire rxsdr_or_sr_appd; + wire dual_or_rserd_rst; + wire rx_any_pcs_rst; + wire rx_any_rst; + reg rxr_wt_en; + reg [lrxr_wait_width-1:0] rxr_wt_cnt; + wire rxr_wt_tc; + reg ruo_rx_rdyr; + +// ================================================================== +// Start of code +// ================================================================== + assign rsl_enable = ~rui_rsl_disable; + +// ------------ rdo_serdes_rst_dual_c + assign rdo_serdes_rst_dual_c = (rui_rst&rsl_enable) | rui_serdes_rst_dual_c; + +// ------------ rdo_rst_dual_c + assign rdo_rst_dual_c = rui_rst_dual_c; + +// ------------ Setting counter values for RSL_SIM_MODE + `ifdef RSL_SIM_MODE + assign wait_b4_trst = lwait_b4_trst_s; + assign wait_b4_rrst = lwait_b4_rrst_s; + assign wait_after_lols = lwait_after_lols_s; + `else + assign wait_b4_trst = lwait_b4_trst; + assign wait_b4_rrst = lwait_b4_rrst; + assign wait_after_lols = lwait_after_lols; + `endif + +// ================================================================== +// Tx +// ================================================================== + generate + if((pserdes_mode=="RX AND TX")||(pserdes_mode=="TX ONLY")) begin + +// ------------ Synchronizing pll_lol to the tx clock + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) begin + pll_lol_p1 <= 1'd0; + pll_lol_p2 <= 1'd0; + pll_lol_p3 <= 1'd0; + end + else begin + pll_lol_p1 <= rdi_pll_lol; + pll_lol_p2 <= pll_lol_p1; + pll_lol_p3 <= pll_lol_p2; + end + end + +// ------------ rdo_tx_serdes_rst_c + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) + plol_cnt <= 'd0; + else if((pll_lol_p2==0)||(plol_cnt_tc==1)||(rdo_tx_serdes_rst_c==1)) + plol_cnt <= 'd0; + else + plol_cnt <= plol_cnt+1; + end + assign plol_cnt_tc = (plol_cnt==wait_b4_trst)?1'b1:1'b0; + + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) begin + txs_cnt <= 'd0; // tx serdes reset pulse count + txs_rst <= 1'b0; // tx serdes reset + end + else if(plol_cnt_tc==1) + txs_rst <= 1'b1; + else if(txs_cnt_tc==1) begin + txs_cnt <= 'd0; + txs_rst <= 1'b0; + end + else if(txs_rst==1) + txs_cnt <= txs_cnt+1; + end + assign txs_cnt_tc = (txs_cnt==lreset_pwidth)?1'b1:1'b0; + + assign rdo_tx_serdes_rst_c = (rsl_enable&txs_rst)| rui_tx_serdes_rst_c; + +// ------------ rdo_tx_pcs_rst_c + assign plol_fedge = ~pll_lol_p2 & pll_lol_p3; + assign plol_redge = pll_lol_p2 & ~pll_lol_p3; + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) + waita_plol0 <= 1'd0; + else if(plol_fedge==1'b1) + waita_plol0 <= 1'b1; + else if((plol0_cnt_tc==1)||(plol_redge==1)) + waita_plol0 <= 1'd0; + end + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) + plol0_cnt <= 'd0; + else if((pll_lol_p2==1)||(plol0_cnt_tc==1)) + plol0_cnt <= 'd0; + else if(waita_plol0==1'b1) + plol0_cnt <= plol0_cnt+1; + end + assign plol0_cnt_tc = (plol0_cnt==lwait_after_plol0)?1'b1:1'b0; + + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) begin + txp_cnt <= 'd0; // tx serdes reset pulse count + txp_rst <= 1'b0; // tx serdes reset + end + else if(plol0_cnt_tc==1) + txp_rst <= 1'b1; + else if(txp_cnt_tc==1) begin + txp_cnt <= 'd0; + txp_rst <= 1'b0; + end + else if(txp_rst==1) + txp_cnt <= txp_cnt+1; + end + assign txp_cnt_tc = (txp_cnt==lreset_pwidth)?1'b1:1'b0; + + genvar i; + for(i=0;i>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< +// --------------------------------------------------------------------------- +// Copyright (c) 2015 by Lattice Semiconductor Corporation +// ALL RIGHTS RESERVED +// ------------------------------------------------------------------ +// +// Permission: +// +// Lattice SG Pte. Ltd. grants permission to use this code +// pursuant to the terms of the Lattice Reference Design License Agreement. +// +// +// Disclaimer: +// +// This VHDL or Verilog source code is intended as a design reference +// which illustrates how these types of functions can be implemented. +// It is the user's responsibility to verify their design for +// consistency and functionality through the use of formal +// verification methods. Lattice provides no warranty +// regarding the use or functionality of this code. +// +// --------------------------------------------------------------------------- +// +// Lattice SG Pte. Ltd. +// 101 Thomson Road, United Square #07-02 +// Singapore 307591 +// +// +// TEL: 1-800-Lattice (USA and Canada) +// +65-6631-2000 (Singapore) +// +1-503-268-8001 (other locations) +// +// web: http://www.latticesemi.com/ +// email: techsupport@latticesemi.com +// +// --------------------------------------------------------------------------- +// +// ============================================================================= +// FILE DETAILS +// Project : SLL - Soft Loss Of Lock(LOL) Logic +// File : sll_core.v +// Title : Top-level file for SLL +// Dependencies : 1. +// : 2. +// Description : +// ============================================================================= +// REVISION HISTORY +// Version : 1.0 +// Author(s) : AV +// Mod. Date : March 2, 2015 +// Changes Made : Initial Creation +// ============================================================================= +// REVISION HISTORY +// Version : 1.1 +// Author(s) : AV +// Mod. Date : June 8, 2015 +// Changes Made : Following updates were made +// : 1. Changed all the PLOL status logic and FSM to run +// : on sli_refclk. +// : 2. Added the HB logic for presence of tx_pclk +// : 3. Changed the lparam assignment scheme for +// : simulation purposes. +// ============================================================================= +// REVISION HISTORY +// Version : 1.2 +// Author(s) : AV +// Mod. Date : June 24, 2015 +// Changes Made : Updated the gearing logic for SDI dynamic rate change +// ============================================================================= +// REVISION HISTORY +// Version : 1.3 +// Author(s) : AV +// Mod. Date : July 14, 2015 +// Changes Made : Added the logic for dynamic rate change in CPRI +// ============================================================================= +// REVISION HISTORY +// Version : 1.4 +// Author(s) : AV +// Mod. Date : August 21, 2015 +// Changes Made : Added the logic for dynamic rate change of 5G CPRI & +// PCIe. +// ============================================================================= +// REVISION HISTORY +// Version : 1.5 +// Author(s) : ES/EB +// Mod. Date : March 21, 2017 +// Changes Made : 1. Added pdiff_sync signal to syncrhonize pcount_diff +// : to sli_refclk. +// : 2. Updated terminal count logic for PCIe 5G +// : 3. Modified checking of pcount_diff in SLL state +// : machine to cover actual count +// : (from 16-bits to 22-bits) +// ============================================================================= +// REVISION HISTORY +// Version : 1.6 +// Author(s) : ES +// Mod. Date : April 19, 2017 +// Changes Made : 1. Added registered lock and unlock signal from +// pdiff_sync to totally decouple pcount_diff from +// SLL state machine. +// : 2. Modified LPCLK_TC_4 to 1:1 clock ratio when CPRI +// is operating @ 4.9125Gbps data rate. +// ============================================================================= +`timescale 1ns/10ps + +module serdes_sync_1sll_core ( + //Reset and Clock inputs + sli_rst, //Active high asynchronous reset input + sli_refclk, //Refclk input to the Tx PLL + sli_pclk, //Tx pclk output from the PCS + + //Control inputs + sli_div2_rate, //Divide by 2 control; 0 - Full rate; 1 - Half rate + sli_div11_rate, //Divide by 11 control; 0 - Full rate; 1 - Div by 11 + sli_gear_mode, //Gear mode control for PCS; 0 - 8/10; 1- 16/20 + sli_cpri_mode, //Mode of operation specific to CPRI protocol + sli_pcie_mode, //Mode of operation specific to PCIe mode (2.5G or 5G) + + //LOL Output + slo_plol //Tx PLL Loss of Lock output to the user logic + ); + +// Inputs +input sli_rst; +input sli_refclk; +input sli_pclk; +input sli_div2_rate; +input sli_div11_rate; +input sli_gear_mode; +input [2:0] sli_cpri_mode; +input sli_pcie_mode; + +// Outputs +output slo_plol; + + +// Parameters +parameter PPROTOCOL = "PCIE"; //Protocol selected by the User +parameter PLOL_SETTING = 0; //PLL LOL setting. Possible values are 0,1,2,3 +parameter PDYN_RATE_CTRL = "DISABLED"; //PCS Dynamic Rate control +parameter PPCIE_MAX_RATE = "2.5"; //PCIe max data rate +parameter PDIFF_VAL_LOCK = 20; //Differential count value for Lock +parameter PDIFF_VAL_UNLOCK = 39; //Differential count value for Unlock +parameter PPCLK_TC = 65535; //Terminal count value for counter running on sli_pclk +parameter PDIFF_DIV11_VAL_LOCK = 3; //Differential count value for Lock for SDI Div11 +parameter PDIFF_DIV11_VAL_UNLOCK = 3; //Differential count value for Unlock for SDI Div11 +parameter PPCLK_DIV11_TC = 2383; //Terminal count value (SDI Div11) for counter running on sli_pclk + + +// Local Parameters +localparam [1:0] LPLL_LOSS_ST = 2'b00; //PLL Loss state +localparam [1:0] LPLL_PRELOSS_ST = 2'b01; //PLL Pre-Loss state +localparam [1:0] LPLL_PRELOCK_ST = 2'b10; //PLL Pre-Lock state +localparam [1:0] LPLL_LOCK_ST = 2'b11; //PLL Lock state +`ifdef RSL_SIM_MODE +localparam [15:0] LRCLK_TC = 16'd63; //Terminal count value for counter running on sli_refclk +`else +localparam [15:0] LRCLK_TC = 16'd65535; //Terminal count value for counter running on sli_refclk +`endif +localparam [15:0] LRCLK_TC_PUL_WIDTH = 16'd50; //Pulse width for the Refclk terminal count pulse +localparam [7:0] LHB_WAIT_CNT = 8'd255; //Wait count for the Heartbeat signal + +// Local Parameters related to the CPRI dynamic modes +// Terminal count values for the four CPRI modes +localparam LPCLK_TC_0 = 32768; +localparam LPCLK_TC_1 = 65536; +localparam LPCLK_TC_2 = 131072; +localparam LPCLK_TC_3 = 163840; +localparam LPCLK_TC_4 = 65536; + +// Lock values count values for the four CPRI modes and four PLOL settings (4x5) +// CPRI rate mode 0 CPRI rate mode 1 CPRI rate mode 2 CPRI rate mode 3 CPRI rate mode 4 +localparam LPDIFF_LOCK_00 = 9; localparam LPDIFF_LOCK_10 = 19; localparam LPDIFF_LOCK_20 = 39; localparam LPDIFF_LOCK_30 = 49; localparam LPDIFF_LOCK_40 = 19; +localparam LPDIFF_LOCK_01 = 9; localparam LPDIFF_LOCK_11 = 19; localparam LPDIFF_LOCK_21 = 39; localparam LPDIFF_LOCK_31 = 49; localparam LPDIFF_LOCK_41 = 19; +localparam LPDIFF_LOCK_02 = 49; localparam LPDIFF_LOCK_12 = 98; localparam LPDIFF_LOCK_22 = 196; localparam LPDIFF_LOCK_32 = 245; localparam LPDIFF_LOCK_42 = 98; +localparam LPDIFF_LOCK_03 = 131; localparam LPDIFF_LOCK_13 = 262; localparam LPDIFF_LOCK_23 = 524; localparam LPDIFF_LOCK_33 = 655; localparam LPDIFF_LOCK_43 = 262; + +// Unlock values count values for the four CPRI modes and four PLOL settings (4x5) +// CPRI rate mode 0 CPRI rate mode 1 CPRI rate mode 2 CPRI rate mode 3 CPRI rate mode 4 +localparam LPDIFF_UNLOCK_00 = 19; localparam LPDIFF_UNLOCK_10 = 39; localparam LPDIFF_UNLOCK_20 = 78; localparam LPDIFF_UNLOCK_30 = 98; localparam LPDIFF_UNLOCK_40 = 39; +localparam LPDIFF_UNLOCK_01 = 65; localparam LPDIFF_UNLOCK_11 = 131; localparam LPDIFF_UNLOCK_21 = 262; localparam LPDIFF_UNLOCK_31 = 327; localparam LPDIFF_UNLOCK_41 = 131; +localparam LPDIFF_UNLOCK_02 = 72; localparam LPDIFF_UNLOCK_12 = 144; localparam LPDIFF_UNLOCK_22 = 288; localparam LPDIFF_UNLOCK_32 = 360; localparam LPDIFF_UNLOCK_42 = 144; +localparam LPDIFF_UNLOCK_03 = 196; localparam LPDIFF_UNLOCK_13 = 393; localparam LPDIFF_UNLOCK_23 = 786; localparam LPDIFF_UNLOCK_33 = 983; localparam LPDIFF_UNLOCK_43 = 393; + +// Input and Output reg and wire declarations +wire sli_rst; +wire sli_refclk; +wire sli_pclk; +wire sli_div2_rate; +wire sli_div11_rate; +wire sli_gear_mode; +wire [2:0] sli_cpri_mode; +wire sli_pcie_mode; +wire slo_plol; + +//-------------- Internal signals reg and wire declarations -------------------- + +//Signals running on sli_refclk +reg [15:0] rcount; //16-bit Counter +reg rtc_pul; //Terminal count pulse +reg rtc_pul_p1; //Terminal count pulse pipeline +reg rtc_ctrl; //Terminal count pulse control + +reg [7:0] rhb_wait_cnt; //Heartbeat wait counter + +//Heatbeat synchronization and pipeline registers +wire rhb_sync; +reg rhb_sync_p2; +reg rhb_sync_p1; + +//Pipeling registers for dynamic control mode +wire rgear; +wire rdiv2; +wire rdiv11; +reg rgear_p1; +reg rdiv2_p1; +reg rdiv11_p1; + +reg rstat_pclk; //Pclk presence/absence status + +reg [21:0] rcount_tc; //Tx_pclk terminal count register +reg [15:0] rdiff_comp_lock; //Differential comparison value for Lock +reg [15:0] rdiff_comp_unlock; //Differential compariosn value for Unlock + +wire rpcie_mode; //PCIe mode signal synchronized to refclk +reg rpcie_mode_p1; //PCIe mode pipeline register + +wire rcpri_mod_ch_sync; //CPRI mode change synchronized to refclk +reg rcpri_mod_ch_p1; //CPRI mode change pipeline register +reg rcpri_mod_ch_p2; //CPRI mode change pipeline register +reg rcpri_mod_ch_st; //CPRI mode change status + +reg [1:0] sll_state; //Current-state register for LOL FSM + +reg pll_lock; //PLL Lock signal + +//Signals running on sli_pclk +//Synchronization and pipeline registers +wire ppul_sync; +reg ppul_sync_p1; +reg ppul_sync_p2; +reg ppul_sync_p3; + +wire pdiff_sync; +reg pdiff_sync_p1; + +reg [21:0] pcount; //22-bit counter +reg [21:0] pcount_diff; //Differential value between Tx_pclk counter and theoritical value + +//Heartbeat counter and heartbeat signal running on pclk +reg [2:0] phb_cnt; +reg phb; + +//CPRI dynamic mode releated signals +reg [2:0] pcpri_mode; +reg pcpri_mod_ch; + +//Assignment scheme changed mainly for simulation purpose +wire [15:0] LRCLK_TC_w; +assign LRCLK_TC_w = LRCLK_TC; + +reg unlock; +reg lock; + +//Heartbeat synchronization +sync # (.PDATA_RST_VAL(0)) phb_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (phb), + .data_out(rhb_sync) + ); + + +//Terminal count pulse synchronization +sync # (.PDATA_RST_VAL(0)) rtc_sync_inst ( + .clk (sli_pclk), + .rst (sli_rst), + .data_in (rtc_pul), + .data_out(ppul_sync) + ); + +//Differential value logic update synchronization +sync # (.PDATA_RST_VAL(0)) pdiff_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (ppul_sync), + .data_out(pdiff_sync) + ); + +//Gear mode synchronization +sync # (.PDATA_RST_VAL(0)) gear_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (sli_gear_mode), + .data_out(rgear) + ); + +//Div2 synchronization +sync # (.PDATA_RST_VAL(0)) div2_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (sli_div2_rate), + .data_out(rdiv2) + ); + +//Div11 synchronization +sync # (.PDATA_RST_VAL(0)) div11_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (sli_div11_rate), + .data_out(rdiv11) + ); + +//CPRI mode change synchronization +sync # (.PDATA_RST_VAL(0)) cpri_mod_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (pcpri_mod_ch), + .data_out(rcpri_mod_ch_sync) + ); + +//PCIe mode change synchronization +sync # (.PDATA_RST_VAL(0)) pcie_mod_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (sli_pcie_mode), + .data_out(rpcie_mode) + ); + +// ============================================================================= +// Synchronized Lock/Unlock signals +// ============================================================================= +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + unlock <= 1'b0; + lock <= 1'b0; + pdiff_sync_p1 <= 1'b0; + end + else begin + pdiff_sync_p1 <= pdiff_sync; + if (unlock) begin + unlock <= ~pdiff_sync && pdiff_sync_p1 ? 1'b0 : unlock; + end + else begin + unlock <= pdiff_sync ? (pcount_diff[21:0] > {6'd0, rdiff_comp_unlock}) : 1'b0; + end + if (lock) begin + lock <= ~pdiff_sync && pdiff_sync_p1 ? 1'b0 : lock; + end + else begin + lock <= pdiff_sync ? (pcount_diff[21:0] <= {6'd0, rdiff_comp_lock}) : 1'b0; + end + end +end + +// ============================================================================= +// Refclk Counter, pulse generation logic and Heartbeat monitor logic +// ============================================================================= +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rcount <= 16'd0; + rtc_pul <= 1'b0; + rtc_ctrl <= 1'b0; + rtc_pul_p1 <= 1'b0; + end + else begin + //Counter logic + if ((rgear_p1^rgear == 1'b1) || (rdiv2_p1^rdiv2 == 1'b1) || (rdiv11_p1^rdiv11 == 1'b1) || (rcpri_mod_ch_p1^rcpri_mod_ch_p2 == 1'b1) || (rpcie_mode_p1^rpcie_mode == 1'b1)) begin + if (rtc_ctrl == 1'b1) begin + rcount <= LRCLK_TC_PUL_WIDTH; + end + end + else begin + if (rcount != LRCLK_TC_w) begin + rcount <= rcount + 1; + end + else begin + rcount <= 16'd0; + end + end + + //Pulse control logic + if (rcount == LRCLK_TC_w - 1) begin + rtc_ctrl <= 1'b1; + end + + //Pulse Generation logic + if (rtc_ctrl == 1'b1) begin + if ((rcount == LRCLK_TC_w) || (rcount < LRCLK_TC_PUL_WIDTH)) begin + rtc_pul <= 1'b1; + end + else begin + rtc_pul <= 1'b0; + end + end + + rtc_pul_p1 <= rtc_pul; + end +end + + +// ============================================================================= +// Heartbeat synchronization & monitor logic and Dynamic mode pipeline logic +// ============================================================================= +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rhb_sync_p1 <= 1'b0; + rhb_sync_p2 <= 1'b0; + rhb_wait_cnt <= 8'd0; + rstat_pclk <= 1'b0; + rgear_p1 <= 1'b0; + rdiv2_p1 <= 1'b0; + rdiv11_p1 <= 1'b0; + rcpri_mod_ch_p1 <= 1'b0; + rcpri_mod_ch_p2 <= 1'b0; + rcpri_mod_ch_st <= 1'b0; + rpcie_mode_p1 <= 1'b0; + + end + else begin + //Pipeline stages for the Heartbeat + rhb_sync_p1 <= rhb_sync; + rhb_sync_p2 <= rhb_sync_p1; + + //Pipeline stages of the Dynamic rate control signals + rgear_p1 <= rgear; + rdiv2_p1 <= rdiv2; + rdiv11_p1 <= rdiv11; + + //Pipeline stage for PCIe mode + rpcie_mode_p1 <= rpcie_mode; + + //Pipeline stage for CPRI mode change + rcpri_mod_ch_p1 <= rcpri_mod_ch_sync; + rcpri_mod_ch_p2 <= rcpri_mod_ch_p1; + + //CPRI mode change status logic + if (rcpri_mod_ch_p1^rcpri_mod_ch_sync == 1'b1) begin + rcpri_mod_ch_st <= 1'b1; + end + + //Heartbeat wait counter and monitor logic + if (rtc_ctrl == 1'b1) begin + if (rhb_sync_p1 == 1'b1 && rhb_sync_p2 == 1'b0) begin + rhb_wait_cnt <= 8'd0; + rstat_pclk <= 1'b1; + end + else if (rhb_wait_cnt == LHB_WAIT_CNT) begin + rhb_wait_cnt <= 8'd0; + rstat_pclk <= 1'b0; + end + else begin + rhb_wait_cnt <= rhb_wait_cnt + 1; + end + end + end +end + + +// ============================================================================= +// Pipleline registers for the TC pulse and CPRI mode change logic +// ============================================================================= +always @(posedge sli_pclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + ppul_sync_p1 <= 1'b0; + ppul_sync_p2 <= 1'b0; + ppul_sync_p3 <= 1'b0; + pcpri_mode <= 3'b0; + pcpri_mod_ch <= 1'b0; + end + else begin + ppul_sync_p1 <= ppul_sync; + ppul_sync_p2 <= ppul_sync_p1; + ppul_sync_p3 <= ppul_sync_p2; + + //CPRI mode change logic + pcpri_mode <= sli_cpri_mode; + + if (pcpri_mode != sli_cpri_mode) begin + pcpri_mod_ch <= ~pcpri_mod_ch; + end + end +end + + +// ============================================================================= +// Terminal count logic +// ============================================================================= + +//For SDI protocol with Dynamic rate control enabled +generate +if ((PDYN_RATE_CTRL == "ENABLED") && (PPROTOCOL == "SDI")) begin +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rcount_tc <= 22'd0; + rdiff_comp_lock <= 16'd0; + rdiff_comp_unlock <= 16'd0; + end + else begin + //Terminal count logic + //Div by 11 is enabled + if (rdiv11 == 1'b1) begin + //Gear mode is 16/20 + if (rgear == 1'b1) begin + rcount_tc <= PPCLK_DIV11_TC; + rdiff_comp_lock <= PDIFF_DIV11_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_DIV11_VAL_UNLOCK; + end + else begin + rcount_tc <= {PPCLK_DIV11_TC[20:0], 1'b0}; + rdiff_comp_lock <= {PDIFF_DIV11_VAL_LOCK[14:0], 1'b0}; + rdiff_comp_unlock <= {PDIFF_DIV11_VAL_UNLOCK[14:0], 1'b0}; + end + end + //Div by 2 is enabled + else if (rdiv2 == 1'b1) begin + //Gear mode is 16/20 + if (rgear == 1'b1) begin + rcount_tc <= {1'b0,PPCLK_TC[21:1]}; + rdiff_comp_lock <= {1'b0,PDIFF_VAL_LOCK[15:1]}; + rdiff_comp_unlock <= {1'b0,PDIFF_VAL_UNLOCK[15:1]}; + end + else begin + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end + end + //Both div by 11 and div by 2 are disabled + else begin + //Gear mode is 16/20 + if (rgear == 1'b1) begin + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end + else begin + rcount_tc <= {PPCLK_TC[20:0],1'b0}; + rdiff_comp_lock <= {PDIFF_VAL_LOCK[14:0],1'b0}; + rdiff_comp_unlock <= {PDIFF_VAL_UNLOCK[14:0],1'b0}; + end + end + end +end +end +endgenerate + +//For G8B10B protocol with Dynamic rate control enabled +generate +if ((PDYN_RATE_CTRL == "ENABLED") && (PPROTOCOL == "G8B10B")) begin +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rcount_tc <= 22'd0; + rdiff_comp_lock <= 16'd0; + rdiff_comp_unlock <= 16'd0; + end + else begin + //Terminal count logic + //Div by 2 is enabled + if (rdiv2 == 1'b1) begin + rcount_tc <= {1'b0,PPCLK_TC[21:1]}; + rdiff_comp_lock <= {1'b0,PDIFF_VAL_LOCK[15:1]}; + rdiff_comp_unlock <= {1'b0,PDIFF_VAL_UNLOCK[15:1]}; + end + else begin + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end + end +end +end +endgenerate + + +//For CPRI protocol with Dynamic rate control is disabled +generate +if ((PDYN_RATE_CTRL == "DISABLED") && (PPROTOCOL == "CPRI")) begin +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rcount_tc <= 22'd0; + rdiff_comp_lock <= 16'd0; + rdiff_comp_unlock <= 16'd0; + end + else begin + //Terminal count logic for CPRI protocol + //Only if there is a change in the rate mode from the default + if (rcpri_mod_ch_st == 1'b1) begin + if (rcpri_mod_ch_p1^rcpri_mod_ch_p2 == 1'b1) begin + case(sli_cpri_mode) + 3'd0 : begin //For 0.6Gbps + rcount_tc <= LPCLK_TC_0; + case(PLOL_SETTING) + 'd0 : begin + rdiff_comp_lock <= LPDIFF_LOCK_00; + rdiff_comp_unlock <= LPDIFF_UNLOCK_00; + end + + 'd1 : begin + rdiff_comp_lock <= LPDIFF_LOCK_01; + rdiff_comp_unlock <= LPDIFF_UNLOCK_01; + end + + 'd2 : begin + rdiff_comp_lock <= LPDIFF_LOCK_02; + rdiff_comp_unlock <= LPDIFF_UNLOCK_02; + end + + 'd3 : begin + rdiff_comp_lock <= LPDIFF_LOCK_03; + rdiff_comp_unlock <= LPDIFF_UNLOCK_03; + end + + default : begin + rdiff_comp_lock <= LPDIFF_LOCK_00; + rdiff_comp_unlock <= LPDIFF_UNLOCK_00; + end + endcase + end + + 3'd1 : begin //For 1.2Gbps + rcount_tc <= LPCLK_TC_1; + case(PLOL_SETTING) + 'd0 : begin + rdiff_comp_lock <= LPDIFF_LOCK_10; + rdiff_comp_unlock <= LPDIFF_UNLOCK_10; + end + + 'd1 : begin + rdiff_comp_lock <= LPDIFF_LOCK_11; + rdiff_comp_unlock <= LPDIFF_UNLOCK_11; + end + + 'd2 : begin + rdiff_comp_lock <= LPDIFF_LOCK_12; + rdiff_comp_unlock <= LPDIFF_UNLOCK_12; + end + + 'd3 : begin + rdiff_comp_lock <= LPDIFF_LOCK_13; + rdiff_comp_unlock <= LPDIFF_UNLOCK_13; + end + + default : begin + rdiff_comp_lock <= LPDIFF_LOCK_10; + rdiff_comp_unlock <= LPDIFF_UNLOCK_10; + end + endcase + end + + 3'd2 : begin //For 2.4Gbps + rcount_tc <= LPCLK_TC_2; + case(PLOL_SETTING) + 'd0 : begin + rdiff_comp_lock <= LPDIFF_LOCK_20; + rdiff_comp_unlock <= LPDIFF_UNLOCK_20; + end + + 'd1 : begin + rdiff_comp_lock <= LPDIFF_LOCK_21; + rdiff_comp_unlock <= LPDIFF_UNLOCK_21; + end + + 'd2 : begin + rdiff_comp_lock <= LPDIFF_LOCK_22; + rdiff_comp_unlock <= LPDIFF_UNLOCK_22; + end + + 'd3 : begin + rdiff_comp_lock <= LPDIFF_LOCK_23; + rdiff_comp_unlock <= LPDIFF_UNLOCK_23; + end + + default : begin + rdiff_comp_lock <= LPDIFF_LOCK_20; + rdiff_comp_unlock <= LPDIFF_UNLOCK_20; + end + endcase + end + + 3'd3 : begin //For 3.07Gbps + rcount_tc <= LPCLK_TC_3; + case(PLOL_SETTING) + 'd0 : begin + rdiff_comp_lock <= LPDIFF_LOCK_30; + rdiff_comp_unlock <= LPDIFF_UNLOCK_30; + end + + 'd1 : begin + rdiff_comp_lock <= LPDIFF_LOCK_31; + rdiff_comp_unlock <= LPDIFF_UNLOCK_31; + end + + 'd2 : begin + rdiff_comp_lock <= LPDIFF_LOCK_32; + rdiff_comp_unlock <= LPDIFF_UNLOCK_32; + end + + 'd3 : begin + rdiff_comp_lock <= LPDIFF_LOCK_33; + rdiff_comp_unlock <= LPDIFF_UNLOCK_33; + end + endcase + end + + 3'd4 : begin //For 4.9125bps + rcount_tc <= LPCLK_TC_4; + case(PLOL_SETTING) + 'd0 : begin + rdiff_comp_lock <= LPDIFF_LOCK_40; + rdiff_comp_unlock <= LPDIFF_UNLOCK_40; + end + + 'd1 : begin + rdiff_comp_lock <= LPDIFF_LOCK_41; + rdiff_comp_unlock <= LPDIFF_UNLOCK_41; + end + + 'd2 : begin + rdiff_comp_lock <= LPDIFF_LOCK_42; + rdiff_comp_unlock <= LPDIFF_UNLOCK_42; + end + + 'd3 : begin + rdiff_comp_lock <= LPDIFF_LOCK_43; + rdiff_comp_unlock <= LPDIFF_UNLOCK_43; + end + + default : begin + rdiff_comp_lock <= LPDIFF_LOCK_40; + rdiff_comp_unlock <= LPDIFF_UNLOCK_40; + end + endcase + end + + default : begin + rcount_tc <= LPCLK_TC_0; + rdiff_comp_lock <= LPDIFF_LOCK_00; + rdiff_comp_unlock <= LPDIFF_UNLOCK_00; + end + endcase + end + end + else begin + //If there is no change in the CPRI rate mode from default + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end + end +end +end +endgenerate + +//For PCIe protocol with Dynamic rate control disabled +generate +if ((PDYN_RATE_CTRL == "DISABLED") && (PPROTOCOL == "PCIE")) begin +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rcount_tc <= 22'd0; + rdiff_comp_lock <= 16'd0; + rdiff_comp_unlock <= 16'd0; + end + else begin + //Terminal count logic + if (PPCIE_MAX_RATE == "2.5") begin + //2.5G mode is enabled + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end + else begin + //5G mode is enabled + if (rpcie_mode == 1'b1) begin + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end + else begin + //2.5G mode is enabled + rcount_tc <= {1'b0,PPCLK_TC[21:1]}; + rdiff_comp_lock <= {1'b0,PDIFF_VAL_LOCK[15:1]}; + rdiff_comp_unlock <= {1'b0,PDIFF_VAL_UNLOCK[15:1]}; + end + end + end +end +end +endgenerate + +//For all protocols other than CPRI & PCIe +generate +if ((PDYN_RATE_CTRL == "DISABLED") && ((PPROTOCOL != "CPRI") && (PPROTOCOL != "PCIE"))) begin +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rcount_tc <= 22'd0; + rdiff_comp_lock <= 16'd0; + rdiff_comp_unlock <= 16'd0; + end + else begin + //Terminal count logic for all protocols other than CPRI & PCIe + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end +end +end +endgenerate + + +// ============================================================================= +// Tx_pclk counter, Heartbeat and Differential value logic +// ============================================================================= +always @(posedge sli_pclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + pcount <= 22'd0; + pcount_diff <= 22'd65535; + phb_cnt <= 3'd0; + phb <= 1'b0; + end + else begin + //Counter logic + if (ppul_sync_p1 == 1'b1 && ppul_sync_p2 == 1'b0) begin + pcount <= 22'd0; + end + else begin + pcount <= pcount + 1; + end + + //Heartbeat logic + phb_cnt <= phb_cnt + 1; + + if ((phb_cnt < 3'd4) && (phb_cnt >= 3'd0)) begin + phb <= 1'b1; + end + else begin + phb <= 1'b0; + end + + //Differential value logic + if (ppul_sync_p1 == 1'b1 && ppul_sync_p2 == 1'b0) begin + pcount_diff <= rcount_tc + ~(pcount) + 1; + end + else if (ppul_sync_p2 == 1'b1 && ppul_sync_p3 == 1'b0) begin + if (pcount_diff[21] == 1'b1) begin + pcount_diff <= ~(pcount_diff) + 1; + end + end + end +end + + +// ============================================================================= +// State transition logic for SLL FSM +// ============================================================================= +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + sll_state <= LPLL_LOSS_ST; + end + else begin + //Reasons to declare an immediate loss - Absence of Tx_pclk, Dynamic rate change for SDI or CPRI + if ((rstat_pclk == 1'b0) || (rgear_p1^rgear == 1'b1) || (rdiv2_p1^rdiv2 == 1'b1) || + (rdiv11_p1^rdiv11 == 1'b1) || (rcpri_mod_ch_p1^rcpri_mod_ch_p2 == 1'b1) || (rpcie_mode_p1^rpcie_mode == 1'b1)) begin + sll_state <= LPLL_LOSS_ST; + end + else begin + case(sll_state) + LPLL_LOSS_ST : begin + if (rtc_pul_p1 == 1'b1 && rtc_pul == 1'b0) begin + if (unlock) begin + sll_state <= LPLL_LOSS_ST; + end + else if (lock) begin + if (PLOL_SETTING == 2'd0) begin + sll_state <= LPLL_PRELOCK_ST; + end + else begin + sll_state <= LPLL_LOCK_ST; + end + end + end + end + + LPLL_LOCK_ST : begin + if (rtc_pul_p1 == 1'b1 && rtc_pul == 1'b0) begin + if (lock) begin + sll_state <= LPLL_LOCK_ST; + end + else begin + if (PLOL_SETTING == 2'd0) begin + sll_state <= LPLL_LOSS_ST; + end + else begin + sll_state <= LPLL_PRELOSS_ST; + end + end + end + end + + LPLL_PRELOCK_ST : begin + if (rtc_pul_p1 == 1'b1 && rtc_pul == 1'b0) begin + if (lock) begin + sll_state <= LPLL_LOCK_ST; + end + else begin + sll_state <= LPLL_PRELOSS_ST; + end + end + end + + LPLL_PRELOSS_ST : begin + if (rtc_pul_p1 == 1'b1 && rtc_pul == 1'b0) begin + if (unlock) begin + sll_state <= LPLL_PRELOSS_ST; + end + else if (lock) begin + sll_state <= LPLL_LOCK_ST; + end + end + end + + default: begin + sll_state <= LPLL_LOSS_ST; + end + endcase + end + end +end + + +// ============================================================================= +// Logic for Tx PLL Lock +// ============================================================================= +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + pll_lock <= 1'b0; + end + else begin + case(sll_state) + LPLL_LOSS_ST : begin + pll_lock <= 1'b0; + end + + LPLL_LOCK_ST : begin + pll_lock <= 1'b1; + end + + LPLL_PRELOSS_ST : begin + pll_lock <= 1'b0; + end + + default: begin + pll_lock <= 1'b0; + end + endcase + end +end + +assign slo_plol = ~(pll_lock); + +endmodule + + +// =========================================================================== +// >>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< +// --------------------------------------------------------------------------- +// Copyright (c) 2015 by Lattice Semiconductor Corporation +// ALL RIGHTS RESERVED +// ------------------------------------------------------------------ +// +// Permission: +// +// Lattice SG Pte. Ltd. grants permission to use this code +// pursuant to the terms of the Lattice Reference Design License Agreement. +// +// +// Disclaimer: +// +// This VHDL or Verilog source code is intended as a design reference +// which illustrates how these types of functions can be implemented. +// It is the user's responsibility to verify their design for +// consistency and functionality through the use of formal +// verification methods. Lattice provides no warranty +// regarding the use or functionality of this code. +// +// --------------------------------------------------------------------------- +// +// Lattice SG Pte. Ltd. +// 101 Thomson Road, United Square #07-02 +// Singapore 307591 +// +// +// TEL: 1-800-Lattice (USA and Canada) +// +65-6631-2000 (Singapore) +// +1-503-268-8001 (other locations) +// +// web: http://www.latticesemi.com/ +// email: techsupport@latticesemi.com +// +// --------------------------------------------------------------------------- +// +// ============================================================================= +// FILE DETAILS +// Project : Synchronizer Logic +// File : sync.v +// Title : Synchronizer module +// Description : +// ============================================================================= +// REVISION HISTORY +// Version : 1.0 +// Author(s) : AV +// Mod. Date : July 7, 2015 +// Changes Made : Initial Creation +// ----------------------------------------------------------------------------- +// Version : 1.1 +// Author(s) : EB +// Mod. Date : March 21, 2017 +// Changes Made : +// ============================================================================= + +`ifndef PCS_SYNC_MODULE +`define PCS_SYNC_MODULE +module sync ( + clk, + rst, + data_in, + data_out + ); + +input clk; //Clock in which the async data needs to be synchronized to +input rst; //Active high reset +input data_in; //Asynchronous data +output data_out; //Synchronized data + +parameter PDATA_RST_VAL = 0; //Reset value for the registers + +reg data_p1; +reg data_p2; + +// ============================================================================= +// Synchronization logic +// ============================================================================= +always @(posedge clk or posedge rst) begin + if (rst == 1'b1) begin + data_p1 <= PDATA_RST_VAL; + data_p2 <= PDATA_RST_VAL; + end + else begin + data_p1 <= data_in; + data_p2 <= data_p1; + end +end + +assign data_out = data_p2; + +endmodule +`endif + diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/.recordref b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/.recordref new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/_CMD_.CML b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/_CMD_.CML new file mode 100644 index 0000000..4fa0e06 --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/_CMD_.CML @@ -0,0 +1 @@ + -osyn /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/serdes_sync_1_comp.srs -top serdes_sync_1 -hdllog /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/serdes_sync_1_compiler.srr -encrypt -mp 4 -verification_mode 0 -vhdl -prodtype synplify_pro -dspmac -fixsmult -infer_seqShift -nram -sdff_counter -divnmod -nostructver -encrypt -pro -dmgen /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/dm -lite -ui -fid2 -ram -sharing on -ll 2000 -autosm -ignore_undefined_lib -lib work /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd -verilog -prodtype synplify_pro -dspmac -fixsmult -infer_seqShift -nram -sdff_counter -divnmod -nostructver -I /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/ -I /home/soft/lattice/diamond/3.10_x64/synpbase/lib -v2001 -devicelib /home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v -devicelib /home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v -encrypt -pro -dmgen /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/dm -ui -fid2 -ram -sharing on -ll 2000 -autosm -lib work /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v -jobname "compiler" \ No newline at end of file diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/_cmd._cml b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/_cmd._cml new file mode 100644 index 0000000..20bb359 --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/_cmd._cml @@ -0,0 +1 @@ +-link -encrypt -top serdes_sync_1 -osyn /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/serdes_sync_1_comp.srs /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer0.srs /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer1.srs \ No newline at end of file diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/backup/serdes_sync_1.srr b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/backup/serdes_sync_1.srr new file mode 100644 index 0000000..5a66bb2 --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/backup/serdes_sync_1.srr @@ -0,0 +1,1145 @@ +#Build: Synplify Pro (R) M-2017.03L-SP1-1, Build 086R, Aug 4 2017 +#install: /home/soft/lattice/diamond/3.10_x64/synpbase +#OS: Linux +#Hostname: lxhadeb07 + +# Fri May 10 09:32:32 2019 + +#Implementation: syn_results + +Synopsys HDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Synopsys VHDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd":30:7:30:19|Top entity is set to serdes_sync_1. +VHDL syntax check successful! + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB) + + +Process completed successfully. +# Fri May 10 09:32:33 2019 + +###########################################################] +Synopsys Verilog Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps) +@I::"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v" (library work) +Verilog syntax check successful! + +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB) + + +Process completed successfully. +# Fri May 10 09:32:33 2019 + +###########################################################] +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd":30:7:30:19|Top entity is set to serdes_sync_1. +VHDL syntax check successful! +@N: CD630 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd":30:7:30:19|Synthesizing work.serdes_sync_1.v1. +Post processing for work.serdes_sync_1.v1 + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 74MB peak: 76MB) + + +Process completed successfully. +# Fri May 10 09:32:33 2019 + +###########################################################] +Running on host :lxhadeb07 +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps) +@I::"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v" (library work) +Verilog syntax check successful! +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +@N: CG364 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1968:7:1968:10|Synthesizing module sync in library work. + + PDATA_RST_VAL=32'b00000000000000000000000000000000 + Generated name = sync_0s +@N: CG364 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1051:7:1051:27|Synthesizing module serdes_sync_1sll_core in library work. + + PPROTOCOL=48'b010001110011100001000010001100010011000001000010 + PLOL_SETTING=32'b00000000000000000000000000000001 + PDYN_RATE_CTRL=64'b0100010001001001010100110100000101000010010011000100010101000100 + PPCIE_MAX_RATE=24'b001100100010111000110101 + PDIFF_VAL_LOCK=32'b00000000000000000000000000010011 + PDIFF_VAL_UNLOCK=32'b00000000000000000000000010000011 + PPCLK_TC=32'b00000000000000010000000000000000 + PDIFF_DIV11_VAL_LOCK=32'b00000000000000000000000000000000 + PDIFF_DIV11_VAL_UNLOCK=32'b00000000000000000000000000000000 + PPCLK_DIV11_TC=32'b00000000000000000000000000000000 + LPLL_LOSS_ST=2'b00 + LPLL_PRELOSS_ST=2'b01 + LPLL_PRELOCK_ST=2'b10 + LPLL_LOCK_ST=2'b11 + LRCLK_TC=16'b1111111111111111 + LRCLK_TC_PUL_WIDTH=16'b0000000000110010 + LHB_WAIT_CNT=8'b11111111 + LPCLK_TC_0=32'b00000000000000001000000000000000 + LPCLK_TC_1=32'b00000000000000010000000000000000 + LPCLK_TC_2=32'b00000000000000100000000000000000 + LPCLK_TC_3=32'b00000000000000101000000000000000 + LPCLK_TC_4=32'b00000000000000010000000000000000 + LPDIFF_LOCK_00=32'b00000000000000000000000000001001 + LPDIFF_LOCK_10=32'b00000000000000000000000000010011 + LPDIFF_LOCK_20=32'b00000000000000000000000000100111 + LPDIFF_LOCK_30=32'b00000000000000000000000000110001 + LPDIFF_LOCK_40=32'b00000000000000000000000000010011 + LPDIFF_LOCK_01=32'b00000000000000000000000000001001 + LPDIFF_LOCK_11=32'b00000000000000000000000000010011 + LPDIFF_LOCK_21=32'b00000000000000000000000000100111 + LPDIFF_LOCK_31=32'b00000000000000000000000000110001 + LPDIFF_LOCK_41=32'b00000000000000000000000000010011 + LPDIFF_LOCK_02=32'b00000000000000000000000000110001 + LPDIFF_LOCK_12=32'b00000000000000000000000001100010 + LPDIFF_LOCK_22=32'b00000000000000000000000011000100 + LPDIFF_LOCK_32=32'b00000000000000000000000011110101 + LPDIFF_LOCK_42=32'b00000000000000000000000001100010 + LPDIFF_LOCK_03=32'b00000000000000000000000010000011 + LPDIFF_LOCK_13=32'b00000000000000000000000100000110 + LPDIFF_LOCK_23=32'b00000000000000000000001000001100 + LPDIFF_LOCK_33=32'b00000000000000000000001010001111 + LPDIFF_LOCK_43=32'b00000000000000000000000100000110 + LPDIFF_UNLOCK_00=32'b00000000000000000000000000010011 + LPDIFF_UNLOCK_10=32'b00000000000000000000000000100111 + LPDIFF_UNLOCK_20=32'b00000000000000000000000001001110 + LPDIFF_UNLOCK_30=32'b00000000000000000000000001100010 + LPDIFF_UNLOCK_40=32'b00000000000000000000000000100111 + LPDIFF_UNLOCK_01=32'b00000000000000000000000001000001 + LPDIFF_UNLOCK_11=32'b00000000000000000000000010000011 + LPDIFF_UNLOCK_21=32'b00000000000000000000000100000110 + LPDIFF_UNLOCK_31=32'b00000000000000000000000101000111 + LPDIFF_UNLOCK_41=32'b00000000000000000000000010000011 + LPDIFF_UNLOCK_02=32'b00000000000000000000000001001000 + LPDIFF_UNLOCK_12=32'b00000000000000000000000010010000 + LPDIFF_UNLOCK_22=32'b00000000000000000000000100100000 + LPDIFF_UNLOCK_32=32'b00000000000000000000000101101000 + LPDIFF_UNLOCK_42=32'b00000000000000000000000010010000 + LPDIFF_UNLOCK_03=32'b00000000000000000000000011000100 + LPDIFF_UNLOCK_13=32'b00000000000000000000000110001001 + LPDIFF_UNLOCK_23=32'b00000000000000000000001100010010 + LPDIFF_UNLOCK_33=32'b00000000000000000000001111010111 + LPDIFF_UNLOCK_43=32'b00000000000000000000000110001001 + Generated name = serdes_sync_1sll_core_Z1_layer1 +@N: CG179 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1287:54:1287:59|Removing redundant assignment. +@N: CG179 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1293:52:1293:55|Removing redundant assignment. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1350:0:1350:5|Pruning unused register rcpri_mod_ch_st. Make sure that there are no unused intermediate registers. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 2 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL177 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|Sharing sequential element genblk5.rdiff_comp_lock. Add a syn_preserve attribute to the element to prevent sharing. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 2 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 0 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 1 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 2 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 17 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 18 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 19 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 20 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 21 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +@N: CG364 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":92:7:92:27|Synthesizing module serdes_sync_1rsl_core in library work. + + pnum_channels=32'b00000000000000000000000000000001 + pprotocol=48'b010001110011100001000010001100010011000001000010 + pserdes_mode=72'b010100100101100000100000010000010100111001000100001000000101010001011000 + pport_tx_rdy=56'b01000101010011100100000101000010010011000100010101000100 + pwait_tx_rdy=32'b00000000000000000000101110111000 + pport_rx_rdy=56'b01000101010011100100000101000010010011000100010101000100 + pwait_rx_rdy=32'b00000000000000000000101110111000 + wa_num_cycles=32'b00000000000000000000010000000000 + dac_num_cycles=32'b00000000000000000000000000000011 + lreset_pwidth=32'b00000000000000000000000000000011 + lwait_b4_trst=32'b00000000000010111110101111000010 + lwait_b4_trst_s=32'b00000000000000000000001100001101 + lplol_cnt_width=32'b00000000000000000000000000010100 + lwait_after_plol0=32'b00000000000000000000000000000100 + lwait_b4_rrst=32'b00000000000000101100000000000000 + lrrst_wait_width=32'b00000000000000000000000000010100 + lwait_after_rrst=32'b00000000000011000011010100000000 + lwait_b4_rrst_s=32'b00000000000000000000000111001100 + lrlol_cnt_width=32'b00000000000000000000000000010011 + lwait_after_lols=32'b00000000000000001100010000000000 + lwait_after_lols_s=32'b00000000000000000000000010010110 + llols_cnt_width=32'b00000000000000000000000000010010 + lrdb_max=32'b00000000000000000000000000001111 + ltxr_wait_width=32'b00000000000000000000000000001100 + lrxr_wait_width=32'b00000000000000000000000000001100 + Generated name = serdes_sync_1rsl_core_Z2_layer1 +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":326:33:326:40|Object rrst_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":327:33:327:43|Removing wire rrst_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":328:33:328:41|Object rrst_wait is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":341:33:341:39|Object rxp_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":342:33:342:39|Object rxp_rst is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":343:33:343:42|Removing wire rxp_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":346:33:346:42|Object rlolsz_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":347:33:347:45|Removing wire rlolsz_cnt_tc, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":350:33:350:43|Removing wire rxp_cnt2_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":351:33:351:47|Object data_loop_b_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":352:33:352:43|Object data_loop_b is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":353:33:353:46|Removing wire data_loop_b_tc, as there is no assignment to it. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":806:3:806:8|Pruning unused register genblk2.rxp_cnt2[2:0]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlol_p3. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlos_p3. Make sure that there are no unused intermediate registers. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":694:3:694:8|Optimizing register bit genblk2.rxs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":461:3:461:8|Optimizing register bit genblk1.txp_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":422:3:422:8|Optimizing register bit genblk1.txs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":422:3:422:8|Pruning register bit 2 of genblk1.txs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":461:3:461:8|Pruning register bit 2 of genblk1.txp_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":694:3:694:8|Pruning register bit 2 of genblk2.rxs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":200:33:200:48|Input port bits 3 to 1 of rui_tx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":204:33:204:51|Input port bits 3 to 1 of rui_rx_serdes_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":205:33:205:48|Input port bits 3 to 1 of rui_rx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":206:33:206:48|Input port bits 3 to 1 of rdi_rx_los_low_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":207:33:207:48|Input port bits 3 to 1 of rdi_rx_cdr_lol_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|Pruning register bits 7 to 6 of genblk5.rdiff_comp_unlock[7:5]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rdiff_comp_unlock[5]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rcount_tc[16]. Make sure that there are no unused intermediate registers. +@N: CL201 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1801:0:1801:5|Trying to extract state machine for register sll_state. +Extracted state machine for register sll_state +State machine has 3 reachable states with original encodings of: + 00 + 01 + 11 + +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 75MB peak: 81MB) + + +Process completed successfully. +# Fri May 10 09:32:34 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode + +======================================================================================= +For a summary of linker messages for components that did not bind, please see log file: +@L: /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/serdes_sync_1_comp.linkerlog +======================================================================================= + + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 09:32:34 2019 + +###########################################################] +@END + +At c_hdl Exit (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 3MB peak: 4MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 09:32:34 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 09:32:35 2019 + +###########################################################] +Pre-mapping Report + +# Fri May 10 09:32:35 2019 + +Synopsys Lattice Technology Pre-mapping, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + +Reading constraint file: /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.fdc +@L: /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1_scck.rpt +Printing clock summary report in "/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1_scck.rpt" file +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 102MB peak: 104MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 102MB peak: 104MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 115MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 117MB) + +@N: BN362 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1408:0:1408:5|Removing sequential instance pcpri_mod_ch (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:PrimLib.dffre(prim) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1244:27:1244:40|Removing instance div2_sync_inst (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_3(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1252:27:1252:41|Removing instance div11_sync_inst (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_2(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1236:27:1236:40|Removing instance gear_sync_inst (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_4(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1268:27:1268:44|Removing instance pcie_mod_sync_inst (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_0(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1260:27:1260:44|Removing instance cpri_mod_sync_inst (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_1(verilog) because it does not drive other instances. +ICG Latch Removal Summary: +Number of ICG latches removed: 0 +Number of ICG latches not removed: 0 +syn_allowed_resources : blockrams=56 set on top level netlist serdes_sync_1 + +Finished netlist restructuring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 145MB) + + + +Clock Summary +****************** + + Start Requested Requested Clock Clock Clock +Level Clock Frequency Period Type Group Load +------------------------------------------------------------------------------------------------------------------------- +0 - System 100.0 MHz 10.000 system system_clkgroup 0 + +0 - serdes_sync_1|pll_refclki 100.0 MHz 10.000 inferred Inferred_clkgroup_0 92 + +0 - serdes_sync_1|rxrefclk 100.0 MHz 10.000 inferred Inferred_clkgroup_1 77 + +0 - serdes_sync_1|tx_pclk_inferred_clock 100.0 MHz 10.000 inferred Inferred_clkgroup_2 53 +========================================================================================================================= + +@W: MT529 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1988:0:1988:5|Found inferred clock serdes_sync_1|pll_refclki which controls 92 sequential elements including sll_inst.phb_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":567:3:567:8|Found inferred clock serdes_sync_1|rxrefclk which controls 77 sequential elements including rsl_inst.genblk2\.rlos_db_p1. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1988:0:1988:5|Found inferred clock serdes_sync_1|tx_pclk_inferred_clock which controls 53 sequential elements including sll_inst.rtc_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. + +Finished Pre Mapping Phase. + +Starting constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 145MB) + +Encoding state machine sll_state[2:0] (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) +original code -> new code + 00 -> 00 + 01 -> 01 + 11 -> 10 + +Finished constraint checker preprocessing (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 145MB) + +None +None + +Finished constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 145MB) + +Pre-mapping successful! + +At Mapper Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 59MB peak: 145MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime +# Fri May 10 09:32:36 2019 + +###########################################################] +Map & Optimize Report + +# Fri May 10 09:32:36 2019 + +Synopsys Lattice Technology Mapper, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 113MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 115MB) + + + +Starting Optimization and Mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 144MB) + + +Available hyper_sources - for debug and ip models + None Found + + +Finished RTL optimizations (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + +Encoding state machine sll_state[2:0] (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) +original code -> new code + 00 -> 00 + 01 -> 01 + 11 -> 10 +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1350:0:1350:5|Found counter in view:work.serdes_sync_1sll_core_Z1_layer1(verilog) instance rhb_wait_cnt[7:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1304:0:1304:5|Found counter in view:work.serdes_sync_1sll_core_Z1_layer1(verilog) instance rcount[15:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1759:0:1759:5|Found counter in view:work.serdes_sync_1sll_core_Z1_layer1(verilog) instance pcount[21:0] +@N: BN362 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1801:0:1801:5|Removing sequential instance sll_state[0] (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:PrimLib.dffr(prim) because it does not drive other instances. +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":412:3:412:8|Found counter in view:work.serdes_sync_1rsl_core_Z2_layer1(verilog) instance genblk1\.plol_cnt[19:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":909:3:909:8|Found counter in view:work.serdes_sync_1rsl_core_Z2_layer1(verilog) instance genblk2\.genblk3\.rxr_wt_cnt[11:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":527:3:527:8|Found counter in view:work.serdes_sync_1rsl_core_Z2_layer1(verilog) instance genblk1\.genblk2\.txr_wt_cnt[11:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":778:3:778:8|Found counter in view:work.serdes_sync_1rsl_core_Z2_layer1(verilog) instance genblk2\.rlols0_cnt[17:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":680:3:680:8|Found counter in view:work.serdes_sync_1rsl_core_Z2_layer1(verilog) instance genblk2\.rlol1_cnt[18:0] + +Starting factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + + +Finished factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 144MB) + + +Starting gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + + +Finished gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + + +Finished generic timing optimizations - Pass 1 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 145MB) + + +Starting Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 146MB) + + +Finished Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 146MB) + + +Finished generic timing optimizations - Pass 2 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 146MB) + + +Finished preparing to map (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 146MB) + +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.serdes_sync_1(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.serdes_sync_1(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.serdes_sync_1(v1)). + +Finished technology mapping (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 146MB peak: 148MB) + +Pass CPU time Worst Slack Luts / Registers +------------------------------------------------------------ + 1 0h:00m:01s 5.35ns 151 / 220 +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.serdes_sync_1(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.serdes_sync_1(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.serdes_sync_1(v1)). + +Finished technology timing optimizations and critical path resynthesis (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 146MB peak: 148MB) + +@N: FX164 |The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute. + +Finished restoring hierarchy (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 146MB peak: 148MB) + + + +@S |Clock Optimization Summary + + +#### START OF CLOCK OPTIMIZATION REPORT #####[ + +3 non-gated/non-generated clock tree(s) driving 220 clock pin(s) of sequential element(s) +0 gated/generated clock tree(s) driving 0 clock pin(s) of sequential element(s) +0 instances converted, 0 sequential instances remain driven by gated/generated clocks + +============================================= Non-Gated/Non-Generated Clocks ============================================= +Clock Tree ID Driving Element Drive Element Type Fanout Sample Instance +-------------------------------------------------------------------------------------------------------------------------- +@K:CKID0001 pll_refclki port 90 rsl_inst.genblk1\.genblk2\.mfor\[0\]\.txpr_appd[0] +@K:CKID0002 rxrefclk port 77 rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] +@K:CKID0003 DCU0_inst DCUA 53 sll_inst.pcount_diff[21] +========================================================================================================================== + + +##### END OF CLOCK OPTIMIZATION REPORT ######] + + +Start Writing Netlists (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 111MB peak: 148MB) + +Writing Analyst data base /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/serdes_sync_1_m.srm + +Finished Writing Netlist Databases (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 145MB peak: 148MB) + +Writing EDIF Netlist and constraint files +@N: FX1056 |Writing EDF file: /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.edn +M-2017.03L-SP1-1 +@N: BW106 |Synplicity Constraint File capacitance units using default value of 1pF + +Finished Writing EDIF Netlist and constraint files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 150MB peak: 152MB) + +Writing Verilog Simulation files + +Finished Writing Verilog Simulation files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 150MB peak: 152MB) + +Writing VHDL Simulation files + +Finished Writing VHDL Simulation files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:03s; Memory used current: 150MB peak: 152MB) + + +Start final timing analysis (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 150MB peak: 152MB) + +@W: MT246 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd":160:4:160:12|Blackbox DCUA is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) +@W: MT420 |Found inferred clock serdes_sync_1|rxrefclk with period 10.00ns. Please declare a user-defined clock on object "p:rxrefclk" +@W: MT420 |Found inferred clock serdes_sync_1|pll_refclki with period 10.00ns. Please declare a user-defined clock on object "p:pll_refclki" +@W: MT420 |Found inferred clock serdes_sync_1|tx_pclk_inferred_clock with period 10.00ns. Please declare a user-defined clock on object "n:tx_pclk" + + +##### START OF TIMING REPORT #####[ +# Timing Report written on Fri May 10 09:32:39 2019 +# + + +Top view: serdes_sync_1 +Requested Frequency: 100.0 MHz +Wire load mode: top +Paths requested: 5 +Constraint File(s): /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.fdc + +@N: MT320 |This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. + +@N: MT322 |Clock constraints include only register-to-register paths associated with each individual clock. + + + +Performance Summary +******************* + + +Worst slack in design: 4.079 + +@N: MT286 |System clock period 0.000 stretches to negative invalid value -- ignoring stretching. + Requested Estimated Requested Estimated Clock Clock +Starting Clock Frequency Frequency Period Period Slack Type Group +------------------------------------------------------------------------------------------------------------------------------------------- +serdes_sync_1|pll_refclki 100.0 MHz 168.9 MHz 10.000 5.921 4.079 inferred Inferred_clkgroup_0 +serdes_sync_1|rxrefclk 100.0 MHz 170.5 MHz 10.000 5.864 4.136 inferred Inferred_clkgroup_1 +serdes_sync_1|tx_pclk_inferred_clock 100.0 MHz 237.5 MHz 10.000 4.211 5.789 inferred Inferred_clkgroup_2 +System 100.0 MHz 840.7 MHz 10.000 1.190 8.810 system system_clkgroup +=========================================================================================================================================== + + + + + +Clock Relationships +******************* + +Clocks | rise to rise | fall to fall | rise to fall | fall to rise +------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Starting Ending | constraint slack | constraint slack | constraint slack | constraint slack +------------------------------------------------------------------------------------------------------------------------------------------------------------------- +System System | 10.000 10.000 | No paths - | No paths - | No paths - +System serdes_sync_1|rxrefclk | 10.000 8.811 | No paths - | No paths - | No paths - +serdes_sync_1|pll_refclki System | 10.000 8.307 | No paths - | No paths - | No paths - +serdes_sync_1|pll_refclki serdes_sync_1|pll_refclki | 10.000 4.079 | No paths - | No paths - | No paths - +serdes_sync_1|pll_refclki serdes_sync_1|tx_pclk_inferred_clock | Diff grp - | No paths - | No paths - | No paths - +serdes_sync_1|rxrefclk System | 10.000 8.193 | No paths - | No paths - | No paths - +serdes_sync_1|rxrefclk serdes_sync_1|rxrefclk | 10.000 4.136 | No paths - | No paths - | No paths - +serdes_sync_1|tx_pclk_inferred_clock serdes_sync_1|pll_refclki | Diff grp - | No paths - | No paths - | No paths - +serdes_sync_1|tx_pclk_inferred_clock serdes_sync_1|tx_pclk_inferred_clock | 10.000 5.789 | No paths - | No paths - | No paths - +=================================================================================================================================================================== + Note: 'No paths' indicates there are no paths in the design for that pair of clock edges. + 'Diff grp' indicates that paths exist but the starting clock and ending clock are in different clock groups. + + + +Interface Information +********************* + +No IO constraint found + + + +==================================== +Detailed Report for Clock: serdes_sync_1|pll_refclki +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +----------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[1] serdes_sync_1|pll_refclki FD1S3DX Q plol_cnt[1] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[6] serdes_sync_1|pll_refclki FD1S3DX Q plol_cnt[6] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[7] serdes_sync_1|pll_refclki FD1S3DX Q plol_cnt[7] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[12] serdes_sync_1|pll_refclki FD1S3DX Q plol_cnt[12] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[2] serdes_sync_1|pll_refclki FD1S3DX Q plol_cnt[2] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[3] serdes_sync_1|pll_refclki FD1S3DX Q plol_cnt[3] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[4] serdes_sync_1|pll_refclki FD1S3DX Q plol_cnt[4] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[5] serdes_sync_1|pll_refclki FD1S3DX Q plol_cnt[5] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[8] serdes_sync_1|pll_refclki FD1S3DX Q plol_cnt[8] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[9] serdes_sync_1|pll_refclki FD1S3DX Q plol_cnt[9] 0.907 4.684 +======================================================================================================================= + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +-------------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[19] serdes_sync_1|pll_refclki FD1S3DX D plol_cnt_s[19] 9.946 4.079 +rsl_inst.genblk1\.plol_cnt[17] serdes_sync_1|pll_refclki FD1S3DX D plol_cnt_s[17] 9.946 4.139 +rsl_inst.genblk1\.plol_cnt[18] serdes_sync_1|pll_refclki FD1S3DX D plol_cnt_s[18] 9.946 4.139 +rsl_inst.genblk1\.plol_cnt[15] serdes_sync_1|pll_refclki FD1S3DX D plol_cnt_s[15] 9.946 4.200 +rsl_inst.genblk1\.plol_cnt[16] serdes_sync_1|pll_refclki FD1S3DX D plol_cnt_s[16] 9.946 4.200 +rsl_inst.genblk1\.plol_cnt[13] serdes_sync_1|pll_refclki FD1S3DX D plol_cnt_s[13] 9.946 4.261 +rsl_inst.genblk1\.plol_cnt[14] serdes_sync_1|pll_refclki FD1S3DX D plol_cnt_s[14] 9.946 4.261 +rsl_inst.genblk1\.plol_cnt[11] serdes_sync_1|pll_refclki FD1S3DX D plol_cnt_s[11] 9.946 4.322 +rsl_inst.genblk1\.plol_cnt[12] serdes_sync_1|pll_refclki FD1S3DX D plol_cnt_s[12] 9.946 4.322 +rsl_inst.genblk1\.plol_cnt[9] serdes_sync_1|pll_refclki FD1S3DX D plol_cnt_s[9] 9.946 4.383 +========================================================================================================================== + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 5.867 + - Clock delay at starting point: 0.000 (ideal) + = Slack (critical) : 4.079 + + Number of logic level(s): 15 + Starting point: rsl_inst.genblk1\.plol_cnt[1] / Q + Ending point: rsl_inst.genblk1\.plol_cnt[19] / D + The start point is clocked by serdes_sync_1|pll_refclki [rising] on pin CK + The end point is clocked by serdes_sync_1|pll_refclki [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[1] FD1S3DX Q Out 0.907 0.907 - +plol_cnt[1] Net - - - - 2 +rsl_inst.genblk1\.un1_plol_cnt_tc_10 ORCALUT4 A In 0.000 0.907 - +rsl_inst.genblk1\.un1_plol_cnt_tc_10 ORCALUT4 Z Out 0.606 1.513 - +un1_plol_cnt_tc_10 Net - - - - 1 +rsl_inst.genblk1\.un1_plol_cnt_tc_14 ORCALUT4 D In 0.000 1.513 - +rsl_inst.genblk1\.un1_plol_cnt_tc_14 ORCALUT4 Z Out 0.606 2.119 - +un1_plol_cnt_tc_14 Net - - - - 1 +rsl_inst.genblk1\.un1_plol_cnt_tc ORCALUT4 D In 0.000 2.119 - +rsl_inst.genblk1\.un1_plol_cnt_tc ORCALUT4 Z Out 0.762 2.881 - +un1_plol_cnt_tc Net - - - - 5 +rsl_inst.genblk1\.plol_cnt11_i ORCALUT4 B In 0.000 2.881 - +rsl_inst.genblk1\.plol_cnt11_i ORCALUT4 Z Out 0.840 3.721 - +plol_cnt Net - - - - 21 +rsl_inst.genblk1\.plol_cnt_cry_0[0] CCU2C A1 In 0.000 3.721 - +rsl_inst.genblk1\.plol_cnt_cry_0[0] CCU2C COUT Out 0.900 4.621 - +plol_cnt_cry[0] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[1] CCU2C CIN In 0.000 4.621 - +rsl_inst.genblk1\.plol_cnt_cry_0[1] CCU2C COUT Out 0.061 4.682 - +plol_cnt_cry[2] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[3] CCU2C CIN In 0.000 4.682 - +rsl_inst.genblk1\.plol_cnt_cry_0[3] CCU2C COUT Out 0.061 4.743 - +plol_cnt_cry[4] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[5] CCU2C CIN In 0.000 4.743 - +rsl_inst.genblk1\.plol_cnt_cry_0[5] CCU2C COUT Out 0.061 4.804 - +plol_cnt_cry[6] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[7] CCU2C CIN In 0.000 4.804 - +rsl_inst.genblk1\.plol_cnt_cry_0[7] CCU2C COUT Out 0.061 4.865 - +plol_cnt_cry[8] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[9] CCU2C CIN In 0.000 4.865 - +rsl_inst.genblk1\.plol_cnt_cry_0[9] CCU2C COUT Out 0.061 4.926 - +plol_cnt_cry[10] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[11] CCU2C CIN In 0.000 4.926 - +rsl_inst.genblk1\.plol_cnt_cry_0[11] CCU2C COUT Out 0.061 4.987 - +plol_cnt_cry[12] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[13] CCU2C CIN In 0.000 4.987 - +rsl_inst.genblk1\.plol_cnt_cry_0[13] CCU2C COUT Out 0.061 5.048 - +plol_cnt_cry[14] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[15] CCU2C CIN In 0.000 5.048 - +rsl_inst.genblk1\.plol_cnt_cry_0[15] CCU2C COUT Out 0.061 5.109 - +plol_cnt_cry[16] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[17] CCU2C CIN In 0.000 5.109 - +rsl_inst.genblk1\.plol_cnt_cry_0[17] CCU2C COUT Out 0.061 5.170 - +plol_cnt_cry[18] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_s_0[19] CCU2C CIN In 0.000 5.170 - +rsl_inst.genblk1\.plol_cnt_s_0[19] CCU2C S0 Out 0.698 5.867 - +plol_cnt_s[19] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt[19] FD1S3DX D In 0.000 5.867 - +======================================================================================================= + + + + +==================================== +Detailed Report for Clock: serdes_sync_1|rxrefclk +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------------------------------------------ +rsl_inst.genblk2\.rlol1_cnt[14] serdes_sync_1|rxrefclk FD1P3DX Q rlol1_cnt[14] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[15] serdes_sync_1|rxrefclk FD1P3DX Q rlol1_cnt[15] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[16] serdes_sync_1|rxrefclk FD1P3DX Q rlol1_cnt[16] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[17] serdes_sync_1|rxrefclk FD1P3DX Q rlol1_cnt[17] 0.907 4.136 +rsl_inst.genblk2\.rlols0_cnt[9] serdes_sync_1|rxrefclk FD1P3DX Q rlols0_cnt[9] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[11] serdes_sync_1|rxrefclk FD1P3DX Q rlols0_cnt[11] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[12] serdes_sync_1|rxrefclk FD1P3DX Q rlols0_cnt[12] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[13] serdes_sync_1|rxrefclk FD1P3DX Q rlols0_cnt[13] 0.907 4.170 +rsl_inst.genblk2\.rlol1_cnt[0] serdes_sync_1|rxrefclk FD1P3DX Q rlol1_cnt[0] 0.907 4.742 +rsl_inst.genblk2\.rlol1_cnt[1] serdes_sync_1|rxrefclk FD1P3DX Q rlol1_cnt[1] 0.907 4.742 +======================================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rlol1_cnt[17] serdes_sync_1|rxrefclk FD1P3DX D rlol1_cnt_s[17] 9.946 4.136 +rsl_inst.genblk2\.rlol1_cnt[18] serdes_sync_1|rxrefclk FD1P3DX D rlol1_cnt_s[18] 9.946 4.136 +rsl_inst.genblk2\.rlols0_cnt[17] serdes_sync_1|rxrefclk FD1P3DX D rlols0_cnt_s[17] 9.946 4.170 +rsl_inst.genblk2\.rlol1_cnt[15] serdes_sync_1|rxrefclk FD1P3DX D rlol1_cnt_s[15] 9.946 4.197 +rsl_inst.genblk2\.rlol1_cnt[16] serdes_sync_1|rxrefclk FD1P3DX D rlol1_cnt_s[16] 9.946 4.197 +rsl_inst.genblk2\.rlols0_cnt[15] serdes_sync_1|rxrefclk FD1P3DX D rlols0_cnt_s[15] 9.946 4.231 +rsl_inst.genblk2\.rlols0_cnt[16] serdes_sync_1|rxrefclk FD1P3DX D rlols0_cnt_s[16] 9.946 4.231 +rsl_inst.genblk2\.rlol1_cnt[13] serdes_sync_1|rxrefclk FD1P3DX D rlol1_cnt_s[13] 9.946 4.258 +rsl_inst.genblk2\.rlol1_cnt[14] serdes_sync_1|rxrefclk FD1P3DX D rlol1_cnt_s[14] 9.946 4.258 +rsl_inst.genblk2\.rlols0_cnt[13] serdes_sync_1|rxrefclk FD1P3DX D rlols0_cnt_s[13] 9.946 4.292 +=========================================================================================================================== + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 5.809 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : 4.136 + + Number of logic level(s): 14 + Starting point: rsl_inst.genblk2\.rlol1_cnt[14] / Q + Ending point: rsl_inst.genblk2\.rlol1_cnt[18] / D + The start point is clocked by serdes_sync_1|rxrefclk [rising] on pin CK + The end point is clocked by serdes_sync_1|rxrefclk [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +-------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rlol1_cnt[14] FD1P3DX Q Out 0.907 0.907 - +rlol1_cnt[14] Net - - - - 2 +rsl_inst.rlol1_cnt_tc_1_10 ORCALUT4 A In 0.000 0.907 - +rsl_inst.rlol1_cnt_tc_1_10 ORCALUT4 Z Out 0.606 1.513 - +rlol1_cnt_tc_1_10 Net - - - - 1 +rsl_inst.rlol1_cnt_tc_1_14 ORCALUT4 D In 0.000 1.513 - +rsl_inst.rlol1_cnt_tc_1_14 ORCALUT4 Z Out 0.606 2.119 - +rlol1_cnt_tc_1_14 Net - - - - 1 +rsl_inst.rlol1_cnt_tc_1 ORCALUT4 D In 0.000 2.119 - +rsl_inst.rlol1_cnt_tc_1 ORCALUT4 Z Out 0.768 2.887 - +rlol1_cnt_tc_1 Net - - - - 6 +rsl_inst.genblk2\.rlos_db_p1_RNIS0OP ORCALUT4 A In 0.000 2.887 - +rsl_inst.genblk2\.rlos_db_p1_RNIS0OP ORCALUT4 Z Out 0.837 3.724 - +rlol1_cnt Net - - - - 20 +rsl_inst.genblk2\.rlol1_cnt_cry_0[0] CCU2C A1 In 0.000 3.724 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[0] CCU2C COUT Out 0.900 4.624 - +rlol1_cnt_cry[0] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[1] CCU2C CIN In 0.000 4.624 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[1] CCU2C COUT Out 0.061 4.685 - +rlol1_cnt_cry[2] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[3] CCU2C CIN In 0.000 4.685 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[3] CCU2C COUT Out 0.061 4.746 - +rlol1_cnt_cry[4] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[5] CCU2C CIN In 0.000 4.746 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[5] CCU2C COUT Out 0.061 4.807 - +rlol1_cnt_cry[6] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[7] CCU2C CIN In 0.000 4.807 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[7] CCU2C COUT Out 0.061 4.868 - +rlol1_cnt_cry[8] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[9] CCU2C CIN In 0.000 4.868 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[9] CCU2C COUT Out 0.061 4.929 - +rlol1_cnt_cry[10] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[11] CCU2C CIN In 0.000 4.929 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[11] CCU2C COUT Out 0.061 4.990 - +rlol1_cnt_cry[12] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[13] CCU2C CIN In 0.000 4.990 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[13] CCU2C COUT Out 0.061 5.051 - +rlol1_cnt_cry[14] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[15] CCU2C CIN In 0.000 5.051 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[15] CCU2C COUT Out 0.061 5.112 - +rlol1_cnt_cry[16] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[17] CCU2C CIN In 0.000 5.112 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[17] CCU2C S1 Out 0.698 5.809 - +rlol1_cnt_s[18] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt[18] FD1P3DX D In 0.000 5.809 - +======================================================================================================== + + + + +==================================== +Detailed Report for Clock: serdes_sync_1|tx_pclk_inferred_clock +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------------------------------------------------- +sll_inst.ppul_sync_p1 serdes_sync_1|tx_pclk_inferred_clock FD1S3DX Q ppul_sync_p1 1.098 5.789 +sll_inst.ppul_sync_p2 serdes_sync_1|tx_pclk_inferred_clock FD1S3DX Q ppul_sync_p2 1.098 5.789 +sll_inst.pcount_diff[0] serdes_sync_1|tx_pclk_inferred_clock FD1P3BX Q un13_lock_0 0.985 6.147 +sll_inst.pcount[0] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX Q pcount[0] 0.955 6.178 +sll_inst.pcount_diff[1] serdes_sync_1|tx_pclk_inferred_clock FD1P3BX Q un13_lock_1 0.955 6.239 +sll_inst.pcount_diff[2] serdes_sync_1|tx_pclk_inferred_clock FD1P3BX Q un13_lock_2 0.955 6.239 +sll_inst.pcount[1] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX Q pcount[1] 0.907 6.287 +sll_inst.pcount[2] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX Q pcount[2] 0.907 6.287 +sll_inst.pcount_diff[3] serdes_sync_1|tx_pclk_inferred_clock FD1P3BX Q un13_lock_3 0.955 6.300 +sll_inst.pcount_diff[4] serdes_sync_1|tx_pclk_inferred_clock FD1P3BX Q un13_lock_4 0.955 6.300 +=========================================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +-------------------------------------------------------------------------------------------------------------------------------------------- +sll_inst.pcount[21] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX D pcount_s[21] 9.946 5.789 +sll_inst.pcount[19] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX D pcount_s[19] 9.946 5.850 +sll_inst.pcount[20] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX D pcount_s[20] 9.946 5.850 +sll_inst.pcount[17] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX D pcount_s[17] 9.946 5.911 +sll_inst.pcount[18] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX D pcount_s[18] 9.946 5.911 +sll_inst.pcount[15] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX D pcount_s[15] 9.946 5.972 +sll_inst.pcount[16] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX D pcount_s[16] 9.946 5.972 +sll_inst.pcount[13] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX D pcount_s[13] 9.946 6.033 +sll_inst.pcount[14] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX D pcount_s[14] 9.946 6.033 +sll_inst.pcount_diff[21] serdes_sync_1|tx_pclk_inferred_clock FD1P3DX D un1_pcount_diff_1_s_21_0_S0 9.946 6.034 +============================================================================================================================================ + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 4.157 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : 5.789 + + Number of logic level(s): 13 + Starting point: sll_inst.ppul_sync_p1 / Q + Ending point: sll_inst.pcount[21] / D + The start point is clocked by serdes_sync_1|tx_pclk_inferred_clock [rising] on pin CK + The end point is clocked by serdes_sync_1|tx_pclk_inferred_clock [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +-------------------------------------------------------------------------------------------- +sll_inst.ppul_sync_p1 FD1S3DX Q Out 1.098 1.098 - +ppul_sync_p1 Net - - - - 25 +sll_inst.pcount10_0_o3 ORCALUT4 A In 0.000 1.098 - +sll_inst.pcount10_0_o3 ORCALUT4 Z Out 0.851 1.950 - +N_8 Net - - - - 25 +sll_inst.pcount_cry_0[0] CCU2C A1 In 0.000 1.950 - +sll_inst.pcount_cry_0[0] CCU2C COUT Out 0.900 2.850 - +pcount_cry[0] Net - - - - 1 +sll_inst.pcount_cry_0[1] CCU2C CIN In 0.000 2.850 - +sll_inst.pcount_cry_0[1] CCU2C COUT Out 0.061 2.911 - +pcount_cry[2] Net - - - - 1 +sll_inst.pcount_cry_0[3] CCU2C CIN In 0.000 2.911 - +sll_inst.pcount_cry_0[3] CCU2C COUT Out 0.061 2.972 - +pcount_cry[4] Net - - - - 1 +sll_inst.pcount_cry_0[5] CCU2C CIN In 0.000 2.972 - +sll_inst.pcount_cry_0[5] CCU2C COUT Out 0.061 3.033 - +pcount_cry[6] Net - - - - 1 +sll_inst.pcount_cry_0[7] CCU2C CIN In 0.000 3.033 - +sll_inst.pcount_cry_0[7] CCU2C COUT Out 0.061 3.094 - +pcount_cry[8] Net - - - - 1 +sll_inst.pcount_cry_0[9] CCU2C CIN In 0.000 3.094 - +sll_inst.pcount_cry_0[9] CCU2C COUT Out 0.061 3.155 - +pcount_cry[10] Net - - - - 1 +sll_inst.pcount_cry_0[11] CCU2C CIN In 0.000 3.155 - +sll_inst.pcount_cry_0[11] CCU2C COUT Out 0.061 3.216 - +pcount_cry[12] Net - - - - 1 +sll_inst.pcount_cry_0[13] CCU2C CIN In 0.000 3.216 - +sll_inst.pcount_cry_0[13] CCU2C COUT Out 0.061 3.277 - +pcount_cry[14] Net - - - - 1 +sll_inst.pcount_cry_0[15] CCU2C CIN In 0.000 3.277 - +sll_inst.pcount_cry_0[15] CCU2C COUT Out 0.061 3.338 - +pcount_cry[16] Net - - - - 1 +sll_inst.pcount_cry_0[17] CCU2C CIN In 0.000 3.338 - +sll_inst.pcount_cry_0[17] CCU2C COUT Out 0.061 3.399 - +pcount_cry[18] Net - - - - 1 +sll_inst.pcount_cry_0[19] CCU2C CIN In 0.000 3.399 - +sll_inst.pcount_cry_0[19] CCU2C COUT Out 0.061 3.460 - +pcount_cry[20] Net - - - - 1 +sll_inst.pcount_s_0[21] CCU2C CIN In 0.000 3.460 - +sll_inst.pcount_s_0[21] CCU2C S0 Out 0.698 4.157 - +pcount_s[21] Net - - - - 1 +sll_inst.pcount[21] FD1S3DX D In 0.000 4.157 - +============================================================================================ + + + + +==================================== +Detailed Report for Clock: System +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------------- +DCU0_inst System DCUA CH0_FFS_RLOL rx_cdr_lol_s 0.000 8.810 +DCU0_inst System DCUA CH0_FFS_RLOS rx_los_low_s 0.000 8.810 +DCU0_inst System DCUA CH0_FF_RX_PCLK rx_pclk 0.000 10.000 +=========================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] System FD1P3DX SP un2_rdo_serdes_rst_dual_c_2_i 9.806 8.810 +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] System FD1P3DX D un2_rdo_serdes_rst_dual_c_1 9.946 9.556 +rsl_inst.genblk2\.rlol_p1 System FD1S3DX D rx_cdr_lol_s 9.946 9.946 +rsl_inst.genblk2\.rlos_p1 System FD1S3DX D rx_los_low_s 9.946 9.946 +DCU0_inst System DCUA CH0_FF_RXI_CLK rx_pclk 10.000 10.000 +========================================================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.194 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.806 + + - Propagation time: 0.996 + - Clock delay at starting point: 0.000 (ideal) + - Estimated clock delay at start point: -0.000 + = Slack (non-critical) : 8.810 + + Number of logic level(s): 2 + Starting point: DCU0_inst / CH0_FFS_RLOL + Ending point: rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] / SP + The start point is clocked by System [rising] + The end point is clocked by serdes_sync_1|rxrefclk [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +--------------------------------------------------------------------------------------------------------------------------------- +DCU0_inst DCUA CH0_FFS_RLOL Out 0.000 0.000 - +rx_cdr_lol_s Net - - - - 4 +rsl_inst.un2_rdo_serdes_rst_dual_c_2_0 ORCALUT4 B In 0.000 0.000 - +rsl_inst.un2_rdo_serdes_rst_dual_c_2_0 ORCALUT4 Z Out 0.606 0.606 - +un2_rdo_serdes_rst_dual_c_2_0 Net - - - - 1 +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd_RNO[0] ORCALUT4 B In 0.000 0.606 - +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd_RNO[0] ORCALUT4 Z Out 0.390 0.996 - +un2_rdo_serdes_rst_dual_c_2_i Net - - - - 1 +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] FD1P3DX SP In 0.000 0.996 - +================================================================================================================================= + + + +##### END OF TIMING REPORT #####] + +Timing exceptions that could not be applied +None + +Finished final timing analysis (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 150MB peak: 152MB) + + +Finished timing report (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 150MB peak: 152MB) + +--------------------------------------- +Resource Usage Report +Part: lfe5um_25f-6 + +Register bits: 220 of 24288 (1%) +PIC Latch: 0 +I/O cells: 0 + + +Details: +CCU2C: 113 +DCUA: 1 +FD1P3BX: 20 +FD1P3DX: 92 +FD1S3BX: 12 +FD1S3DX: 96 +GSR: 1 +INV: 3 +ORCALUT4: 150 +PFUMX: 2 +PUR: 1 +VHI: 6 +VLO: 6 +Mapper successful! + +At Mapper Exit (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 35MB peak: 152MB) + +Process took 0h:00m:03s realtime, 0h:00m:03s cputime +# Fri May 10 09:32:40 2019 + +###########################################################] diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/dm/layer0.xdm b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/dm/layer0.xdm new file mode 100644 index 0000000..9cf4948 --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/dm/layer0.xdm @@ -0,0 +1,542 @@ +%%% protect protected_file +@EG +- +]17p0Osk0CksRsPC#MHF=3"4j +"> +!S<-1-RFOksCHRVDRC#O0FMskHL0oHMRR0F0REC8HC#o-MR-S> +S +SS1SS1SS +SS1SS1SS1S +SF<1kCsOR"b=/lEFCF/#VD0/NH00O8C/HFNlMd8/3_4jG/nc#b$MLCN#/LDH/8PE/bE$CMsC0P#3ER8"N(=""=RD"8PEDO"RD0H#=4"-"DRbH=#0""-4/S> +SF<1kCsOR"b=/lEFC8/NsMHN/0oH/L0s6/#O0bClDCN0/Fbs[0CO/#0C0V_#bC/#s#8C_M#$O/_j#8CsC##_$_MO4C/#s#8C_M#$O3_4P"E8R"N=UD"R=E"P8RD"O#DH0-="4b"RD0H#=4"-" +/>S1SS1 +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMI="F3s #8CsC##_$_MO4D#D_sOFC$3#MD_LN_O L"FGR"D=PDE8"S> +SR +SRS +SSqS +SRSqSSqS"/ +"/ +"/ +"/ + +SRS +SS +S +SR"/ +SuSS +SS +S"/ +"/ +"/ +"/ +/S<7>CV +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMI="F3s #8CsC##_$_MO4Ds#_sOFC$3#MD_LN_O L"FGR"D=PDE8"S> +SRR/ +SqSS +S"/ +S +SS +S +SR +SRSuSSuS"/ +"/ + +SR +SRS +S"/ +"/ +"/ +"/ +/S<7>CV +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMC="Okb6lB37z#q3$LM_D NO_GLF"=RD"8PED +">SWSS +S"/ +SqS +SRSqSS +SSqSS +SSuSS +SSuSS +SSuS"/ + +SR +SR +SR"/ +S +S +SR +SR"/ +"/ +S +S"/ + +SR +SR +SRSuS"/ +S +S +SR +SR +SR"/ + +SR"/ + +SRSuS"/ +SuS +SR +SR +SR +SR +SRSuS"/ +S +S +SR"/ + +SR +SR +SR +SR +SRS +S"/ +SuS +SR"/ + +SR"/ + +SRS +S"/ +S +S +SR"/ + +SRS +S"/ + +SR"/ + +SR"/ +S +S +SRSuSS +S"/ +SuS +SR +SR +SR"/ +S +S +SRSuS"/ +"/ +"/ +"/ +"/ +S +S +SR"/ +"/ +"/ +SuS +SR +SR +SR"/ + +SR +SR +SRSuS"/ +S +S +SR +SR +SR +SR +SRS +S"/ +"/ +"/ +SuS +SR"/ + +SRSuS"/ + +SR"/ +SuS +SRS +S"/ +SuS +SRSuS"/ +S +S +SRS +S"/ +S +S +SRSuS"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ + +SR"/ +S +S +SRSuS"/ +SuS +SR +SR +SR +SR +SRSuS"/ +S +S +SRS +S"/ +"/ +"/ +SuS +SR"/ + +SR +SR +SR +SR +SRS +S"/ +SuS +SRS +S"/ +SuS +SRS +S"/ +"/ +"/ +SuS +SRS +S"/ +"/ +"/ +SuS +SRS +S"/ +SuS +SR"/ + +SRSuS"/ + +SR"/ +SuS +SRS +S"/ +SuS +SRSuS"/ +S +S +SRSuS"/ +"/ +"/ +"/ +"/ + +SR"/ +S +S +SRS +S"/ + +SR"/ + +SR"/ +"/ +"/ +S +S +SR"/ + +SR +SR +SRSuSSuSSuS +SR"/ + +SR"/ +"/ +SuS +SRS +S"/ +SqS"/ +"/ +"/ +SqSSqSSqSSqS + + + +/S<7>CV +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMI="F3s #8CsC##_$_MO443P"=RD"8PED +">SWSR/ +SqS"/ +"/ +"/ +SqSS +SSqS + + +SC<)V=RM"bCO63kl7qBz3M#$_NLDOL _FRG"H7="B_zjH0M#"S> +SWS +SqSS +SSR +SqSS +SqSS +SSR"/ +SSSS"/ +SSS +SqSS +SSRS +SqS +SqS +SqSSSS +SSR +SqS +SqS"/ +SSS +SqSS +SSR +SqS"/ +SSS"/ +SSS"/ +SSSS +SSR +SqS"/ +SSSS +SqSS +SSRS"/ +SSS +SqSS +SSR"/ +SSSSS +SqSS +SSR +SqSS"/ +SSSS +SSR +SqSSS +SSRSS +SqSS +SqS"/ +SSSS +SSRS +SSRS +SSR"/ +SSSS +SSRS +SqS +SqSS"/ +SSSS +SSR +SqSS"/ +SSS +SqS"/ +SSSS +SSR +SqSS"/ +SSS +SqSS +SqSS"/ +SSSS +SSRS +SSR"/ +SSS +SqSSS +SSR"/ +SSS"/ +SSSSS"/ +SSSS +SSR +SqS +SqSS +SSR +SqSS +SSRS +SqS"/ +SSS +SqSSS +SSRS +SSRS"/ +SSSS +SSRS +SSRS +SSR +SqSS +SSRS +SqSS +SSR"/ +SSSS +SqSS +SSR +SqS"/ +SSS"/ +SSSS +SSR"/ +SSSS +SSRS +SqS"/ +SSSS"/ +SSSS +SSR"/ +SSSS +SSRSS +SSRS +SSR +SqSSSS +SSR"/ +SSSSS +SSR"/ +SSS"/ +SSS +SqSS +SSR"/ +SSSS +SSRSS +SqS"/ +SSS +SqS +SqSS +SSR"/ +S +SSS"/ +S +SSS"/ +< +S/V7C>/ +<]17p0Osk0Cks> +@ diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/dm/layer1.xdm b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/dm/layer1.xdm new file mode 100644 index 0000000..33af778 --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/dm/layer1.xdm @@ -0,0 +1,253 @@ +%%% protect protected_file +@EG +- +]17p0Osk0CksRsPC#MHF=3"4j +"> +!S<-1-RFOksCHRVDRC#O0FMskHL0oHMRR0F0REC8HC#o-MR-S> +S +S +SF<1kCsOR"b=/lEFCF/#VD0/NH00O8C/HFNlMd8/3_4jG/nc#b$MLCN#/LDH/ODkC/M0b_lH83CVPN"R=""4R"D=PHCsD"FoRHOD#"0=-R4"b#DH0-="4>"/ + +SF<1kCsOR"b=/lEFCF/#VD0/NH00O8C/HFNlMd8/3_4jG/nc#b$MLCN#/LDH/FPDol/ksN_Ob3HlPN"R=""dR"D=PHCsD"FoRHOD#"0=-R4"b#DH0-="4>"/ + +SF<1kCsOR"b=/lEFCF/#VD0/NH00O8C/HFNlMd8/3_4jG/nc#b$MLCN#/LDH/FPDoO/#C_lHbCHb#P3#EN"R=""6R"D=PHCsD"FoRHOD#"0=-R4"b#DH0-="4>"/ +"/ +/S<1sFkO>C# +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMI="F3s #8CsC##_$_MO4Ds#_sOFC._Z_$DNC3s4PHCsD"FoR"D=PHCsD"Fo>S +S +SRSqSSqSSuS +SR +SR"/ +"/ +S +SS +S +SR"/ +"/ +SuSSuS +SR"/ +SuSSuS +SRS +S"/ + +SR"/ + +SR"/ +SuSS +SSqSS +SSqS"/ +"/ +"/ +"/ + + +/S<7>CV +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMI="F3s #O$M_3j#PHCsD"FoR"D=PHCsD"Fo>S +S +SRSqS +SRSuS +SR +SRS +SS +SS +S +/S<7>CV +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMI="F3s #8CsC##_$_MO4D#D_sOFC4_Z_$DNC3s4PHCsD"FoR"D=PHCsD"Fo>S +S +SRSqSSqSSuSSuSS +S"/ + +SRSuSSuS +SR"/ +"/ +"/ + +SRSuS"/ + +SRSuS +SR +SR +SR +SRSuS"/ +"/ +"/ +S +S +SRSuS"/ +"/ +S +S +SRSuS"/ +S +S +SR"/ + +SRSuSS +SSuSS +SSuSS +S"/ +SuS +SRS +S"/ +SuSSuSSuSSuSSuS +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR"/ + +SR +SR +SR +SR"/ + + + +SC<)V=RM"sIF $3#MjO_#C3PsFHDoH"R=E"bL$_#MHO_M"#0>S +SSRR/ +SSS"/ +SSS"/ +SSSS/S<)>CV +S +SqS +SqS +SqSS +S +SC<)V=RM"sIF $3#MjO_#C3PsFHDoH"R=8"bH_VV#O$M_#HM0 +">S +SqS +SqS +SqSS +S +SC<)V=RM"sIF $3#MjO_#C3PsFHDoH"R=C"oN#s_$_MOH0M#"S> +SWSS +SSRS +SSRS +SSR"/ +S +SS +SSRR/ +SSS"/ +SSS"/ +SSSS/S<)>CV +S +SSRR/ +SSS"/ +SSS"/ +SSSS/S<)>CV +0" +SSSSSS +S)S)SS +SqS +SqS +SqSS +S + +/p]71k0sOs0kC@> + + + + diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/run_options.txt b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/run_options.txt new file mode 100644 index 0000000..4af0c5d --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/run_options.txt @@ -0,0 +1,76 @@ +#-- Synopsys, Inc. +#-- Version M-2017.03L-SP1-1 +#-- Project file /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/run_options.txt +#-- Written on Fri May 10 10:23:30 2019 + + +#project files +add_file -vhdl -lib work "/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd" +add_file -verilog "/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v" +add_file -fpga_constraint "/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.fdc" + + + +#implementation: "syn_results" +impl -add syn_results -type fpga + +# +#implementation attributes + +set_option -vlog_std v2001 + +#device options +set_option -technology ecp5um +set_option -part LFE5UM_25F +set_option -package MG285C +set_option -speed_grade -6 +set_option -part_companion "" + +#compilation/mapping options +set_option -top_module "serdes_sync_1" + +# hdl_compiler_options +set_option -distributed_compile 0 + +# mapper_without_write_options +set_option -frequency 100 +set_option -srs_instrumentation 1 + +# mapper_options +set_option -write_verilog 1 +set_option -write_vhdl 1 + +# Lattice XP +set_option -maxfan 50 +set_option -disable_io_insertion 1 +set_option -retiming 0 +set_option -pipe 0 +set_option -forcegsr false +set_option -fix_gated_and_generated_clocks 1 +set_option -rw_check_on_ram 1 +set_option -update_models_cp 0 +set_option -syn_edif_array_rename 1 +set_option -Write_declared_clocks_only 1 + +# NFilter +set_option -no_sequential_opt 0 + +# sequential_optimization_options +set_option -symbolic_fsm_compiler 1 + +# Compiler Options +set_option -compiler_compatible 0 +set_option -resource_sharing 1 + +# Compiler Options +set_option -auto_infer_blackbox 0 + +#automatic place and route (vendor) options +set_option -write_apr_constraint 1 + +#set result format/file last +project -result_file "./serdes_sync_1.edn" + +#set log file +set_option log_file "/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.srf" +impl -active "syn_results" diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/scemi_cfg.txt b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/scemi_cfg.txt new file mode 100644 index 0000000..868d437 --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/scemi_cfg.txt @@ -0,0 +1,3 @@ +## UMR3 MESSAGE PORT CONFIGURATION FILE +## ************************************ +XTOR_DPI_MSG_PORT_UMR_ADDR_VERSION=0 diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/scratchproject.prs b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/scratchproject.prs new file mode 100644 index 0000000..27162ad --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/scratchproject.prs @@ -0,0 +1,74 @@ +#-- Synopsys, Inc. +#-- Version M-2017.03L-SP1-1 +#-- Project file /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/scratchproject.prs + +#project files +add_file -vhdl -lib work "/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd" +add_file -verilog "/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v" +add_file -fpga_constraint "/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.fdc" + + + +#implementation: "syn_results" +impl -add /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results -type fpga + +# +#implementation attributes + +set_option -vlog_std v2001 + +#device options +set_option -technology ecp5um +set_option -part LFE5UM_25F +set_option -package MG285C +set_option -speed_grade -6 +set_option -part_companion "" + +#compilation/mapping options +set_option -top_module "serdes_sync_1" + +# hdl_compiler_options +set_option -distributed_compile 0 + +# mapper_without_write_options +set_option -frequency 100 +set_option -srs_instrumentation 1 + +# mapper_options +set_option -write_verilog 1 +set_option -write_vhdl 1 + +# Lattice XP +set_option -maxfan 50 +set_option -disable_io_insertion 1 +set_option -retiming 0 +set_option -pipe 0 +set_option -forcegsr false +set_option -fix_gated_and_generated_clocks 1 +set_option -rw_check_on_ram 1 +set_option -update_models_cp 0 +set_option -syn_edif_array_rename 1 +set_option -Write_declared_clocks_only 1 + +# NFilter +set_option -no_sequential_opt 0 + +# sequential_optimization_options +set_option -symbolic_fsm_compiler 1 + +# Compiler Options +set_option -compiler_compatible 0 +set_option -resource_sharing 1 + +# Compiler Options +set_option -auto_infer_blackbox 0 + +#automatic place and route (vendor) options +set_option -write_apr_constraint 1 + +#set result format/file last +project -result_file "/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.edn" + +#set log file +set_option log_file "/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.srf" +impl -active "syn_results" diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.areasrr b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.areasrr new file mode 100644 index 0000000..0e55e08 --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.areasrr @@ -0,0 +1,97 @@ +---------------------------------------------------------------------- +Report for cell serdes_sync_1.v1 + +Register bits: 220 of 24288 (1%) +PIC Latch: 0 +I/O cells: 0 + Cell usage: + cell count Res Usage(%) + CCU2C 113 100.0 + DCUA 1 100.0 + FD1P3BX 20 100.0 + FD1P3DX 92 100.0 + FD1S3BX 12 100.0 + FD1S3DX 96 100.0 + GSR 1 100.0 + INV 3 100.0 + ORCALUT4 150 100.0 + PFUMX 2 100.0 + PUR 1 100.0 + VHI 6 100.0 + VLO 6 100.0 +SUB MODULES + serdes_sync_1rsl_core_Z2_layer1 1 100.0 + serdes_sync_1sll_core_Z1_layer1 1 100.0 + sync_0s 1 100.0 + sync_0s_0 1 100.0 + sync_0s_6 1 100.0 + + TOTAL 508 +---------------------------------------------------------------------- +Report for cell serdes_sync_1rsl_core_Z2_layer1.netlist + Instance path: rsl_inst + Cell usage: + cell count Res Usage(%) + CCU2C 51 45.1 + FD1P3BX 4 20.0 + FD1P3DX 74 80.4 + FD1S3BX 12 100.0 + FD1S3DX 37 38.5 + ORCALUT4 99 66.0 + PFUMX 2 100.0 + VHI 1 16.7 + VLO 1 16.7 + + TOTAL 281 +---------------------------------------------------------------------- +Report for cell serdes_sync_1sll_core_Z1_layer1.netlist + Instance path: sll_inst + Cell usage: + cell count Res Usage(%) + CCU2C 62 54.9 + FD1P3BX 16 80.0 + FD1P3DX 18 19.6 + FD1S3DX 59 61.5 + INV 3 100.0 + ORCALUT4 51 34.0 + VHI 4 66.7 + VLO 4 66.7 +SUB MODULES + sync_0s 1 100.0 + sync_0s_0 1 100.0 + sync_0s_6 1 100.0 + + TOTAL 220 +---------------------------------------------------------------------- +Report for cell sync_0s_0.netlist + Original Cell name sync_0s + Instance path: sll_inst.pdiff_sync_inst + Cell usage: + cell count Res Usage(%) + FD1S3DX 2 2.1 + VHI 1 16.7 + VLO 1 16.7 + + TOTAL 4 +---------------------------------------------------------------------- +Report for cell sync_0s_6.netlist + Original Cell name sync_0s + Instance path: sll_inst.rtc_sync_inst + Cell usage: + cell count Res Usage(%) + FD1S3DX 2 2.1 + VHI 1 16.7 + VLO 1 16.7 + + TOTAL 4 +---------------------------------------------------------------------- +Report for cell sync_0s.netlist + Original Cell name sync_0s + Instance path: sll_inst.phb_sync_inst + Cell usage: + cell count Res Usage(%) + FD1S3DX 2 2.1 + VHI 1 16.7 + VLO 1 16.7 + + TOTAL 4 diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.fse b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.fse new file mode 100644 index 0000000..f4aa273 --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.fse @@ -0,0 +1,10 @@ + +fsm_encoding {61801018011} sequential + +fsm_state_encoding {61801018011} LPLL_LOSS_ST {00} + +fsm_state_encoding {61801018011} LPLL_PRELOSS_ST {01} + +fsm_state_encoding {61801018011} LPLL_LOCK_ST {10} + +fsm_registers {61801018011} {sll_state[1]} {sll_state[0]} diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.htm b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.htm new file mode 100644 index 0000000..757e0e6 --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.htm @@ -0,0 +1,9 @@ + + + syntmp/serdes_sync_1_srr.htm log file + + + + + + diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.prj b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.prj new file mode 100644 index 0000000..e8c4120 --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.prj @@ -0,0 +1,47 @@ +#-- Lattice Semiconductor Corporation Ltd. +#-- Synplify OEM project file /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.prj +#-- Written on Fri May 10 10:23:30 2019 + + +#device options +set_option -technology ecp5um +set_option -part LFE5UM-85F +set_option -speed_grade 8 + +#use verilog 2001 standard option +set_option -vlog_std v2001 + +#map options +set_option -frequency 100 +set_option -fanout_limit 50 +set_option -disable_io_insertion true +set_option -retiming false +set_option -pipe false +set_option -pipe false +set_option -force_gsr false + +#simulation options +set_option -write_verilog true +set_option -write_vhdl true + +#timing analysis options + +#automatic place and route (vendor) options +set_option -write_apr_constraint 1 + +#-- add_file options +add_file -vhdl -lib work "/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd" +add_file -verilog -lib work "/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v" +add_file -constraint {"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.fdc"} + +#-- top module name +set_option -top_module serdes_sync_1 + +#-- set result format/file last +project -result_file "serdes_sync_1.edn" + +#-- error message log file +project -log_file serdes_sync_1.srf + +#-- run Synplify with 'arrange VHDL file' +project -run diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.srd b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.srd new file mode 100644 index 0000000000000000000000000000000000000000..6e49b641d14b951c6cf0e66fd4eb3e64942319cf GIT binary patch literal 72782 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

    }N_V|zI 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 D*vuTL literal 0 HcmV?d00001 diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.srf b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.srf new file mode 100644 index 0000000..6dd20a1 --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.srf @@ -0,0 +1,1147 @@ +#Build: Synplify Pro (R) M-2017.03L-SP1-1, Build 086R, Aug 4 2017 +#install: /home/soft/lattice/diamond/3.10_x64/synpbase +#OS: Linux +#Hostname: lxhadeb07 + +# Fri May 10 10:23:30 2019 + +#Implementation: syn_results + +Synopsys HDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Synopsys VHDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd":30:7:30:19|Top entity is set to serdes_sync_1. +VHDL syntax check successful! +File /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd changed - recompiling + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB) + + +Process completed successfully. +# Fri May 10 10:23:30 2019 + +###########################################################] +Synopsys Verilog Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps) +@I::"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v" (library work) +Verilog syntax check successful! + +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB) + + +Process completed successfully. +# Fri May 10 10:23:31 2019 + +###########################################################] +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd":30:7:30:19|Top entity is set to serdes_sync_1. +File /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd changed - recompiling +File /home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd changed - recompiling +VHDL syntax check successful! +File /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd changed - recompiling +@N: CD630 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd":30:7:30:19|Synthesizing work.serdes_sync_1.v1. +Post processing for work.serdes_sync_1.v1 + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 74MB peak: 76MB) + + +Process completed successfully. +# Fri May 10 10:23:31 2019 + +###########################################################] +Running on host :lxhadeb07 +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps) +@I::"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v" (library work) +Verilog syntax check successful! +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +@N: CG364 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1968:7:1968:10|Synthesizing module sync in library work. + + PDATA_RST_VAL=32'b00000000000000000000000000000000 + Generated name = sync_0s +@N: CG364 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1051:7:1051:27|Synthesizing module serdes_sync_1sll_core in library work. + + PPROTOCOL=48'b010001110011100001000010001100010011000001000010 + PLOL_SETTING=32'b00000000000000000000000000000001 + PDYN_RATE_CTRL=64'b0100010001001001010100110100000101000010010011000100010101000100 + PPCIE_MAX_RATE=24'b001100100010111000110101 + PDIFF_VAL_LOCK=32'b00000000000000000000000000100111 + PDIFF_VAL_UNLOCK=32'b00000000000000000000000100000110 + PPCLK_TC=32'b00000000000000100000000000000000 + PDIFF_DIV11_VAL_LOCK=32'b00000000000000000000000000000000 + PDIFF_DIV11_VAL_UNLOCK=32'b00000000000000000000000000000000 + PPCLK_DIV11_TC=32'b00000000000000000000000000000000 + LPLL_LOSS_ST=2'b00 + LPLL_PRELOSS_ST=2'b01 + LPLL_PRELOCK_ST=2'b10 + LPLL_LOCK_ST=2'b11 + LRCLK_TC=16'b1111111111111111 + LRCLK_TC_PUL_WIDTH=16'b0000000000110010 + LHB_WAIT_CNT=8'b11111111 + LPCLK_TC_0=32'b00000000000000001000000000000000 + LPCLK_TC_1=32'b00000000000000010000000000000000 + LPCLK_TC_2=32'b00000000000000100000000000000000 + LPCLK_TC_3=32'b00000000000000101000000000000000 + LPCLK_TC_4=32'b00000000000000010000000000000000 + LPDIFF_LOCK_00=32'b00000000000000000000000000001001 + LPDIFF_LOCK_10=32'b00000000000000000000000000010011 + LPDIFF_LOCK_20=32'b00000000000000000000000000100111 + LPDIFF_LOCK_30=32'b00000000000000000000000000110001 + LPDIFF_LOCK_40=32'b00000000000000000000000000010011 + LPDIFF_LOCK_01=32'b00000000000000000000000000001001 + LPDIFF_LOCK_11=32'b00000000000000000000000000010011 + LPDIFF_LOCK_21=32'b00000000000000000000000000100111 + LPDIFF_LOCK_31=32'b00000000000000000000000000110001 + LPDIFF_LOCK_41=32'b00000000000000000000000000010011 + LPDIFF_LOCK_02=32'b00000000000000000000000000110001 + LPDIFF_LOCK_12=32'b00000000000000000000000001100010 + LPDIFF_LOCK_22=32'b00000000000000000000000011000100 + LPDIFF_LOCK_32=32'b00000000000000000000000011110101 + LPDIFF_LOCK_42=32'b00000000000000000000000001100010 + LPDIFF_LOCK_03=32'b00000000000000000000000010000011 + LPDIFF_LOCK_13=32'b00000000000000000000000100000110 + LPDIFF_LOCK_23=32'b00000000000000000000001000001100 + LPDIFF_LOCK_33=32'b00000000000000000000001010001111 + LPDIFF_LOCK_43=32'b00000000000000000000000100000110 + LPDIFF_UNLOCK_00=32'b00000000000000000000000000010011 + LPDIFF_UNLOCK_10=32'b00000000000000000000000000100111 + LPDIFF_UNLOCK_20=32'b00000000000000000000000001001110 + LPDIFF_UNLOCK_30=32'b00000000000000000000000001100010 + LPDIFF_UNLOCK_40=32'b00000000000000000000000000100111 + LPDIFF_UNLOCK_01=32'b00000000000000000000000001000001 + LPDIFF_UNLOCK_11=32'b00000000000000000000000010000011 + LPDIFF_UNLOCK_21=32'b00000000000000000000000100000110 + LPDIFF_UNLOCK_31=32'b00000000000000000000000101000111 + LPDIFF_UNLOCK_41=32'b00000000000000000000000010000011 + LPDIFF_UNLOCK_02=32'b00000000000000000000000001001000 + LPDIFF_UNLOCK_12=32'b00000000000000000000000010010000 + LPDIFF_UNLOCK_22=32'b00000000000000000000000100100000 + LPDIFF_UNLOCK_32=32'b00000000000000000000000101101000 + LPDIFF_UNLOCK_42=32'b00000000000000000000000010010000 + LPDIFF_UNLOCK_03=32'b00000000000000000000000011000100 + LPDIFF_UNLOCK_13=32'b00000000000000000000000110001001 + LPDIFF_UNLOCK_23=32'b00000000000000000000001100010010 + LPDIFF_UNLOCK_33=32'b00000000000000000000001111010111 + LPDIFF_UNLOCK_43=32'b00000000000000000000000110001001 + Generated name = serdes_sync_1sll_core_Z1_layer1 +@N: CG179 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1287:54:1287:59|Removing redundant assignment. +@N: CG179 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1293:52:1293:55|Removing redundant assignment. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1350:0:1350:5|Pruning unused register rcpri_mod_ch_st. Make sure that there are no unused intermediate registers. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 0 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 0 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 1 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 2 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 16 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 18 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 19 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 20 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 21 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +@N: CG364 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":92:7:92:27|Synthesizing module serdes_sync_1rsl_core in library work. + + pnum_channels=32'b00000000000000000000000000000001 + pprotocol=48'b010001110011100001000010001100010011000001000010 + pserdes_mode=72'b010100100101100000100000010000010100111001000100001000000101010001011000 + pport_tx_rdy=56'b01000101010011100100000101000010010011000100010101000100 + pwait_tx_rdy=32'b00000000000000000000101110111000 + pport_rx_rdy=56'b01000101010011100100000101000010010011000100010101000100 + pwait_rx_rdy=32'b00000000000000000000101110111000 + wa_num_cycles=32'b00000000000000000000010000000000 + dac_num_cycles=32'b00000000000000000000000000000011 + lreset_pwidth=32'b00000000000000000000000000000011 + lwait_b4_trst=32'b00000000000010111110101111000010 + lwait_b4_trst_s=32'b00000000000000000000001100001101 + lplol_cnt_width=32'b00000000000000000000000000010100 + lwait_after_plol0=32'b00000000000000000000000000000100 + lwait_b4_rrst=32'b00000000000000101100000000000000 + lrrst_wait_width=32'b00000000000000000000000000010100 + lwait_after_rrst=32'b00000000000011000011010100000000 + lwait_b4_rrst_s=32'b00000000000000000000000111001100 + lrlol_cnt_width=32'b00000000000000000000000000010011 + lwait_after_lols=32'b00000000000000001100010000000000 + lwait_after_lols_s=32'b00000000000000000000000010010110 + llols_cnt_width=32'b00000000000000000000000000010010 + lrdb_max=32'b00000000000000000000000000001111 + ltxr_wait_width=32'b00000000000000000000000000001100 + lrxr_wait_width=32'b00000000000000000000000000001100 + Generated name = serdes_sync_1rsl_core_Z2_layer1 +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":326:33:326:40|Object rrst_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":327:33:327:43|Removing wire rrst_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":328:33:328:41|Object rrst_wait is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":341:33:341:39|Object rxp_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":342:33:342:39|Object rxp_rst is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":343:33:343:42|Removing wire rxp_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":346:33:346:42|Object rlolsz_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":347:33:347:45|Removing wire rlolsz_cnt_tc, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":350:33:350:43|Removing wire rxp_cnt2_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":351:33:351:47|Object data_loop_b_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":352:33:352:43|Object data_loop_b is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":353:33:353:46|Removing wire data_loop_b_tc, as there is no assignment to it. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":806:3:806:8|Pruning unused register genblk2.rxp_cnt2[2:0]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlol_p3. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlos_p3. Make sure that there are no unused intermediate registers. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":694:3:694:8|Optimizing register bit genblk2.rxs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":461:3:461:8|Optimizing register bit genblk1.txp_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":422:3:422:8|Optimizing register bit genblk1.txs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":422:3:422:8|Pruning register bit 2 of genblk1.txs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":461:3:461:8|Pruning register bit 2 of genblk1.txp_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":694:3:694:8|Pruning register bit 2 of genblk2.rxs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":200:33:200:48|Input port bits 3 to 1 of rui_tx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":204:33:204:51|Input port bits 3 to 1 of rui_rx_serdes_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":205:33:205:48|Input port bits 3 to 1 of rui_rx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":206:33:206:48|Input port bits 3 to 1 of rdi_rx_los_low_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":207:33:207:48|Input port bits 3 to 1 of rdi_rx_cdr_lol_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|Pruning register bits 8 to 7 of genblk5.rdiff_comp_unlock[8:6]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|Pruning register bits 5 to 3 of genblk5.rdiff_comp_lock[5:2]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rdiff_comp_unlock[6]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rcount_tc[17]. Make sure that there are no unused intermediate registers. +@N: CL201 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1801:0:1801:5|Trying to extract state machine for register sll_state. +Extracted state machine for register sll_state +State machine has 3 reachable states with original encodings of: + 00 + 01 + 11 + +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 75MB peak: 81MB) + + +Process completed successfully. +# Fri May 10 10:23:32 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +File /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer0.srs changed - recompiling +File /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer1.srs changed - recompiling + +======================================================================================= +For a summary of linker messages for components that did not bind, please see log file: +@L: /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/serdes_sync_1_comp.linkerlog +======================================================================================= + + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 10:23:32 2019 + +###########################################################] +@END + +At c_hdl Exit (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 3MB peak: 4MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 10:23:32 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +File /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/serdes_sync_1_comp.srs changed - recompiling + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 10:23:33 2019 + +###########################################################] +# Fri May 10 10:23:33 2019 + +Synopsys Lattice Technology Pre-mapping, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + +Reading constraint file: /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.fdc +@L: /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1_scck.rpt +Printing clock summary report in "/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1_scck.rpt" file +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 102MB peak: 104MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 102MB peak: 104MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 115MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 117MB) + +@N: BN362 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1408:0:1408:5|Removing sequential instance pcpri_mod_ch (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:PrimLib.dffre(prim) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1244:27:1244:40|Removing instance div2_sync_inst (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_3(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1252:27:1252:41|Removing instance div11_sync_inst (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_2(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1236:27:1236:40|Removing instance gear_sync_inst (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_4(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1268:27:1268:44|Removing instance pcie_mod_sync_inst (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_0(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1260:27:1260:44|Removing instance cpri_mod_sync_inst (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_1(verilog) because it does not drive other instances. +ICG Latch Removal Summary: +Number of ICG latches removed: 0 +Number of ICG latches not removed: 0 +syn_allowed_resources : blockrams=56 set on top level netlist serdes_sync_1 + +Finished netlist restructuring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 145MB) + + + +Clock Summary +****************** + + Start Requested Requested Clock Clock Clock +Level Clock Frequency Period Type Group Load +------------------------------------------------------------------------------------------------------------------------- +0 - System 100.0 MHz 10.000 system system_clkgroup 0 + +0 - serdes_sync_1|pll_refclki 100.0 MHz 10.000 inferred Inferred_clkgroup_0 92 + +0 - serdes_sync_1|rxrefclk 100.0 MHz 10.000 inferred Inferred_clkgroup_1 77 + +0 - serdes_sync_1|tx_pclk_inferred_clock 100.0 MHz 10.000 inferred Inferred_clkgroup_2 53 +========================================================================================================================= + +@W: MT529 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1988:0:1988:5|Found inferred clock serdes_sync_1|pll_refclki which controls 92 sequential elements including sll_inst.phb_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":567:3:567:8|Found inferred clock serdes_sync_1|rxrefclk which controls 77 sequential elements including rsl_inst.genblk2\.rlos_db_p1. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1988:0:1988:5|Found inferred clock serdes_sync_1|tx_pclk_inferred_clock which controls 53 sequential elements including sll_inst.rtc_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. + +Finished Pre Mapping Phase. + +Starting constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 145MB) + +Encoding state machine sll_state[2:0] (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) +original code -> new code + 00 -> 00 + 01 -> 01 + 11 -> 10 + +Finished constraint checker preprocessing (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 145MB) + +None +None + +Finished constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 145MB) + +Pre-mapping successful! + +At Mapper Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 59MB peak: 145MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime +# Fri May 10 10:23:34 2019 + +###########################################################] +# Fri May 10 10:23:34 2019 + +Synopsys Lattice Technology Mapper, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 113MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 115MB) + + + +Starting Optimization and Mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 144MB) + + +Available hyper_sources - for debug and ip models + None Found + + +Finished RTL optimizations (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + +Encoding state machine sll_state[2:0] (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) +original code -> new code + 00 -> 00 + 01 -> 01 + 11 -> 10 +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1350:0:1350:5|Found counter in view:work.serdes_sync_1sll_core_Z1_layer1(verilog) instance rhb_wait_cnt[7:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1304:0:1304:5|Found counter in view:work.serdes_sync_1sll_core_Z1_layer1(verilog) instance rcount[15:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1759:0:1759:5|Found counter in view:work.serdes_sync_1sll_core_Z1_layer1(verilog) instance pcount[21:0] +@N: BN362 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1801:0:1801:5|Removing sequential instance sll_state[0] (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:PrimLib.dffr(prim) because it does not drive other instances. +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":412:3:412:8|Found counter in view:work.serdes_sync_1rsl_core_Z2_layer1(verilog) instance genblk1\.plol_cnt[19:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":909:3:909:8|Found counter in view:work.serdes_sync_1rsl_core_Z2_layer1(verilog) instance genblk2\.genblk3\.rxr_wt_cnt[11:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":527:3:527:8|Found counter in view:work.serdes_sync_1rsl_core_Z2_layer1(verilog) instance genblk1\.genblk2\.txr_wt_cnt[11:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":778:3:778:8|Found counter in view:work.serdes_sync_1rsl_core_Z2_layer1(verilog) instance genblk2\.rlols0_cnt[17:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":680:3:680:8|Found counter in view:work.serdes_sync_1rsl_core_Z2_layer1(verilog) instance genblk2\.rlol1_cnt[18:0] + +Starting factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + + +Finished factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 144MB) + + +Starting gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + + +Finished gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + + +Finished generic timing optimizations - Pass 1 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 145MB) + + +Starting Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 146MB) + + +Finished Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 146MB) + + +Finished generic timing optimizations - Pass 2 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 146MB) + + +Finished preparing to map (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:01s; Memory used current: 145MB peak: 146MB) + +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.serdes_sync_1(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.serdes_sync_1(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.serdes_sync_1(v1)). + +Finished technology mapping (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 146MB peak: 148MB) + +Pass CPU time Worst Slack Luts / Registers +------------------------------------------------------------ + 1 0h:00m:01s 5.35ns 151 / 220 +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.serdes_sync_1(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.serdes_sync_1(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.serdes_sync_1(v1)). + +Finished technology timing optimizations and critical path resynthesis (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 146MB peak: 148MB) + +@N: FX164 |The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute. + +Finished restoring hierarchy (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 146MB peak: 148MB) + + + +@S |Clock Optimization Summary + + +#### START OF CLOCK OPTIMIZATION REPORT #####[ + +3 non-gated/non-generated clock tree(s) driving 220 clock pin(s) of sequential element(s) +0 gated/generated clock tree(s) driving 0 clock pin(s) of sequential element(s) +0 instances converted, 0 sequential instances remain driven by gated/generated clocks + +============================================= Non-Gated/Non-Generated Clocks ============================================= +Clock Tree ID Driving Element Drive Element Type Fanout Sample Instance +-------------------------------------------------------------------------------------------------------------------------- +@K:CKID0001 pll_refclki port 90 rsl_inst.genblk1\.genblk2\.mfor\[0\]\.txpr_appd[0] +@K:CKID0002 rxrefclk port 77 rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] +@K:CKID0003 DCU0_inst DCUA 53 sll_inst.pcount_diff[21] +========================================================================================================================== + + +##### END OF CLOCK OPTIMIZATION REPORT ######] + + +Start Writing Netlists (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 111MB peak: 148MB) + +Writing Analyst data base /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/serdes_sync_1_m.srm + +Finished Writing Netlist Databases (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 146MB peak: 148MB) + +Writing EDIF Netlist and constraint files +@N: FX1056 |Writing EDF file: /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.edn +M-2017.03L-SP1-1 +@N: BW106 |Synplicity Constraint File capacitance units using default value of 1pF + +Finished Writing EDIF Netlist and constraint files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 150MB peak: 152MB) + +Writing Verilog Simulation files + +Finished Writing Verilog Simulation files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 150MB peak: 152MB) + +Writing VHDL Simulation files + +Finished Writing VHDL Simulation files (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 150MB peak: 152MB) + + +Start final timing analysis (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 150MB peak: 152MB) + +@W: MT246 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd":160:4:160:12|Blackbox DCUA is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) +@W: MT420 |Found inferred clock serdes_sync_1|rxrefclk with period 10.00ns. Please declare a user-defined clock on object "p:rxrefclk" +@W: MT420 |Found inferred clock serdes_sync_1|pll_refclki with period 10.00ns. Please declare a user-defined clock on object "p:pll_refclki" +@W: MT420 |Found inferred clock serdes_sync_1|tx_pclk_inferred_clock with period 10.00ns. Please declare a user-defined clock on object "n:tx_pclk" + + +##### START OF TIMING REPORT #####[ +# Timing Report written on Fri May 10 10:23:38 2019 +# + + +Top view: serdes_sync_1 +Requested Frequency: 100.0 MHz +Wire load mode: top +Paths requested: 5 +Constraint File(s): /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.fdc + +@N: MT320 |This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. + +@N: MT322 |Clock constraints include only register-to-register paths associated with each individual clock. + + + +Performance Summary +******************* + + +Worst slack in design: 4.079 + +@N: MT286 |System clock period 0.000 stretches to negative invalid value -- ignoring stretching. + Requested Estimated Requested Estimated Clock Clock +Starting Clock Frequency Frequency Period Period Slack Type Group +------------------------------------------------------------------------------------------------------------------------------------------- +serdes_sync_1|pll_refclki 100.0 MHz 168.9 MHz 10.000 5.921 4.079 inferred Inferred_clkgroup_0 +serdes_sync_1|rxrefclk 100.0 MHz 170.5 MHz 10.000 5.864 4.136 inferred Inferred_clkgroup_1 +serdes_sync_1|tx_pclk_inferred_clock 100.0 MHz 237.5 MHz 10.000 4.211 5.789 inferred Inferred_clkgroup_2 +System 100.0 MHz 840.7 MHz 10.000 1.190 8.810 system system_clkgroup +=========================================================================================================================================== + + + + + +Clock Relationships +******************* + +Clocks | rise to rise | fall to fall | rise to fall | fall to rise +------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Starting Ending | constraint slack | constraint slack | constraint slack | constraint slack +------------------------------------------------------------------------------------------------------------------------------------------------------------------- +System System | 10.000 10.000 | No paths - | No paths - | No paths - +System serdes_sync_1|rxrefclk | 10.000 8.811 | No paths - | No paths - | No paths - +serdes_sync_1|pll_refclki System | 10.000 8.307 | No paths - | No paths - | No paths - +serdes_sync_1|pll_refclki serdes_sync_1|pll_refclki | 10.000 4.079 | No paths - | No paths - | No paths - +serdes_sync_1|pll_refclki serdes_sync_1|tx_pclk_inferred_clock | Diff grp - | No paths - | No paths - | No paths - +serdes_sync_1|rxrefclk System | 10.000 8.193 | No paths - | No paths - | No paths - +serdes_sync_1|rxrefclk serdes_sync_1|rxrefclk | 10.000 4.136 | No paths - | No paths - | No paths - +serdes_sync_1|tx_pclk_inferred_clock serdes_sync_1|pll_refclki | Diff grp - | No paths - | No paths - | No paths - +serdes_sync_1|tx_pclk_inferred_clock serdes_sync_1|tx_pclk_inferred_clock | 10.000 5.789 | No paths - | No paths - | No paths - +=================================================================================================================================================================== + Note: 'No paths' indicates there are no paths in the design for that pair of clock edges. + 'Diff grp' indicates that paths exist but the starting clock and ending clock are in different clock groups. + + + +Interface Information +********************* + +No IO constraint found + + + +==================================== +Detailed Report for Clock: serdes_sync_1|pll_refclki +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +----------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[1] serdes_sync_1|pll_refclki FD1S3DX Q plol_cnt[1] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[6] serdes_sync_1|pll_refclki FD1S3DX Q plol_cnt[6] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[7] serdes_sync_1|pll_refclki FD1S3DX Q plol_cnt[7] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[12] serdes_sync_1|pll_refclki FD1S3DX Q plol_cnt[12] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[2] serdes_sync_1|pll_refclki FD1S3DX Q plol_cnt[2] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[3] serdes_sync_1|pll_refclki FD1S3DX Q plol_cnt[3] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[4] serdes_sync_1|pll_refclki FD1S3DX Q plol_cnt[4] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[5] serdes_sync_1|pll_refclki FD1S3DX Q plol_cnt[5] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[8] serdes_sync_1|pll_refclki FD1S3DX Q plol_cnt[8] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[9] serdes_sync_1|pll_refclki FD1S3DX Q plol_cnt[9] 0.907 4.684 +======================================================================================================================= + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +-------------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[19] serdes_sync_1|pll_refclki FD1S3DX D plol_cnt_s[19] 9.946 4.079 +rsl_inst.genblk1\.plol_cnt[17] serdes_sync_1|pll_refclki FD1S3DX D plol_cnt_s[17] 9.946 4.139 +rsl_inst.genblk1\.plol_cnt[18] serdes_sync_1|pll_refclki FD1S3DX D plol_cnt_s[18] 9.946 4.139 +rsl_inst.genblk1\.plol_cnt[15] serdes_sync_1|pll_refclki FD1S3DX D plol_cnt_s[15] 9.946 4.200 +rsl_inst.genblk1\.plol_cnt[16] serdes_sync_1|pll_refclki FD1S3DX D plol_cnt_s[16] 9.946 4.200 +rsl_inst.genblk1\.plol_cnt[13] serdes_sync_1|pll_refclki FD1S3DX D plol_cnt_s[13] 9.946 4.261 +rsl_inst.genblk1\.plol_cnt[14] serdes_sync_1|pll_refclki FD1S3DX D plol_cnt_s[14] 9.946 4.261 +rsl_inst.genblk1\.plol_cnt[11] serdes_sync_1|pll_refclki FD1S3DX D plol_cnt_s[11] 9.946 4.322 +rsl_inst.genblk1\.plol_cnt[12] serdes_sync_1|pll_refclki FD1S3DX D plol_cnt_s[12] 9.946 4.322 +rsl_inst.genblk1\.plol_cnt[9] serdes_sync_1|pll_refclki FD1S3DX D plol_cnt_s[9] 9.946 4.383 +========================================================================================================================== + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 5.867 + - Clock delay at starting point: 0.000 (ideal) + = Slack (critical) : 4.079 + + Number of logic level(s): 15 + Starting point: rsl_inst.genblk1\.plol_cnt[1] / Q + Ending point: rsl_inst.genblk1\.plol_cnt[19] / D + The start point is clocked by serdes_sync_1|pll_refclki [rising] on pin CK + The end point is clocked by serdes_sync_1|pll_refclki [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[1] FD1S3DX Q Out 0.907 0.907 - +plol_cnt[1] Net - - - - 2 +rsl_inst.genblk1\.un1_plol_cnt_tc_10 ORCALUT4 A In 0.000 0.907 - +rsl_inst.genblk1\.un1_plol_cnt_tc_10 ORCALUT4 Z Out 0.606 1.513 - +un1_plol_cnt_tc_10 Net - - - - 1 +rsl_inst.genblk1\.un1_plol_cnt_tc_14 ORCALUT4 D In 0.000 1.513 - +rsl_inst.genblk1\.un1_plol_cnt_tc_14 ORCALUT4 Z Out 0.606 2.119 - +un1_plol_cnt_tc_14 Net - - - - 1 +rsl_inst.genblk1\.un1_plol_cnt_tc ORCALUT4 D In 0.000 2.119 - +rsl_inst.genblk1\.un1_plol_cnt_tc ORCALUT4 Z Out 0.762 2.881 - +un1_plol_cnt_tc Net - - - - 5 +rsl_inst.genblk1\.plol_cnt11_i ORCALUT4 B In 0.000 2.881 - +rsl_inst.genblk1\.plol_cnt11_i ORCALUT4 Z Out 0.840 3.721 - +plol_cnt Net - - - - 21 +rsl_inst.genblk1\.plol_cnt_cry_0[0] CCU2C A1 In 0.000 3.721 - +rsl_inst.genblk1\.plol_cnt_cry_0[0] CCU2C COUT Out 0.900 4.621 - +plol_cnt_cry[0] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[1] CCU2C CIN In 0.000 4.621 - +rsl_inst.genblk1\.plol_cnt_cry_0[1] CCU2C COUT Out 0.061 4.682 - +plol_cnt_cry[2] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[3] CCU2C CIN In 0.000 4.682 - +rsl_inst.genblk1\.plol_cnt_cry_0[3] CCU2C COUT Out 0.061 4.743 - +plol_cnt_cry[4] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[5] CCU2C CIN In 0.000 4.743 - +rsl_inst.genblk1\.plol_cnt_cry_0[5] CCU2C COUT Out 0.061 4.804 - +plol_cnt_cry[6] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[7] CCU2C CIN In 0.000 4.804 - +rsl_inst.genblk1\.plol_cnt_cry_0[7] CCU2C COUT Out 0.061 4.865 - +plol_cnt_cry[8] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[9] CCU2C CIN In 0.000 4.865 - +rsl_inst.genblk1\.plol_cnt_cry_0[9] CCU2C COUT Out 0.061 4.926 - +plol_cnt_cry[10] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[11] CCU2C CIN In 0.000 4.926 - +rsl_inst.genblk1\.plol_cnt_cry_0[11] CCU2C COUT Out 0.061 4.987 - +plol_cnt_cry[12] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[13] CCU2C CIN In 0.000 4.987 - +rsl_inst.genblk1\.plol_cnt_cry_0[13] CCU2C COUT Out 0.061 5.048 - +plol_cnt_cry[14] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[15] CCU2C CIN In 0.000 5.048 - +rsl_inst.genblk1\.plol_cnt_cry_0[15] CCU2C COUT Out 0.061 5.109 - +plol_cnt_cry[16] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[17] CCU2C CIN In 0.000 5.109 - +rsl_inst.genblk1\.plol_cnt_cry_0[17] CCU2C COUT Out 0.061 5.170 - +plol_cnt_cry[18] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_s_0[19] CCU2C CIN In 0.000 5.170 - +rsl_inst.genblk1\.plol_cnt_s_0[19] CCU2C S0 Out 0.698 5.867 - +plol_cnt_s[19] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt[19] FD1S3DX D In 0.000 5.867 - +======================================================================================================= + + + + +==================================== +Detailed Report for Clock: serdes_sync_1|rxrefclk +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------------------------------------------ +rsl_inst.genblk2\.rlol1_cnt[14] serdes_sync_1|rxrefclk FD1P3DX Q rlol1_cnt[14] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[15] serdes_sync_1|rxrefclk FD1P3DX Q rlol1_cnt[15] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[16] serdes_sync_1|rxrefclk FD1P3DX Q rlol1_cnt[16] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[17] serdes_sync_1|rxrefclk FD1P3DX Q rlol1_cnt[17] 0.907 4.136 +rsl_inst.genblk2\.rlols0_cnt[9] serdes_sync_1|rxrefclk FD1P3DX Q rlols0_cnt[9] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[11] serdes_sync_1|rxrefclk FD1P3DX Q rlols0_cnt[11] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[12] serdes_sync_1|rxrefclk FD1P3DX Q rlols0_cnt[12] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[13] serdes_sync_1|rxrefclk FD1P3DX Q rlols0_cnt[13] 0.907 4.170 +rsl_inst.genblk2\.rlol1_cnt[0] serdes_sync_1|rxrefclk FD1P3DX Q rlol1_cnt[0] 0.907 4.742 +rsl_inst.genblk2\.rlol1_cnt[1] serdes_sync_1|rxrefclk FD1P3DX Q rlol1_cnt[1] 0.907 4.742 +======================================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rlol1_cnt[17] serdes_sync_1|rxrefclk FD1P3DX D rlol1_cnt_s[17] 9.946 4.136 +rsl_inst.genblk2\.rlol1_cnt[18] serdes_sync_1|rxrefclk FD1P3DX D rlol1_cnt_s[18] 9.946 4.136 +rsl_inst.genblk2\.rlols0_cnt[17] serdes_sync_1|rxrefclk FD1P3DX D rlols0_cnt_s[17] 9.946 4.170 +rsl_inst.genblk2\.rlol1_cnt[15] serdes_sync_1|rxrefclk FD1P3DX D rlol1_cnt_s[15] 9.946 4.197 +rsl_inst.genblk2\.rlol1_cnt[16] serdes_sync_1|rxrefclk FD1P3DX D rlol1_cnt_s[16] 9.946 4.197 +rsl_inst.genblk2\.rlols0_cnt[15] serdes_sync_1|rxrefclk FD1P3DX D rlols0_cnt_s[15] 9.946 4.231 +rsl_inst.genblk2\.rlols0_cnt[16] serdes_sync_1|rxrefclk FD1P3DX D rlols0_cnt_s[16] 9.946 4.231 +rsl_inst.genblk2\.rlol1_cnt[13] serdes_sync_1|rxrefclk FD1P3DX D rlol1_cnt_s[13] 9.946 4.258 +rsl_inst.genblk2\.rlol1_cnt[14] serdes_sync_1|rxrefclk FD1P3DX D rlol1_cnt_s[14] 9.946 4.258 +rsl_inst.genblk2\.rlols0_cnt[13] serdes_sync_1|rxrefclk FD1P3DX D rlols0_cnt_s[13] 9.946 4.292 +=========================================================================================================================== + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 5.809 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : 4.136 + + Number of logic level(s): 14 + Starting point: rsl_inst.genblk2\.rlol1_cnt[14] / Q + Ending point: rsl_inst.genblk2\.rlol1_cnt[18] / D + The start point is clocked by serdes_sync_1|rxrefclk [rising] on pin CK + The end point is clocked by serdes_sync_1|rxrefclk [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +-------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rlol1_cnt[14] FD1P3DX Q Out 0.907 0.907 - +rlol1_cnt[14] Net - - - - 2 +rsl_inst.rlol1_cnt_tc_1_10 ORCALUT4 A In 0.000 0.907 - +rsl_inst.rlol1_cnt_tc_1_10 ORCALUT4 Z Out 0.606 1.513 - +rlol1_cnt_tc_1_10 Net - - - - 1 +rsl_inst.rlol1_cnt_tc_1_14 ORCALUT4 D In 0.000 1.513 - +rsl_inst.rlol1_cnt_tc_1_14 ORCALUT4 Z Out 0.606 2.119 - +rlol1_cnt_tc_1_14 Net - - - - 1 +rsl_inst.rlol1_cnt_tc_1 ORCALUT4 D In 0.000 2.119 - +rsl_inst.rlol1_cnt_tc_1 ORCALUT4 Z Out 0.768 2.887 - +rlol1_cnt_tc_1 Net - - - - 6 +rsl_inst.genblk2\.rlos_db_p1_RNIS0OP ORCALUT4 A In 0.000 2.887 - +rsl_inst.genblk2\.rlos_db_p1_RNIS0OP ORCALUT4 Z Out 0.837 3.724 - +rlol1_cnt Net - - - - 20 +rsl_inst.genblk2\.rlol1_cnt_cry_0[0] CCU2C A1 In 0.000 3.724 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[0] CCU2C COUT Out 0.900 4.624 - +rlol1_cnt_cry[0] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[1] CCU2C CIN In 0.000 4.624 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[1] CCU2C COUT Out 0.061 4.685 - +rlol1_cnt_cry[2] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[3] CCU2C CIN In 0.000 4.685 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[3] CCU2C COUT Out 0.061 4.746 - +rlol1_cnt_cry[4] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[5] CCU2C CIN In 0.000 4.746 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[5] CCU2C COUT Out 0.061 4.807 - +rlol1_cnt_cry[6] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[7] CCU2C CIN In 0.000 4.807 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[7] CCU2C COUT Out 0.061 4.868 - +rlol1_cnt_cry[8] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[9] CCU2C CIN In 0.000 4.868 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[9] CCU2C COUT Out 0.061 4.929 - +rlol1_cnt_cry[10] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[11] CCU2C CIN In 0.000 4.929 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[11] CCU2C COUT Out 0.061 4.990 - +rlol1_cnt_cry[12] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[13] CCU2C CIN In 0.000 4.990 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[13] CCU2C COUT Out 0.061 5.051 - +rlol1_cnt_cry[14] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[15] CCU2C CIN In 0.000 5.051 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[15] CCU2C COUT Out 0.061 5.112 - +rlol1_cnt_cry[16] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[17] CCU2C CIN In 0.000 5.112 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[17] CCU2C S1 Out 0.698 5.809 - +rlol1_cnt_s[18] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt[18] FD1P3DX D In 0.000 5.809 - +======================================================================================================== + + + + +==================================== +Detailed Report for Clock: serdes_sync_1|tx_pclk_inferred_clock +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------------------------------------------------- +sll_inst.ppul_sync_p1 serdes_sync_1|tx_pclk_inferred_clock FD1S3DX Q ppul_sync_p1 1.098 5.789 +sll_inst.ppul_sync_p2 serdes_sync_1|tx_pclk_inferred_clock FD1S3DX Q ppul_sync_p2 1.098 5.789 +sll_inst.pcount_diff[0] serdes_sync_1|tx_pclk_inferred_clock FD1P3BX Q un13_lock_0 0.985 6.147 +sll_inst.pcount[0] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX Q pcount[0] 0.955 6.178 +sll_inst.pcount_diff[1] serdes_sync_1|tx_pclk_inferred_clock FD1P3BX Q un13_lock_1 0.955 6.239 +sll_inst.pcount_diff[2] serdes_sync_1|tx_pclk_inferred_clock FD1P3BX Q un13_lock_2 0.955 6.239 +sll_inst.pcount[1] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX Q pcount[1] 0.907 6.287 +sll_inst.pcount[2] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX Q pcount[2] 0.907 6.287 +sll_inst.pcount_diff[3] serdes_sync_1|tx_pclk_inferred_clock FD1P3BX Q un13_lock_3 0.955 6.300 +sll_inst.pcount_diff[4] serdes_sync_1|tx_pclk_inferred_clock FD1P3BX Q un13_lock_4 0.955 6.300 +=========================================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +-------------------------------------------------------------------------------------------------------------------------------------------- +sll_inst.pcount[21] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX D pcount_s[21] 9.946 5.789 +sll_inst.pcount[19] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX D pcount_s[19] 9.946 5.850 +sll_inst.pcount[20] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX D pcount_s[20] 9.946 5.850 +sll_inst.pcount[17] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX D pcount_s[17] 9.946 5.911 +sll_inst.pcount[18] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX D pcount_s[18] 9.946 5.911 +sll_inst.pcount[15] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX D pcount_s[15] 9.946 5.972 +sll_inst.pcount[16] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX D pcount_s[16] 9.946 5.972 +sll_inst.pcount[13] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX D pcount_s[13] 9.946 6.033 +sll_inst.pcount[14] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX D pcount_s[14] 9.946 6.033 +sll_inst.pcount_diff[21] serdes_sync_1|tx_pclk_inferred_clock FD1P3DX D un1_pcount_diff_1_s_21_0_S0 9.946 6.034 +============================================================================================================================================ + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 4.157 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : 5.789 + + Number of logic level(s): 13 + Starting point: sll_inst.ppul_sync_p1 / Q + Ending point: sll_inst.pcount[21] / D + The start point is clocked by serdes_sync_1|tx_pclk_inferred_clock [rising] on pin CK + The end point is clocked by serdes_sync_1|tx_pclk_inferred_clock [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +-------------------------------------------------------------------------------------------- +sll_inst.ppul_sync_p1 FD1S3DX Q Out 1.098 1.098 - +ppul_sync_p1 Net - - - - 25 +sll_inst.pcount10_0_o3 ORCALUT4 A In 0.000 1.098 - +sll_inst.pcount10_0_o3 ORCALUT4 Z Out 0.851 1.950 - +N_8 Net - - - - 25 +sll_inst.pcount_cry_0[0] CCU2C A1 In 0.000 1.950 - +sll_inst.pcount_cry_0[0] CCU2C COUT Out 0.900 2.850 - +pcount_cry[0] Net - - - - 1 +sll_inst.pcount_cry_0[1] CCU2C CIN In 0.000 2.850 - +sll_inst.pcount_cry_0[1] CCU2C COUT Out 0.061 2.911 - +pcount_cry[2] Net - - - - 1 +sll_inst.pcount_cry_0[3] CCU2C CIN In 0.000 2.911 - +sll_inst.pcount_cry_0[3] CCU2C COUT Out 0.061 2.972 - +pcount_cry[4] Net - - - - 1 +sll_inst.pcount_cry_0[5] CCU2C CIN In 0.000 2.972 - +sll_inst.pcount_cry_0[5] CCU2C COUT Out 0.061 3.033 - +pcount_cry[6] Net - - - - 1 +sll_inst.pcount_cry_0[7] CCU2C CIN In 0.000 3.033 - +sll_inst.pcount_cry_0[7] CCU2C COUT Out 0.061 3.094 - +pcount_cry[8] Net - - - - 1 +sll_inst.pcount_cry_0[9] CCU2C CIN In 0.000 3.094 - +sll_inst.pcount_cry_0[9] CCU2C COUT Out 0.061 3.155 - +pcount_cry[10] Net - - - - 1 +sll_inst.pcount_cry_0[11] CCU2C CIN In 0.000 3.155 - +sll_inst.pcount_cry_0[11] CCU2C COUT Out 0.061 3.216 - +pcount_cry[12] Net - - - - 1 +sll_inst.pcount_cry_0[13] CCU2C CIN In 0.000 3.216 - +sll_inst.pcount_cry_0[13] CCU2C COUT Out 0.061 3.277 - +pcount_cry[14] Net - - - - 1 +sll_inst.pcount_cry_0[15] CCU2C CIN In 0.000 3.277 - +sll_inst.pcount_cry_0[15] CCU2C COUT Out 0.061 3.338 - +pcount_cry[16] Net - - - - 1 +sll_inst.pcount_cry_0[17] CCU2C CIN In 0.000 3.338 - +sll_inst.pcount_cry_0[17] CCU2C COUT Out 0.061 3.399 - +pcount_cry[18] Net - - - - 1 +sll_inst.pcount_cry_0[19] CCU2C CIN In 0.000 3.399 - +sll_inst.pcount_cry_0[19] CCU2C COUT Out 0.061 3.460 - +pcount_cry[20] Net - - - - 1 +sll_inst.pcount_s_0[21] CCU2C CIN In 0.000 3.460 - +sll_inst.pcount_s_0[21] CCU2C S0 Out 0.698 4.157 - +pcount_s[21] Net - - - - 1 +sll_inst.pcount[21] FD1S3DX D In 0.000 4.157 - +============================================================================================ + + + + +==================================== +Detailed Report for Clock: System +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------------- +DCU0_inst System DCUA CH0_FFS_RLOL rx_cdr_lol_s 0.000 8.810 +DCU0_inst System DCUA CH0_FFS_RLOS rx_los_low_s 0.000 8.810 +DCU0_inst System DCUA CH0_FF_RX_PCLK rx_pclk 0.000 10.000 +=========================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] System FD1P3DX SP un2_rdo_serdes_rst_dual_c_2_i 9.806 8.810 +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] System FD1P3DX D un2_rdo_serdes_rst_dual_c_1 9.946 9.556 +rsl_inst.genblk2\.rlol_p1 System FD1S3DX D rx_cdr_lol_s 9.946 9.946 +rsl_inst.genblk2\.rlos_p1 System FD1S3DX D rx_los_low_s 9.946 9.946 +DCU0_inst System DCUA CH0_FF_RXI_CLK rx_pclk 10.000 10.000 +========================================================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.194 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.806 + + - Propagation time: 0.996 + - Clock delay at starting point: 0.000 (ideal) + - Estimated clock delay at start point: -0.000 + = Slack (non-critical) : 8.810 + + Number of logic level(s): 2 + Starting point: DCU0_inst / CH0_FFS_RLOL + Ending point: rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] / SP + The start point is clocked by System [rising] + The end point is clocked by serdes_sync_1|rxrefclk [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +--------------------------------------------------------------------------------------------------------------------------------- +DCU0_inst DCUA CH0_FFS_RLOL Out 0.000 0.000 - +rx_cdr_lol_s Net - - - - 4 +rsl_inst.un2_rdo_serdes_rst_dual_c_2_0 ORCALUT4 B In 0.000 0.000 - +rsl_inst.un2_rdo_serdes_rst_dual_c_2_0 ORCALUT4 Z Out 0.606 0.606 - +un2_rdo_serdes_rst_dual_c_2_0 Net - - - - 1 +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd_RNO[0] ORCALUT4 B In 0.000 0.606 - +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd_RNO[0] ORCALUT4 Z Out 0.390 0.996 - +un2_rdo_serdes_rst_dual_c_2_i Net - - - - 1 +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] FD1P3DX SP In 0.000 0.996 - +================================================================================================================================= + + + +##### END OF TIMING REPORT #####] + +Timing exceptions that could not be applied +None + +Finished final timing analysis (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 150MB peak: 152MB) + + +Finished timing report (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 150MB peak: 152MB) + +--------------------------------------- +Resource Usage Report +Part: lfe5um_25f-6 + +Register bits: 220 of 24288 (1%) +PIC Latch: 0 +I/O cells: 0 + + +Details: +CCU2C: 113 +DCUA: 1 +FD1P3BX: 20 +FD1P3DX: 92 +FD1S3BX: 12 +FD1S3DX: 96 +GSR: 1 +INV: 3 +ORCALUT4: 150 +PFUMX: 2 +PUR: 1 +VHI: 6 +VLO: 6 +Mapper successful! + +At Mapper Exit (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 35MB peak: 152MB) + +Process took 0h:00m:03s realtime, 0h:00m:03s cputime +# Fri May 10 10:23:38 2019 + +###########################################################] diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.srm b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.srm new file mode 100644 index 0000000000000000000000000000000000000000..75dd84ec5b8f027aba1d82b1a72a73c57adc6f10 GIT binary patch literal 31292 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%0AZH%tWJAq3SL?G*}wR@H&OoPSmT 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.srr b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.srr new file mode 100644 index 0000000..6dd20a1 --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.srr @@ -0,0 +1,1147 @@ +#Build: Synplify Pro (R) M-2017.03L-SP1-1, Build 086R, Aug 4 2017 +#install: /home/soft/lattice/diamond/3.10_x64/synpbase +#OS: Linux +#Hostname: lxhadeb07 + +# Fri May 10 10:23:30 2019 + +#Implementation: syn_results + +Synopsys HDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Synopsys VHDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd":30:7:30:19|Top entity is set to serdes_sync_1. +VHDL syntax check successful! +File /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd changed - recompiling + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB) + + +Process completed successfully. +# Fri May 10 10:23:30 2019 + +###########################################################] +Synopsys Verilog Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps) +@I::"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v" (library work) +Verilog syntax check successful! + +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB) + + +Process completed successfully. +# Fri May 10 10:23:31 2019 + +###########################################################] +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd":30:7:30:19|Top entity is set to serdes_sync_1. +File /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd changed - recompiling +File /home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd changed - recompiling +VHDL syntax check successful! +File /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd changed - recompiling +@N: CD630 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd":30:7:30:19|Synthesizing work.serdes_sync_1.v1. +Post processing for work.serdes_sync_1.v1 + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 74MB peak: 76MB) + + +Process completed successfully. +# Fri May 10 10:23:31 2019 + +###########################################################] +Running on host :lxhadeb07 +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps) +@I::"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v" (library work) +Verilog syntax check successful! +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +@N: CG364 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1968:7:1968:10|Synthesizing module sync in library work. + + PDATA_RST_VAL=32'b00000000000000000000000000000000 + Generated name = sync_0s +@N: CG364 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1051:7:1051:27|Synthesizing module serdes_sync_1sll_core in library work. + + PPROTOCOL=48'b010001110011100001000010001100010011000001000010 + PLOL_SETTING=32'b00000000000000000000000000000001 + PDYN_RATE_CTRL=64'b0100010001001001010100110100000101000010010011000100010101000100 + PPCIE_MAX_RATE=24'b001100100010111000110101 + PDIFF_VAL_LOCK=32'b00000000000000000000000000100111 + PDIFF_VAL_UNLOCK=32'b00000000000000000000000100000110 + PPCLK_TC=32'b00000000000000100000000000000000 + PDIFF_DIV11_VAL_LOCK=32'b00000000000000000000000000000000 + PDIFF_DIV11_VAL_UNLOCK=32'b00000000000000000000000000000000 + PPCLK_DIV11_TC=32'b00000000000000000000000000000000 + LPLL_LOSS_ST=2'b00 + LPLL_PRELOSS_ST=2'b01 + LPLL_PRELOCK_ST=2'b10 + LPLL_LOCK_ST=2'b11 + LRCLK_TC=16'b1111111111111111 + LRCLK_TC_PUL_WIDTH=16'b0000000000110010 + LHB_WAIT_CNT=8'b11111111 + LPCLK_TC_0=32'b00000000000000001000000000000000 + LPCLK_TC_1=32'b00000000000000010000000000000000 + LPCLK_TC_2=32'b00000000000000100000000000000000 + LPCLK_TC_3=32'b00000000000000101000000000000000 + LPCLK_TC_4=32'b00000000000000010000000000000000 + LPDIFF_LOCK_00=32'b00000000000000000000000000001001 + LPDIFF_LOCK_10=32'b00000000000000000000000000010011 + LPDIFF_LOCK_20=32'b00000000000000000000000000100111 + LPDIFF_LOCK_30=32'b00000000000000000000000000110001 + LPDIFF_LOCK_40=32'b00000000000000000000000000010011 + LPDIFF_LOCK_01=32'b00000000000000000000000000001001 + LPDIFF_LOCK_11=32'b00000000000000000000000000010011 + LPDIFF_LOCK_21=32'b00000000000000000000000000100111 + LPDIFF_LOCK_31=32'b00000000000000000000000000110001 + LPDIFF_LOCK_41=32'b00000000000000000000000000010011 + LPDIFF_LOCK_02=32'b00000000000000000000000000110001 + LPDIFF_LOCK_12=32'b00000000000000000000000001100010 + LPDIFF_LOCK_22=32'b00000000000000000000000011000100 + LPDIFF_LOCK_32=32'b00000000000000000000000011110101 + LPDIFF_LOCK_42=32'b00000000000000000000000001100010 + LPDIFF_LOCK_03=32'b00000000000000000000000010000011 + LPDIFF_LOCK_13=32'b00000000000000000000000100000110 + LPDIFF_LOCK_23=32'b00000000000000000000001000001100 + LPDIFF_LOCK_33=32'b00000000000000000000001010001111 + LPDIFF_LOCK_43=32'b00000000000000000000000100000110 + LPDIFF_UNLOCK_00=32'b00000000000000000000000000010011 + LPDIFF_UNLOCK_10=32'b00000000000000000000000000100111 + LPDIFF_UNLOCK_20=32'b00000000000000000000000001001110 + LPDIFF_UNLOCK_30=32'b00000000000000000000000001100010 + LPDIFF_UNLOCK_40=32'b00000000000000000000000000100111 + LPDIFF_UNLOCK_01=32'b00000000000000000000000001000001 + LPDIFF_UNLOCK_11=32'b00000000000000000000000010000011 + LPDIFF_UNLOCK_21=32'b00000000000000000000000100000110 + LPDIFF_UNLOCK_31=32'b00000000000000000000000101000111 + LPDIFF_UNLOCK_41=32'b00000000000000000000000010000011 + LPDIFF_UNLOCK_02=32'b00000000000000000000000001001000 + LPDIFF_UNLOCK_12=32'b00000000000000000000000010010000 + LPDIFF_UNLOCK_22=32'b00000000000000000000000100100000 + LPDIFF_UNLOCK_32=32'b00000000000000000000000101101000 + LPDIFF_UNLOCK_42=32'b00000000000000000000000010010000 + LPDIFF_UNLOCK_03=32'b00000000000000000000000011000100 + LPDIFF_UNLOCK_13=32'b00000000000000000000000110001001 + LPDIFF_UNLOCK_23=32'b00000000000000000000001100010010 + LPDIFF_UNLOCK_33=32'b00000000000000000000001111010111 + LPDIFF_UNLOCK_43=32'b00000000000000000000000110001001 + Generated name = serdes_sync_1sll_core_Z1_layer1 +@N: CG179 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1287:54:1287:59|Removing redundant assignment. +@N: CG179 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1293:52:1293:55|Removing redundant assignment. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1350:0:1350:5|Pruning unused register rcpri_mod_ch_st. Make sure that there are no unused intermediate registers. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 0 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 0 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 1 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 2 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 16 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 18 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 19 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 20 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 21 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +@N: CG364 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":92:7:92:27|Synthesizing module serdes_sync_1rsl_core in library work. + + pnum_channels=32'b00000000000000000000000000000001 + pprotocol=48'b010001110011100001000010001100010011000001000010 + pserdes_mode=72'b010100100101100000100000010000010100111001000100001000000101010001011000 + pport_tx_rdy=56'b01000101010011100100000101000010010011000100010101000100 + pwait_tx_rdy=32'b00000000000000000000101110111000 + pport_rx_rdy=56'b01000101010011100100000101000010010011000100010101000100 + pwait_rx_rdy=32'b00000000000000000000101110111000 + wa_num_cycles=32'b00000000000000000000010000000000 + dac_num_cycles=32'b00000000000000000000000000000011 + lreset_pwidth=32'b00000000000000000000000000000011 + lwait_b4_trst=32'b00000000000010111110101111000010 + lwait_b4_trst_s=32'b00000000000000000000001100001101 + lplol_cnt_width=32'b00000000000000000000000000010100 + lwait_after_plol0=32'b00000000000000000000000000000100 + lwait_b4_rrst=32'b00000000000000101100000000000000 + lrrst_wait_width=32'b00000000000000000000000000010100 + lwait_after_rrst=32'b00000000000011000011010100000000 + lwait_b4_rrst_s=32'b00000000000000000000000111001100 + lrlol_cnt_width=32'b00000000000000000000000000010011 + lwait_after_lols=32'b00000000000000001100010000000000 + lwait_after_lols_s=32'b00000000000000000000000010010110 + llols_cnt_width=32'b00000000000000000000000000010010 + lrdb_max=32'b00000000000000000000000000001111 + ltxr_wait_width=32'b00000000000000000000000000001100 + lrxr_wait_width=32'b00000000000000000000000000001100 + Generated name = serdes_sync_1rsl_core_Z2_layer1 +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":326:33:326:40|Object rrst_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":327:33:327:43|Removing wire rrst_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":328:33:328:41|Object rrst_wait is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":341:33:341:39|Object rxp_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":342:33:342:39|Object rxp_rst is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":343:33:343:42|Removing wire rxp_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":346:33:346:42|Object rlolsz_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":347:33:347:45|Removing wire rlolsz_cnt_tc, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":350:33:350:43|Removing wire rxp_cnt2_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":351:33:351:47|Object data_loop_b_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":352:33:352:43|Object data_loop_b is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":353:33:353:46|Removing wire data_loop_b_tc, as there is no assignment to it. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":806:3:806:8|Pruning unused register genblk2.rxp_cnt2[2:0]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlol_p3. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlos_p3. Make sure that there are no unused intermediate registers. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":694:3:694:8|Optimizing register bit genblk2.rxs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":461:3:461:8|Optimizing register bit genblk1.txp_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":422:3:422:8|Optimizing register bit genblk1.txs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":422:3:422:8|Pruning register bit 2 of genblk1.txs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":461:3:461:8|Pruning register bit 2 of genblk1.txp_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":694:3:694:8|Pruning register bit 2 of genblk2.rxs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":200:33:200:48|Input port bits 3 to 1 of rui_tx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":204:33:204:51|Input port bits 3 to 1 of rui_rx_serdes_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":205:33:205:48|Input port bits 3 to 1 of rui_rx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":206:33:206:48|Input port bits 3 to 1 of rdi_rx_los_low_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":207:33:207:48|Input port bits 3 to 1 of rdi_rx_cdr_lol_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|Pruning register bits 8 to 7 of genblk5.rdiff_comp_unlock[8:6]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|Pruning register bits 5 to 3 of genblk5.rdiff_comp_lock[5:2]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rdiff_comp_unlock[6]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rcount_tc[17]. Make sure that there are no unused intermediate registers. +@N: CL201 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1801:0:1801:5|Trying to extract state machine for register sll_state. +Extracted state machine for register sll_state +State machine has 3 reachable states with original encodings of: + 00 + 01 + 11 + +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 75MB peak: 81MB) + + +Process completed successfully. +# Fri May 10 10:23:32 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +File /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer0.srs changed - recompiling +File /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer1.srs changed - recompiling + +======================================================================================= +For a summary of linker messages for components that did not bind, please see log file: +@L: /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/serdes_sync_1_comp.linkerlog +======================================================================================= + + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 10:23:32 2019 + +###########################################################] +@END + +At c_hdl Exit (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 3MB peak: 4MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 10:23:32 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +File /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/serdes_sync_1_comp.srs changed - recompiling + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 10:23:33 2019 + +###########################################################] +# Fri May 10 10:23:33 2019 + +Synopsys Lattice Technology Pre-mapping, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + +Reading constraint file: /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.fdc +@L: /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1_scck.rpt +Printing clock summary report in "/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1_scck.rpt" file +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 102MB peak: 104MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 102MB peak: 104MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 115MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 117MB) + +@N: BN362 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1408:0:1408:5|Removing sequential instance pcpri_mod_ch (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:PrimLib.dffre(prim) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1244:27:1244:40|Removing instance div2_sync_inst (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_3(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1252:27:1252:41|Removing instance div11_sync_inst (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_2(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1236:27:1236:40|Removing instance gear_sync_inst (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_4(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1268:27:1268:44|Removing instance pcie_mod_sync_inst (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_0(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1260:27:1260:44|Removing instance cpri_mod_sync_inst (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_1(verilog) because it does not drive other instances. +ICG Latch Removal Summary: +Number of ICG latches removed: 0 +Number of ICG latches not removed: 0 +syn_allowed_resources : blockrams=56 set on top level netlist serdes_sync_1 + +Finished netlist restructuring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 145MB) + + + +Clock Summary +****************** + + Start Requested Requested Clock Clock Clock +Level Clock Frequency Period Type Group Load +------------------------------------------------------------------------------------------------------------------------- +0 - System 100.0 MHz 10.000 system system_clkgroup 0 + +0 - serdes_sync_1|pll_refclki 100.0 MHz 10.000 inferred Inferred_clkgroup_0 92 + +0 - serdes_sync_1|rxrefclk 100.0 MHz 10.000 inferred Inferred_clkgroup_1 77 + +0 - serdes_sync_1|tx_pclk_inferred_clock 100.0 MHz 10.000 inferred Inferred_clkgroup_2 53 +========================================================================================================================= + +@W: MT529 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1988:0:1988:5|Found inferred clock serdes_sync_1|pll_refclki which controls 92 sequential elements including sll_inst.phb_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":567:3:567:8|Found inferred clock serdes_sync_1|rxrefclk which controls 77 sequential elements including rsl_inst.genblk2\.rlos_db_p1. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1988:0:1988:5|Found inferred clock serdes_sync_1|tx_pclk_inferred_clock which controls 53 sequential elements including sll_inst.rtc_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. + +Finished Pre Mapping Phase. + +Starting constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 145MB) + +Encoding state machine sll_state[2:0] (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) +original code -> new code + 00 -> 00 + 01 -> 01 + 11 -> 10 + +Finished constraint checker preprocessing (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 145MB) + +None +None + +Finished constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 145MB) + +Pre-mapping successful! + +At Mapper Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 59MB peak: 145MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime +# Fri May 10 10:23:34 2019 + +###########################################################] +# Fri May 10 10:23:34 2019 + +Synopsys Lattice Technology Mapper, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 113MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 115MB) + + + +Starting Optimization and Mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 144MB) + + +Available hyper_sources - for debug and ip models + None Found + + +Finished RTL optimizations (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + +Encoding state machine sll_state[2:0] (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) +original code -> new code + 00 -> 00 + 01 -> 01 + 11 -> 10 +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1350:0:1350:5|Found counter in view:work.serdes_sync_1sll_core_Z1_layer1(verilog) instance rhb_wait_cnt[7:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1304:0:1304:5|Found counter in view:work.serdes_sync_1sll_core_Z1_layer1(verilog) instance rcount[15:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1759:0:1759:5|Found counter in view:work.serdes_sync_1sll_core_Z1_layer1(verilog) instance pcount[21:0] +@N: BN362 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1801:0:1801:5|Removing sequential instance sll_state[0] (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:PrimLib.dffr(prim) because it does not drive other instances. +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":412:3:412:8|Found counter in view:work.serdes_sync_1rsl_core_Z2_layer1(verilog) instance genblk1\.plol_cnt[19:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":909:3:909:8|Found counter in view:work.serdes_sync_1rsl_core_Z2_layer1(verilog) instance genblk2\.genblk3\.rxr_wt_cnt[11:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":527:3:527:8|Found counter in view:work.serdes_sync_1rsl_core_Z2_layer1(verilog) instance genblk1\.genblk2\.txr_wt_cnt[11:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":778:3:778:8|Found counter in view:work.serdes_sync_1rsl_core_Z2_layer1(verilog) instance genblk2\.rlols0_cnt[17:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":680:3:680:8|Found counter in view:work.serdes_sync_1rsl_core_Z2_layer1(verilog) instance genblk2\.rlol1_cnt[18:0] + +Starting factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + + +Finished factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 144MB) + + +Starting gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + + +Finished gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + + +Finished generic timing optimizations - Pass 1 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 145MB) + + +Starting Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 146MB) + + +Finished Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 146MB) + + +Finished generic timing optimizations - Pass 2 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 146MB) + + +Finished preparing to map (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:01s; Memory used current: 145MB peak: 146MB) + +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.serdes_sync_1(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.serdes_sync_1(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.serdes_sync_1(v1)). + +Finished technology mapping (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 146MB peak: 148MB) + +Pass CPU time Worst Slack Luts / Registers +------------------------------------------------------------ + 1 0h:00m:01s 5.35ns 151 / 220 +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.serdes_sync_1(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.serdes_sync_1(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.serdes_sync_1(v1)). + +Finished technology timing optimizations and critical path resynthesis (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 146MB peak: 148MB) + +@N: FX164 |The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute. + +Finished restoring hierarchy (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 146MB peak: 148MB) + + + +@S |Clock Optimization Summary + + +#### START OF CLOCK OPTIMIZATION REPORT #####[ + +3 non-gated/non-generated clock tree(s) driving 220 clock pin(s) of sequential element(s) +0 gated/generated clock tree(s) driving 0 clock pin(s) of sequential element(s) +0 instances converted, 0 sequential instances remain driven by gated/generated clocks + +============================================= Non-Gated/Non-Generated Clocks ============================================= +Clock Tree ID Driving Element Drive Element Type Fanout Sample Instance +-------------------------------------------------------------------------------------------------------------------------- +@K:CKID0001 pll_refclki port 90 rsl_inst.genblk1\.genblk2\.mfor\[0\]\.txpr_appd[0] +@K:CKID0002 rxrefclk port 77 rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] +@K:CKID0003 DCU0_inst DCUA 53 sll_inst.pcount_diff[21] +========================================================================================================================== + + +##### END OF CLOCK OPTIMIZATION REPORT ######] + + +Start Writing Netlists (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 111MB peak: 148MB) + +Writing Analyst data base /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/serdes_sync_1_m.srm + +Finished Writing Netlist Databases (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 146MB peak: 148MB) + +Writing EDIF Netlist and constraint files +@N: FX1056 |Writing EDF file: /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.edn +M-2017.03L-SP1-1 +@N: BW106 |Synplicity Constraint File capacitance units using default value of 1pF + +Finished Writing EDIF Netlist and constraint files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 150MB peak: 152MB) + +Writing Verilog Simulation files + +Finished Writing Verilog Simulation files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 150MB peak: 152MB) + +Writing VHDL Simulation files + +Finished Writing VHDL Simulation files (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 150MB peak: 152MB) + + +Start final timing analysis (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 150MB peak: 152MB) + +@W: MT246 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd":160:4:160:12|Blackbox DCUA is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) +@W: MT420 |Found inferred clock serdes_sync_1|rxrefclk with period 10.00ns. Please declare a user-defined clock on object "p:rxrefclk" +@W: MT420 |Found inferred clock serdes_sync_1|pll_refclki with period 10.00ns. Please declare a user-defined clock on object "p:pll_refclki" +@W: MT420 |Found inferred clock serdes_sync_1|tx_pclk_inferred_clock with period 10.00ns. Please declare a user-defined clock on object "n:tx_pclk" + + +##### START OF TIMING REPORT #####[ +# Timing Report written on Fri May 10 10:23:38 2019 +# + + +Top view: serdes_sync_1 +Requested Frequency: 100.0 MHz +Wire load mode: top +Paths requested: 5 +Constraint File(s): /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.fdc + +@N: MT320 |This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. + +@N: MT322 |Clock constraints include only register-to-register paths associated with each individual clock. + + + +Performance Summary +******************* + + +Worst slack in design: 4.079 + +@N: MT286 |System clock period 0.000 stretches to negative invalid value -- ignoring stretching. + Requested Estimated Requested Estimated Clock Clock +Starting Clock Frequency Frequency Period Period Slack Type Group +------------------------------------------------------------------------------------------------------------------------------------------- +serdes_sync_1|pll_refclki 100.0 MHz 168.9 MHz 10.000 5.921 4.079 inferred Inferred_clkgroup_0 +serdes_sync_1|rxrefclk 100.0 MHz 170.5 MHz 10.000 5.864 4.136 inferred Inferred_clkgroup_1 +serdes_sync_1|tx_pclk_inferred_clock 100.0 MHz 237.5 MHz 10.000 4.211 5.789 inferred Inferred_clkgroup_2 +System 100.0 MHz 840.7 MHz 10.000 1.190 8.810 system system_clkgroup +=========================================================================================================================================== + + + + + +Clock Relationships +******************* + +Clocks | rise to rise | fall to fall | rise to fall | fall to rise +------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Starting Ending | constraint slack | constraint slack | constraint slack | constraint slack +------------------------------------------------------------------------------------------------------------------------------------------------------------------- +System System | 10.000 10.000 | No paths - | No paths - | No paths - +System serdes_sync_1|rxrefclk | 10.000 8.811 | No paths - | No paths - | No paths - +serdes_sync_1|pll_refclki System | 10.000 8.307 | No paths - | No paths - | No paths - +serdes_sync_1|pll_refclki serdes_sync_1|pll_refclki | 10.000 4.079 | No paths - | No paths - | No paths - +serdes_sync_1|pll_refclki serdes_sync_1|tx_pclk_inferred_clock | Diff grp - | No paths - | No paths - | No paths - +serdes_sync_1|rxrefclk System | 10.000 8.193 | No paths - | No paths - | No paths - +serdes_sync_1|rxrefclk serdes_sync_1|rxrefclk | 10.000 4.136 | No paths - | No paths - | No paths - +serdes_sync_1|tx_pclk_inferred_clock serdes_sync_1|pll_refclki | Diff grp - | No paths - | No paths - | No paths - +serdes_sync_1|tx_pclk_inferred_clock serdes_sync_1|tx_pclk_inferred_clock | 10.000 5.789 | No paths - | No paths - | No paths - +=================================================================================================================================================================== + Note: 'No paths' indicates there are no paths in the design for that pair of clock edges. + 'Diff grp' indicates that paths exist but the starting clock and ending clock are in different clock groups. + + + +Interface Information +********************* + +No IO constraint found + + + +==================================== +Detailed Report for Clock: serdes_sync_1|pll_refclki +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +----------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[1] serdes_sync_1|pll_refclki FD1S3DX Q plol_cnt[1] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[6] serdes_sync_1|pll_refclki FD1S3DX Q plol_cnt[6] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[7] serdes_sync_1|pll_refclki FD1S3DX Q plol_cnt[7] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[12] serdes_sync_1|pll_refclki FD1S3DX Q plol_cnt[12] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[2] serdes_sync_1|pll_refclki FD1S3DX Q plol_cnt[2] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[3] serdes_sync_1|pll_refclki FD1S3DX Q plol_cnt[3] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[4] serdes_sync_1|pll_refclki FD1S3DX Q plol_cnt[4] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[5] serdes_sync_1|pll_refclki FD1S3DX Q plol_cnt[5] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[8] serdes_sync_1|pll_refclki FD1S3DX Q plol_cnt[8] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[9] serdes_sync_1|pll_refclki FD1S3DX Q plol_cnt[9] 0.907 4.684 +======================================================================================================================= + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +-------------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[19] serdes_sync_1|pll_refclki FD1S3DX D plol_cnt_s[19] 9.946 4.079 +rsl_inst.genblk1\.plol_cnt[17] serdes_sync_1|pll_refclki FD1S3DX D plol_cnt_s[17] 9.946 4.139 +rsl_inst.genblk1\.plol_cnt[18] serdes_sync_1|pll_refclki FD1S3DX D plol_cnt_s[18] 9.946 4.139 +rsl_inst.genblk1\.plol_cnt[15] serdes_sync_1|pll_refclki FD1S3DX D plol_cnt_s[15] 9.946 4.200 +rsl_inst.genblk1\.plol_cnt[16] serdes_sync_1|pll_refclki FD1S3DX D plol_cnt_s[16] 9.946 4.200 +rsl_inst.genblk1\.plol_cnt[13] serdes_sync_1|pll_refclki FD1S3DX D plol_cnt_s[13] 9.946 4.261 +rsl_inst.genblk1\.plol_cnt[14] serdes_sync_1|pll_refclki FD1S3DX D plol_cnt_s[14] 9.946 4.261 +rsl_inst.genblk1\.plol_cnt[11] serdes_sync_1|pll_refclki FD1S3DX D plol_cnt_s[11] 9.946 4.322 +rsl_inst.genblk1\.plol_cnt[12] serdes_sync_1|pll_refclki FD1S3DX D plol_cnt_s[12] 9.946 4.322 +rsl_inst.genblk1\.plol_cnt[9] serdes_sync_1|pll_refclki FD1S3DX D plol_cnt_s[9] 9.946 4.383 +========================================================================================================================== + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 5.867 + - Clock delay at starting point: 0.000 (ideal) + = Slack (critical) : 4.079 + + Number of logic level(s): 15 + Starting point: rsl_inst.genblk1\.plol_cnt[1] / Q + Ending point: rsl_inst.genblk1\.plol_cnt[19] / D + The start point is clocked by serdes_sync_1|pll_refclki [rising] on pin CK + The end point is clocked by serdes_sync_1|pll_refclki [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[1] FD1S3DX Q Out 0.907 0.907 - +plol_cnt[1] Net - - - - 2 +rsl_inst.genblk1\.un1_plol_cnt_tc_10 ORCALUT4 A In 0.000 0.907 - +rsl_inst.genblk1\.un1_plol_cnt_tc_10 ORCALUT4 Z Out 0.606 1.513 - +un1_plol_cnt_tc_10 Net - - - - 1 +rsl_inst.genblk1\.un1_plol_cnt_tc_14 ORCALUT4 D In 0.000 1.513 - +rsl_inst.genblk1\.un1_plol_cnt_tc_14 ORCALUT4 Z Out 0.606 2.119 - +un1_plol_cnt_tc_14 Net - - - - 1 +rsl_inst.genblk1\.un1_plol_cnt_tc ORCALUT4 D In 0.000 2.119 - +rsl_inst.genblk1\.un1_plol_cnt_tc ORCALUT4 Z Out 0.762 2.881 - +un1_plol_cnt_tc Net - - - - 5 +rsl_inst.genblk1\.plol_cnt11_i ORCALUT4 B In 0.000 2.881 - +rsl_inst.genblk1\.plol_cnt11_i ORCALUT4 Z Out 0.840 3.721 - +plol_cnt Net - - - - 21 +rsl_inst.genblk1\.plol_cnt_cry_0[0] CCU2C A1 In 0.000 3.721 - +rsl_inst.genblk1\.plol_cnt_cry_0[0] CCU2C COUT Out 0.900 4.621 - +plol_cnt_cry[0] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[1] CCU2C CIN In 0.000 4.621 - +rsl_inst.genblk1\.plol_cnt_cry_0[1] CCU2C COUT Out 0.061 4.682 - +plol_cnt_cry[2] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[3] CCU2C CIN In 0.000 4.682 - +rsl_inst.genblk1\.plol_cnt_cry_0[3] CCU2C COUT Out 0.061 4.743 - +plol_cnt_cry[4] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[5] CCU2C CIN In 0.000 4.743 - +rsl_inst.genblk1\.plol_cnt_cry_0[5] CCU2C COUT Out 0.061 4.804 - +plol_cnt_cry[6] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[7] CCU2C CIN In 0.000 4.804 - +rsl_inst.genblk1\.plol_cnt_cry_0[7] CCU2C COUT Out 0.061 4.865 - +plol_cnt_cry[8] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[9] CCU2C CIN In 0.000 4.865 - +rsl_inst.genblk1\.plol_cnt_cry_0[9] CCU2C COUT Out 0.061 4.926 - +plol_cnt_cry[10] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[11] CCU2C CIN In 0.000 4.926 - +rsl_inst.genblk1\.plol_cnt_cry_0[11] CCU2C COUT Out 0.061 4.987 - +plol_cnt_cry[12] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[13] CCU2C CIN In 0.000 4.987 - +rsl_inst.genblk1\.plol_cnt_cry_0[13] CCU2C COUT Out 0.061 5.048 - +plol_cnt_cry[14] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[15] CCU2C CIN In 0.000 5.048 - +rsl_inst.genblk1\.plol_cnt_cry_0[15] CCU2C COUT Out 0.061 5.109 - +plol_cnt_cry[16] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[17] CCU2C CIN In 0.000 5.109 - +rsl_inst.genblk1\.plol_cnt_cry_0[17] CCU2C COUT Out 0.061 5.170 - +plol_cnt_cry[18] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_s_0[19] CCU2C CIN In 0.000 5.170 - +rsl_inst.genblk1\.plol_cnt_s_0[19] CCU2C S0 Out 0.698 5.867 - +plol_cnt_s[19] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt[19] FD1S3DX D In 0.000 5.867 - +======================================================================================================= + + + + +==================================== +Detailed Report for Clock: serdes_sync_1|rxrefclk +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------------------------------------------ +rsl_inst.genblk2\.rlol1_cnt[14] serdes_sync_1|rxrefclk FD1P3DX Q rlol1_cnt[14] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[15] serdes_sync_1|rxrefclk FD1P3DX Q rlol1_cnt[15] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[16] serdes_sync_1|rxrefclk FD1P3DX Q rlol1_cnt[16] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[17] serdes_sync_1|rxrefclk FD1P3DX Q rlol1_cnt[17] 0.907 4.136 +rsl_inst.genblk2\.rlols0_cnt[9] serdes_sync_1|rxrefclk FD1P3DX Q rlols0_cnt[9] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[11] serdes_sync_1|rxrefclk FD1P3DX Q rlols0_cnt[11] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[12] serdes_sync_1|rxrefclk FD1P3DX Q rlols0_cnt[12] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[13] serdes_sync_1|rxrefclk FD1P3DX Q rlols0_cnt[13] 0.907 4.170 +rsl_inst.genblk2\.rlol1_cnt[0] serdes_sync_1|rxrefclk FD1P3DX Q rlol1_cnt[0] 0.907 4.742 +rsl_inst.genblk2\.rlol1_cnt[1] serdes_sync_1|rxrefclk FD1P3DX Q rlol1_cnt[1] 0.907 4.742 +======================================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rlol1_cnt[17] serdes_sync_1|rxrefclk FD1P3DX D rlol1_cnt_s[17] 9.946 4.136 +rsl_inst.genblk2\.rlol1_cnt[18] serdes_sync_1|rxrefclk FD1P3DX D rlol1_cnt_s[18] 9.946 4.136 +rsl_inst.genblk2\.rlols0_cnt[17] serdes_sync_1|rxrefclk FD1P3DX D rlols0_cnt_s[17] 9.946 4.170 +rsl_inst.genblk2\.rlol1_cnt[15] serdes_sync_1|rxrefclk FD1P3DX D rlol1_cnt_s[15] 9.946 4.197 +rsl_inst.genblk2\.rlol1_cnt[16] serdes_sync_1|rxrefclk FD1P3DX D rlol1_cnt_s[16] 9.946 4.197 +rsl_inst.genblk2\.rlols0_cnt[15] serdes_sync_1|rxrefclk FD1P3DX D rlols0_cnt_s[15] 9.946 4.231 +rsl_inst.genblk2\.rlols0_cnt[16] serdes_sync_1|rxrefclk FD1P3DX D rlols0_cnt_s[16] 9.946 4.231 +rsl_inst.genblk2\.rlol1_cnt[13] serdes_sync_1|rxrefclk FD1P3DX D rlol1_cnt_s[13] 9.946 4.258 +rsl_inst.genblk2\.rlol1_cnt[14] serdes_sync_1|rxrefclk FD1P3DX D rlol1_cnt_s[14] 9.946 4.258 +rsl_inst.genblk2\.rlols0_cnt[13] serdes_sync_1|rxrefclk FD1P3DX D rlols0_cnt_s[13] 9.946 4.292 +=========================================================================================================================== + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 5.809 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : 4.136 + + Number of logic level(s): 14 + Starting point: rsl_inst.genblk2\.rlol1_cnt[14] / Q + Ending point: rsl_inst.genblk2\.rlol1_cnt[18] / D + The start point is clocked by serdes_sync_1|rxrefclk [rising] on pin CK + The end point is clocked by serdes_sync_1|rxrefclk [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +-------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rlol1_cnt[14] FD1P3DX Q Out 0.907 0.907 - +rlol1_cnt[14] Net - - - - 2 +rsl_inst.rlol1_cnt_tc_1_10 ORCALUT4 A In 0.000 0.907 - +rsl_inst.rlol1_cnt_tc_1_10 ORCALUT4 Z Out 0.606 1.513 - +rlol1_cnt_tc_1_10 Net - - - - 1 +rsl_inst.rlol1_cnt_tc_1_14 ORCALUT4 D In 0.000 1.513 - +rsl_inst.rlol1_cnt_tc_1_14 ORCALUT4 Z Out 0.606 2.119 - +rlol1_cnt_tc_1_14 Net - - - - 1 +rsl_inst.rlol1_cnt_tc_1 ORCALUT4 D In 0.000 2.119 - +rsl_inst.rlol1_cnt_tc_1 ORCALUT4 Z Out 0.768 2.887 - +rlol1_cnt_tc_1 Net - - - - 6 +rsl_inst.genblk2\.rlos_db_p1_RNIS0OP ORCALUT4 A In 0.000 2.887 - +rsl_inst.genblk2\.rlos_db_p1_RNIS0OP ORCALUT4 Z Out 0.837 3.724 - +rlol1_cnt Net - - - - 20 +rsl_inst.genblk2\.rlol1_cnt_cry_0[0] CCU2C A1 In 0.000 3.724 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[0] CCU2C COUT Out 0.900 4.624 - +rlol1_cnt_cry[0] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[1] CCU2C CIN In 0.000 4.624 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[1] CCU2C COUT Out 0.061 4.685 - +rlol1_cnt_cry[2] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[3] CCU2C CIN In 0.000 4.685 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[3] CCU2C COUT Out 0.061 4.746 - +rlol1_cnt_cry[4] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[5] CCU2C CIN In 0.000 4.746 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[5] CCU2C COUT Out 0.061 4.807 - +rlol1_cnt_cry[6] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[7] CCU2C CIN In 0.000 4.807 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[7] CCU2C COUT Out 0.061 4.868 - +rlol1_cnt_cry[8] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[9] CCU2C CIN In 0.000 4.868 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[9] CCU2C COUT Out 0.061 4.929 - +rlol1_cnt_cry[10] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[11] CCU2C CIN In 0.000 4.929 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[11] CCU2C COUT Out 0.061 4.990 - +rlol1_cnt_cry[12] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[13] CCU2C CIN In 0.000 4.990 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[13] CCU2C COUT Out 0.061 5.051 - +rlol1_cnt_cry[14] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[15] CCU2C CIN In 0.000 5.051 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[15] CCU2C COUT Out 0.061 5.112 - +rlol1_cnt_cry[16] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[17] CCU2C CIN In 0.000 5.112 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[17] CCU2C S1 Out 0.698 5.809 - +rlol1_cnt_s[18] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt[18] FD1P3DX D In 0.000 5.809 - +======================================================================================================== + + + + +==================================== +Detailed Report for Clock: serdes_sync_1|tx_pclk_inferred_clock +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------------------------------------------------- +sll_inst.ppul_sync_p1 serdes_sync_1|tx_pclk_inferred_clock FD1S3DX Q ppul_sync_p1 1.098 5.789 +sll_inst.ppul_sync_p2 serdes_sync_1|tx_pclk_inferred_clock FD1S3DX Q ppul_sync_p2 1.098 5.789 +sll_inst.pcount_diff[0] serdes_sync_1|tx_pclk_inferred_clock FD1P3BX Q un13_lock_0 0.985 6.147 +sll_inst.pcount[0] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX Q pcount[0] 0.955 6.178 +sll_inst.pcount_diff[1] serdes_sync_1|tx_pclk_inferred_clock FD1P3BX Q un13_lock_1 0.955 6.239 +sll_inst.pcount_diff[2] serdes_sync_1|tx_pclk_inferred_clock FD1P3BX Q un13_lock_2 0.955 6.239 +sll_inst.pcount[1] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX Q pcount[1] 0.907 6.287 +sll_inst.pcount[2] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX Q pcount[2] 0.907 6.287 +sll_inst.pcount_diff[3] serdes_sync_1|tx_pclk_inferred_clock FD1P3BX Q un13_lock_3 0.955 6.300 +sll_inst.pcount_diff[4] serdes_sync_1|tx_pclk_inferred_clock FD1P3BX Q un13_lock_4 0.955 6.300 +=========================================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +-------------------------------------------------------------------------------------------------------------------------------------------- +sll_inst.pcount[21] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX D pcount_s[21] 9.946 5.789 +sll_inst.pcount[19] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX D pcount_s[19] 9.946 5.850 +sll_inst.pcount[20] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX D pcount_s[20] 9.946 5.850 +sll_inst.pcount[17] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX D pcount_s[17] 9.946 5.911 +sll_inst.pcount[18] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX D pcount_s[18] 9.946 5.911 +sll_inst.pcount[15] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX D pcount_s[15] 9.946 5.972 +sll_inst.pcount[16] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX D pcount_s[16] 9.946 5.972 +sll_inst.pcount[13] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX D pcount_s[13] 9.946 6.033 +sll_inst.pcount[14] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX D pcount_s[14] 9.946 6.033 +sll_inst.pcount_diff[21] serdes_sync_1|tx_pclk_inferred_clock FD1P3DX D un1_pcount_diff_1_s_21_0_S0 9.946 6.034 +============================================================================================================================================ + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 4.157 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : 5.789 + + Number of logic level(s): 13 + Starting point: sll_inst.ppul_sync_p1 / Q + Ending point: sll_inst.pcount[21] / D + The start point is clocked by serdes_sync_1|tx_pclk_inferred_clock [rising] on pin CK + The end point is clocked by serdes_sync_1|tx_pclk_inferred_clock [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +-------------------------------------------------------------------------------------------- +sll_inst.ppul_sync_p1 FD1S3DX Q Out 1.098 1.098 - +ppul_sync_p1 Net - - - - 25 +sll_inst.pcount10_0_o3 ORCALUT4 A In 0.000 1.098 - +sll_inst.pcount10_0_o3 ORCALUT4 Z Out 0.851 1.950 - +N_8 Net - - - - 25 +sll_inst.pcount_cry_0[0] CCU2C A1 In 0.000 1.950 - +sll_inst.pcount_cry_0[0] CCU2C COUT Out 0.900 2.850 - +pcount_cry[0] Net - - - - 1 +sll_inst.pcount_cry_0[1] CCU2C CIN In 0.000 2.850 - +sll_inst.pcount_cry_0[1] CCU2C COUT Out 0.061 2.911 - +pcount_cry[2] Net - - - - 1 +sll_inst.pcount_cry_0[3] CCU2C CIN In 0.000 2.911 - +sll_inst.pcount_cry_0[3] CCU2C COUT Out 0.061 2.972 - +pcount_cry[4] Net - - - - 1 +sll_inst.pcount_cry_0[5] CCU2C CIN In 0.000 2.972 - +sll_inst.pcount_cry_0[5] CCU2C COUT Out 0.061 3.033 - +pcount_cry[6] Net - - - - 1 +sll_inst.pcount_cry_0[7] CCU2C CIN In 0.000 3.033 - +sll_inst.pcount_cry_0[7] CCU2C COUT Out 0.061 3.094 - +pcount_cry[8] Net - - - - 1 +sll_inst.pcount_cry_0[9] CCU2C CIN In 0.000 3.094 - +sll_inst.pcount_cry_0[9] CCU2C COUT Out 0.061 3.155 - +pcount_cry[10] Net - - - - 1 +sll_inst.pcount_cry_0[11] CCU2C CIN In 0.000 3.155 - +sll_inst.pcount_cry_0[11] CCU2C COUT Out 0.061 3.216 - +pcount_cry[12] Net - - - - 1 +sll_inst.pcount_cry_0[13] CCU2C CIN In 0.000 3.216 - +sll_inst.pcount_cry_0[13] CCU2C COUT Out 0.061 3.277 - +pcount_cry[14] Net - - - - 1 +sll_inst.pcount_cry_0[15] CCU2C CIN In 0.000 3.277 - +sll_inst.pcount_cry_0[15] CCU2C COUT Out 0.061 3.338 - +pcount_cry[16] Net - - - - 1 +sll_inst.pcount_cry_0[17] CCU2C CIN In 0.000 3.338 - +sll_inst.pcount_cry_0[17] CCU2C COUT Out 0.061 3.399 - +pcount_cry[18] Net - - - - 1 +sll_inst.pcount_cry_0[19] CCU2C CIN In 0.000 3.399 - +sll_inst.pcount_cry_0[19] CCU2C COUT Out 0.061 3.460 - +pcount_cry[20] Net - - - - 1 +sll_inst.pcount_s_0[21] CCU2C CIN In 0.000 3.460 - +sll_inst.pcount_s_0[21] CCU2C S0 Out 0.698 4.157 - +pcount_s[21] Net - - - - 1 +sll_inst.pcount[21] FD1S3DX D In 0.000 4.157 - +============================================================================================ + + + + +==================================== +Detailed Report for Clock: System +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------------- +DCU0_inst System DCUA CH0_FFS_RLOL rx_cdr_lol_s 0.000 8.810 +DCU0_inst System DCUA CH0_FFS_RLOS rx_los_low_s 0.000 8.810 +DCU0_inst System DCUA CH0_FF_RX_PCLK rx_pclk 0.000 10.000 +=========================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] System FD1P3DX SP un2_rdo_serdes_rst_dual_c_2_i 9.806 8.810 +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] System FD1P3DX D un2_rdo_serdes_rst_dual_c_1 9.946 9.556 +rsl_inst.genblk2\.rlol_p1 System FD1S3DX D rx_cdr_lol_s 9.946 9.946 +rsl_inst.genblk2\.rlos_p1 System FD1S3DX D rx_los_low_s 9.946 9.946 +DCU0_inst System DCUA CH0_FF_RXI_CLK rx_pclk 10.000 10.000 +========================================================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.194 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.806 + + - Propagation time: 0.996 + - Clock delay at starting point: 0.000 (ideal) + - Estimated clock delay at start point: -0.000 + = Slack (non-critical) : 8.810 + + Number of logic level(s): 2 + Starting point: DCU0_inst / CH0_FFS_RLOL + Ending point: rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] / SP + The start point is clocked by System [rising] + The end point is clocked by serdes_sync_1|rxrefclk [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +--------------------------------------------------------------------------------------------------------------------------------- +DCU0_inst DCUA CH0_FFS_RLOL Out 0.000 0.000 - +rx_cdr_lol_s Net - - - - 4 +rsl_inst.un2_rdo_serdes_rst_dual_c_2_0 ORCALUT4 B In 0.000 0.000 - +rsl_inst.un2_rdo_serdes_rst_dual_c_2_0 ORCALUT4 Z Out 0.606 0.606 - +un2_rdo_serdes_rst_dual_c_2_0 Net - - - - 1 +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd_RNO[0] ORCALUT4 B In 0.000 0.606 - +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd_RNO[0] ORCALUT4 Z Out 0.390 0.996 - +un2_rdo_serdes_rst_dual_c_2_i Net - - - - 1 +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] FD1P3DX SP In 0.000 0.996 - +================================================================================================================================= + + + +##### END OF TIMING REPORT #####] + +Timing exceptions that could not be applied +None + +Finished final timing analysis (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 150MB peak: 152MB) + + +Finished timing report (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 150MB peak: 152MB) + +--------------------------------------- +Resource Usage Report +Part: lfe5um_25f-6 + +Register bits: 220 of 24288 (1%) +PIC Latch: 0 +I/O cells: 0 + + +Details: +CCU2C: 113 +DCUA: 1 +FD1P3BX: 20 +FD1P3DX: 92 +FD1S3BX: 12 +FD1S3DX: 96 +GSR: 1 +INV: 3 +ORCALUT4: 150 +PFUMX: 2 +PUR: 1 +VHI: 6 +VLO: 6 +Mapper successful! + +At Mapper Exit (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 35MB peak: 152MB) + +Process took 0h:00m:03s realtime, 0h:00m:03s cputime +# Fri May 10 10:23:38 2019 + +###########################################################] diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.srr.db b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.srr.db new file mode 100644 index 0000000000000000000000000000000000000000..ba0ed54fa8e1d8251937bc443b82c33069d29f68 GIT binary patch literal 40960 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 R009600|2xTG0UH90RS4(1mgez literal 0 HcmV?d00001 diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.vhm b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.vhm new file mode 100644 index 0000000..cc3fb94 --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.vhm @@ -0,0 +1,6398 @@ +-- +-- Written by Synplicity +-- Product Version "M-2017.03L-SP1-1" +-- Program "Synplify Pro", Mapper "maplat, Build 1796R" +-- Fri May 10 10:23:37 2019 +-- + +-- +-- Written by Synplify Pro version Build 1796R +-- Fri May 10 10:23:37 2019 +-- + +-- +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; +library synplify; +use synplify.components.all; +library pmi; +use pmi.pmi_components.all; +library ecp5um; +use ecp5um.components.all; + +entity sync_0s_0 is +port( + ppul_sync : in std_logic; + pdiff_sync : out std_logic; + sli_rst : in std_logic; + pll_refclki : in std_logic); +end sync_0s_0; + +architecture beh of sync_0s_0 is + signal DATA_P1 : std_logic ; + signal DATA_P2_QN_1 : std_logic ; + signal VCC : std_logic ; + signal DATA_P1_QN_1 : std_logic ; + signal GND : std_logic ; +begin +DATA_P2_REG_Z10: FD1S3DX port map ( + D => DATA_P1, + CK => pll_refclki, + CD => sli_rst, + Q => pdiff_sync); +DATA_P1_REG_Z12: FD1S3DX port map ( + D => ppul_sync, + CK => pll_refclki, + CD => sli_rst, + Q => DATA_P1); +VCC_0: VHI port map ( + Z => VCC); +II_GND: VLO port map ( + Z => GND); +end beh; + +-- +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; +library synplify; +use synplify.components.all; +library pmi; +use pmi.pmi_components.all; +library ecp5um; +use ecp5um.components.all; + +entity sync_0s_6 is +port( +rtc_pul : in std_logic; +ppul_sync : out std_logic; +sli_rst : in std_logic; +tx_pclk : in std_logic); +end sync_0s_6; + +architecture beh of sync_0s_6 is +signal DATA_P1 : std_logic ; +signal DATA_P2_QN : std_logic ; +signal VCC : std_logic ; +signal DATA_P1_QN : std_logic ; +signal GND : std_logic ; +begin +DATA_P2_REG_Z10: FD1S3DX port map ( + D => DATA_P1, + CK => tx_pclk, + CD => sli_rst, + Q => ppul_sync); +DATA_P1_REG_Z12: FD1S3DX port map ( + D => rtc_pul, + CK => tx_pclk, + CD => sli_rst, + Q => DATA_P1); +VCC_0: VHI port map ( + Z => VCC); +II_GND: VLO port map ( + Z => GND); +end beh; + +-- +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; +library synplify; +use synplify.components.all; +library pmi; +use pmi.pmi_components.all; +library ecp5um; +use ecp5um.components.all; + +entity sync_0s is +port( +phb : in std_logic; +rhb_sync : out std_logic; +sli_rst : in std_logic; +pll_refclki : in std_logic); +end sync_0s; + +architecture beh of sync_0s is +signal DATA_P1 : std_logic ; +signal DATA_P2_QN_0 : std_logic ; +signal VCC : std_logic ; +signal DATA_P1_QN_0 : std_logic ; +signal GND : std_logic ; +begin +DATA_P2_REG_Z10: FD1S3DX port map ( +D => DATA_P1, +CK => pll_refclki, +CD => sli_rst, +Q => rhb_sync); +DATA_P1_REG_Z12: FD1S3DX port map ( +D => phb, +CK => pll_refclki, +CD => sli_rst, +Q => DATA_P1); +VCC_0: VHI port map ( +Z => VCC); +II_GND: VLO port map ( +Z => GND); +end beh; + +-- +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; +library synplify; +use synplify.components.all; +library pmi; +use pmi.pmi_components.all; +library ecp5um; +use ecp5um.components.all; + +entity serdes_sync_1rsl_core_Z2_layer1 is +port( +rx_pcs_rst_c : in std_logic; +serdes_rst_dual_c : in std_logic; +tx_serdes_rst_c : in std_logic; +rsl_tx_pcs_rst_c : out std_logic; +rst_dual_c : in std_logic; +rsl_rx_pcs_rst_c : out std_logic; +rsl_tx_serdes_rst_c : out std_logic; +rsl_tx_rdy : out std_logic; +pll_lock_i : in std_logic; +pll_refclki : in std_logic; +rsl_rx_rdy : out std_logic; +rx_cdr_lol_s : in std_logic; +rx_los_low_s : in std_logic; +rsl_rst : in std_logic; +rxrefclk : in std_logic; +rx_serdes_rst_c : in std_logic; +rsl_rx_serdes_rst_c : out std_logic; +rsl_serdes_rst_dual_c : out std_logic; +rsl_disable : in std_logic; +tx_pcs_rst_c : in std_logic); +end serdes_sync_1rsl_core_Z2_layer1; + +architecture beh of serdes_sync_1rsl_core_Z2_layer1 is +signal PLOL0_CNT : std_logic_vector(2 downto 0); +signal PLOL0_CNT_3 : std_logic_vector(2 downto 0); +signal RXSR_APPD : std_logic_vector(0 to 0); +signal RXS_CNT_3 : std_logic_vector(1 downto 0); +signal RXS_CNT : std_logic_vector(1 downto 0); +signal RXS_CNT_QN : std_logic_vector(1 downto 0); +signal RLOS_DB_CNT : std_logic_vector(3 downto 0); +signal RLOS_DB_CNT_QN : std_logic_vector(3 downto 0); +signal RLOLS0_CNT_S : std_logic_vector(17 downto 0); +signal RLOLS0_CNT : std_logic_vector(17 downto 0); +signal RLOLS0_CNT_QN : std_logic_vector(17 downto 0); +signal RLOL_DB_CNT : std_logic_vector(3 downto 0); +signal RLOL_DB_CNT_QN : std_logic_vector(3 downto 0); +signal RLOL1_CNT_S : std_logic_vector(18 downto 0); +signal RLOL1_CNT : std_logic_vector(18 downto 0); +signal RLOL1_CNT_QN : std_logic_vector(18 downto 0); +signal RXR_WT_CNT_S : std_logic_vector(11 downto 0); +signal RXR_WT_CNT : std_logic_vector(11 downto 0); +signal RXR_WT_CNT_QN : std_logic_vector(11 downto 0); +signal RXSR_APPD_QN : std_logic_vector(0 to 0); +signal RXPR_APPD : std_logic_vector(0 to 0); +signal RXPR_APPD_QN : std_logic_vector(0 to 0); +signal TXS_CNT : std_logic_vector(1 downto 0); +signal TXS_CNT_QN : std_logic_vector(1 downto 0); +signal TXS_CNT_RNO : std_logic_vector(1 to 1); +signal TXP_CNT : std_logic_vector(1 downto 0); +signal TXP_CNT_QN : std_logic_vector(1 downto 0); +signal TXP_CNT_RNO : std_logic_vector(1 to 1); +signal PLOL_CNT_S : std_logic_vector(19 downto 0); +signal PLOL_CNT : std_logic_vector(19 downto 0); +signal PLOL_CNT_QN : std_logic_vector(19 downto 0); +signal PLOL0_CNT_QN : std_logic_vector(2 downto 0); +signal TXR_WT_CNT_S : std_logic_vector(11 downto 0); +signal TXR_WT_CNT : std_logic_vector(11 downto 0); +signal TXR_WT_CNT_QN : std_logic_vector(11 downto 0); +signal TXPR_APPD : std_logic_vector(0 to 0); +signal TXPR_APPD_QN : std_logic_vector(0 to 0); +signal UN1_RLOL_DB_CNT_ZERO : std_logic_vector(0 to 0); +signal UN1_RLOS_DB_CNT_ZERO : std_logic_vector(0 to 0); +signal UN1_RLOL_DB_CNT_ZERO_BM : std_logic_vector(0 to 0); +signal UN1_RLOL_DB_CNT_ZERO_AM : std_logic_vector(0 to 0); +signal UN1_RLOS_DB_CNT_ZERO_BM : std_logic_vector(0 to 0); +signal UN1_RLOS_DB_CNT_ZERO_AM : std_logic_vector(0 to 0); +signal RLOL1_CNT_CRY : std_logic_vector(16 downto 0); +signal RLOL1_CNT_CRY_0_S0 : std_logic_vector(0 to 0); +signal RLOL1_CNT_CRY_0_COUT : std_logic_vector(17 to 17); +signal RLOLS0_CNT_CRY : std_logic_vector(16 downto 0); +signal RLOLS0_CNT_CRY_0_S0 : std_logic_vector(0 to 0); +signal RLOLS0_CNT_S_0_COUT : std_logic_vector(17 to 17); +signal RLOLS0_CNT_S_0_S1 : std_logic_vector(17 to 17); +signal TXR_WT_CNT_CRY : std_logic_vector(10 downto 0); +signal TXR_WT_CNT_CRY_0_S0 : std_logic_vector(0 to 0); +signal TXR_WT_CNT_S_0_COUT : std_logic_vector(11 to 11); +signal TXR_WT_CNT_S_0_S1 : std_logic_vector(11 to 11); +signal RXR_WT_CNT_CRY : std_logic_vector(10 downto 0); +signal RXR_WT_CNT_CRY_0_S0 : std_logic_vector(0 to 0); +signal RXR_WT_CNT_S_0_COUT : std_logic_vector(11 to 11); +signal RXR_WT_CNT_S_0_S1 : std_logic_vector(11 to 11); +signal PLOL_CNT_CRY : std_logic_vector(18 downto 0); +signal PLOL_CNT_CRY_0_S0 : std_logic_vector(0 to 0); +signal PLOL_CNT_S_0_COUT : std_logic_vector(19 to 19); +signal PLOL_CNT_S_0_S1 : std_logic_vector(19 to 19); +signal TXDPR_APPD : std_logic ; +signal TXP_RST : std_logic ; +signal UN2_RDO_TX_PCS_RST_C : std_logic ; +signal RSL_SERDES_RST_DUAL_C_10 : std_logic ; +signal RSL_RX_SERDES_RST_C_9 : std_logic ; +signal RLOS_DB_P1 : std_logic ; +signal RLOS_DB : std_logic ; +signal RXP_RST25 : std_logic ; +signal PLOL0_CNT9 : std_logic ; +signal WAITA_PLOL0 : std_logic ; +signal DUAL_OR_SERD_RST : std_logic ; +signal UN18_TXR_WT_TC_8 : std_logic ; +signal UN18_TXR_WT_TC_7 : std_logic ; +signal UN18_TXR_WT_TC_6 : std_logic ; +signal UN1_DUAL_OR_SERD_RST_1_1 : std_logic ; +signal UN1_RUI_RST_DUAL_C_1_1 : std_logic ; +signal UN17_RXR_WT_TC_8 : std_logic ; +signal UN17_RXR_WT_TC_7 : std_logic ; +signal UN17_RXR_WT_TC_6 : std_logic ; +signal UN3_RX_ALL_WELL_1 : std_logic ; +signal RLOL1_CNT_TC_1 : std_logic ; +signal RXS_RST : std_logic ; +signal \RLOL1_CNT_\ : std_logic ; +signal UN2_PLOL_FEDGE_5_1 : std_logic ; +signal UN2_PLOL_FEDGE_5_I : std_logic ; +signal N_2175_0 : std_logic ; +signal WAITA_RLOLS06 : std_logic ; +signal UN1_RLOLS0_CNT_TC : std_logic ; +signal WAITA_RLOLS0 : std_logic ; +signal WAITA_RLOLS0_QN : std_logic ; +signal VCC : std_logic ; +signal WAIT_CALIB_RNO : std_logic ; +signal UN1_RLOS_FEDGE_1 : std_logic ; +signal WAIT_CALIB : std_logic ; +signal WAIT_CALIB_QN : std_logic ; +signal RXS_RST6 : std_logic ; +signal UN1_RXS_CNT_TC : std_logic ; +signal RXS_RST_QN : std_logic ; +signal UN2_RLOS_REDGE_1_I : std_logic ; +signal RXP_RST2 : std_logic ; +signal RXP_RST2_QN : std_logic ; +signal RLOS_P1 : std_logic ; +signal RLOS_P2 : std_logic ; +signal RLOS_P2_QN : std_logic ; +signal RLOS_P1_QN : std_logic ; +signal RLOS_DB_P1_QN : std_logic ; +signal RLOS_DB_CNT_AXB_0 : std_logic ; +signal RLOS_DB_CNT_CRY_1_0_S0 : std_logic ; +signal RLOS_DB_CNT_CRY_1_0_S1 : std_logic ; +signal RLOS_DB_CNT_S_3_0_S0 : std_logic ; +signal UN1_RLOS_DB_CNT_MAX : std_logic ; +signal RLOS_DB_QN : std_logic ; +signal RLOLS0_CNTE : std_logic ; +signal RLOL_P1 : std_logic ; +signal RLOL_P2 : std_logic ; +signal RLOL_P2_QN : std_logic ; +signal RLOL_P1_QN : std_logic ; +signal RLOL_DB : std_logic ; +signal RLOL_DB_P1 : std_logic ; +signal RLOL_DB_P1_QN : std_logic ; +signal RLOL_DB_CNT_AXB_0 : std_logic ; +signal RLOL_DB_CNT_CRY_1_0_S0 : std_logic ; +signal RLOL_DB_CNT_CRY_1_0_S1 : std_logic ; +signal RLOL_DB_CNT_S_3_0_S0 : std_logic ; +signal UN1_RLOL_DB_CNT_MAX : std_logic ; +signal RLOL_DB_QN : std_logic ; +signal RLOL1_CNTE : std_logic ; +signal RXSDR_APPD_2 : std_logic ; +signal RXSDR_APPD : std_logic ; +signal RXSDR_APPD_QN : std_logic ; +signal UN1_DUAL_OR_RSERD_RST_2_I : std_logic ; +signal RXR_WT_EN : std_logic ; +signal RXR_WT_EN_QN : std_logic ; +signal RXR_WT_CNTE : std_logic ; +signal UN1_RUI_RST_DUAL_C_1_I : std_logic ; +signal RXDPR_APPD : std_logic ; +signal RXDPR_APPD_QN : std_logic ; +signal UN3_RX_ALL_WELL_2 : std_logic ; +signal RXR_WT_CNT9 : std_logic ; +signal RSL_RX_RDY_8 : std_logic ; +signal RUO_RX_RDYR_QN : std_logic ; +signal UN2_RDO_SERDES_RST_DUAL_C_1 : std_logic ; +signal UN2_RDO_SERDES_RST_DUAL_C_2_I : std_logic ; +signal PLOL_FEDGE : std_logic ; +signal UN1_PLOL0_CNT_TC_1_I : std_logic ; +signal WAITA_PLOL0_QN : std_logic ; +signal UN1_PLOL_CNT_TC : std_logic ; +signal UN2_PLOL_CNT_TC : std_logic ; +signal TXS_RST : std_logic ; +signal TXS_RST_QN : std_logic ; +signal N_10_I : std_logic ; +signal UN9_PLOL0_CNT_TC : std_logic ; +signal UN1_PLOL0_CNT_TC_1 : std_logic ; +signal TXP_RST_QN : std_logic ; +signal N_11_I : std_logic ; +signal PLL_LOL_P2 : std_logic ; +signal PLL_LOL_P3 : std_logic ; +signal PLL_LOL_P3_QN : std_logic ; +signal PLL_LOL_P1 : std_logic ; +signal PLL_LOL_P2_QN : std_logic ; +signal PLL_LOL_P1_QN : std_logic ; +signal TXSR_APPD_2 : std_logic ; +signal TXSR_APPD : std_logic ; +signal TXSR_APPD_QN : std_logic ; +signal UN1_DUAL_OR_SERD_RST_1_I : std_logic ; +signal TXR_WT_EN : std_logic ; +signal TXR_WT_EN_QN : std_logic ; +signal TXR_WT_CNTE : std_logic ; +signal UN2_PLOL_FEDGE_2 : std_logic ; +signal UN2_PLOL_FEDGE_3_I : std_logic ; +signal TXDPR_APPD_QN : std_logic ; +signal RSL_TX_RDY_7 : std_logic ; +signal RUO_TX_RDYR_QN : std_logic ; +signal UN2_PLOL_FEDGE_8_I : std_logic ; +signal RLOLS0_CNT_TC_1 : std_logic ; +signal RLOS_REDGE : std_logic ; +signal RLOLS0_CNT11_0 : std_logic ; +signal RSL_TX_SERDES_RST_C_6 : std_logic ; +signal \PLOL_CNT_\ : std_logic ; +signal \RLOLS0_CNT_\ : std_logic ; +signal UN8_RXS_CNT_TC : std_logic ; +signal TXSR_APPD_4 : std_logic ; +signal UN17_RXR_WT_TC : std_logic ; +signal UN1_DUAL_OR_RSERD_RST_2_0 : std_logic ; +signal UN1_RXSDR_OR_SR_APPD_0 : std_logic ; +signal UN2_RDO_SERDES_RST_DUAL_C_2_0 : std_logic ; +signal RSL_RX_PCS_RST_C_5 : std_logic ; +signal TXR_WT_CNT9 : std_logic ; +signal RX_ANY_RST : std_logic ; +signal UN18_TXR_WT_TC : std_logic ; +signal RSL_TX_PCS_RST_C_4 : std_logic ; +signal RLOLS0_CNT_TC_1_10 : std_logic ; +signal RLOLS0_CNT_TC_1_11 : std_logic ; +signal RLOLS0_CNT_TC_1_12 : std_logic ; +signal RLOLS0_CNT_TC_1_13 : std_logic ; +signal RLOL1_CNT_TC_1_11 : std_logic ; +signal RLOL1_CNT_TC_1_12 : std_logic ; +signal RLOL1_CNT_TC_1_13 : std_logic ; +signal RLOL1_CNT_TC_1_14 : std_logic ; +signal UN1_PLOL_CNT_TC_11 : std_logic ; +signal UN1_PLOL_CNT_TC_12 : std_logic ; +signal UN1_PLOL_CNT_TC_13 : std_logic ; +signal UN1_PLOL_CNT_TC_14 : std_logic ; +signal CO0_2 : std_logic ; +signal RLOLS0_CNT_TC_1_9 : std_logic ; +signal UN1_PLOL_CNT_TC_10 : std_logic ; +signal RLOL1_CNT_TC_1_10 : std_logic ; +signal UN3_RX_ALL_WELL_2_1 : std_logic ; +signal RXSDR_APPD_4 : std_logic ; +signal RLOS_DB_CNT_CRY_0 : std_logic ; +signal RLOS_DB_CNT_CRY_0_0_S0 : std_logic ; +signal RLOS_DB_CNT_CRY_0_0_S1 : std_logic ; +signal RLOS_DB_CNT_CRY_2 : std_logic ; +signal RLOS_DB_CNT_S_3_0_COUT : std_logic ; +signal RLOS_DB_CNT_S_3_0_S1 : std_logic ; +signal RLOL_DB_CNT_CRY_0 : std_logic ; +signal RLOL_DB_CNT_CRY_0_0_S0 : std_logic ; +signal RLOL_DB_CNT_CRY_0_0_S1 : std_logic ; +signal RLOL_DB_CNT_CRY_2 : std_logic ; +signal RLOL_DB_CNT_S_3_0_COUT : std_logic ; +signal RLOL_DB_CNT_S_3_0_S1 : std_logic ; +signal GND : std_logic ; +signal N_1 : std_logic ; +signal N_2 : std_logic ; +signal N_3 : std_logic ; +signal N_4 : std_logic ; +signal N_5 : std_logic ; +signal N_6 : std_logic ; +signal N_7 : std_logic ; +begin +\GENBLK1.GENBLK2.MFOR[0].TXPR_APPD_RNO_0[0]\: LUT4 +generic map( + init => X"EEFE" +) +port map ( +A => TXDPR_APPD, +B => tx_pcs_rst_c, +C => TXP_RST, +D => rsl_disable, +Z => UN2_RDO_TX_PCS_RST_C); +\GENBLK2.RXP_RST2_RNO\: LUT4 +generic map( + init => X"EFEE" +) +port map ( +A => RSL_SERDES_RST_DUAL_C_10, +B => RSL_RX_SERDES_RST_C_9, +C => RLOS_DB_P1, +D => RLOS_DB, +Z => RXP_RST25); +\GENBLK1.PLOL0_CNT_RNO[1]\: LUT4 +generic map( + init => X"1222" +) +port map ( +A => PLOL0_CNT(1), +B => PLOL0_CNT9, +C => WAITA_PLOL0, +D => PLOL0_CNT(0), +Z => PLOL0_CNT_3(1)); +\GENBLK1.GENBLK2.UN18_TXR_WT_TC_6_RNI7IS21\: LUT4 +generic map( + init => X"1555" +) +port map ( +A => DUAL_OR_SERD_RST, +B => UN18_TXR_WT_TC_8, +C => UN18_TXR_WT_TC_7, +D => UN18_TXR_WT_TC_6, +Z => UN1_DUAL_OR_SERD_RST_1_1); +\GENBLK2.GENBLK3.RXR_WT_EN_RNO\: LUT4 +generic map( + init => X"2AAA" +) +port map ( +A => UN1_RUI_RST_DUAL_C_1_1, +B => UN17_RXR_WT_TC_8, +C => UN17_RXR_WT_TC_7, +D => UN17_RXR_WT_TC_6, +Z => UN3_RX_ALL_WELL_1); +\GENBLK2.RLOS_DB_P1_RNIS0OP\: LUT4 +generic map( + init => X"1011" +) +port map ( +A => RLOL1_CNT_TC_1, +B => RXS_RST, +C => RLOS_DB_P1, +D => RLOS_DB, +Z => \RLOL1_CNT_\); +\GENBLK1.GENBLK2.RUO_TX_RDYR_RNO\: LUT4 +generic map( + init => X"D555" +) +port map ( +A => UN2_PLOL_FEDGE_5_1, +B => UN18_TXR_WT_TC_8, +C => UN18_TXR_WT_TC_7, +D => UN18_TXR_WT_TC_6, +Z => UN2_PLOL_FEDGE_5_I); +\GENBLK2.GENBLK3.LFOR[0].RXSR_APPD_RNO[0]\: LUT4 +generic map( + init => X"EEFE" +) +port map ( +A => RXSR_APPD(0), +B => rx_serdes_rst_c, +C => RXS_RST, +D => rsl_disable, +Z => N_2175_0); +\GENBLK2.WAITA_RLOLS0_REG_Z610\: FD1P3DX port map ( +D => WAITA_RLOLS06, +SP => UN1_RLOLS0_CNT_TC, +CK => rxrefclk, +CD => rsl_rst, +Q => WAITA_RLOLS0); +\GENBLK2.WAIT_CALIB_REG_Z612\: FD1P3BX port map ( +D => WAIT_CALIB_RNO, +SP => UN1_RLOS_FEDGE_1, +CK => rxrefclk, +PD => rsl_rst, +Q => WAIT_CALIB); +\GENBLK2.RXS_RST_REG_Z614\: FD1P3DX port map ( +D => RXS_RST6, +SP => UN1_RXS_CNT_TC, +CK => rxrefclk, +CD => rsl_rst, +Q => RXS_RST); +\GENBLK2.RXS_CNT[0]_REG_Z616\: FD1S3DX port map ( +D => RXS_CNT_3(0), +CK => rxrefclk, +CD => rsl_rst, +Q => RXS_CNT(0)); +\GENBLK2.RXS_CNT[1]_REG_Z618\: FD1S3DX port map ( +D => RXS_CNT_3(1), +CK => rxrefclk, +CD => rsl_rst, +Q => RXS_CNT(1)); +\GENBLK2.RXP_RST2_REG_Z620\: FD1P3BX port map ( +D => RXP_RST25, +SP => UN2_RLOS_REDGE_1_I, +CK => rxrefclk, +PD => rsl_rst, +Q => RXP_RST2); +\GENBLK2.RLOS_P2_REG_Z622\: FD1S3DX port map ( +D => RLOS_P1, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOS_P2); +\GENBLK2.RLOS_P1_REG_Z624\: FD1S3DX port map ( +D => rx_los_low_s, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOS_P1); +\GENBLK2.RLOS_DB_P1_REG_Z626\: FD1S3BX port map ( +D => RLOS_DB, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOS_DB_P1); +\GENBLK2.RLOS_DB_CNT[0]_REG_Z628\: FD1S3BX port map ( +D => RLOS_DB_CNT_AXB_0, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOS_DB_CNT(0)); +\GENBLK2.RLOS_DB_CNT[1]_REG_Z630\: FD1S3BX port map ( +D => RLOS_DB_CNT_CRY_1_0_S0, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOS_DB_CNT(1)); +\GENBLK2.RLOS_DB_CNT[2]_REG_Z632\: FD1S3BX port map ( +D => RLOS_DB_CNT_CRY_1_0_S1, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOS_DB_CNT(2)); +\GENBLK2.RLOS_DB_CNT[3]_REG_Z634\: FD1S3BX port map ( +D => RLOS_DB_CNT_S_3_0_S0, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOS_DB_CNT(3)); +\GENBLK2.RLOS_DB_REG_Z636\: FD1P3BX port map ( +D => RLOS_DB_CNT(1), +SP => UN1_RLOS_DB_CNT_MAX, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOS_DB); +\GENBLK2.RLOLS0_CNT[0]_REG_Z638\: FD1P3DX port map ( +D => RLOLS0_CNT_S(0), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(0)); +\GENBLK2.RLOLS0_CNT[1]_REG_Z640\: FD1P3DX port map ( +D => RLOLS0_CNT_S(1), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(1)); +\GENBLK2.RLOLS0_CNT[2]_REG_Z642\: FD1P3DX port map ( +D => RLOLS0_CNT_S(2), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(2)); +\GENBLK2.RLOLS0_CNT[3]_REG_Z644\: FD1P3DX port map ( +D => RLOLS0_CNT_S(3), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(3)); +\GENBLK2.RLOLS0_CNT[4]_REG_Z646\: FD1P3DX port map ( +D => RLOLS0_CNT_S(4), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(4)); +\GENBLK2.RLOLS0_CNT[5]_REG_Z648\: FD1P3DX port map ( +D => RLOLS0_CNT_S(5), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(5)); +\GENBLK2.RLOLS0_CNT[6]_REG_Z650\: FD1P3DX port map ( +D => RLOLS0_CNT_S(6), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(6)); +\GENBLK2.RLOLS0_CNT[7]_REG_Z652\: FD1P3DX port map ( +D => RLOLS0_CNT_S(7), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(7)); +\GENBLK2.RLOLS0_CNT[8]_REG_Z654\: FD1P3DX port map ( +D => RLOLS0_CNT_S(8), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(8)); +\GENBLK2.RLOLS0_CNT[9]_REG_Z656\: FD1P3DX port map ( +D => RLOLS0_CNT_S(9), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(9)); +\GENBLK2.RLOLS0_CNT[10]_REG_Z658\: FD1P3DX port map ( +D => RLOLS0_CNT_S(10), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(10)); +\GENBLK2.RLOLS0_CNT[11]_REG_Z660\: FD1P3DX port map ( +D => RLOLS0_CNT_S(11), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(11)); +\GENBLK2.RLOLS0_CNT[12]_REG_Z662\: FD1P3DX port map ( +D => RLOLS0_CNT_S(12), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(12)); +\GENBLK2.RLOLS0_CNT[13]_REG_Z664\: FD1P3DX port map ( +D => RLOLS0_CNT_S(13), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(13)); +\GENBLK2.RLOLS0_CNT[14]_REG_Z666\: FD1P3DX port map ( +D => RLOLS0_CNT_S(14), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(14)); +\GENBLK2.RLOLS0_CNT[15]_REG_Z668\: FD1P3DX port map ( +D => RLOLS0_CNT_S(15), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(15)); +\GENBLK2.RLOLS0_CNT[16]_REG_Z670\: FD1P3DX port map ( +D => RLOLS0_CNT_S(16), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(16)); +\GENBLK2.RLOLS0_CNT[17]_REG_Z672\: FD1P3DX port map ( +D => RLOLS0_CNT_S(17), +SP => RLOLS0_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOLS0_CNT(17)); +\GENBLK2.RLOL_P2_REG_Z674\: FD1S3DX port map ( +D => RLOL_P1, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL_P2); +\GENBLK2.RLOL_P1_REG_Z676\: FD1S3DX port map ( +D => rx_cdr_lol_s, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL_P1); +\GENBLK2.RLOL_DB_P1_REG_Z678\: FD1S3BX port map ( +D => RLOL_DB, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOL_DB_P1); +\GENBLK2.RLOL_DB_CNT[0]_REG_Z680\: FD1S3BX port map ( +D => RLOL_DB_CNT_AXB_0, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOL_DB_CNT(0)); +\GENBLK2.RLOL_DB_CNT[1]_REG_Z682\: FD1S3BX port map ( +D => RLOL_DB_CNT_CRY_1_0_S0, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOL_DB_CNT(1)); +\GENBLK2.RLOL_DB_CNT[2]_REG_Z684\: FD1S3BX port map ( +D => RLOL_DB_CNT_CRY_1_0_S1, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOL_DB_CNT(2)); +\GENBLK2.RLOL_DB_CNT[3]_REG_Z686\: FD1S3BX port map ( +D => RLOL_DB_CNT_S_3_0_S0, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOL_DB_CNT(3)); +\GENBLK2.RLOL_DB_REG_Z688\: FD1P3BX port map ( +D => RLOL_DB_CNT(1), +SP => UN1_RLOL_DB_CNT_MAX, +CK => rxrefclk, +PD => rsl_rst, +Q => RLOL_DB); +\GENBLK2.RLOL1_CNT[0]_REG_Z690\: FD1P3DX port map ( +D => RLOL1_CNT_S(0), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(0)); +\GENBLK2.RLOL1_CNT[1]_REG_Z692\: FD1P3DX port map ( +D => RLOL1_CNT_S(1), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(1)); +\GENBLK2.RLOL1_CNT[2]_REG_Z694\: FD1P3DX port map ( +D => RLOL1_CNT_S(2), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(2)); +\GENBLK2.RLOL1_CNT[3]_REG_Z696\: FD1P3DX port map ( +D => RLOL1_CNT_S(3), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(3)); +\GENBLK2.RLOL1_CNT[4]_REG_Z698\: FD1P3DX port map ( +D => RLOL1_CNT_S(4), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(4)); +\GENBLK2.RLOL1_CNT[5]_REG_Z700\: FD1P3DX port map ( +D => RLOL1_CNT_S(5), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(5)); +\GENBLK2.RLOL1_CNT[6]_REG_Z702\: FD1P3DX port map ( +D => RLOL1_CNT_S(6), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(6)); +\GENBLK2.RLOL1_CNT[7]_REG_Z704\: FD1P3DX port map ( +D => RLOL1_CNT_S(7), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(7)); +\GENBLK2.RLOL1_CNT[8]_REG_Z706\: FD1P3DX port map ( +D => RLOL1_CNT_S(8), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(8)); +\GENBLK2.RLOL1_CNT[9]_REG_Z708\: FD1P3DX port map ( +D => RLOL1_CNT_S(9), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(9)); +\GENBLK2.RLOL1_CNT[10]_REG_Z710\: FD1P3DX port map ( +D => RLOL1_CNT_S(10), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(10)); +\GENBLK2.RLOL1_CNT[11]_REG_Z712\: FD1P3DX port map ( +D => RLOL1_CNT_S(11), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(11)); +\GENBLK2.RLOL1_CNT[12]_REG_Z714\: FD1P3DX port map ( +D => RLOL1_CNT_S(12), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(12)); +\GENBLK2.RLOL1_CNT[13]_REG_Z716\: FD1P3DX port map ( +D => RLOL1_CNT_S(13), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(13)); +\GENBLK2.RLOL1_CNT[14]_REG_Z718\: FD1P3DX port map ( +D => RLOL1_CNT_S(14), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(14)); +\GENBLK2.RLOL1_CNT[15]_REG_Z720\: FD1P3DX port map ( +D => RLOL1_CNT_S(15), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(15)); +\GENBLK2.RLOL1_CNT[16]_REG_Z722\: FD1P3DX port map ( +D => RLOL1_CNT_S(16), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(16)); +\GENBLK2.RLOL1_CNT[17]_REG_Z724\: FD1P3DX port map ( +D => RLOL1_CNT_S(17), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(17)); +\GENBLK2.RLOL1_CNT[18]_REG_Z726\: FD1P3DX port map ( +D => RLOL1_CNT_S(18), +SP => RLOL1_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RLOL1_CNT(18)); +\GENBLK2.GENBLK3.RXSDR_APPD_REG_Z728\: FD1S3BX port map ( +D => RXSDR_APPD_2, +CK => rxrefclk, +PD => rsl_rst, +Q => RXSDR_APPD); +\GENBLK2.GENBLK3.RXR_WT_EN_REG_Z730\: FD1P3DX port map ( +D => UN3_RX_ALL_WELL_1, +SP => UN1_DUAL_OR_RSERD_RST_2_I, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_EN); +\GENBLK2.GENBLK3.RXR_WT_CNT[0]_REG_Z732\: FD1P3DX port map ( +D => RXR_WT_CNT_S(0), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(0)); +\GENBLK2.GENBLK3.RXR_WT_CNT[1]_REG_Z734\: FD1P3DX port map ( +D => RXR_WT_CNT_S(1), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(1)); +\GENBLK2.GENBLK3.RXR_WT_CNT[2]_REG_Z736\: FD1P3DX port map ( +D => RXR_WT_CNT_S(2), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(2)); +\GENBLK2.GENBLK3.RXR_WT_CNT[3]_REG_Z738\: FD1P3DX port map ( +D => RXR_WT_CNT_S(3), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(3)); +\GENBLK2.GENBLK3.RXR_WT_CNT[4]_REG_Z740\: FD1P3DX port map ( +D => RXR_WT_CNT_S(4), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(4)); +\GENBLK2.GENBLK3.RXR_WT_CNT[5]_REG_Z742\: FD1P3DX port map ( +D => RXR_WT_CNT_S(5), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(5)); +\GENBLK2.GENBLK3.RXR_WT_CNT[6]_REG_Z744\: FD1P3DX port map ( +D => RXR_WT_CNT_S(6), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(6)); +\GENBLK2.GENBLK3.RXR_WT_CNT[7]_REG_Z746\: FD1P3DX port map ( +D => RXR_WT_CNT_S(7), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(7)); +\GENBLK2.GENBLK3.RXR_WT_CNT[8]_REG_Z748\: FD1P3DX port map ( +D => RXR_WT_CNT_S(8), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(8)); +\GENBLK2.GENBLK3.RXR_WT_CNT[9]_REG_Z750\: FD1P3DX port map ( +D => RXR_WT_CNT_S(9), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(9)); +\GENBLK2.GENBLK3.RXR_WT_CNT[10]_REG_Z752\: FD1P3DX port map ( +D => RXR_WT_CNT_S(10), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(10)); +\GENBLK2.GENBLK3.RXR_WT_CNT[11]_REG_Z754\: FD1P3DX port map ( +D => RXR_WT_CNT_S(11), +SP => RXR_WT_CNTE, +CK => rxrefclk, +CD => rsl_rst, +Q => RXR_WT_CNT(11)); +\GENBLK2.GENBLK3.RXDPR_APPD_REG_Z756\: FD1P3DX port map ( +D => UN1_RUI_RST_DUAL_C_1_1, +SP => UN1_RUI_RST_DUAL_C_1_I, +CK => rxrefclk, +CD => rsl_rst, +Q => RXDPR_APPD); +\GENBLK2.GENBLK3.RUO_RX_RDYR_REG_Z758\: FD1P3DX port map ( +D => UN3_RX_ALL_WELL_2, +SP => RXR_WT_CNT9, +CK => rxrefclk, +CD => rsl_rst, +Q => RSL_RX_RDY_8); +\GENBLK2.GENBLK3.LFOR[0].RXSR_APPD[0]_REG_Z760\: FD1S3DX port map ( +D => N_2175_0, +CK => rxrefclk, +CD => rsl_rst, +Q => RXSR_APPD(0)); +\GENBLK2.GENBLK3.LFOR[0].RXPR_APPD[0]_REG_Z762\: FD1P3DX port map ( +D => UN2_RDO_SERDES_RST_DUAL_C_1, +SP => UN2_RDO_SERDES_RST_DUAL_C_2_I, +CK => rxrefclk, +CD => rsl_rst, +Q => RXPR_APPD(0)); +\GENBLK1.WAITA_PLOL0_REG_Z764\: FD1P3DX port map ( +D => PLOL_FEDGE, +SP => UN1_PLOL0_CNT_TC_1_I, +CK => pll_refclki, +CD => rsl_rst, +Q => WAITA_PLOL0); +\GENBLK1.TXS_RST_REG_Z766\: FD1P3DX port map ( +D => UN1_PLOL_CNT_TC, +SP => UN2_PLOL_CNT_TC, +CK => pll_refclki, +CD => rsl_rst, +Q => TXS_RST); +\GENBLK1.TXS_CNT[0]_REG_Z768\: FD1S3DX port map ( +D => N_10_I, +CK => pll_refclki, +CD => rsl_rst, +Q => TXS_CNT(0)); +\GENBLK1.TXS_CNT[1]_REG_Z770\: FD1S3DX port map ( +D => TXS_CNT_RNO(1), +CK => pll_refclki, +CD => rsl_rst, +Q => TXS_CNT(1)); +\GENBLK1.TXP_RST_REG_Z772\: FD1P3DX port map ( +D => UN9_PLOL0_CNT_TC, +SP => UN1_PLOL0_CNT_TC_1, +CK => pll_refclki, +CD => rsl_rst, +Q => TXP_RST); +\GENBLK1.TXP_CNT[0]_REG_Z774\: FD1S3DX port map ( +D => N_11_I, +CK => pll_refclki, +CD => rsl_rst, +Q => TXP_CNT(0)); +\GENBLK1.TXP_CNT[1]_REG_Z776\: FD1S3DX port map ( +D => TXP_CNT_RNO(1), +CK => pll_refclki, +CD => rsl_rst, +Q => TXP_CNT(1)); +\GENBLK1.PLOL_CNT[0]_REG_Z778\: FD1S3DX port map ( +D => PLOL_CNT_S(0), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(0)); +\GENBLK1.PLOL_CNT[1]_REG_Z780\: FD1S3DX port map ( +D => PLOL_CNT_S(1), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(1)); +\GENBLK1.PLOL_CNT[2]_REG_Z782\: FD1S3DX port map ( +D => PLOL_CNT_S(2), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(2)); +\GENBLK1.PLOL_CNT[3]_REG_Z784\: FD1S3DX port map ( +D => PLOL_CNT_S(3), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(3)); +\GENBLK1.PLOL_CNT[4]_REG_Z786\: FD1S3DX port map ( +D => PLOL_CNT_S(4), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(4)); +\GENBLK1.PLOL_CNT[5]_REG_Z788\: FD1S3DX port map ( +D => PLOL_CNT_S(5), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(5)); +\GENBLK1.PLOL_CNT[6]_REG_Z790\: FD1S3DX port map ( +D => PLOL_CNT_S(6), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(6)); +\GENBLK1.PLOL_CNT[7]_REG_Z792\: FD1S3DX port map ( +D => PLOL_CNT_S(7), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(7)); +\GENBLK1.PLOL_CNT[8]_REG_Z794\: FD1S3DX port map ( +D => PLOL_CNT_S(8), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(8)); +\GENBLK1.PLOL_CNT[9]_REG_Z796\: FD1S3DX port map ( +D => PLOL_CNT_S(9), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(9)); +\GENBLK1.PLOL_CNT[10]_REG_Z798\: FD1S3DX port map ( +D => PLOL_CNT_S(10), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(10)); +\GENBLK1.PLOL_CNT[11]_REG_Z800\: FD1S3DX port map ( +D => PLOL_CNT_S(11), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(11)); +\GENBLK1.PLOL_CNT[12]_REG_Z802\: FD1S3DX port map ( +D => PLOL_CNT_S(12), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(12)); +\GENBLK1.PLOL_CNT[13]_REG_Z804\: FD1S3DX port map ( +D => PLOL_CNT_S(13), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(13)); +\GENBLK1.PLOL_CNT[14]_REG_Z806\: FD1S3DX port map ( +D => PLOL_CNT_S(14), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(14)); +\GENBLK1.PLOL_CNT[15]_REG_Z808\: FD1S3DX port map ( +D => PLOL_CNT_S(15), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(15)); +\GENBLK1.PLOL_CNT[16]_REG_Z810\: FD1S3DX port map ( +D => PLOL_CNT_S(16), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(16)); +\GENBLK1.PLOL_CNT[17]_REG_Z812\: FD1S3DX port map ( +D => PLOL_CNT_S(17), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(17)); +\GENBLK1.PLOL_CNT[18]_REG_Z814\: FD1S3DX port map ( +D => PLOL_CNT_S(18), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(18)); +\GENBLK1.PLOL_CNT[19]_REG_Z816\: FD1S3DX port map ( +D => PLOL_CNT_S(19), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL_CNT(19)); +\GENBLK1.PLOL0_CNT[0]_REG_Z818\: FD1S3DX port map ( +D => PLOL0_CNT_3(0), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL0_CNT(0)); +\GENBLK1.PLOL0_CNT[1]_REG_Z820\: FD1S3DX port map ( +D => PLOL0_CNT_3(1), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL0_CNT(1)); +\GENBLK1.PLOL0_CNT[2]_REG_Z822\: FD1S3DX port map ( +D => PLOL0_CNT_3(2), +CK => pll_refclki, +CD => rsl_rst, +Q => PLOL0_CNT(2)); +\GENBLK1.PLL_LOL_P3_REG_Z824\: FD1S3DX port map ( +D => PLL_LOL_P2, +CK => pll_refclki, +CD => rsl_rst, +Q => PLL_LOL_P3); +\GENBLK1.PLL_LOL_P2_REG_Z826\: FD1S3DX port map ( +D => PLL_LOL_P1, +CK => pll_refclki, +CD => rsl_rst, +Q => PLL_LOL_P2); +\GENBLK1.PLL_LOL_P1_REG_Z828\: FD1S3DX port map ( +D => pll_lock_i, +CK => pll_refclki, +CD => rsl_rst, +Q => PLL_LOL_P1); +\GENBLK1.GENBLK2.TXSR_APPD_REG_Z830\: FD1S3BX port map ( +D => TXSR_APPD_2, +CK => pll_refclki, +PD => rsl_rst, +Q => TXSR_APPD); +\GENBLK1.GENBLK2.TXR_WT_EN_REG_Z832\: FD1P3DX port map ( +D => UN1_DUAL_OR_SERD_RST_1_1, +SP => UN1_DUAL_OR_SERD_RST_1_I, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_EN); +\GENBLK1.GENBLK2.TXR_WT_CNT[0]_REG_Z834\: FD1P3DX port map ( +D => TXR_WT_CNT_S(0), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(0)); +\GENBLK1.GENBLK2.TXR_WT_CNT[1]_REG_Z836\: FD1P3DX port map ( +D => TXR_WT_CNT_S(1), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(1)); +\GENBLK1.GENBLK2.TXR_WT_CNT[2]_REG_Z838\: FD1P3DX port map ( +D => TXR_WT_CNT_S(2), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(2)); +\GENBLK1.GENBLK2.TXR_WT_CNT[3]_REG_Z840\: FD1P3DX port map ( +D => TXR_WT_CNT_S(3), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(3)); +\GENBLK1.GENBLK2.TXR_WT_CNT[4]_REG_Z842\: FD1P3DX port map ( +D => TXR_WT_CNT_S(4), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(4)); +\GENBLK1.GENBLK2.TXR_WT_CNT[5]_REG_Z844\: FD1P3DX port map ( +D => TXR_WT_CNT_S(5), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(5)); +\GENBLK1.GENBLK2.TXR_WT_CNT[6]_REG_Z846\: FD1P3DX port map ( +D => TXR_WT_CNT_S(6), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(6)); +\GENBLK1.GENBLK2.TXR_WT_CNT[7]_REG_Z848\: FD1P3DX port map ( +D => TXR_WT_CNT_S(7), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(7)); +\GENBLK1.GENBLK2.TXR_WT_CNT[8]_REG_Z850\: FD1P3DX port map ( +D => TXR_WT_CNT_S(8), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(8)); +\GENBLK1.GENBLK2.TXR_WT_CNT[9]_REG_Z852\: FD1P3DX port map ( +D => TXR_WT_CNT_S(9), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(9)); +\GENBLK1.GENBLK2.TXR_WT_CNT[10]_REG_Z854\: FD1P3DX port map ( +D => TXR_WT_CNT_S(10), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(10)); +\GENBLK1.GENBLK2.TXR_WT_CNT[11]_REG_Z856\: FD1P3DX port map ( +D => TXR_WT_CNT_S(11), +SP => TXR_WT_CNTE, +CK => pll_refclki, +CD => rsl_rst, +Q => TXR_WT_CNT(11)); +\GENBLK1.GENBLK2.TXDPR_APPD_REG_Z858\: FD1P3DX port map ( +D => UN2_PLOL_FEDGE_2, +SP => UN2_PLOL_FEDGE_3_I, +CK => pll_refclki, +CD => rsl_rst, +Q => TXDPR_APPD); +\GENBLK1.GENBLK2.RUO_TX_RDYR_REG_Z860\: FD1P3DX port map ( +D => UN2_PLOL_FEDGE_5_1, +SP => UN2_PLOL_FEDGE_5_I, +CK => pll_refclki, +CD => rsl_rst, +Q => RSL_TX_RDY_7); +\GENBLK1.GENBLK2.MFOR[0].TXPR_APPD[0]_REG_Z862\: FD1P3DX port map ( +D => UN2_PLOL_FEDGE_2, +SP => UN2_PLOL_FEDGE_8_I, +CK => pll_refclki, +CD => rsl_rst, +Q => TXPR_APPD(0)); +\GENBLK1.TXS_CNT_RNO[0]\: LUT4 +generic map( + init => X"A6A6" +) +port map ( +A => TXS_CNT(0), +B => TXS_RST, +C => UN1_PLOL_CNT_TC, +D => VCC, +Z => N_10_I); +\GENBLK1.TXS_CNT_RNO[1]\: LUT4 +generic map( + init => X"CC6C" +) +port map ( +A => TXS_CNT(0), +B => TXS_CNT(1), +C => TXS_RST, +D => UN1_PLOL_CNT_TC, +Z => TXS_CNT_RNO(1)); +\GENBLK2.RXP_RST2_RNO_0\: LUT4 +generic map( + init => X"FFFE" +) +port map ( +A => RLOLS0_CNT_TC_1, +B => RLOS_REDGE, +C => RSL_RX_SERDES_RST_C_9, +D => RSL_SERDES_RST_DUAL_C_10, +Z => UN2_RLOS_REDGE_1_I); +\GENBLK1.GENBLK2.TXR_WT_EN_RNO\: LUT4 +generic map( + init => X"0F2F" +) +port map ( +A => TXPR_APPD(0), +B => PLL_LOL_P2, +C => UN1_DUAL_OR_SERD_RST_1_1, +D => RSL_TX_RDY_7, +Z => UN1_DUAL_OR_SERD_RST_1_I); +\GENBLK2.WAIT_CALIB_RNIKRP81\: LUT4 +generic map( + init => X"FFFE" +) +port map ( +A => RXS_RST, +B => WAIT_CALIB, +C => RLOL1_CNT_TC_1, +D => RLOS_REDGE, +Z => RLOL1_CNTE); +\GENBLK2.RXS_RST6\: LUT4 +generic map( + init => X"2020" +) +port map ( +A => RLOL_DB, +B => RLOS_DB, +C => RLOL1_CNT_TC_1, +D => VCC, +Z => RXS_RST6); +\GENBLK2.WAITA_RLOLS0_RNI266C\: LUT4 +generic map( + init => X"FEFE" +) +port map ( +A => RLOLS0_CNT11_0, +B => WAITA_RLOLS0, +C => RLOLS0_CNT_TC_1, +D => VCC, +Z => RLOLS0_CNTE); +\GENBLK2.GENBLK3.RXR_WT_EN_RNI1B6E\: LUT4 +generic map( + init => X"EEEE" +) +port map ( +A => RXR_WT_CNT9, +B => RXR_WT_EN, +C => VCC, +D => VCC, +Z => RXR_WT_CNTE); +\GENBLK1.PLOL_CNT11_I\: LUT4 +generic map( + init => X"0202" +) +port map ( +A => PLL_LOL_P2, +B => UN1_PLOL_CNT_TC, +C => RSL_TX_SERDES_RST_C_6, +D => VCC, +Z => \PLOL_CNT_\); +\GENBLK2.RLOLS0_CNT11_I\: LUT4 +generic map( + init => X"1111" +) +port map ( +A => RLOLS0_CNT11_0, +B => RLOLS0_CNT_TC_1, +C => VCC, +D => VCC, +Z => \RLOLS0_CNT_\); +\GENBLK2.UN1_RXS_CNT_TC\: LUT4 +generic map( + init => X"FEFC" +) +port map ( +A => RLOL_DB, +B => RLOS_DB, +C => UN8_RXS_CNT_TC, +D => RLOL1_CNT_TC_1, +Z => UN1_RXS_CNT_TC); +\GENBLK2.WAIT_CALIB_RNO\: LUT4 +generic map( + init => X"A3A3" +) +port map ( +A => RLOL_DB, +B => RLOS_DB, +C => RLOL1_CNT_TC_1, +D => VCC, +Z => WAIT_CALIB_RNO); +\GENBLK1.GENBLK2.MFOR[0].TXPR_APPD_RNO[0]\: LUT4 +generic map( + init => X"FEFA" +) +port map ( +A => DUAL_OR_SERD_RST, +B => UN2_RDO_TX_PCS_RST_C, +C => PLL_LOL_P2, +D => TXSR_APPD_4, +Z => UN2_PLOL_FEDGE_8_I); +\GENBLK2.GENBLK3.RXR_WT_EN_RNO_0\: LUT4 +generic map( + init => X"FFFB" +) +port map ( +A => UN17_RXR_WT_TC, +B => UN1_DUAL_OR_RSERD_RST_2_0, +C => RSL_RX_SERDES_RST_C_9, +D => RSL_SERDES_RST_DUAL_C_10, +Z => UN1_DUAL_OR_RSERD_RST_2_I); +\GENBLK2.GENBLK3.LFOR[0].RXPR_APPD_RNO[0]\: LUT4 +generic map( + init => X"FFB3" +) +port map ( +A => UN1_RXSDR_OR_SR_APPD_0, +B => UN2_RDO_SERDES_RST_DUAL_C_2_0, +C => RSL_RX_PCS_RST_C_5, +D => RSL_RX_SERDES_RST_C_9, +Z => UN2_RDO_SERDES_RST_DUAL_C_2_I); +\GENBLK2.GENBLK3.RXDPR_APPD_RNO\: LUT4 +generic map( + init => X"DDDD" +) +port map ( +A => UN1_RUI_RST_DUAL_C_1_1, +B => rst_dual_c, +C => VCC, +D => VCC, +Z => UN1_RUI_RST_DUAL_C_1_I); +\GENBLK1.UN2_PLOL_CNT_TC\: LUT4 +generic map( + init => X"F8F8" +) +port map ( +A => TXS_CNT(0), +B => TXS_CNT(1), +C => UN1_PLOL_CNT_TC, +D => VCC, +Z => UN2_PLOL_CNT_TC); +\GENBLK1.GENBLK2.TXR_WT_EN_RNI1JHS\: LUT4 +generic map( + init => X"EEEE" +) +port map ( +A => TXR_WT_CNT9, +B => TXR_WT_EN, +C => VCC, +D => VCC, +Z => TXR_WT_CNTE); +\GENBLK2.GENBLK3.RXR_WT_CNT9\: LUT4 +generic map( + init => X"FFFE" +) +port map ( +A => UN17_RXR_WT_TC, +B => RLOL_DB, +C => RLOS_DB, +D => RX_ANY_RST, +Z => RXR_WT_CNT9); +\GENBLK2.UN1_RLOLS0_CNT_TC\: LUT4 +generic map( + init => X"FEFE" +) +port map ( +A => RLOLS0_CNT11_0, +B => WAITA_RLOLS06, +C => RLOLS0_CNT_TC_1, +D => VCC, +Z => UN1_RLOLS0_CNT_TC); +\GENBLK2.UN1_RLOS_FEDGE_1\: LUT4 +generic map( + init => X"F6F6" +) +port map ( +A => RLOS_DB, +B => RLOS_DB_P1, +C => RLOL1_CNT_TC_1, +D => VCC, +Z => UN1_RLOS_FEDGE_1); +\GENBLK1.GENBLK2.TXDPR_APPD_RNO\: LUT4 +generic map( + init => X"FEFE" +) +port map ( +A => DUAL_OR_SERD_RST, +B => PLL_LOL_P2, +C => rst_dual_c, +D => VCC, +Z => UN2_PLOL_FEDGE_3_I); +\GENBLK1.TXP_CNT_RNO[0]\: LUT4 +generic map( + init => X"A6A6" +) +port map ( +A => TXP_CNT(0), +B => TXP_RST, +C => UN9_PLOL0_CNT_TC, +D => VCC, +Z => N_11_I); +\GENBLK1.TXP_CNT_RNO[1]\: LUT4 +generic map( + init => X"CC6C" +) +port map ( +A => TXP_CNT(0), +B => TXP_CNT(1), +C => TXP_RST, +D => UN9_PLOL0_CNT_TC, +Z => TXP_CNT_RNO(1)); +UN3_RX_ALL_WELL_2_Z887: LUT4 +generic map( + init => X"0101" +) +port map ( +A => RLOL_DB, +B => RLOS_DB, +C => RX_ANY_RST, +D => VCC, +Z => UN3_RX_ALL_WELL_2); +\GENBLK1.GENBLK2.TXR_WT_CNT9\: LUT4 +generic map( + init => X"FFFE" +) +port map ( +A => DUAL_OR_SERD_RST, +B => UN18_TXR_WT_TC, +C => RSL_TX_PCS_RST_C_4, +D => rst_dual_c, +Z => TXR_WT_CNT9); +UN2_PLOL_FEDGE_5_1_Z889: LUT4 +generic map( + init => X"0001" +) +port map ( +A => DUAL_OR_SERD_RST, +B => PLL_LOL_P2, +C => RSL_TX_PCS_RST_C_4, +D => rst_dual_c, +Z => UN2_PLOL_FEDGE_5_1); +RLOLS0_CNT_TC_1_Z890: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RLOLS0_CNT_TC_1_10, +B => RLOLS0_CNT_TC_1_11, +C => RLOLS0_CNT_TC_1_12, +D => RLOLS0_CNT_TC_1_13, +Z => RLOLS0_CNT_TC_1); +RLOL1_CNT_TC_1_Z891: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RLOL1_CNT_TC_1_11, +B => RLOL1_CNT_TC_1_12, +C => RLOL1_CNT_TC_1_13, +D => RLOL1_CNT_TC_1_14, +Z => RLOL1_CNT_TC_1); +\GENBLK1.UN1_PLOL_CNT_TC\: LUT4 +generic map( + init => X"8000" +) +port map ( +A => UN1_PLOL_CNT_TC_11, +B => UN1_PLOL_CNT_TC_12, +C => UN1_PLOL_CNT_TC_13, +D => UN1_PLOL_CNT_TC_14, +Z => UN1_PLOL_CNT_TC); +\UN1_GENBLK2.RLOL_DB_CNT_AXB_0\: LUT4 +generic map( + init => X"9999" +) +port map ( +A => RLOL_DB_CNT(0), +B => UN1_RLOL_DB_CNT_ZERO(0), +C => VCC, +D => VCC, +Z => RLOL_DB_CNT_AXB_0); +\UN1_GENBLK2.RLOS_DB_CNT_AXB_0\: LUT4 +generic map( + init => X"9999" +) +port map ( +A => RLOS_DB_CNT(0), +B => UN1_RLOS_DB_CNT_ZERO(0), +C => VCC, +D => VCC, +Z => RLOS_DB_CNT_AXB_0); +\GENBLK1.WAITA_PLOL0_RNO\: LUT4 +generic map( + init => X"F6F6" +) +port map ( +A => PLL_LOL_P2, +B => PLL_LOL_P3, +C => UN9_PLOL0_CNT_TC, +D => VCC, +Z => UN1_PLOL0_CNT_TC_1_I); +\GENBLK1.PLOL0_CNT_3[2]\: LUT4 +generic map( + init => X"1320" +) +port map ( +A => CO0_2, +B => PLOL0_CNT9, +C => PLOL0_CNT(1), +D => PLOL0_CNT(2), +Z => PLOL0_CNT_3(2)); +\GENBLK1.PLOL0_CNT_3[0]\: LUT4 +generic map( + init => X"1414" +) +port map ( +A => PLOL0_CNT9, +B => PLOL0_CNT(0), +C => WAITA_PLOL0, +D => VCC, +Z => PLOL0_CNT_3(0)); +UN1_RUI_RST_DUAL_C_1_1_Z898: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RLOL_DB, +B => RLOS_DB, +C => RSL_RX_SERDES_RST_C_9, +D => RSL_SERDES_RST_DUAL_C_10, +Z => UN1_RUI_RST_DUAL_C_1_1); +UN2_RDO_SERDES_RST_DUAL_C_1_Z899: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RSL_RX_SERDES_RST_C_9, +B => RSL_SERDES_RST_DUAL_C_10, +C => rx_cdr_lol_s, +D => rx_los_low_s, +Z => UN2_RDO_SERDES_RST_DUAL_C_1); +\GENBLK1.GENBLK2.TXSR_APPD_2\: LUT4 +generic map( + init => X"EEEE" +) +port map ( +A => DUAL_OR_SERD_RST, +B => TXSR_APPD_4, +C => VCC, +D => VCC, +Z => TXSR_APPD_2); +\GENBLK1.GENBLK2.UN18_TXR_WT_TC\: LUT4 +generic map( + init => X"8080" +) +port map ( +A => UN18_TXR_WT_TC_6, +B => UN18_TXR_WT_TC_7, +C => UN18_TXR_WT_TC_8, +D => VCC, +Z => UN18_TXR_WT_TC); +UN2_PLOL_FEDGE_2_Z902: LUT4 +generic map( + init => X"0101" +) +port map ( +A => PLL_LOL_P2, +B => RSL_SERDES_RST_DUAL_C_10, +C => RSL_TX_SERDES_RST_C_6, +D => VCC, +Z => UN2_PLOL_FEDGE_2); +RX_ANY_RST_Z903: LUT4 +generic map( + init => X"FFFE" +) +port map ( +A => RSL_RX_PCS_RST_C_5, +B => RSL_RX_SERDES_RST_C_9, +C => RSL_SERDES_RST_DUAL_C_10, +D => rst_dual_c, +Z => RX_ANY_RST); +\GENBLK2.GENBLK3.UN17_RXR_WT_TC\: LUT4 +generic map( + init => X"8080" +) +port map ( +A => UN17_RXR_WT_TC_6, +B => UN17_RXR_WT_TC_7, +C => UN17_RXR_WT_TC_8, +D => VCC, +Z => UN17_RXR_WT_TC); +\UN1_RLOL_DB_CNT_ZERO_BM[0]_Z905\: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RLOL_DB_CNT(0), +B => RLOL_DB_CNT(1), +C => RLOL_DB_CNT(2), +D => RLOL_DB_CNT(3), +Z => UN1_RLOL_DB_CNT_ZERO_BM(0)); +\UN1_RLOL_DB_CNT_ZERO[0]_Z906\: PFUMX port map ( +ALUT => UN1_RLOL_DB_CNT_ZERO_BM(0), +BLUT => UN1_RLOL_DB_CNT_ZERO_AM(0), +C0 => RLOL_P2, +Z => UN1_RLOL_DB_CNT_ZERO(0)); +\UN1_RLOS_DB_CNT_ZERO_BM[0]_Z907\: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RLOS_DB_CNT(0), +B => RLOS_DB_CNT(1), +C => RLOS_DB_CNT(2), +D => RLOS_DB_CNT(3), +Z => UN1_RLOS_DB_CNT_ZERO_BM(0)); +\UN1_RLOS_DB_CNT_ZERO[0]_Z908\: PFUMX port map ( +ALUT => UN1_RLOS_DB_CNT_ZERO_BM(0), +BLUT => UN1_RLOS_DB_CNT_ZERO_AM(0), +C0 => RLOS_P2, +Z => UN1_RLOS_DB_CNT_ZERO(0)); +\RXS_CNT_3[1]_Z909\: LUT4 +generic map( + init => X"6464" +) +port map ( +A => RXS_CNT(0), +B => RXS_CNT(1), +C => RXS_RST, +D => VCC, +Z => RXS_CNT_3(1)); +\GENBLK1.UN1_PLOL0_CNT_TC_1\: LUT4 +generic map( + init => X"F8F8" +) +port map ( +A => TXP_CNT(0), +B => TXP_CNT(1), +C => UN9_PLOL0_CNT_TC, +D => VCC, +Z => UN1_PLOL0_CNT_TC_1); +\GENBLK2.UN1_RLOL_DB_CNT_MAX\: LUT4 +generic map( + init => X"8001" +) +port map ( +A => RLOL_DB_CNT(0), +B => RLOL_DB_CNT(1), +C => RLOL_DB_CNT(2), +D => RLOL_DB_CNT(3), +Z => UN1_RLOL_DB_CNT_MAX); +\GENBLK2.UN1_RLOS_DB_CNT_MAX\: LUT4 +generic map( + init => X"8001" +) +port map ( +A => RLOS_DB_CNT(0), +B => RLOS_DB_CNT(1), +C => RLOS_DB_CNT(2), +D => RLOS_DB_CNT(3), +Z => UN1_RLOS_DB_CNT_MAX); +\GENBLK2.WAITA_RLOLS06\: LUT4 +generic map( + init => X"0504" +) +port map ( +A => RLOL_DB, +B => RLOL_DB_P1, +C => RLOS_DB, +D => RLOS_DB_P1, +Z => WAITA_RLOLS06); +RLOLS0_CNT_TC_1_13_Z914: LUT4 +generic map( + init => X"1010" +) +port map ( +A => RLOLS0_CNT(16), +B => RLOLS0_CNT(17), +C => RLOLS0_CNT_TC_1_9, +D => VCC, +Z => RLOLS0_CNT_TC_1_13); +\GENBLK1.UN1_PLOL_CNT_TC_14\: LUT4 +generic map( + init => X"0100" +) +port map ( +A => PLOL_CNT(5), +B => PLOL_CNT(10), +C => PLOL_CNT(18), +D => UN1_PLOL_CNT_TC_10, +Z => UN1_PLOL_CNT_TC_14); +RLOL1_CNT_TC_1_14_Z916: LUT4 +generic map( + init => X"0100" +) +port map ( +A => RLOL1_CNT(12), +B => RLOL1_CNT(13), +C => RLOL1_CNT(18), +D => RLOL1_CNT_TC_1_10, +Z => RLOL1_CNT_TC_1_14); +UN2_RDO_SERDES_RST_DUAL_C_2_0_Z917: LUT4 +generic map( + init => X"0101" +) +port map ( +A => RSL_SERDES_RST_DUAL_C_10, +B => rx_cdr_lol_s, +C => rx_los_low_s, +D => VCC, +Z => UN2_RDO_SERDES_RST_DUAL_C_2_0); +UN1_DUAL_OR_RSERD_RST_2_0_Z918: LUT4 +generic map( + init => X"0101" +) +port map ( +A => UN3_RX_ALL_WELL_2_1, +B => RLOL_DB, +C => RLOS_DB, +D => VCC, +Z => UN1_DUAL_OR_RSERD_RST_2_0); +\RXS_CNT_3[0]_Z919\: LUT4 +generic map( + init => X"5252" +) +port map ( +A => RXS_CNT(0), +B => RXS_CNT(1), +C => RXS_RST, +D => VCC, +Z => RXS_CNT_3(0)); +\RDO_RX_SERDES_RST_C_1[0]\: LUT4 +generic map( + init => X"F4F4" +) +port map ( +A => rsl_disable, +B => RXS_RST, +C => rx_serdes_rst_c, +D => VCC, +Z => RSL_RX_SERDES_RST_C_9); +\RDO_TX_PCS_RST_C_1[0]\: LUT4 +generic map( + init => X"F4F4" +) +port map ( +A => rsl_disable, +B => TXP_RST, +C => tx_pcs_rst_c, +D => VCC, +Z => RSL_TX_PCS_RST_C_4); +RDO_TX_SERDES_RST_C: LUT4 +generic map( + init => X"F4F4" +) +port map ( +A => rsl_disable, +B => TXS_RST, +C => tx_serdes_rst_c, +D => VCC, +Z => RSL_TX_SERDES_RST_C_6); +RDO_SERDES_RST_DUAL_C: LUT4 +generic map( + init => X"F4F4" +) +port map ( +A => rsl_disable, +B => rsl_rst, +C => serdes_rst_dual_c, +D => VCC, +Z => RSL_SERDES_RST_DUAL_C_10); +\GENBLK2.GENBLK3.UN3_RX_ALL_WELL_2_1\: LUT4 +generic map( + init => X"0E0E" +) +port map ( +A => RXPR_APPD(0), +B => RXDPR_APPD, +C => RSL_RX_RDY_8, +D => VCC, +Z => UN3_RX_ALL_WELL_2_1); +\RDO_RX_PCS_RST_C_1[0]\: LUT4 +generic map( + init => X"F4F4" +) +port map ( +A => rsl_disable, +B => RXP_RST2, +C => rx_pcs_rst_c, +D => VCC, +Z => RSL_RX_PCS_RST_C_5); +\GENBLK1.UN9_PLOL0_CNT_TC\: LUT4 +generic map( + init => X"1010" +) +port map ( +A => PLOL0_CNT(0), +B => PLOL0_CNT(1), +C => PLOL0_CNT(2), +D => VCC, +Z => UN9_PLOL0_CNT_TC); +\GENBLK2.GENBLK3.LFOR[0].UN1_RXSDR_OR_SR_APPD_0\: LUT4 +generic map( + init => X"FCA8" +) +port map ( +A => RXSR_APPD(0), +B => RLOL_DB, +C => RLOS_DB, +D => RXSDR_APPD_4, +Z => UN1_RXSDR_OR_SR_APPD_0); +\GENBLK1.GENBLK2.UN18_TXR_WT_TC_6\: LUT4 +generic map( + init => X"4000" +) +port map ( +A => TXR_WT_CNT(0), +B => TXR_WT_CNT(8), +C => TXR_WT_CNT(9), +D => TXR_WT_CNT(11), +Z => UN18_TXR_WT_TC_6); +\GENBLK1.GENBLK2.UN18_TXR_WT_TC_7\: LUT4 +generic map( + init => X"8000" +) +port map ( +A => TXR_WT_CNT(3), +B => TXR_WT_CNT(4), +C => TXR_WT_CNT(5), +D => TXR_WT_CNT(7), +Z => UN18_TXR_WT_TC_7); +\GENBLK1.GENBLK2.UN18_TXR_WT_TC_8\: LUT4 +generic map( + init => X"0001" +) +port map ( +A => TXR_WT_CNT(1), +B => TXR_WT_CNT(2), +C => TXR_WT_CNT(6), +D => TXR_WT_CNT(10), +Z => UN18_TXR_WT_TC_8); +\GENBLK2.GENBLK3.UN17_RXR_WT_TC_6\: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RXR_WT_CNT(3), +B => RXR_WT_CNT(4), +C => RXR_WT_CNT(5), +D => RXR_WT_CNT(7), +Z => UN17_RXR_WT_TC_6); +\GENBLK2.GENBLK3.UN17_RXR_WT_TC_7\: LUT4 +generic map( + init => X"4000" +) +port map ( +A => RXR_WT_CNT(0), +B => RXR_WT_CNT(8), +C => RXR_WT_CNT(9), +D => RXR_WT_CNT(11), +Z => UN17_RXR_WT_TC_7); +\GENBLK2.GENBLK3.UN17_RXR_WT_TC_8\: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RXR_WT_CNT(1), +B => RXR_WT_CNT(2), +C => RXR_WT_CNT(6), +D => RXR_WT_CNT(10), +Z => UN17_RXR_WT_TC_8); +RLOLS0_CNT_TC_1_9_Z934: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RLOLS0_CNT(9), +B => RLOLS0_CNT(11), +C => RLOLS0_CNT(12), +D => RLOLS0_CNT(13), +Z => RLOLS0_CNT_TC_1_9); +RLOLS0_CNT_TC_1_10_Z935: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RLOLS0_CNT(5), +B => RLOLS0_CNT(6), +C => RLOLS0_CNT(7), +D => RLOLS0_CNT(8), +Z => RLOLS0_CNT_TC_1_10); +RLOLS0_CNT_TC_1_11_Z936: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RLOLS0_CNT(1), +B => RLOLS0_CNT(2), +C => RLOLS0_CNT(3), +D => RLOLS0_CNT(4), +Z => RLOLS0_CNT_TC_1_11); +RLOLS0_CNT_TC_1_12_Z937: LUT4 +generic map( + init => X"4000" +) +port map ( +A => RLOLS0_CNT(0), +B => RLOLS0_CNT(10), +C => RLOLS0_CNT(14), +D => RLOLS0_CNT(15), +Z => RLOLS0_CNT_TC_1_12); +\GENBLK1.UN1_PLOL_CNT_TC_10\: LUT4 +generic map( + init => X"0080" +) +port map ( +A => PLOL_CNT(1), +B => PLOL_CNT(6), +C => PLOL_CNT(7), +D => PLOL_CNT(12), +Z => UN1_PLOL_CNT_TC_10); +\GENBLK1.UN1_PLOL_CNT_TC_11\: LUT4 +generic map( + init => X"8000" +) +port map ( +A => PLOL_CNT(8), +B => PLOL_CNT(9), +C => PLOL_CNT(11), +D => PLOL_CNT(13), +Z => UN1_PLOL_CNT_TC_11); +\GENBLK1.UN1_PLOL_CNT_TC_12\: LUT4 +generic map( + init => X"8000" +) +port map ( +A => PLOL_CNT(14), +B => PLOL_CNT(15), +C => PLOL_CNT(16), +D => PLOL_CNT(17), +Z => UN1_PLOL_CNT_TC_12); +\GENBLK1.UN1_PLOL_CNT_TC_13\: LUT4 +generic map( + init => X"0100" +) +port map ( +A => PLOL_CNT(2), +B => PLOL_CNT(3), +C => PLOL_CNT(4), +D => PLOL_CNT(19), +Z => UN1_PLOL_CNT_TC_13); +RLOL1_CNT_TC_1_10_Z942: LUT4 +generic map( + init => X"0800" +) +port map ( +A => RLOL1_CNT(14), +B => RLOL1_CNT(15), +C => RLOL1_CNT(16), +D => RLOL1_CNT(17), +Z => RLOL1_CNT_TC_1_10); +RLOL1_CNT_TC_1_11_Z943: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RLOL1_CNT(0), +B => RLOL1_CNT(1), +C => RLOL1_CNT(2), +D => RLOL1_CNT(3), +Z => RLOL1_CNT_TC_1_11); +RLOL1_CNT_TC_1_12_Z944: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RLOL1_CNT(4), +B => RLOL1_CNT(5), +C => RLOL1_CNT(6), +D => RLOL1_CNT(7), +Z => RLOL1_CNT_TC_1_12); +RLOL1_CNT_TC_1_13_Z945: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RLOL1_CNT(8), +B => RLOL1_CNT(9), +C => RLOL1_CNT(10), +D => RLOL1_CNT(11), +Z => RLOL1_CNT_TC_1_13); +\GENBLK1.PLOL0_CNT_3_RNO[2]\: LUT4 +generic map( + init => X"8888" +) +port map ( +A => PLOL0_CNT(0), +B => WAITA_PLOL0, +C => VCC, +D => VCC, +Z => CO0_2); +PLOL_FEDGE_Z947: LUT4 +generic map( + init => X"4444" +) +port map ( +A => PLL_LOL_P2, +B => PLL_LOL_P3, +C => VCC, +D => VCC, +Z => PLOL_FEDGE); +\GENBLK2.UN8_RXS_CNT_TC\: LUT4 +generic map( + init => X"8888" +) +port map ( +A => RXS_CNT(0), +B => RXS_CNT(1), +C => VCC, +D => VCC, +Z => UN8_RXS_CNT_TC); +RLOS_REDGE_Z949: LUT4 +generic map( + init => X"2222" +) +port map ( +A => RLOS_DB, +B => RLOS_DB_P1, +C => VCC, +D => VCC, +Z => RLOS_REDGE); +\GENBLK2.GENBLK3.RXSDR_APPD_2\: LUT4 +generic map( + init => X"EEEE" +) +port map ( +A => RXSDR_APPD_4, +B => serdes_rst_dual_c, +C => VCC, +D => VCC, +Z => RXSDR_APPD_2); +\UN1_RLOS_DB_CNT_ZERO_AM[0]_Z951\: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RLOS_DB_CNT(0), +B => RLOS_DB_CNT(1), +C => RLOS_DB_CNT(2), +D => RLOS_DB_CNT(3), +Z => UN1_RLOS_DB_CNT_ZERO_AM(0)); +\UN1_RLOL_DB_CNT_ZERO_AM[0]_Z952\: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RLOL_DB_CNT(0), +B => RLOL_DB_CNT(1), +C => RLOL_DB_CNT(2), +D => RLOL_DB_CNT(3), +Z => UN1_RLOL_DB_CNT_ZERO_AM(0)); +DUAL_OR_SERD_RST_Z953: LUT4 +generic map( + init => X"EEFE" +) +port map ( +A => RSL_SERDES_RST_DUAL_C_10, +B => tx_serdes_rst_c, +C => TXS_RST, +D => rsl_disable, +Z => DUAL_OR_SERD_RST); +\GENBLK1.PLOL0_CNT9\: LUT4 +generic map( + init => X"AAAE" +) +port map ( +A => PLL_LOL_P2, +B => PLOL0_CNT(2), +C => PLOL0_CNT(1), +D => PLOL0_CNT(0), +Z => PLOL0_CNT9); +\GENBLK2.RLOLS0_CNT11_0\: LUT4 +generic map( + init => X"4F44" +) +port map ( +A => RLOL_DB_P1, +B => RLOL_DB, +C => RLOS_DB_P1, +D => RLOS_DB, +Z => RLOLS0_CNT11_0); +\GENBLK2.RLOL1_CNT_CRY_0[0]\: CCU2C +generic map( + INIT0 => X"500c", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => \RLOL1_CNT_\, +C0 => VCC, +D0 => VCC, +A1 => \RLOL1_CNT_\, +B1 => RLOL1_CNT(0), +C1 => VCC, +D1 => VCC, +CIN => N_7, +COUT => RLOL1_CNT_CRY(0), +S0 => RLOL1_CNT_CRY_0_S0(0), +S1 => RLOL1_CNT_S(0)); +\GENBLK2.RLOL1_CNT_CRY_0[1]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOL1_CNT_\, +B0 => RLOL1_CNT(1), +C0 => VCC, +D0 => VCC, +A1 => \RLOL1_CNT_\, +B1 => RLOL1_CNT(2), +C1 => VCC, +D1 => VCC, +CIN => RLOL1_CNT_CRY(0), +COUT => RLOL1_CNT_CRY(2), +S0 => RLOL1_CNT_S(1), +S1 => RLOL1_CNT_S(2)); +\GENBLK2.RLOL1_CNT_CRY_0[3]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOL1_CNT_\, +B0 => RLOL1_CNT(3), +C0 => VCC, +D0 => VCC, +A1 => \RLOL1_CNT_\, +B1 => RLOL1_CNT(4), +C1 => VCC, +D1 => VCC, +CIN => RLOL1_CNT_CRY(2), +COUT => RLOL1_CNT_CRY(4), +S0 => RLOL1_CNT_S(3), +S1 => RLOL1_CNT_S(4)); +\GENBLK2.RLOL1_CNT_CRY_0[5]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOL1_CNT_\, +B0 => RLOL1_CNT(5), +C0 => VCC, +D0 => VCC, +A1 => \RLOL1_CNT_\, +B1 => RLOL1_CNT(6), +C1 => VCC, +D1 => VCC, +CIN => RLOL1_CNT_CRY(4), +COUT => RLOL1_CNT_CRY(6), +S0 => RLOL1_CNT_S(5), +S1 => RLOL1_CNT_S(6)); +\GENBLK2.RLOL1_CNT_CRY_0[7]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOL1_CNT_\, +B0 => RLOL1_CNT(7), +C0 => VCC, +D0 => VCC, +A1 => \RLOL1_CNT_\, +B1 => RLOL1_CNT(8), +C1 => VCC, +D1 => VCC, +CIN => RLOL1_CNT_CRY(6), +COUT => RLOL1_CNT_CRY(8), +S0 => RLOL1_CNT_S(7), +S1 => RLOL1_CNT_S(8)); +\GENBLK2.RLOL1_CNT_CRY_0[9]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOL1_CNT_\, +B0 => RLOL1_CNT(9), +C0 => VCC, +D0 => VCC, +A1 => \RLOL1_CNT_\, +B1 => RLOL1_CNT(10), +C1 => VCC, +D1 => VCC, +CIN => RLOL1_CNT_CRY(8), +COUT => RLOL1_CNT_CRY(10), +S0 => RLOL1_CNT_S(9), +S1 => RLOL1_CNT_S(10)); +\GENBLK2.RLOL1_CNT_CRY_0[11]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOL1_CNT_\, +B0 => RLOL1_CNT(11), +C0 => VCC, +D0 => VCC, +A1 => \RLOL1_CNT_\, +B1 => RLOL1_CNT(12), +C1 => VCC, +D1 => VCC, +CIN => RLOL1_CNT_CRY(10), +COUT => RLOL1_CNT_CRY(12), +S0 => RLOL1_CNT_S(11), +S1 => RLOL1_CNT_S(12)); +\GENBLK2.RLOL1_CNT_CRY_0[13]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOL1_CNT_\, +B0 => RLOL1_CNT(13), +C0 => VCC, +D0 => VCC, +A1 => \RLOL1_CNT_\, +B1 => RLOL1_CNT(14), +C1 => VCC, +D1 => VCC, +CIN => RLOL1_CNT_CRY(12), +COUT => RLOL1_CNT_CRY(14), +S0 => RLOL1_CNT_S(13), +S1 => RLOL1_CNT_S(14)); +\GENBLK2.RLOL1_CNT_CRY_0[15]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOL1_CNT_\, +B0 => RLOL1_CNT(15), +C0 => VCC, +D0 => VCC, +A1 => \RLOL1_CNT_\, +B1 => RLOL1_CNT(16), +C1 => VCC, +D1 => VCC, +CIN => RLOL1_CNT_CRY(14), +COUT => RLOL1_CNT_CRY(16), +S0 => RLOL1_CNT_S(15), +S1 => RLOL1_CNT_S(16)); +\GENBLK2.RLOL1_CNT_CRY_0[17]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"800a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOL1_CNT_\, +B0 => RLOL1_CNT(17), +C0 => VCC, +D0 => VCC, +A1 => \RLOL1_CNT_\, +B1 => RLOL1_CNT(18), +C1 => VCC, +D1 => VCC, +CIN => RLOL1_CNT_CRY(16), +COUT => RLOL1_CNT_CRY_0_COUT(17), +S0 => RLOL1_CNT_S(17), +S1 => RLOL1_CNT_S(18)); +\GENBLK2.RLOLS0_CNT_CRY_0[0]\: CCU2C +generic map( + INIT0 => X"500c", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => \RLOLS0_CNT_\, +C0 => VCC, +D0 => VCC, +A1 => \RLOLS0_CNT_\, +B1 => RLOLS0_CNT(0), +C1 => VCC, +D1 => VCC, +CIN => N_6, +COUT => RLOLS0_CNT_CRY(0), +S0 => RLOLS0_CNT_CRY_0_S0(0), +S1 => RLOLS0_CNT_S(0)); +\GENBLK2.RLOLS0_CNT_CRY_0[1]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOLS0_CNT_\, +B0 => RLOLS0_CNT(1), +C0 => VCC, +D0 => VCC, +A1 => \RLOLS0_CNT_\, +B1 => RLOLS0_CNT(2), +C1 => VCC, +D1 => VCC, +CIN => RLOLS0_CNT_CRY(0), +COUT => RLOLS0_CNT_CRY(2), +S0 => RLOLS0_CNT_S(1), +S1 => RLOLS0_CNT_S(2)); +\GENBLK2.RLOLS0_CNT_CRY_0[3]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOLS0_CNT_\, +B0 => RLOLS0_CNT(3), +C0 => VCC, +D0 => VCC, +A1 => \RLOLS0_CNT_\, +B1 => RLOLS0_CNT(4), +C1 => VCC, +D1 => VCC, +CIN => RLOLS0_CNT_CRY(2), +COUT => RLOLS0_CNT_CRY(4), +S0 => RLOLS0_CNT_S(3), +S1 => RLOLS0_CNT_S(4)); +\GENBLK2.RLOLS0_CNT_CRY_0[5]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOLS0_CNT_\, +B0 => RLOLS0_CNT(5), +C0 => VCC, +D0 => VCC, +A1 => \RLOLS0_CNT_\, +B1 => RLOLS0_CNT(6), +C1 => VCC, +D1 => VCC, +CIN => RLOLS0_CNT_CRY(4), +COUT => RLOLS0_CNT_CRY(6), +S0 => RLOLS0_CNT_S(5), +S1 => RLOLS0_CNT_S(6)); +\GENBLK2.RLOLS0_CNT_CRY_0[7]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOLS0_CNT_\, +B0 => RLOLS0_CNT(7), +C0 => VCC, +D0 => VCC, +A1 => \RLOLS0_CNT_\, +B1 => RLOLS0_CNT(8), +C1 => VCC, +D1 => VCC, +CIN => RLOLS0_CNT_CRY(6), +COUT => RLOLS0_CNT_CRY(8), +S0 => RLOLS0_CNT_S(7), +S1 => RLOLS0_CNT_S(8)); +\GENBLK2.RLOLS0_CNT_CRY_0[9]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOLS0_CNT_\, +B0 => RLOLS0_CNT(9), +C0 => VCC, +D0 => VCC, +A1 => \RLOLS0_CNT_\, +B1 => RLOLS0_CNT(10), +C1 => VCC, +D1 => VCC, +CIN => RLOLS0_CNT_CRY(8), +COUT => RLOLS0_CNT_CRY(10), +S0 => RLOLS0_CNT_S(9), +S1 => RLOLS0_CNT_S(10)); +\GENBLK2.RLOLS0_CNT_CRY_0[11]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOLS0_CNT_\, +B0 => RLOLS0_CNT(11), +C0 => VCC, +D0 => VCC, +A1 => \RLOLS0_CNT_\, +B1 => RLOLS0_CNT(12), +C1 => VCC, +D1 => VCC, +CIN => RLOLS0_CNT_CRY(10), +COUT => RLOLS0_CNT_CRY(12), +S0 => RLOLS0_CNT_S(11), +S1 => RLOLS0_CNT_S(12)); +\GENBLK2.RLOLS0_CNT_CRY_0[13]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOLS0_CNT_\, +B0 => RLOLS0_CNT(13), +C0 => VCC, +D0 => VCC, +A1 => \RLOLS0_CNT_\, +B1 => RLOLS0_CNT(14), +C1 => VCC, +D1 => VCC, +CIN => RLOLS0_CNT_CRY(12), +COUT => RLOLS0_CNT_CRY(14), +S0 => RLOLS0_CNT_S(13), +S1 => RLOLS0_CNT_S(14)); +\GENBLK2.RLOLS0_CNT_CRY_0[15]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOLS0_CNT_\, +B0 => RLOLS0_CNT(15), +C0 => VCC, +D0 => VCC, +A1 => \RLOLS0_CNT_\, +B1 => RLOLS0_CNT(16), +C1 => VCC, +D1 => VCC, +CIN => RLOLS0_CNT_CRY(14), +COUT => RLOLS0_CNT_CRY(16), +S0 => RLOLS0_CNT_S(15), +S1 => RLOLS0_CNT_S(16)); +\GENBLK2.RLOLS0_CNT_S_0[17]\: CCU2C +generic map( + INIT0 => X"800a", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \RLOLS0_CNT_\, +B0 => RLOLS0_CNT(17), +C0 => VCC, +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => RLOLS0_CNT_CRY(16), +COUT => RLOLS0_CNT_S_0_COUT(17), +S0 => RLOLS0_CNT_S(17), +S1 => RLOLS0_CNT_S_0_S1(17)); +\GENBLK1.GENBLK2.TXR_WT_CNT_CRY_0[0]\: CCU2C +generic map( + INIT0 => X"5003", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => TXR_WT_CNT9, +C0 => VCC, +D0 => VCC, +A1 => TXR_WT_CNT9, +B1 => TXR_WT_CNT(0), +C1 => VCC, +D1 => VCC, +CIN => N_5, +COUT => TXR_WT_CNT_CRY(0), +S0 => TXR_WT_CNT_CRY_0_S0(0), +S1 => TXR_WT_CNT_S(0)); +\GENBLK1.GENBLK2.TXR_WT_CNT_CRY_0[1]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => TXR_WT_CNT9, +B0 => TXR_WT_CNT(1), +C0 => VCC, +D0 => VCC, +A1 => TXR_WT_CNT9, +B1 => TXR_WT_CNT(2), +C1 => VCC, +D1 => VCC, +CIN => TXR_WT_CNT_CRY(0), +COUT => TXR_WT_CNT_CRY(2), +S0 => TXR_WT_CNT_S(1), +S1 => TXR_WT_CNT_S(2)); +\GENBLK1.GENBLK2.TXR_WT_CNT_CRY_0[3]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => TXR_WT_CNT9, +B0 => TXR_WT_CNT(3), +C0 => VCC, +D0 => VCC, +A1 => TXR_WT_CNT9, +B1 => TXR_WT_CNT(4), +C1 => VCC, +D1 => VCC, +CIN => TXR_WT_CNT_CRY(2), +COUT => TXR_WT_CNT_CRY(4), +S0 => TXR_WT_CNT_S(3), +S1 => TXR_WT_CNT_S(4)); +\GENBLK1.GENBLK2.TXR_WT_CNT_CRY_0[5]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => TXR_WT_CNT9, +B0 => TXR_WT_CNT(5), +C0 => VCC, +D0 => VCC, +A1 => TXR_WT_CNT9, +B1 => TXR_WT_CNT(6), +C1 => VCC, +D1 => VCC, +CIN => TXR_WT_CNT_CRY(4), +COUT => TXR_WT_CNT_CRY(6), +S0 => TXR_WT_CNT_S(5), +S1 => TXR_WT_CNT_S(6)); +\GENBLK1.GENBLK2.TXR_WT_CNT_CRY_0[7]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => TXR_WT_CNT9, +B0 => TXR_WT_CNT(7), +C0 => VCC, +D0 => VCC, +A1 => TXR_WT_CNT9, +B1 => TXR_WT_CNT(8), +C1 => VCC, +D1 => VCC, +CIN => TXR_WT_CNT_CRY(6), +COUT => TXR_WT_CNT_CRY(8), +S0 => TXR_WT_CNT_S(7), +S1 => TXR_WT_CNT_S(8)); +\GENBLK1.GENBLK2.TXR_WT_CNT_CRY_0[9]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => TXR_WT_CNT9, +B0 => TXR_WT_CNT(9), +C0 => VCC, +D0 => VCC, +A1 => TXR_WT_CNT9, +B1 => TXR_WT_CNT(10), +C1 => VCC, +D1 => VCC, +CIN => TXR_WT_CNT_CRY(8), +COUT => TXR_WT_CNT_CRY(10), +S0 => TXR_WT_CNT_S(9), +S1 => TXR_WT_CNT_S(10)); +\GENBLK1.GENBLK2.TXR_WT_CNT_S_0[11]\: CCU2C +generic map( + INIT0 => X"4005", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => TXR_WT_CNT9, +B0 => TXR_WT_CNT(11), +C0 => VCC, +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => TXR_WT_CNT_CRY(10), +COUT => TXR_WT_CNT_S_0_COUT(11), +S0 => TXR_WT_CNT_S(11), +S1 => TXR_WT_CNT_S_0_S1(11)); +\GENBLK2.GENBLK3.RXR_WT_CNT_CRY_0[0]\: CCU2C +generic map( + INIT0 => X"5003", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => RXR_WT_CNT9, +C0 => VCC, +D0 => VCC, +A1 => RXR_WT_CNT9, +B1 => RXR_WT_CNT(0), +C1 => VCC, +D1 => VCC, +CIN => N_4, +COUT => RXR_WT_CNT_CRY(0), +S0 => RXR_WT_CNT_CRY_0_S0(0), +S1 => RXR_WT_CNT_S(0)); +\GENBLK2.GENBLK3.RXR_WT_CNT_CRY_0[1]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => RXR_WT_CNT9, +B0 => RXR_WT_CNT(1), +C0 => VCC, +D0 => VCC, +A1 => RXR_WT_CNT9, +B1 => RXR_WT_CNT(2), +C1 => VCC, +D1 => VCC, +CIN => RXR_WT_CNT_CRY(0), +COUT => RXR_WT_CNT_CRY(2), +S0 => RXR_WT_CNT_S(1), +S1 => RXR_WT_CNT_S(2)); +\GENBLK2.GENBLK3.RXR_WT_CNT_CRY_0[3]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => RXR_WT_CNT9, +B0 => RXR_WT_CNT(3), +C0 => VCC, +D0 => VCC, +A1 => RXR_WT_CNT9, +B1 => RXR_WT_CNT(4), +C1 => VCC, +D1 => VCC, +CIN => RXR_WT_CNT_CRY(2), +COUT => RXR_WT_CNT_CRY(4), +S0 => RXR_WT_CNT_S(3), +S1 => RXR_WT_CNT_S(4)); +\GENBLK2.GENBLK3.RXR_WT_CNT_CRY_0[5]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => RXR_WT_CNT9, +B0 => RXR_WT_CNT(5), +C0 => VCC, +D0 => VCC, +A1 => RXR_WT_CNT9, +B1 => RXR_WT_CNT(6), +C1 => VCC, +D1 => VCC, +CIN => RXR_WT_CNT_CRY(4), +COUT => RXR_WT_CNT_CRY(6), +S0 => RXR_WT_CNT_S(5), +S1 => RXR_WT_CNT_S(6)); +\GENBLK2.GENBLK3.RXR_WT_CNT_CRY_0[7]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => RXR_WT_CNT9, +B0 => RXR_WT_CNT(7), +C0 => VCC, +D0 => VCC, +A1 => RXR_WT_CNT9, +B1 => RXR_WT_CNT(8), +C1 => VCC, +D1 => VCC, +CIN => RXR_WT_CNT_CRY(6), +COUT => RXR_WT_CNT_CRY(8), +S0 => RXR_WT_CNT_S(7), +S1 => RXR_WT_CNT_S(8)); +\GENBLK2.GENBLK3.RXR_WT_CNT_CRY_0[9]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => RXR_WT_CNT9, +B0 => RXR_WT_CNT(9), +C0 => VCC, +D0 => VCC, +A1 => RXR_WT_CNT9, +B1 => RXR_WT_CNT(10), +C1 => VCC, +D1 => VCC, +CIN => RXR_WT_CNT_CRY(8), +COUT => RXR_WT_CNT_CRY(10), +S0 => RXR_WT_CNT_S(9), +S1 => RXR_WT_CNT_S(10)); +\GENBLK2.GENBLK3.RXR_WT_CNT_S_0[11]\: CCU2C +generic map( + INIT0 => X"4005", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => RXR_WT_CNT9, +B0 => RXR_WT_CNT(11), +C0 => VCC, +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => RXR_WT_CNT_CRY(10), +COUT => RXR_WT_CNT_S_0_COUT(11), +S0 => RXR_WT_CNT_S(11), +S1 => RXR_WT_CNT_S_0_S1(11)); +\GENBLK1.PLOL_CNT_CRY_0[0]\: CCU2C +generic map( + INIT0 => X"500c", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => \PLOL_CNT_\, +C0 => VCC, +D0 => VCC, +A1 => \PLOL_CNT_\, +B1 => PLOL_CNT(0), +C1 => VCC, +D1 => VCC, +CIN => N_3, +COUT => PLOL_CNT_CRY(0), +S0 => PLOL_CNT_CRY_0_S0(0), +S1 => PLOL_CNT_S(0)); +\GENBLK1.PLOL_CNT_CRY_0[1]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \PLOL_CNT_\, +B0 => PLOL_CNT(1), +C0 => VCC, +D0 => VCC, +A1 => \PLOL_CNT_\, +B1 => PLOL_CNT(2), +C1 => VCC, +D1 => VCC, +CIN => PLOL_CNT_CRY(0), +COUT => PLOL_CNT_CRY(2), +S0 => PLOL_CNT_S(1), +S1 => PLOL_CNT_S(2)); +\GENBLK1.PLOL_CNT_CRY_0[3]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \PLOL_CNT_\, +B0 => PLOL_CNT(3), +C0 => VCC, +D0 => VCC, +A1 => \PLOL_CNT_\, +B1 => PLOL_CNT(4), +C1 => VCC, +D1 => VCC, +CIN => PLOL_CNT_CRY(2), +COUT => PLOL_CNT_CRY(4), +S0 => PLOL_CNT_S(3), +S1 => PLOL_CNT_S(4)); +\GENBLK1.PLOL_CNT_CRY_0[5]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \PLOL_CNT_\, +B0 => PLOL_CNT(5), +C0 => VCC, +D0 => VCC, +A1 => \PLOL_CNT_\, +B1 => PLOL_CNT(6), +C1 => VCC, +D1 => VCC, +CIN => PLOL_CNT_CRY(4), +COUT => PLOL_CNT_CRY(6), +S0 => PLOL_CNT_S(5), +S1 => PLOL_CNT_S(6)); +\GENBLK1.PLOL_CNT_CRY_0[7]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \PLOL_CNT_\, +B0 => PLOL_CNT(7), +C0 => VCC, +D0 => VCC, +A1 => \PLOL_CNT_\, +B1 => PLOL_CNT(8), +C1 => VCC, +D1 => VCC, +CIN => PLOL_CNT_CRY(6), +COUT => PLOL_CNT_CRY(8), +S0 => PLOL_CNT_S(7), +S1 => PLOL_CNT_S(8)); +\GENBLK1.PLOL_CNT_CRY_0[9]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \PLOL_CNT_\, +B0 => PLOL_CNT(9), +C0 => VCC, +D0 => VCC, +A1 => \PLOL_CNT_\, +B1 => PLOL_CNT(10), +C1 => VCC, +D1 => VCC, +CIN => PLOL_CNT_CRY(8), +COUT => PLOL_CNT_CRY(10), +S0 => PLOL_CNT_S(9), +S1 => PLOL_CNT_S(10)); +\GENBLK1.PLOL_CNT_CRY_0[11]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \PLOL_CNT_\, +B0 => PLOL_CNT(11), +C0 => VCC, +D0 => VCC, +A1 => \PLOL_CNT_\, +B1 => PLOL_CNT(12), +C1 => VCC, +D1 => VCC, +CIN => PLOL_CNT_CRY(10), +COUT => PLOL_CNT_CRY(12), +S0 => PLOL_CNT_S(11), +S1 => PLOL_CNT_S(12)); +\GENBLK1.PLOL_CNT_CRY_0[13]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \PLOL_CNT_\, +B0 => PLOL_CNT(13), +C0 => VCC, +D0 => VCC, +A1 => \PLOL_CNT_\, +B1 => PLOL_CNT(14), +C1 => VCC, +D1 => VCC, +CIN => PLOL_CNT_CRY(12), +COUT => PLOL_CNT_CRY(14), +S0 => PLOL_CNT_S(13), +S1 => PLOL_CNT_S(14)); +\GENBLK1.PLOL_CNT_CRY_0[15]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \PLOL_CNT_\, +B0 => PLOL_CNT(15), +C0 => VCC, +D0 => VCC, +A1 => \PLOL_CNT_\, +B1 => PLOL_CNT(16), +C1 => VCC, +D1 => VCC, +CIN => PLOL_CNT_CRY(14), +COUT => PLOL_CNT_CRY(16), +S0 => PLOL_CNT_S(15), +S1 => PLOL_CNT_S(16)); +\GENBLK1.PLOL_CNT_CRY_0[17]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \PLOL_CNT_\, +B0 => PLOL_CNT(17), +C0 => VCC, +D0 => VCC, +A1 => \PLOL_CNT_\, +B1 => PLOL_CNT(18), +C1 => VCC, +D1 => VCC, +CIN => PLOL_CNT_CRY(16), +COUT => PLOL_CNT_CRY(18), +S0 => PLOL_CNT_S(17), +S1 => PLOL_CNT_S(18)); +\GENBLK1.PLOL_CNT_S_0[19]\: CCU2C +generic map( + INIT0 => X"800a", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => \PLOL_CNT_\, +B0 => PLOL_CNT(19), +C0 => VCC, +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => PLOL_CNT_CRY(18), +COUT => PLOL_CNT_S_0_COUT(19), +S0 => PLOL_CNT_S(19), +S1 => PLOL_CNT_S_0_S1(19)); +\UN1_GENBLK2.RLOS_DB_CNT_CRY_0_0\: CCU2C +generic map( + INIT0 => X"5003", + INIT1 => X"900a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => RLOS_DB_CNT(0), +B1 => UN1_RLOS_DB_CNT_ZERO(0), +C1 => VCC, +D1 => VCC, +CIN => N_2, +COUT => RLOS_DB_CNT_CRY_0, +S0 => RLOS_DB_CNT_CRY_0_0_S0, +S1 => RLOS_DB_CNT_CRY_0_0_S1); +\UN1_GENBLK2.RLOS_DB_CNT_CRY_1_0\: CCU2C +generic map( + INIT0 => X"e101", + INIT1 => X"e101", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_RLOS_DB_CNT_ZERO(0), +B0 => RLOS_P2, +C0 => RLOS_DB_CNT(1), +D0 => VCC, +A1 => UN1_RLOS_DB_CNT_ZERO(0), +B1 => RLOS_P2, +C1 => RLOS_DB_CNT(2), +D1 => VCC, +CIN => RLOS_DB_CNT_CRY_0, +COUT => RLOS_DB_CNT_CRY_2, +S0 => RLOS_DB_CNT_CRY_1_0_S0, +S1 => RLOS_DB_CNT_CRY_1_0_S1); +\UN1_GENBLK2.RLOS_DB_CNT_S_3_0\: CCU2C +generic map( + INIT0 => X"a90a", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => RLOS_DB_CNT(3), +B0 => RLOS_P2, +C0 => UN1_RLOS_DB_CNT_ZERO(0), +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => RLOS_DB_CNT_CRY_2, +COUT => RLOS_DB_CNT_S_3_0_COUT, +S0 => RLOS_DB_CNT_S_3_0_S0, +S1 => RLOS_DB_CNT_S_3_0_S1); +\UN1_GENBLK2.RLOL_DB_CNT_CRY_0_0\: CCU2C +generic map( + INIT0 => X"5003", + INIT1 => X"900a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => RLOL_DB_CNT(0), +B1 => UN1_RLOL_DB_CNT_ZERO(0), +C1 => VCC, +D1 => VCC, +CIN => N_1, +COUT => RLOL_DB_CNT_CRY_0, +S0 => RLOL_DB_CNT_CRY_0_0_S0, +S1 => RLOL_DB_CNT_CRY_0_0_S1); +\UN1_GENBLK2.RLOL_DB_CNT_CRY_1_0\: CCU2C +generic map( + INIT0 => X"e101", + INIT1 => X"e101", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_RLOL_DB_CNT_ZERO(0), +B0 => RLOL_P2, +C0 => RLOL_DB_CNT(1), +D0 => VCC, +A1 => UN1_RLOL_DB_CNT_ZERO(0), +B1 => RLOL_P2, +C1 => RLOL_DB_CNT(2), +D1 => VCC, +CIN => RLOL_DB_CNT_CRY_0, +COUT => RLOL_DB_CNT_CRY_2, +S0 => RLOL_DB_CNT_CRY_1_0_S0, +S1 => RLOL_DB_CNT_CRY_1_0_S1); +\UN1_GENBLK2.RLOL_DB_CNT_S_3_0\: CCU2C +generic map( + INIT0 => X"a90a", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => RLOL_DB_CNT(3), +B0 => RLOL_P2, +C0 => UN1_RLOL_DB_CNT_ZERO(0), +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => RLOL_DB_CNT_CRY_2, +COUT => RLOL_DB_CNT_S_3_0_COUT, +S0 => RLOL_DB_CNT_S_3_0_S0, +S1 => RLOL_DB_CNT_S_3_0_S1); +RXSDR_APPD_4 <= RXSDR_APPD; +TXSR_APPD_4 <= TXSR_APPD; +VCC_0: VHI port map ( +Z => VCC); +II_GND: VLO port map ( +Z => GND); +rsl_tx_pcs_rst_c <= RSL_TX_PCS_RST_C_4; +rsl_rx_pcs_rst_c <= RSL_RX_PCS_RST_C_5; +rsl_tx_serdes_rst_c <= RSL_TX_SERDES_RST_C_6; +rsl_tx_rdy <= RSL_TX_RDY_7; +rsl_rx_rdy <= RSL_RX_RDY_8; +rsl_rx_serdes_rst_c <= RSL_RX_SERDES_RST_C_9; +rsl_serdes_rst_dual_c <= RSL_SERDES_RST_DUAL_C_10; +end beh; + +-- +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; +library synplify; +use synplify.components.all; +library pmi; +use pmi.pmi_components.all; +library ecp5um; +use ecp5um.components.all; + +entity serdes_sync_1sll_core_Z1_layer1 is +port( +tx_pclk : in std_logic; +sli_rst : in std_logic; +pll_refclki : in std_logic; +pll_lock_i : out std_logic); +end serdes_sync_1sll_core_Z1_layer1; + +architecture beh of serdes_sync_1sll_core_Z1_layer1 is +signal PHB_CNT : std_logic_vector(2 downto 0); +signal PHB_CNT_I : std_logic_vector(2 downto 0); +signal RCOUNT : std_logic_vector(15 downto 0); +signal PCOUNT : std_logic_vector(21 downto 0); +signal UN1_PCOUNT_DIFF_I : std_logic_vector(0 to 0); +signal SLL_STATE : std_logic_vector(1 to 1); +signal SLL_STATE_QN : std_logic_vector(1 to 1); +signal RHB_WAIT_CNT_S : std_logic_vector(7 downto 0); +signal RHB_WAIT_CNT : std_logic_vector(7 downto 0); +signal RHB_WAIT_CNT_QN : std_logic_vector(7 downto 0); +signal RCOUNT_S : std_logic_vector(15 downto 0); +signal RCOUNT_QN : std_logic_vector(15 downto 0); +signal PHB_CNT_QN : std_logic_vector(2 downto 0); +signal PHB_CNT_RNO : std_logic_vector(2 downto 1); +signal PCOUNT_DIFF_QN : std_logic_vector(21 downto 0); +signal PCOUNT_S : std_logic_vector(21 downto 0); +signal PCOUNT_QN : std_logic_vector(21 downto 0); +signal RDIFF_COMP_LOCK : std_logic_vector(2 to 2); +signal RDIFF_COMP_LOCK_QN : std_logic_vector(2 to 2); +signal SLL_STATE_NS_I_0_M3 : std_logic_vector(1 to 1); +signal UN1_PCOUNT_DIFF : std_logic_vector(0 to 0); +signal PCOUNT_CRY : std_logic_vector(20 downto 0); +signal PCOUNT_CRY_0_S0 : std_logic_vector(0 to 0); +signal PCOUNT_S_0_COUT : std_logic_vector(21 to 21); +signal PCOUNT_S_0_S1 : std_logic_vector(21 to 21); +signal RCOUNT_CRY : std_logic_vector(14 downto 0); +signal RCOUNT_CRY_0_S0 : std_logic_vector(0 to 0); +signal RCOUNT_S_0_COUT : std_logic_vector(15 to 15); +signal RCOUNT_S_0_S1 : std_logic_vector(15 to 15); +signal RHB_WAIT_CNT_CRY : std_logic_vector(6 downto 0); +signal RHB_WAIT_CNT_CRY_0_S0 : std_logic_vector(0 to 0); +signal RHB_WAIT_CNT_S_0_COUT : std_logic_vector(7 to 7); +signal RHB_WAIT_CNT_S_0_S1 : std_logic_vector(7 to 7); +signal PLL_LOCK : std_logic ; +signal RTC_CTRL4_0_A3_1 : std_logic ; +signal UN13_LOCK_20 : std_logic ; +signal PPUL_SYNC_P2 : std_logic ; +signal PPUL_SYNC_P1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_20 : std_logic ; +signal UN13_LOCK_19 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_19 : std_logic ; +signal UN13_LOCK_18 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_18 : std_logic ; +signal UN13_LOCK_17 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_17_0_RNO : std_logic ; +signal UN13_LOCK_16 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_16 : std_logic ; +signal UN13_LOCK_15 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_15 : std_logic ; +signal UN13_LOCK_14 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_14 : std_logic ; +signal UN13_LOCK_13 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_13 : std_logic ; +signal UN13_LOCK_12 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_12 : std_logic ; +signal UN13_LOCK_11 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_11 : std_logic ; +signal UN13_LOCK_10 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_10 : std_logic ; +signal UN13_LOCK_9 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_9 : std_logic ; +signal UN13_LOCK_8 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_8 : std_logic ; +signal UN13_LOCK_7 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_7 : std_logic ; +signal UN13_LOCK_6 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_6 : std_logic ; +signal UN13_LOCK_5 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_5 : std_logic ; +signal UN13_LOCK_4 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_4 : std_logic ; +signal UN13_LOCK_3 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_3 : std_logic ; +signal UN13_LOCK_2 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_2 : std_logic ; +signal UN13_LOCK_1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_AXB_1 : std_logic ; +signal UN13_LOCK_21 : std_logic ; +signal PPUL_SYNC_P3 : std_logic ; +signal N_7 : std_logic ; +signal UN13_LOCK_0 : std_logic ; +signal RTC_CTRL4 : std_logic ; +signal RTC_CTRL : std_logic ; +signal VCC : std_logic ; +signal N_2136_0 : std_logic ; +signal UNLOCK_5 : std_logic ; +signal UNLOCK_1_SQMUXA_I_0 : std_logic ; +signal UNLOCK : std_logic ; +signal UNLOCK_QN : std_logic ; +signal N_89_I : std_logic ; +signal RTC_PUL : std_logic ; +signal RTC_PUL_P1 : std_logic ; +signal RTC_PUL_P1_QN : std_logic ; +signal RTC_PUL5 : std_logic ; +signal RTC_PUL_QN : std_logic ; +signal RTC_CTRL_QN : std_logic ; +signal RSTAT_PCLK_2 : std_logic ; +signal RSTAT_PCLK : std_logic ; +signal RSTAT_PCLK_QN : std_logic ; +signal RHB_SYNC_P1 : std_logic ; +signal RHB_SYNC_P2 : std_logic ; +signal RHB_SYNC_P2_QN : std_logic ; +signal RHB_SYNC : std_logic ; +signal RHB_SYNC_P1_QN : std_logic ; +signal PPUL_SYNC_P3_QN : std_logic ; +signal PPUL_SYNC_P2_QN : std_logic ; +signal PPUL_SYNC : std_logic ; +signal PPUL_SYNC_P1_QN : std_logic ; +signal PLL_LOCK_QN : std_logic ; +signal PHB : std_logic ; +signal PHB_QN : std_logic ; +signal PDIFF_SYNC : std_logic ; +signal PDIFF_SYNC_P1 : std_logic ; +signal PDIFF_SYNC_P1_QN : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_1_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_1_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_3_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_3_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_5_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_5_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_7_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_7_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_9_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_9_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_11_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_11_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_13_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_13_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_15_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_15_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_17_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_17_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_19_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_19_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_S_21_0_S0 : std_logic ; +signal LOCK_5 : std_logic ; +signal LOCK_1_SQMUXA_I_0 : std_logic ; +signal LOCK : std_logic ; +signal LOCK_QN : std_logic ; +signal RTC_PUL5_0_O3 : std_logic ; +signal RTC_PUL5_0_A3_6 : std_logic ; +signal RTC_PUL5_0_A3_7 : std_logic ; +signal UN1_RCOUNT_1_0_A3 : std_logic ; +signal UN1_RHB_WAIT_CNT : std_logic ; +signal N_12 : std_logic ; +signal RTC_CTRL4_0_A3_12_4 : std_logic ; +signal RTC_CTRL4_0_A3_12_5 : std_logic ; +signal RTC_CTRL4_10 : std_logic ; +signal UN1_RCOUNT_1_0_A3_1 : std_logic ; +signal N_6 : std_logic ; +signal UN1_RHB_WAIT_CNT_3 : std_logic ; +signal UN1_RHB_WAIT_CNT_4 : std_logic ; +signal RTC_PUL5_0_A3_5 : std_logic ; +signal UN13_LOCK_CRY_21_I : std_logic ; +signal UN13_UNLOCK_CRY_21 : std_logic ; +signal N_8 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_0_0_S0 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_0_0_S1 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_2 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_4 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_6 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_8 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_10 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_12 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_14 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_16 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_18 : std_logic ; +signal UN1_PCOUNT_DIFF_1_CRY_20 : std_logic ; +signal UN1_PCOUNT_DIFF_1_S_21_0_COUT : std_logic ; +signal UN1_PCOUNT_DIFF_1_S_21_0_S1 : std_logic ; +signal UN13_LOCK_CRY_0 : std_logic ; +signal UN13_LOCK_CRY_0_0_S0 : std_logic ; +signal UN13_LOCK_CRY_0_0_S1 : std_logic ; +signal UN13_LOCK_CRY_2 : std_logic ; +signal UN13_LOCK_CRY_1_0_S0 : std_logic ; +signal UN13_LOCK_CRY_1_0_S1 : std_logic ; +signal UN13_LOCK_CRY_4 : std_logic ; +signal UN13_LOCK_CRY_3_0_S0 : std_logic ; +signal UN13_LOCK_CRY_3_0_S1 : std_logic ; +signal UN13_LOCK_CRY_6 : std_logic ; +signal UN13_LOCK_CRY_5_0_S0 : std_logic ; +signal UN13_LOCK_CRY_5_0_S1 : std_logic ; +signal UN13_LOCK_CRY_8 : std_logic ; +signal UN13_LOCK_CRY_7_0_S0 : std_logic ; +signal UN13_LOCK_CRY_7_0_S1 : std_logic ; +signal UN13_LOCK_CRY_10 : std_logic ; +signal UN13_LOCK_CRY_9_0_S0 : std_logic ; +signal UN13_LOCK_CRY_9_0_S1 : std_logic ; +signal UN13_LOCK_CRY_12 : std_logic ; +signal UN13_LOCK_CRY_11_0_S0 : std_logic ; +signal UN13_LOCK_CRY_11_0_S1 : std_logic ; +signal UN13_LOCK_CRY_14 : std_logic ; +signal UN13_LOCK_CRY_13_0_S0 : std_logic ; +signal UN13_LOCK_CRY_13_0_S1 : std_logic ; +signal UN13_LOCK_CRY_16 : std_logic ; +signal UN13_LOCK_CRY_15_0_S0 : std_logic ; +signal UN13_LOCK_CRY_15_0_S1 : std_logic ; +signal UN13_LOCK_CRY_18 : std_logic ; +signal UN13_LOCK_CRY_17_0_S0 : std_logic ; +signal UN13_LOCK_CRY_17_0_S1 : std_logic ; +signal UN13_LOCK_CRY_20 : std_logic ; +signal UN13_LOCK_CRY_19_0_S0 : std_logic ; +signal UN13_LOCK_CRY_19_0_S1 : std_logic ; +signal UN13_LOCK_CRY_21_0_COUT : std_logic ; +signal UN13_LOCK_CRY_21_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_0 : std_logic ; +signal UN13_UNLOCK_CRY_0_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_0_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_2 : std_logic ; +signal UN13_UNLOCK_CRY_1_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_1_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_4 : std_logic ; +signal UN13_UNLOCK_CRY_3_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_3_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_6 : std_logic ; +signal UN13_UNLOCK_CRY_5_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_5_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_8 : std_logic ; +signal UN13_UNLOCK_CRY_7_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_7_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_10 : std_logic ; +signal UN13_UNLOCK_CRY_9_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_9_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_12 : std_logic ; +signal UN13_UNLOCK_CRY_11_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_11_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_14 : std_logic ; +signal UN13_UNLOCK_CRY_13_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_13_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_16 : std_logic ; +signal UN13_UNLOCK_CRY_15_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_15_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_18 : std_logic ; +signal UN13_UNLOCK_CRY_17_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_17_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_20 : std_logic ; +signal UN13_UNLOCK_CRY_19_0_S0 : std_logic ; +signal UN13_UNLOCK_CRY_19_0_S1 : std_logic ; +signal UN13_UNLOCK_CRY_21_0_COUT : std_logic ; +signal UN13_UNLOCK_CRY_21_0_S0 : std_logic ; +signal N_96 : std_logic ; +signal N_20 : std_logic ; +signal N_19 : std_logic ; +signal N_18 : std_logic ; +signal N_14 : std_logic ; +signal GND : std_logic ; +signal N_1 : std_logic ; +signal N_2 : std_logic ; +signal N_3 : std_logic ; +signal N_4 : std_logic ; +signal N_5 : std_logic ; +signal N_9 : std_logic ; +component sync_0s +port( +phb : in std_logic; +rhb_sync : out std_logic; +sli_rst : in std_logic; +pll_refclki : in std_logic ); +end component; +component sync_0s_6 +port( +rtc_pul : in std_logic; +ppul_sync : out std_logic; +sli_rst : in std_logic; +tx_pclk : in std_logic ); +end component; +component sync_0s_0 +port( +ppul_sync : in std_logic; +pdiff_sync : out std_logic; +sli_rst : in std_logic; +pll_refclki : in std_logic ); +end component; +begin +PHB_RNO: INV port map ( +A => PHB_CNT(2), +Z => PHB_CNT_I(2)); +\PHB_CNT_RNO[0]\: INV port map ( +A => PHB_CNT(0), +Z => PHB_CNT_I(0)); +PLL_LOCK_RNI6JK9: INV port map ( +A => PLL_LOCK, +Z => pll_lock_i); +RTC_CTRL4_0_A3_RNO: LUT4 +generic map( + init => X"2000" +) +port map ( +A => RCOUNT(2), +B => RCOUNT(0), +C => RCOUNT(5), +D => RCOUNT(4), +Z => RTC_CTRL4_0_A3_1); +UN1_PCOUNT_DIFF_1_CRY_19_0_RNO_0: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_20, +B => PCOUNT(20), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_20); +UN1_PCOUNT_DIFF_1_CRY_19_0_RNO: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_19, +B => PCOUNT(19), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_19); +UN1_PCOUNT_DIFF_1_CRY_17_0_RNO_0: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_18, +B => PCOUNT(18), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_18); +UN1_PCOUNT_DIFF_1_CRY_17_0_RNO_Z473: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_17, +B => PCOUNT(17), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_CRY_17_0_RNO); +UN1_PCOUNT_DIFF_1_CRY_15_0_RNO_0: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_16, +B => PCOUNT(16), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_16); +UN1_PCOUNT_DIFF_1_CRY_15_0_RNO: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_15, +B => PCOUNT(15), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_15); +UN1_PCOUNT_DIFF_1_CRY_13_0_RNO_0: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_14, +B => PCOUNT(14), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_14); +UN1_PCOUNT_DIFF_1_CRY_13_0_RNO: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_13, +B => PCOUNT(13), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_13); +UN1_PCOUNT_DIFF_1_CRY_11_0_RNO_0: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_12, +B => PCOUNT(12), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_12); +UN1_PCOUNT_DIFF_1_CRY_11_0_RNO: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_11, +B => PCOUNT(11), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_11); +UN1_PCOUNT_DIFF_1_CRY_9_0_RNO_0: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_10, +B => PCOUNT(10), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_10); +UN1_PCOUNT_DIFF_1_CRY_9_0_RNO: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_9, +B => PCOUNT(9), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_9); +UN1_PCOUNT_DIFF_1_CRY_7_0_RNO_0: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_8, +B => PCOUNT(8), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_8); +UN1_PCOUNT_DIFF_1_CRY_7_0_RNO: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_7, +B => PCOUNT(7), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_7); +UN1_PCOUNT_DIFF_1_CRY_5_0_RNO_0: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_6, +B => PCOUNT(6), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_6); +UN1_PCOUNT_DIFF_1_CRY_5_0_RNO: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_5, +B => PCOUNT(5), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_5); +UN1_PCOUNT_DIFF_1_CRY_3_0_RNO_0: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_4, +B => PCOUNT(4), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_4); +UN1_PCOUNT_DIFF_1_CRY_3_0_RNO: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_3, +B => PCOUNT(3), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_3); +UN1_PCOUNT_DIFF_1_CRY_1_0_RNO_0: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_2, +B => PCOUNT(2), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_2); +UN1_PCOUNT_DIFF_1_CRY_1_0_RNO: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_1, +B => PCOUNT(1), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF_1_AXB_1); +PPUL_SYNC_P3_RNIU65C: LUT4 +generic map( + init => X"2F20" +) +port map ( +A => UN13_LOCK_21, +B => PPUL_SYNC_P3, +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => N_7); +\PCOUNT_DIFF_RNO[0]\: LUT4 +generic map( + init => X"FD20" +) +port map ( +A => PPUL_SYNC_P1, +B => PPUL_SYNC_P2, +C => PCOUNT(0), +D => UN13_LOCK_0, +Z => UN1_PCOUNT_DIFF_I(0)); +RTC_CTRL_0: LUT4 +generic map( + init => X"EEEE" +) +port map ( +A => RTC_CTRL4, +B => RTC_CTRL, +C => VCC, +D => VCC, +Z => N_2136_0); +UNLOCK_REG_Z494: FD1P3DX port map ( +D => UNLOCK_5, +SP => UNLOCK_1_SQMUXA_I_0, +CK => pll_refclki, +CD => sli_rst, +Q => UNLOCK); +\SLL_STATE[1]_REG_Z496\: FD1S3DX port map ( +D => N_89_I, +CK => pll_refclki, +CD => sli_rst, +Q => SLL_STATE(1)); +RTC_PUL_P1_REG_Z498: FD1S3DX port map ( +D => RTC_PUL, +CK => pll_refclki, +CD => sli_rst, +Q => RTC_PUL_P1); +RTC_PUL_REG_Z500: FD1P3DX port map ( +D => RTC_PUL5, +SP => RTC_CTRL, +CK => pll_refclki, +CD => sli_rst, +Q => RTC_PUL); +RTC_CTRL_REG_Z502: FD1S3DX port map ( +D => N_2136_0, +CK => pll_refclki, +CD => sli_rst, +Q => RTC_CTRL); +RSTAT_PCLK_REG_Z504: FD1P3DX port map ( +D => RSTAT_PCLK_2, +SP => RTC_CTRL, +CK => pll_refclki, +CD => sli_rst, +Q => RSTAT_PCLK); +\RHB_WAIT_CNT[0]_REG_Z506\: FD1P3DX port map ( +D => RHB_WAIT_CNT_S(0), +SP => RTC_CTRL, +CK => pll_refclki, +CD => sli_rst, +Q => RHB_WAIT_CNT(0)); +\RHB_WAIT_CNT[1]_REG_Z508\: FD1P3DX port map ( +D => RHB_WAIT_CNT_S(1), +SP => RTC_CTRL, +CK => pll_refclki, +CD => sli_rst, +Q => RHB_WAIT_CNT(1)); +\RHB_WAIT_CNT[2]_REG_Z510\: FD1P3DX port map ( +D => RHB_WAIT_CNT_S(2), +SP => RTC_CTRL, +CK => pll_refclki, +CD => sli_rst, +Q => RHB_WAIT_CNT(2)); +\RHB_WAIT_CNT[3]_REG_Z512\: FD1P3DX port map ( +D => RHB_WAIT_CNT_S(3), +SP => RTC_CTRL, +CK => pll_refclki, +CD => sli_rst, +Q => RHB_WAIT_CNT(3)); +\RHB_WAIT_CNT[4]_REG_Z514\: FD1P3DX port map ( +D => RHB_WAIT_CNT_S(4), +SP => RTC_CTRL, +CK => pll_refclki, +CD => sli_rst, +Q => RHB_WAIT_CNT(4)); +\RHB_WAIT_CNT[5]_REG_Z516\: FD1P3DX port map ( +D => RHB_WAIT_CNT_S(5), +SP => RTC_CTRL, +CK => pll_refclki, +CD => sli_rst, +Q => RHB_WAIT_CNT(5)); +\RHB_WAIT_CNT[6]_REG_Z518\: FD1P3DX port map ( +D => RHB_WAIT_CNT_S(6), +SP => RTC_CTRL, +CK => pll_refclki, +CD => sli_rst, +Q => RHB_WAIT_CNT(6)); +\RHB_WAIT_CNT[7]_REG_Z520\: FD1P3DX port map ( +D => RHB_WAIT_CNT_S(7), +SP => RTC_CTRL, +CK => pll_refclki, +CD => sli_rst, +Q => RHB_WAIT_CNT(7)); +RHB_SYNC_P2_REG_Z522: FD1S3DX port map ( +D => RHB_SYNC_P1, +CK => pll_refclki, +CD => sli_rst, +Q => RHB_SYNC_P2); +RHB_SYNC_P1_REG_Z524: FD1S3DX port map ( +D => RHB_SYNC, +CK => pll_refclki, +CD => sli_rst, +Q => RHB_SYNC_P1); +\RCOUNT[0]_REG_Z526\: FD1S3DX port map ( +D => RCOUNT_S(0), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(0)); +\RCOUNT[1]_REG_Z528\: FD1S3DX port map ( +D => RCOUNT_S(1), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(1)); +\RCOUNT[2]_REG_Z530\: FD1S3DX port map ( +D => RCOUNT_S(2), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(2)); +\RCOUNT[3]_REG_Z532\: FD1S3DX port map ( +D => RCOUNT_S(3), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(3)); +\RCOUNT[4]_REG_Z534\: FD1S3DX port map ( +D => RCOUNT_S(4), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(4)); +\RCOUNT[5]_REG_Z536\: FD1S3DX port map ( +D => RCOUNT_S(5), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(5)); +\RCOUNT[6]_REG_Z538\: FD1S3DX port map ( +D => RCOUNT_S(6), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(6)); +\RCOUNT[7]_REG_Z540\: FD1S3DX port map ( +D => RCOUNT_S(7), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(7)); +\RCOUNT[8]_REG_Z542\: FD1S3DX port map ( +D => RCOUNT_S(8), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(8)); +\RCOUNT[9]_REG_Z544\: FD1S3DX port map ( +D => RCOUNT_S(9), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(9)); +\RCOUNT[10]_REG_Z546\: FD1S3DX port map ( +D => RCOUNT_S(10), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(10)); +\RCOUNT[11]_REG_Z548\: FD1S3DX port map ( +D => RCOUNT_S(11), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(11)); +\RCOUNT[12]_REG_Z550\: FD1S3DX port map ( +D => RCOUNT_S(12), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(12)); +\RCOUNT[13]_REG_Z552\: FD1S3DX port map ( +D => RCOUNT_S(13), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(13)); +\RCOUNT[14]_REG_Z554\: FD1S3DX port map ( +D => RCOUNT_S(14), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(14)); +\RCOUNT[15]_REG_Z556\: FD1S3DX port map ( +D => RCOUNT_S(15), +CK => pll_refclki, +CD => sli_rst, +Q => RCOUNT(15)); +PPUL_SYNC_P3_REG_Z558: FD1S3DX port map ( +D => PPUL_SYNC_P2, +CK => tx_pclk, +CD => sli_rst, +Q => PPUL_SYNC_P3); +PPUL_SYNC_P2_REG_Z560: FD1S3DX port map ( +D => PPUL_SYNC_P1, +CK => tx_pclk, +CD => sli_rst, +Q => PPUL_SYNC_P2); +PPUL_SYNC_P1_REG_Z562: FD1S3DX port map ( +D => PPUL_SYNC, +CK => tx_pclk, +CD => sli_rst, +Q => PPUL_SYNC_P1); +PLL_LOCK_REG_Z564: FD1S3DX port map ( +D => SLL_STATE(1), +CK => pll_refclki, +CD => sli_rst, +Q => PLL_LOCK); +\PHB_CNT[0]_REG_Z566\: FD1S3DX port map ( +D => PHB_CNT_I(0), +CK => tx_pclk, +CD => sli_rst, +Q => PHB_CNT(0)); +\PHB_CNT[1]_REG_Z568\: FD1S3DX port map ( +D => PHB_CNT_RNO(1), +CK => tx_pclk, +CD => sli_rst, +Q => PHB_CNT(1)); +\PHB_CNT[2]_REG_Z570\: FD1S3DX port map ( +D => PHB_CNT_RNO(2), +CK => tx_pclk, +CD => sli_rst, +Q => PHB_CNT(2)); +PHB_REG_Z572: FD1S3DX port map ( +D => PHB_CNT_I(2), +CK => tx_pclk, +CD => sli_rst, +Q => PHB); +PDIFF_SYNC_P1_REG_Z574: FD1S3DX port map ( +D => PDIFF_SYNC, +CK => pll_refclki, +CD => sli_rst, +Q => PDIFF_SYNC_P1); +\PCOUNT_DIFF[0]_REG_Z576\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_I(0), +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_0); +\PCOUNT[0]_REG_Z578\: FD1S3DX port map ( +D => PCOUNT_S(0), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(0)); +\PCOUNT[1]_REG_Z580\: FD1S3DX port map ( +D => PCOUNT_S(1), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(1)); +\PCOUNT_DIFF[1]_REG_Z582\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_1_0_S0, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_1); +\PCOUNT_DIFF[2]_REG_Z584\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_1_0_S1, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_2); +\PCOUNT[2]_REG_Z586\: FD1S3DX port map ( +D => PCOUNT_S(2), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(2)); +\PCOUNT[3]_REG_Z588\: FD1S3DX port map ( +D => PCOUNT_S(3), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(3)); +\PCOUNT_DIFF[3]_REG_Z590\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_3_0_S0, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_3); +\PCOUNT_DIFF[4]_REG_Z592\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_3_0_S1, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_4); +\PCOUNT[4]_REG_Z594\: FD1S3DX port map ( +D => PCOUNT_S(4), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(4)); +\PCOUNT[5]_REG_Z596\: FD1S3DX port map ( +D => PCOUNT_S(5), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(5)); +\PCOUNT_DIFF[5]_REG_Z598\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_5_0_S0, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_5); +\PCOUNT_DIFF[6]_REG_Z600\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_5_0_S1, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_6); +\PCOUNT[6]_REG_Z602\: FD1S3DX port map ( +D => PCOUNT_S(6), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(6)); +\PCOUNT_DIFF[7]_REG_Z604\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_7_0_S0, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_7); +\PCOUNT[7]_REG_Z606\: FD1S3DX port map ( +D => PCOUNT_S(7), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(7)); +\PCOUNT[8]_REG_Z608\: FD1S3DX port map ( +D => PCOUNT_S(8), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(8)); +\PCOUNT_DIFF[8]_REG_Z610\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_7_0_S1, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_8); +\PCOUNT_DIFF[9]_REG_Z612\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_9_0_S0, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_9); +\PCOUNT[9]_REG_Z614\: FD1S3DX port map ( +D => PCOUNT_S(9), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(9)); +\PCOUNT[10]_REG_Z616\: FD1S3DX port map ( +D => PCOUNT_S(10), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(10)); +\PCOUNT_DIFF[10]_REG_Z618\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_9_0_S1, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_10); +\PCOUNT_DIFF[11]_REG_Z620\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_11_0_S0, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_11); +\PCOUNT[11]_REG_Z622\: FD1S3DX port map ( +D => PCOUNT_S(11), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(11)); +\PCOUNT[12]_REG_Z624\: FD1S3DX port map ( +D => PCOUNT_S(12), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(12)); +\PCOUNT_DIFF[12]_REG_Z626\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_11_0_S1, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_12); +\PCOUNT[13]_REG_Z628\: FD1S3DX port map ( +D => PCOUNT_S(13), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(13)); +\PCOUNT_DIFF[13]_REG_Z630\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_13_0_S0, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_13); +\PCOUNT_DIFF[14]_REG_Z632\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_13_0_S1, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_14); +\PCOUNT[14]_REG_Z634\: FD1S3DX port map ( +D => PCOUNT_S(14), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(14)); +\PCOUNT_DIFF[15]_REG_Z636\: FD1P3BX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_15_0_S0, +SP => N_7, +CK => tx_pclk, +PD => sli_rst, +Q => UN13_LOCK_15); +\PCOUNT[15]_REG_Z638\: FD1S3DX port map ( +D => PCOUNT_S(15), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(15)); +\PCOUNT[16]_REG_Z640\: FD1S3DX port map ( +D => PCOUNT_S(16), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(16)); +\PCOUNT_DIFF[16]_REG_Z642\: FD1P3DX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_15_0_S1, +SP => N_7, +CK => tx_pclk, +CD => sli_rst, +Q => UN13_LOCK_16); +\PCOUNT_DIFF[17]_REG_Z644\: FD1P3DX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_17_0_S0, +SP => N_7, +CK => tx_pclk, +CD => sli_rst, +Q => UN13_LOCK_17); +\PCOUNT[17]_REG_Z646\: FD1S3DX port map ( +D => PCOUNT_S(17), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(17)); +\PCOUNT[18]_REG_Z648\: FD1S3DX port map ( +D => PCOUNT_S(18), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(18)); +\PCOUNT_DIFF[18]_REG_Z650\: FD1P3DX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_17_0_S1, +SP => N_7, +CK => tx_pclk, +CD => sli_rst, +Q => UN13_LOCK_18); +\PCOUNT[19]_REG_Z652\: FD1S3DX port map ( +D => PCOUNT_S(19), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(19)); +\PCOUNT_DIFF[19]_REG_Z654\: FD1P3DX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_19_0_S0, +SP => N_7, +CK => tx_pclk, +CD => sli_rst, +Q => UN13_LOCK_19); +\PCOUNT_DIFF[20]_REG_Z656\: FD1P3DX port map ( +D => UN1_PCOUNT_DIFF_1_CRY_19_0_S1, +SP => N_7, +CK => tx_pclk, +CD => sli_rst, +Q => UN13_LOCK_20); +\PCOUNT[20]_REG_Z658\: FD1S3DX port map ( +D => PCOUNT_S(20), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(20)); +\PCOUNT[21]_REG_Z660\: FD1S3DX port map ( +D => PCOUNT_S(21), +CK => tx_pclk, +CD => sli_rst, +Q => PCOUNT(21)); +\PCOUNT_DIFF[21]_REG_Z662\: FD1P3DX port map ( +D => UN1_PCOUNT_DIFF_1_S_21_0_S0, +SP => N_7, +CK => tx_pclk, +CD => sli_rst, +Q => UN13_LOCK_21); +LOCK_REG_Z664: FD1P3DX port map ( +D => LOCK_5, +SP => LOCK_1_SQMUXA_I_0, +CK => pll_refclki, +CD => sli_rst, +Q => LOCK); +\GENBLK5.RDIFF_COMP_LOCK[2]_REG_Z666\: FD1S3DX port map ( +D => VCC, +CK => pll_refclki, +CD => sli_rst, +Q => RDIFF_COMP_LOCK(2)); +RTC_PUL5_0_0: LUT4 +generic map( + init => X"FF80" +) +port map ( +A => RTC_PUL5_0_O3, +B => RTC_PUL5_0_A3_6, +C => RTC_PUL5_0_A3_7, +D => UN1_RCOUNT_1_0_A3, +Z => RTC_PUL5); +RSTAT_PCLK_2_IV_0_0: LUT4 +generic map( + init => X"5D0C" +) +port map ( +A => UN1_RHB_WAIT_CNT, +B => RHB_SYNC_P1, +C => RHB_SYNC_P2, +D => RSTAT_PCLK, +Z => RSTAT_PCLK_2); +\SLL_STATE_RNO[1]\: LUT4 +generic map( + init => X"4044" +) +port map ( +A => SLL_STATE_NS_I_0_M3(1), +B => RSTAT_PCLK, +C => SLL_STATE(1), +D => UNLOCK, +Z => N_89_I); +UN1_RHB_WAIT_CNT12_1_I_0_A3: LUT4 +generic map( + init => X"5151" +) +port map ( +A => UN1_RHB_WAIT_CNT, +B => RHB_SYNC_P1, +C => RHB_SYNC_P2, +D => VCC, +Z => N_12); +RTC_CTRL4_0_A3: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RTC_CTRL4_0_A3_1, +B => RTC_CTRL4_0_A3_12_4, +C => RTC_CTRL4_0_A3_12_5, +D => RTC_CTRL4_10, +Z => RTC_CTRL4); +UN1_RCOUNT_1_0_A3_Z672: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RTC_CTRL4_0_A3_12_4, +B => RTC_CTRL4_0_A3_12_5, +C => RTC_CTRL4_10, +D => UN1_RCOUNT_1_0_A3_1, +Z => UN1_RCOUNT_1_0_A3); +RTC_PUL5_0_O3_Z673: LUT4 +generic map( + init => X"AAAB" +) +port map ( +A => N_6, +B => RCOUNT(1), +C => RCOUNT(2), +D => RCOUNT(3), +Z => RTC_PUL5_0_O3); +UN1_RHB_WAIT_CNT_Z674: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RHB_WAIT_CNT(4), +B => RHB_WAIT_CNT(5), +C => UN1_RHB_WAIT_CNT_3, +D => UN1_RHB_WAIT_CNT_4, +Z => UN1_RHB_WAIT_CNT); +RTC_PUL5_0_A3_7_Z675: LUT4 +generic map( + init => X"1010" +) +port map ( +A => RCOUNT(7), +B => RCOUNT(8), +C => RTC_PUL5_0_A3_5, +D => VCC, +Z => RTC_PUL5_0_A3_7); +\SLL_STATE_NS_I_0_M3[1]_Z676\: LUT4 +generic map( + init => X"10DF" +) +port map ( +A => LOCK, +B => RTC_PUL, +C => RTC_PUL_P1, +D => SLL_STATE(1), +Z => SLL_STATE_NS_I_0_M3(1)); +\PHB_CNT_RNO[2]_Z677\: LUT4 +generic map( + init => X"7878" +) +port map ( +A => PHB_CNT(0), +B => PHB_CNT(1), +C => PHB_CNT(2), +D => VCC, +Z => PHB_CNT_RNO(2)); +UNLOCK_1_SQMUXA_I_0_Z678: LUT4 +generic map( + init => X"4F4F" +) +port map ( +A => PDIFF_SYNC, +B => PDIFF_SYNC_P1, +C => UNLOCK, +D => VCC, +Z => UNLOCK_1_SQMUXA_I_0); +LOCK_1_SQMUXA_I_0_Z679: LUT4 +generic map( + init => X"7575" +) +port map ( +A => LOCK, +B => PDIFF_SYNC, +C => PDIFF_SYNC_P1, +D => VCC, +Z => LOCK_1_SQMUXA_I_0); +RTC_CTRL4_0_A3_10: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RCOUNT(1), +B => RCOUNT(3), +C => RCOUNT(6), +D => RCOUNT(15), +Z => RTC_CTRL4_10); +UN1_RHB_WAIT_CNT_4_Z681: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RHB_WAIT_CNT(0), +B => RHB_WAIT_CNT(1), +C => RHB_WAIT_CNT(2), +D => RHB_WAIT_CNT(3), +Z => UN1_RHB_WAIT_CNT_4); +RTC_CTRL4_0_A3_12_4_Z682: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RCOUNT(11), +B => RCOUNT(12), +C => RCOUNT(13), +D => RCOUNT(14), +Z => RTC_CTRL4_0_A3_12_4); +RTC_CTRL4_0_A3_12_5_Z683: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RCOUNT(7), +B => RCOUNT(8), +C => RCOUNT(9), +D => RCOUNT(10), +Z => RTC_CTRL4_0_A3_12_5); +RTC_PUL5_0_A3_5_Z684: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RCOUNT(6), +B => RCOUNT(13), +C => RCOUNT(14), +D => RCOUNT(15), +Z => RTC_PUL5_0_A3_5); +RTC_PUL5_0_A3_6_Z685: LUT4 +generic map( + init => X"0001" +) +port map ( +A => RCOUNT(9), +B => RCOUNT(10), +C => RCOUNT(11), +D => RCOUNT(12), +Z => RTC_PUL5_0_A3_6); +LOCK_5_Z686: LUT4 +generic map( + init => X"8888" +) +port map ( +A => PDIFF_SYNC, +B => UN13_LOCK_CRY_21_I, +C => VCC, +D => VCC, +Z => LOCK_5); +UNLOCK_5_Z687: LUT4 +generic map( + init => X"8888" +) +port map ( +A => PDIFF_SYNC, +B => UN13_UNLOCK_CRY_21, +C => VCC, +D => VCC, +Z => UNLOCK_5); +PCOUNT10_0_O3: LUT4 +generic map( + init => X"DDDD" +) +port map ( +A => PPUL_SYNC_P1, +B => PPUL_SYNC_P2, +C => VCC, +D => VCC, +Z => N_8); +\PHB_CNT_RNO[1]_Z689\: LUT4 +generic map( + init => X"6666" +) +port map ( +A => PHB_CNT(0), +B => PHB_CNT(1), +C => VCC, +D => VCC, +Z => PHB_CNT_RNO(1)); +RTC_CTRL4_0_O3: LUT4 +generic map( + init => X"7777" +) +port map ( +A => RCOUNT(4), +B => RCOUNT(5), +C => VCC, +D => VCC, +Z => N_6); +UN1_RHB_WAIT_CNT_3_Z691: LUT4 +generic map( + init => X"8888" +) +port map ( +A => RHB_WAIT_CNT(6), +B => RHB_WAIT_CNT(7), +C => VCC, +D => VCC, +Z => UN1_RHB_WAIT_CNT_3); +\UN1_PCOUNT_DIFF[0]_Z692\: LUT4 +generic map( + init => X"5355" +) +port map ( +A => UN13_LOCK_0, +B => PCOUNT(0), +C => PPUL_SYNC_P2, +D => PPUL_SYNC_P1, +Z => UN1_PCOUNT_DIFF(0)); +UN1_RCOUNT_1_0_A3_1_Z693: LUT4 +generic map( + init => X"8000" +) +port map ( +A => RCOUNT(2), +B => RCOUNT(0), +C => RCOUNT(5), +D => RCOUNT(4), +Z => UN1_RCOUNT_1_0_A3_1); +\PCOUNT_CRY_0[0]\: CCU2C +generic map( + INIT0 => X"500c", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => N_8, +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(0), +C1 => VCC, +D1 => VCC, +CIN => N_9, +COUT => PCOUNT_CRY(0), +S0 => PCOUNT_CRY_0_S0(0), +S1 => PCOUNT_S(0)); +\PCOUNT_CRY_0[1]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(1), +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(2), +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(0), +COUT => PCOUNT_CRY(2), +S0 => PCOUNT_S(1), +S1 => PCOUNT_S(2)); +\PCOUNT_CRY_0[3]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(3), +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(4), +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(2), +COUT => PCOUNT_CRY(4), +S0 => PCOUNT_S(3), +S1 => PCOUNT_S(4)); +\PCOUNT_CRY_0[5]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(5), +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(6), +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(4), +COUT => PCOUNT_CRY(6), +S0 => PCOUNT_S(5), +S1 => PCOUNT_S(6)); +\PCOUNT_CRY_0[7]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(7), +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(8), +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(6), +COUT => PCOUNT_CRY(8), +S0 => PCOUNT_S(7), +S1 => PCOUNT_S(8)); +\PCOUNT_CRY_0[9]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(9), +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(10), +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(8), +COUT => PCOUNT_CRY(10), +S0 => PCOUNT_S(9), +S1 => PCOUNT_S(10)); +\PCOUNT_CRY_0[11]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(11), +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(12), +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(10), +COUT => PCOUNT_CRY(12), +S0 => PCOUNT_S(11), +S1 => PCOUNT_S(12)); +\PCOUNT_CRY_0[13]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(13), +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(14), +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(12), +COUT => PCOUNT_CRY(14), +S0 => PCOUNT_S(13), +S1 => PCOUNT_S(14)); +\PCOUNT_CRY_0[15]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(15), +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(16), +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(14), +COUT => PCOUNT_CRY(16), +S0 => PCOUNT_S(15), +S1 => PCOUNT_S(16)); +\PCOUNT_CRY_0[17]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(17), +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(18), +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(16), +COUT => PCOUNT_CRY(18), +S0 => PCOUNT_S(17), +S1 => PCOUNT_S(18)); +\PCOUNT_CRY_0[19]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(19), +C0 => VCC, +D0 => VCC, +A1 => N_8, +B1 => PCOUNT(20), +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(18), +COUT => PCOUNT_CRY(20), +S0 => PCOUNT_S(19), +S1 => PCOUNT_S(20)); +\PCOUNT_S_0[21]\: CCU2C +generic map( + INIT0 => X"800a", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => PCOUNT(21), +C0 => VCC, +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => PCOUNT_CRY(20), +COUT => PCOUNT_S_0_COUT(21), +S0 => PCOUNT_S(21), +S1 => PCOUNT_S_0_S1(21)); +\RCOUNT_CRY_0[0]\: CCU2C +generic map( + INIT0 => X"5003", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => UN1_RCOUNT_1_0_A3, +C0 => VCC, +D0 => VCC, +A1 => UN1_RCOUNT_1_0_A3, +B1 => RCOUNT(0), +C1 => VCC, +D1 => VCC, +CIN => N_5, +COUT => RCOUNT_CRY(0), +S0 => RCOUNT_CRY_0_S0(0), +S1 => RCOUNT_S(0)); +\RCOUNT_CRY_0[1]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_RCOUNT_1_0_A3, +B0 => RCOUNT(1), +C0 => VCC, +D0 => VCC, +A1 => UN1_RCOUNT_1_0_A3, +B1 => RCOUNT(2), +C1 => VCC, +D1 => VCC, +CIN => RCOUNT_CRY(0), +COUT => RCOUNT_CRY(2), +S0 => RCOUNT_S(1), +S1 => RCOUNT_S(2)); +\RCOUNT_CRY_0[3]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_RCOUNT_1_0_A3, +B0 => RCOUNT(3), +C0 => VCC, +D0 => VCC, +A1 => UN1_RCOUNT_1_0_A3, +B1 => RCOUNT(4), +C1 => VCC, +D1 => VCC, +CIN => RCOUNT_CRY(2), +COUT => RCOUNT_CRY(4), +S0 => RCOUNT_S(3), +S1 => RCOUNT_S(4)); +\RCOUNT_CRY_0[5]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_RCOUNT_1_0_A3, +B0 => RCOUNT(5), +C0 => VCC, +D0 => VCC, +A1 => UN1_RCOUNT_1_0_A3, +B1 => RCOUNT(6), +C1 => VCC, +D1 => VCC, +CIN => RCOUNT_CRY(4), +COUT => RCOUNT_CRY(6), +S0 => RCOUNT_S(5), +S1 => RCOUNT_S(6)); +\RCOUNT_CRY_0[7]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_RCOUNT_1_0_A3, +B0 => RCOUNT(7), +C0 => VCC, +D0 => VCC, +A1 => UN1_RCOUNT_1_0_A3, +B1 => RCOUNT(8), +C1 => VCC, +D1 => VCC, +CIN => RCOUNT_CRY(6), +COUT => RCOUNT_CRY(8), +S0 => RCOUNT_S(7), +S1 => RCOUNT_S(8)); +\RCOUNT_CRY_0[9]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_RCOUNT_1_0_A3, +B0 => RCOUNT(9), +C0 => VCC, +D0 => VCC, +A1 => UN1_RCOUNT_1_0_A3, +B1 => RCOUNT(10), +C1 => VCC, +D1 => VCC, +CIN => RCOUNT_CRY(8), +COUT => RCOUNT_CRY(10), +S0 => RCOUNT_S(9), +S1 => RCOUNT_S(10)); +\RCOUNT_CRY_0[11]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_RCOUNT_1_0_A3, +B0 => RCOUNT(11), +C0 => VCC, +D0 => VCC, +A1 => UN1_RCOUNT_1_0_A3, +B1 => RCOUNT(12), +C1 => VCC, +D1 => VCC, +CIN => RCOUNT_CRY(10), +COUT => RCOUNT_CRY(12), +S0 => RCOUNT_S(11), +S1 => RCOUNT_S(12)); +\RCOUNT_CRY_0[13]\: CCU2C +generic map( + INIT0 => X"4000", + INIT1 => X"4000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_RCOUNT_1_0_A3, +B0 => RCOUNT(13), +C0 => VCC, +D0 => VCC, +A1 => UN1_RCOUNT_1_0_A3, +B1 => RCOUNT(14), +C1 => VCC, +D1 => VCC, +CIN => RCOUNT_CRY(12), +COUT => RCOUNT_CRY(14), +S0 => RCOUNT_S(13), +S1 => RCOUNT_S(14)); +\RCOUNT_S_0[15]\: CCU2C +generic map( + INIT0 => X"4005", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_RCOUNT_1_0_A3, +B0 => RCOUNT(15), +C0 => VCC, +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => RCOUNT_CRY(14), +COUT => RCOUNT_S_0_COUT(15), +S0 => RCOUNT_S(15), +S1 => RCOUNT_S_0_S1(15)); +\RHB_WAIT_CNT_CRY_0[0]\: CCU2C +generic map( + INIT0 => X"500c", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => N_12, +C0 => VCC, +D0 => VCC, +A1 => N_12, +B1 => RHB_WAIT_CNT(0), +C1 => VCC, +D1 => VCC, +CIN => N_4, +COUT => RHB_WAIT_CNT_CRY(0), +S0 => RHB_WAIT_CNT_CRY_0_S0(0), +S1 => RHB_WAIT_CNT_S(0)); +\RHB_WAIT_CNT_CRY_0[1]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_12, +B0 => RHB_WAIT_CNT(1), +C0 => VCC, +D0 => VCC, +A1 => N_12, +B1 => RHB_WAIT_CNT(2), +C1 => VCC, +D1 => VCC, +CIN => RHB_WAIT_CNT_CRY(0), +COUT => RHB_WAIT_CNT_CRY(2), +S0 => RHB_WAIT_CNT_S(1), +S1 => RHB_WAIT_CNT_S(2)); +\RHB_WAIT_CNT_CRY_0[3]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_12, +B0 => RHB_WAIT_CNT(3), +C0 => VCC, +D0 => VCC, +A1 => N_12, +B1 => RHB_WAIT_CNT(4), +C1 => VCC, +D1 => VCC, +CIN => RHB_WAIT_CNT_CRY(2), +COUT => RHB_WAIT_CNT_CRY(4), +S0 => RHB_WAIT_CNT_S(3), +S1 => RHB_WAIT_CNT_S(4)); +\RHB_WAIT_CNT_CRY_0[5]\: CCU2C +generic map( + INIT0 => X"8000", + INIT1 => X"8000", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_12, +B0 => RHB_WAIT_CNT(5), +C0 => VCC, +D0 => VCC, +A1 => N_12, +B1 => RHB_WAIT_CNT(6), +C1 => VCC, +D1 => VCC, +CIN => RHB_WAIT_CNT_CRY(4), +COUT => RHB_WAIT_CNT_CRY(6), +S0 => RHB_WAIT_CNT_S(5), +S1 => RHB_WAIT_CNT_S(6)); +\RHB_WAIT_CNT_S_0[7]\: CCU2C +generic map( + INIT0 => X"800a", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_12, +B0 => RHB_WAIT_CNT(7), +C0 => VCC, +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => RHB_WAIT_CNT_CRY(6), +COUT => RHB_WAIT_CNT_S_0_COUT(7), +S0 => RHB_WAIT_CNT_S(7), +S1 => RHB_WAIT_CNT_S_0_S1(7)); +UN1_PCOUNT_DIFF_1_CRY_0_0: CCU2C +generic map( + INIT0 => X"5003", + INIT1 => X"500f", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF(0), +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => N_3, +COUT => UN1_PCOUNT_DIFF_1_CRY_0, +S0 => UN1_PCOUNT_DIFF_1_CRY_0_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_0_0_S1); +UN1_PCOUNT_DIFF_1_CRY_1_0: CCU2C +generic map( + INIT0 => X"a003", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_PCOUNT_DIFF_1_AXB_1, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF_1_AXB_2, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_0, +COUT => UN1_PCOUNT_DIFF_1_CRY_2, +S0 => UN1_PCOUNT_DIFF_1_CRY_1_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_1_0_S1); +UN1_PCOUNT_DIFF_1_CRY_3_0: CCU2C +generic map( + INIT0 => X"a003", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_PCOUNT_DIFF_1_AXB_3, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF_1_AXB_4, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_2, +COUT => UN1_PCOUNT_DIFF_1_CRY_4, +S0 => UN1_PCOUNT_DIFF_1_CRY_3_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_3_0_S1); +UN1_PCOUNT_DIFF_1_CRY_5_0: CCU2C +generic map( + INIT0 => X"a003", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_PCOUNT_DIFF_1_AXB_5, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF_1_AXB_6, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_4, +COUT => UN1_PCOUNT_DIFF_1_CRY_6, +S0 => UN1_PCOUNT_DIFF_1_CRY_5_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_5_0_S1); +UN1_PCOUNT_DIFF_1_CRY_7_0: CCU2C +generic map( + INIT0 => X"a003", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_PCOUNT_DIFF_1_AXB_7, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF_1_AXB_8, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_6, +COUT => UN1_PCOUNT_DIFF_1_CRY_8, +S0 => UN1_PCOUNT_DIFF_1_CRY_7_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_7_0_S1); +UN1_PCOUNT_DIFF_1_CRY_9_0: CCU2C +generic map( + INIT0 => X"a003", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_PCOUNT_DIFF_1_AXB_9, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF_1_AXB_10, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_8, +COUT => UN1_PCOUNT_DIFF_1_CRY_10, +S0 => UN1_PCOUNT_DIFF_1_CRY_9_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_9_0_S1); +UN1_PCOUNT_DIFF_1_CRY_11_0: CCU2C +generic map( + INIT0 => X"a003", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_PCOUNT_DIFF_1_AXB_11, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF_1_AXB_12, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_10, +COUT => UN1_PCOUNT_DIFF_1_CRY_12, +S0 => UN1_PCOUNT_DIFF_1_CRY_11_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_11_0_S1); +UN1_PCOUNT_DIFF_1_CRY_13_0: CCU2C +generic map( + INIT0 => X"a003", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_PCOUNT_DIFF_1_AXB_13, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF_1_AXB_14, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_12, +COUT => UN1_PCOUNT_DIFF_1_CRY_14, +S0 => UN1_PCOUNT_DIFF_1_CRY_13_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_13_0_S1); +UN1_PCOUNT_DIFF_1_CRY_15_0: CCU2C +generic map( + INIT0 => X"a003", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_PCOUNT_DIFF_1_AXB_15, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF_1_AXB_16, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_14, +COUT => UN1_PCOUNT_DIFF_1_CRY_16, +S0 => UN1_PCOUNT_DIFF_1_CRY_15_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_15_0_S1); +UN1_PCOUNT_DIFF_1_CRY_17_0: CCU2C +generic map( + INIT0 => X"b404", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => N_8, +B0 => RDIFF_COMP_LOCK(2), +C0 => UN1_PCOUNT_DIFF_1_CRY_17_0_RNO, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF_1_AXB_18, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_16, +COUT => UN1_PCOUNT_DIFF_1_CRY_18, +S0 => UN1_PCOUNT_DIFF_1_CRY_17_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_17_0_S1); +UN1_PCOUNT_DIFF_1_CRY_19_0: CCU2C +generic map( + INIT0 => X"a003", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN1_PCOUNT_DIFF_1_AXB_19, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN1_PCOUNT_DIFF_1_AXB_20, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_18, +COUT => UN1_PCOUNT_DIFF_1_CRY_20, +S0 => UN1_PCOUNT_DIFF_1_CRY_19_0_S0, +S1 => UN1_PCOUNT_DIFF_1_CRY_19_0_S1); +UN1_PCOUNT_DIFF_1_S_21_0: CCU2C +generic map( + INIT0 => X"350a", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => PCOUNT(21), +B0 => UN13_LOCK_21, +C0 => N_8, +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN1_PCOUNT_DIFF_1_CRY_20, +COUT => UN1_PCOUNT_DIFF_1_S_21_0_COUT, +S0 => UN1_PCOUNT_DIFF_1_S_21_0_S0, +S1 => UN1_PCOUNT_DIFF_1_S_21_0_S1); +UN13_LOCK_CRY_0_0: CCU2C +generic map( + INIT0 => X"5003", + INIT1 => X"900a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_0, +B1 => RDIFF_COMP_LOCK(2), +C1 => VCC, +D1 => VCC, +CIN => N_2, +COUT => UN13_LOCK_CRY_0, +S0 => UN13_LOCK_CRY_0_0_S0, +S1 => UN13_LOCK_CRY_0_0_S1); +UN13_LOCK_CRY_1_0: CCU2C +generic map( + INIT0 => X"900a", + INIT1 => X"900a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_1, +B0 => RDIFF_COMP_LOCK(2), +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_2, +B1 => RDIFF_COMP_LOCK(2), +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_0, +COUT => UN13_LOCK_CRY_2, +S0 => UN13_LOCK_CRY_1_0_S0, +S1 => UN13_LOCK_CRY_1_0_S1); +UN13_LOCK_CRY_3_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_3, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_4, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_2, +COUT => UN13_LOCK_CRY_4, +S0 => UN13_LOCK_CRY_3_0_S0, +S1 => UN13_LOCK_CRY_3_0_S1); +UN13_LOCK_CRY_5_0: CCU2C +generic map( + INIT0 => X"900a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_5, +B0 => RDIFF_COMP_LOCK(2), +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_6, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_4, +COUT => UN13_LOCK_CRY_6, +S0 => UN13_LOCK_CRY_5_0_S0, +S1 => UN13_LOCK_CRY_5_0_S1); +UN13_LOCK_CRY_7_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_7, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_8, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_6, +COUT => UN13_LOCK_CRY_8, +S0 => UN13_LOCK_CRY_7_0_S0, +S1 => UN13_LOCK_CRY_7_0_S1); +UN13_LOCK_CRY_9_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_9, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_10, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_8, +COUT => UN13_LOCK_CRY_10, +S0 => UN13_LOCK_CRY_9_0_S0, +S1 => UN13_LOCK_CRY_9_0_S1); +UN13_LOCK_CRY_11_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_11, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_12, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_10, +COUT => UN13_LOCK_CRY_12, +S0 => UN13_LOCK_CRY_11_0_S0, +S1 => UN13_LOCK_CRY_11_0_S1); +UN13_LOCK_CRY_13_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_13, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_14, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_12, +COUT => UN13_LOCK_CRY_14, +S0 => UN13_LOCK_CRY_13_0_S0, +S1 => UN13_LOCK_CRY_13_0_S1); +UN13_LOCK_CRY_15_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_15, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_16, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_14, +COUT => UN13_LOCK_CRY_16, +S0 => UN13_LOCK_CRY_15_0_S0, +S1 => UN13_LOCK_CRY_15_0_S1); +UN13_LOCK_CRY_17_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_17, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_18, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_16, +COUT => UN13_LOCK_CRY_18, +S0 => UN13_LOCK_CRY_17_0_S0, +S1 => UN13_LOCK_CRY_17_0_S1); +UN13_LOCK_CRY_19_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_19, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_20, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_18, +COUT => UN13_LOCK_CRY_20, +S0 => UN13_LOCK_CRY_19_0_S0, +S1 => UN13_LOCK_CRY_19_0_S1); +UN13_LOCK_CRY_21_0: CCU2C +generic map( + INIT0 => X"500f", + INIT1 => X"a003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_21, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_LOCK_CRY_20, +COUT => UN13_LOCK_CRY_21_0_COUT, +S0 => UN13_LOCK_CRY_21_0_S0, +S1 => UN13_LOCK_CRY_21_I); +UN13_UNLOCK_CRY_0_0: CCU2C +generic map( + INIT0 => X"5003", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => VCC, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_0, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => N_1, +COUT => UN13_UNLOCK_CRY_0, +S0 => UN13_UNLOCK_CRY_0_0_S0, +S1 => UN13_UNLOCK_CRY_0_0_S1); +UN13_UNLOCK_CRY_1_0: CCU2C +generic map( + INIT0 => X"900a", + INIT1 => X"900a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_1, +B0 => RDIFF_COMP_LOCK(2), +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_2, +B1 => RDIFF_COMP_LOCK(2), +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_0, +COUT => UN13_UNLOCK_CRY_2, +S0 => UN13_UNLOCK_CRY_1_0_S0, +S1 => UN13_UNLOCK_CRY_1_0_S1); +UN13_UNLOCK_CRY_3_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_3, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_4, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_2, +COUT => UN13_UNLOCK_CRY_4, +S0 => UN13_UNLOCK_CRY_3_0_S0, +S1 => UN13_UNLOCK_CRY_3_0_S1); +UN13_UNLOCK_CRY_5_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_5, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_6, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_4, +COUT => UN13_UNLOCK_CRY_6, +S0 => UN13_UNLOCK_CRY_5_0_S0, +S1 => UN13_UNLOCK_CRY_5_0_S1); +UN13_UNLOCK_CRY_7_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"900a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_7, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_8, +B1 => RDIFF_COMP_LOCK(2), +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_6, +COUT => UN13_UNLOCK_CRY_8, +S0 => UN13_UNLOCK_CRY_7_0_S0, +S1 => UN13_UNLOCK_CRY_7_0_S1); +UN13_UNLOCK_CRY_9_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_9, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_10, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_8, +COUT => UN13_UNLOCK_CRY_10, +S0 => UN13_UNLOCK_CRY_9_0_S0, +S1 => UN13_UNLOCK_CRY_9_0_S1); +UN13_UNLOCK_CRY_11_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_11, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_12, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_10, +COUT => UN13_UNLOCK_CRY_12, +S0 => UN13_UNLOCK_CRY_11_0_S0, +S1 => UN13_UNLOCK_CRY_11_0_S1); +UN13_UNLOCK_CRY_13_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_13, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_14, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_12, +COUT => UN13_UNLOCK_CRY_14, +S0 => UN13_UNLOCK_CRY_13_0_S0, +S1 => UN13_UNLOCK_CRY_13_0_S1); +UN13_UNLOCK_CRY_15_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_15, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_16, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_14, +COUT => UN13_UNLOCK_CRY_16, +S0 => UN13_UNLOCK_CRY_15_0_S0, +S1 => UN13_UNLOCK_CRY_15_0_S1); +UN13_UNLOCK_CRY_17_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_17, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_18, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_16, +COUT => UN13_UNLOCK_CRY_18, +S0 => UN13_UNLOCK_CRY_17_0_S0, +S1 => UN13_UNLOCK_CRY_17_0_S1); +UN13_UNLOCK_CRY_19_0: CCU2C +generic map( + INIT0 => X"500a", + INIT1 => X"500a", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_19, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => UN13_LOCK_20, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_18, +COUT => UN13_UNLOCK_CRY_20, +S0 => UN13_UNLOCK_CRY_19_0_S0, +S1 => UN13_UNLOCK_CRY_19_0_S1); +UN13_UNLOCK_CRY_21_0: CCU2C +generic map( + INIT0 => X"500f", + INIT1 => X"5003", + INJECT1_0 => "NO", + INJECT1_1 => "NO" +) +port map ( +A0 => UN13_LOCK_21, +B0 => VCC, +C0 => VCC, +D0 => VCC, +A1 => VCC, +B1 => VCC, +C1 => VCC, +D1 => VCC, +CIN => UN13_UNLOCK_CRY_20, +COUT => UN13_UNLOCK_CRY_21_0_COUT, +S0 => UN13_UNLOCK_CRY_21_0_S0, +S1 => UN13_UNLOCK_CRY_21); +PHB_SYNC_INST: sync_0s port map ( +phb => PHB, +rhb_sync => RHB_SYNC, +sli_rst => sli_rst, +pll_refclki => pll_refclki); +RTC_SYNC_INST: sync_0s_6 port map ( +rtc_pul => RTC_PUL, +ppul_sync => PPUL_SYNC, +sli_rst => sli_rst, +tx_pclk => tx_pclk); +PDIFF_SYNC_INST: sync_0s_0 port map ( +ppul_sync => PPUL_SYNC, +pdiff_sync => PDIFF_SYNC, +sli_rst => sli_rst, +pll_refclki => pll_refclki); +VCC_0: VHI port map ( +Z => VCC); +II_GND: VLO port map ( +Z => GND); +end beh; + +-- +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; +library synplify; +use synplify.components.all; +library pmi; +use pmi.pmi_components.all; +library ecp5um; +use ecp5um.components.all; + +entity serdes_sync_1 is +port( +hdoutp : out std_logic; +hdoutn : out std_logic; +hdinp : in std_logic; +hdinn : in std_logic; +rxrefclk : in std_logic; +rx_pclk : out std_logic; +tx_pclk : out std_logic; +txdata : in std_logic_vector(7 downto 0); +tx_k : in std_logic_vector(0 downto 0); +tx_force_disp : in std_logic_vector(0 downto 0); +tx_disp_sel : in std_logic_vector(0 downto 0); +rxdata : out std_logic_vector(7 downto 0); +rx_k : out std_logic_vector(0 downto 0); +rx_disp_err : out std_logic_vector(0 downto 0); +rx_cv_err : out std_logic_vector(0 downto 0); +tx_idle_c : in std_logic; +signal_detect_c : in std_logic; +rx_los_low_s : out std_logic; +lsm_status_s : out std_logic; +rx_cdr_lol_s : out std_logic; +sli_rst : in std_logic; +tx_pwrup_c : in std_logic; +rx_pwrup_c : in std_logic; +sci_wrdata : in std_logic_vector(7 downto 0); +sci_addr : in std_logic_vector(5 downto 0); +sci_rddata : out std_logic_vector(7 downto 0); +sci_en_dual : in std_logic; +sci_sel_dual : in std_logic; +sci_en : in std_logic; +sci_sel : in std_logic; +sci_rd : in std_logic; +sci_wrn : in std_logic; +sci_int : out std_logic; +cyawstn : in std_logic; +serdes_pdb : in std_logic; +pll_refclki : in std_logic; +rsl_disable : in std_logic; +rsl_rst : in std_logic; +serdes_rst_dual_c : in std_logic; +rst_dual_c : in std_logic; +tx_serdes_rst_c : in std_logic; +tx_pcs_rst_c : in std_logic; +pll_lol : out std_logic; +rsl_tx_rdy : out std_logic; +rx_serdes_rst_c : in std_logic; +rx_pcs_rst_c : in std_logic; +rsl_rx_rdy : out std_logic); +end serdes_sync_1; + +architecture beh of serdes_sync_1 is +signal RX_PCLK_11 : std_logic ; +signal TX_PCLK_12 : std_logic ; +signal RX_LOS_LOW_S_13 : std_logic ; +signal RX_CDR_LOL_S_14 : std_logic ; +signal RSL_TX_PCS_RST_C : std_logic ; +signal RSL_RX_PCS_RST_C : std_logic ; +signal RSL_RX_SERDES_RST_C : std_logic ; +signal RSL_SERDES_RST_DUAL_C : std_logic ; +signal RSL_TX_SERDES_RST_C : std_logic ; +signal N50_1 : std_logic ; +signal N51_1 : std_logic ; +signal N1_1 : std_logic ; +signal N2_1 : std_logic ; +signal N3_1 : std_logic ; +signal N4_1 : std_logic ; +signal N5_1 : std_logic ; +signal N52_1 : std_logic ; +signal N6_1 : std_logic ; +signal N53_1 : std_logic ; +signal N7_1 : std_logic ; +signal N54_1 : std_logic ; +signal N8_1 : std_logic ; +signal N55_1 : std_logic ; +signal N56_1 : std_logic ; +signal N57_1 : std_logic ; +signal N58_1 : std_logic ; +signal N59_1 : std_logic ; +signal N60_1 : std_logic ; +signal N61_1 : std_logic ; +signal N62_1 : std_logic ; +signal N63_1 : std_logic ; +signal N64_1 : std_logic ; +signal N65_1 : std_logic ; +signal N66_1 : std_logic ; +signal N67_1 : std_logic ; +signal N68_1 : std_logic ; +signal N9_1 : std_logic ; +signal N69_1 : std_logic ; +signal N70_1 : std_logic ; +signal N71_1 : std_logic ; +signal N72_1 : std_logic ; +signal N73_1 : std_logic ; +signal N74_1 : std_logic ; +signal N75_1 : std_logic ; +signal N76_1 : std_logic ; +signal N77_1 : std_logic ; +signal N78_1 : std_logic ; +signal N79_1 : std_logic ; +signal N80_1 : std_logic ; +signal N81_1 : std_logic ; +signal N82_1 : std_logic ; +signal N83_1 : std_logic ; +signal N84_1 : std_logic ; +signal N85_1 : std_logic ; +signal N86_1 : std_logic ; +signal N87_1 : std_logic ; +signal N88_1 : std_logic ; +signal N89_1 : std_logic ; +signal N90_1 : std_logic ; +signal N91_1 : std_logic ; +signal N10_1 : std_logic ; +signal N92_1 : std_logic ; +signal N11_1 : std_logic ; +signal N93_1 : std_logic ; +signal N12_1 : std_logic ; +signal N94_1 : std_logic ; +signal N95_1 : std_logic ; +signal N96_1 : std_logic ; +signal N13_1 : std_logic ; +signal N97_1 : std_logic ; +signal N14_1 : std_logic ; +signal N98_1 : std_logic ; +signal N15_1 : std_logic ; +signal N99_1 : std_logic ; +signal N16_1 : std_logic ; +signal N100_1 : std_logic ; +signal N101_1 : std_logic ; +signal N17_1 : std_logic ; +signal N102_1 : std_logic ; +signal N18_1 : std_logic ; +signal N103_1 : std_logic ; +signal N104_1 : std_logic ; +signal N115_1 : std_logic ; +signal N19_1 : std_logic ; +signal N20_1 : std_logic ; +signal N21_1 : std_logic ; +signal N22_1 : std_logic ; +signal N23_1 : std_logic ; +signal N24_1 : std_logic ; +signal N25_1 : std_logic ; +signal N26_1 : std_logic ; +signal N27_1 : std_logic ; +signal N28_1 : std_logic ; +signal N29_1 : std_logic ; +signal N30_1 : std_logic ; +signal N31_1 : std_logic ; +signal N32_1 : std_logic ; +signal N33_1 : std_logic ; +signal N34_1 : std_logic ; +signal N35_1 : std_logic ; +signal N36_1 : std_logic ; +signal N37_1 : std_logic ; +signal N38_1 : std_logic ; +signal N39_1 : std_logic ; +signal N40_1 : std_logic ; +signal N41_1 : std_logic ; +signal N42_1 : std_logic ; +signal N43_1 : std_logic ; +signal N44_1 : std_logic ; +signal N45_1 : std_logic ; +signal N46_1 : std_logic ; +signal N49_1 : std_logic ; +signal TX_PCLK_I : std_logic ; +signal GND : std_logic ; +signal VCC : std_logic ; +signal \SLL_INST.PLL_LOCK_I_15\ : std_logic ; +component serdes_sync_1sll_core_Z1_layer1 +port( +tx_pclk : in std_logic; +sli_rst : in std_logic; +pll_refclki : in std_logic; +pll_lock_i : out std_logic ); +end component; +component serdes_sync_1rsl_core_Z2_layer1 +port( +rx_pcs_rst_c : in std_logic; +serdes_rst_dual_c : in std_logic; +tx_serdes_rst_c : in std_logic; +rsl_tx_pcs_rst_c : out std_logic; +rst_dual_c : in std_logic; +rsl_rx_pcs_rst_c : out std_logic; +rsl_tx_serdes_rst_c : out std_logic; +rsl_tx_rdy : out std_logic; +pll_lock_i : in std_logic; +pll_refclki : in std_logic; +rsl_rx_rdy : out std_logic; +rx_cdr_lol_s : in std_logic; +rx_los_low_s : in std_logic; +rsl_rst : in std_logic; +rxrefclk : in std_logic; +rx_serdes_rst_c : in std_logic; +rsl_rx_serdes_rst_c : out std_logic; +rsl_serdes_rst_dual_c : out std_logic; +rsl_disable : in std_logic; +tx_pcs_rst_c : in std_logic ); +end component; +begin +GND_0: VLO port map ( +Z => GND); +VCC_0: VHI port map ( +Z => VCC); +PUR_INST: PUR port map ( +PUR => VCC); +GSR_INST: GSR port map ( +GSR => VCC); +TX_PCLK_12 <= TX_PCLK_I; +DCU0_INST: DCUA +generic map( + D_MACROPDB => "0b1", + D_IB_PWDNB => "0b1", + D_XGE_MODE => "0b0", + D_LOW_MARK => "0d4", + D_HIGH_MARK => "0d12", + D_BUS8BIT_SEL => "0b0", + D_CDR_LOL_SET => "0b11", + D_BITCLK_LOCAL_EN => "0b1", + D_BITCLK_ND_EN => "0b0", + D_BITCLK_FROM_ND_EN => "0b0", + D_SYNC_LOCAL_EN => "0b1", + D_SYNC_ND_EN => "0b0", + CH0_UC_MODE => "0b1", + CH0_PCIE_MODE => "0b0", + CH0_RIO_MODE => "0b0", + CH0_WA_MODE => "0b0", + CH0_INVERT_RX => "0b0", + CH0_INVERT_TX => "0b0", + CH0_PRBS_SELECTION => "0b0", + CH0_GE_AN_ENABLE => "0b0", + CH0_PRBS_LOCK => "0b0", + CH0_PRBS_ENABLE => "0b0", + CH0_ENABLE_CG_ALIGN => "0b1", + CH0_TX_GEAR_MODE => "0b0", + CH0_RX_GEAR_MODE => "0b0", + CH0_PCS_DET_TIME_SEL => "0b00", + CH0_PCIE_EI_EN => "0b0", + CH0_TX_GEAR_BYPASS => "0b0", + CH0_ENC_BYPASS => "0b0", + CH0_SB_BYPASS => "0b0", + CH0_RX_SB_BYPASS => "0b0", + CH0_WA_BYPASS => "0b0", + CH0_DEC_BYPASS => "0b0", + CH0_CTC_BYPASS => "0b1", + CH0_RX_GEAR_BYPASS => "0b0", + CH0_LSM_DISABLE => "0b0", + CH0_MATCH_2_ENABLE => "0b0", + CH0_MATCH_4_ENABLE => "0b1", + CH0_MIN_IPG_CNT => "0b11", + CH0_CC_MATCH_1 => "0x1BC", + CH0_CC_MATCH_2 => "0x11C", + CH0_CC_MATCH_3 => "0x11C", + CH0_CC_MATCH_4 => "0x11C", + CH0_UDF_COMMA_MASK => "0x0ff", + CH0_UDF_COMMA_A => "0x083", + CH0_UDF_COMMA_B => "0x07C", + CH0_RX_DCO_CK_DIV => "0b010", + CH0_RCV_DCC_EN => "0b0", + CH0_REQ_LVL_SET => "0b00", + CH0_REQ_EN => "0b1", + CH0_RTERM_RX => "0d22", + CH0_PDEN_SEL => "0b1", + CH0_LDR_RX2CORE_SEL => "0b0", + CH0_LDR_CORE2TX_SEL => "0b0", + CH0_TPWDNB => "0b1", + CH0_RATE_MODE_TX => "0b0", + CH0_RTERM_TX => "0d19", + CH0_TX_CM_SEL => "0b00", + CH0_TDRV_PRE_EN => "0b0", + CH0_TDRV_SLICE0_SEL => "0b00", + CH0_TDRV_SLICE1_SEL => "0b00", + CH0_TDRV_SLICE2_SEL => "0b01", + CH0_TDRV_SLICE3_SEL => "0b01", + CH0_TDRV_SLICE4_SEL => "0b01", + CH0_TDRV_SLICE5_SEL => "0b00", + CH0_TDRV_SLICE0_CUR => "0b000", + CH0_TDRV_SLICE1_CUR => "0b000", + CH0_TDRV_SLICE2_CUR => "0b11", + CH0_TDRV_SLICE3_CUR => "0b11", + CH0_TDRV_SLICE4_CUR => "0b01", + CH0_TDRV_SLICE5_CUR => "0b00", + CH0_TDRV_DAT_SEL => "0b00", + CH0_TX_DIV11_SEL => "0b0", + CH0_RPWDNB => "0b1", + CH0_RATE_MODE_RX => "0b0", + CH0_RLOS_SEL => "0b1", + CH0_RX_LOS_LVL => "0b100", + CH0_RX_LOS_CEQ => "0b11", + CH0_RX_LOS_HYST_EN => "0b0", + CH0_RX_LOS_EN => "0b1", + CH0_RX_DIV11_SEL => "0b0", + CH0_SEL_SD_RX_CLK => "0b1", + CH0_FF_RX_H_CLK_EN => "0b0", + CH0_FF_RX_F_CLK_DIS => "0b0", + CH0_FF_TX_H_CLK_EN => "0b0", + CH0_FF_TX_F_CLK_DIS => "0b0", + CH0_RX_RATE_SEL => "0d10", + CH0_TDRV_POST_EN => "0b0", + CH0_TX_POST_SIGN => "0b0", + CH0_TX_PRE_SIGN => "0b0", + CH0_RXTERM_CM => "0b11", + CH0_RXIN_CM => "0b11", + CH0_LEQ_OFFSET_SEL => "0b0", + CH0_LEQ_OFFSET_TRIM => "0b000", + D_TX_MAX_RATE => "1.25", + CH0_CDR_MAX_RATE => "1.25", + CH0_TXAMPLITUDE => "0d800", + CH0_TXDEPRE => "DISABLED", + CH0_TXDEPOST => "DISABLED", + CH0_PROTOCOL => "G8B10B", + D_ISETLOS => "0d0", + D_SETIRPOLY_AUX => "0b00", + D_SETICONST_AUX => "0b00", + D_SETIRPOLY_CH => "0b00", + D_SETICONST_CH => "0b00", + D_REQ_ISET => "0b000", + D_PD_ISET => "0b00", + D_DCO_CALIB_TIME_SEL => "0b00", + CH0_DCOCTLGI => "0b010", + CH0_DCOATDDLY => "0b00", + CH0_DCOATDCFG => "0b00", + CH0_DCOBYPSATD => "0b1", + CH0_DCOSCALEI => "0b00", + CH0_DCOITUNE4LSB => "0b111", + CH0_DCOIOSTUNE => "0b000", + CH0_DCODISBDAVOID => "0b0", + CH0_DCOCALDIV => "0b001", + CH0_DCONUOFLSB => "0b101", + CH0_DCOIUPDNX2 => "0b1", + CH0_DCOSTEP => "0b00", + CH0_DCOSTARTVAL => "0b000", + CH0_DCOFLTDAC => "0b01", + CH0_DCOITUNE => "0b00", + CH0_DCOFTNRG => "0b110", + CH0_CDR_CNT4SEL => "0b00", + CH0_CDR_CNT8SEL => "0b00", + CH0_BAND_THRESHOLD => "0d0", + CH0_AUTO_FACQ_EN => "0b1", + CH0_AUTO_CALIB_EN => "0b1", + CH0_CALIB_CK_MODE => "0b0", + CH0_REG_BAND_OFFSET => "0d0", + CH0_REG_BAND_SEL => "0d0", + CH0_REG_IDAC_SEL => "0d0", + CH0_REG_IDAC_EN => "0b0", + D_TXPLL_PWDNB => "0b1", + D_SETPLLRC => "0d1", + D_REFCK_MODE => "0b001", + D_TX_VCO_CK_DIV => "0b010", + D_PLL_LOL_SET => "0b01", + D_RG_EN => "0b0", + D_RG_SET => "0b00", + D_CMUSETISCL4VCO => "0b000", + D_CMUSETI4VCO => "0b00", + D_CMUSETINITVCT => "0b00", + D_CMUSETZGM => "0b000", + D_CMUSETP2AGM => "0b000", + D_CMUSETP1GM => "0b000", + D_CMUSETI4CPZ => "0d0", + D_CMUSETI4CPP => "0d0", + D_CMUSETICP4Z => "0b101", + D_CMUSETICP4P => "0b11", + D_CMUSETBIASI => "0b00" +) +port map ( +CH0_HDINP => hdinp, +CH1_HDINP => GND, +CH0_HDINN => hdinn, +CH1_HDINN => GND, +D_TXBIT_CLKP_FROM_ND => GND, +D_TXBIT_CLKN_FROM_ND => GND, +D_SYNC_ND => GND, +D_TXPLL_LOL_FROM_ND => GND, +CH0_RX_REFCLK => rxrefclk, +CH1_RX_REFCLK => GND, +CH0_FF_RXI_CLK => RX_PCLK_11, +CH1_FF_RXI_CLK => VCC, +CH0_FF_TXI_CLK => TX_PCLK_12, +CH1_FF_TXI_CLK => VCC, +CH0_FF_EBRD_CLK => VCC, +CH1_FF_EBRD_CLK => VCC, +CH0_FF_TX_D_0 => txdata(0), +CH1_FF_TX_D_0 => GND, +CH0_FF_TX_D_1 => txdata(1), +CH1_FF_TX_D_1 => GND, +CH0_FF_TX_D_2 => txdata(2), +CH1_FF_TX_D_2 => GND, +CH0_FF_TX_D_3 => txdata(3), +CH1_FF_TX_D_3 => GND, +CH0_FF_TX_D_4 => txdata(4), +CH1_FF_TX_D_4 => GND, +CH0_FF_TX_D_5 => txdata(5), +CH1_FF_TX_D_5 => GND, +CH0_FF_TX_D_6 => txdata(6), +CH1_FF_TX_D_6 => GND, +CH0_FF_TX_D_7 => txdata(7), +CH1_FF_TX_D_7 => GND, +CH0_FF_TX_D_8 => tx_k(0), +CH1_FF_TX_D_8 => GND, +CH0_FF_TX_D_9 => tx_force_disp(0), +CH1_FF_TX_D_9 => GND, +CH0_FF_TX_D_10 => tx_disp_sel(0), +CH1_FF_TX_D_10 => GND, +CH0_FF_TX_D_11 => GND, +CH1_FF_TX_D_11 => GND, +CH0_FF_TX_D_12 => GND, +CH1_FF_TX_D_12 => GND, +CH0_FF_TX_D_13 => GND, +CH1_FF_TX_D_13 => GND, +CH0_FF_TX_D_14 => GND, +CH1_FF_TX_D_14 => GND, +CH0_FF_TX_D_15 => GND, +CH1_FF_TX_D_15 => GND, +CH0_FF_TX_D_16 => GND, +CH1_FF_TX_D_16 => GND, +CH0_FF_TX_D_17 => GND, +CH1_FF_TX_D_17 => GND, +CH0_FF_TX_D_18 => GND, +CH1_FF_TX_D_18 => GND, +CH0_FF_TX_D_19 => GND, +CH1_FF_TX_D_19 => GND, +CH0_FF_TX_D_20 => GND, +CH1_FF_TX_D_20 => GND, +CH0_FF_TX_D_21 => GND, +CH1_FF_TX_D_21 => GND, +CH0_FF_TX_D_22 => GND, +CH1_FF_TX_D_22 => GND, +CH0_FF_TX_D_23 => GND, +CH1_FF_TX_D_23 => GND, +CH0_FFC_EI_EN => tx_idle_c, +CH1_FFC_EI_EN => GND, +CH0_FFC_PCIE_DET_EN => GND, +CH1_FFC_PCIE_DET_EN => GND, +CH0_FFC_PCIE_CT => GND, +CH1_FFC_PCIE_CT => GND, +CH0_FFC_SB_INV_RX => GND, +CH1_FFC_SB_INV_RX => GND, +CH0_FFC_ENABLE_CGALIGN => GND, +CH1_FFC_ENABLE_CGALIGN => GND, +CH0_FFC_SIGNAL_DETECT => signal_detect_c, +CH1_FFC_SIGNAL_DETECT => GND, +CH0_FFC_FB_LOOPBACK => GND, +CH1_FFC_FB_LOOPBACK => GND, +CH0_FFC_SB_PFIFO_LP => GND, +CH1_FFC_SB_PFIFO_LP => GND, +CH0_FFC_PFIFO_CLR => GND, +CH1_FFC_PFIFO_CLR => GND, +CH0_FFC_RATE_MODE_RX => GND, +CH1_FFC_RATE_MODE_RX => GND, +CH0_FFC_RATE_MODE_TX => GND, +CH1_FFC_RATE_MODE_TX => GND, +CH0_FFC_DIV11_MODE_RX => GND, +CH1_FFC_DIV11_MODE_RX => GND, +CH0_FFC_RX_GEAR_MODE => GND, +CH1_FFC_RX_GEAR_MODE => GND, +CH0_FFC_TX_GEAR_MODE => GND, +CH1_FFC_TX_GEAR_MODE => GND, +CH0_FFC_DIV11_MODE_TX => GND, +CH1_FFC_DIV11_MODE_TX => GND, +CH0_FFC_LDR_CORE2TX_EN => GND, +CH1_FFC_LDR_CORE2TX_EN => GND, +CH0_FFC_LANE_TX_RST => RSL_TX_PCS_RST_C, +CH1_FFC_LANE_TX_RST => GND, +CH0_FFC_LANE_RX_RST => RSL_RX_PCS_RST_C, +CH1_FFC_LANE_RX_RST => GND, +CH0_FFC_RRST => RSL_RX_SERDES_RST_C, +CH1_FFC_RRST => GND, +CH0_FFC_TXPWDNB => tx_pwrup_c, +CH1_FFC_TXPWDNB => GND, +CH0_FFC_RXPWDNB => rx_pwrup_c, +CH1_FFC_RXPWDNB => GND, +CH0_LDR_CORE2TX => GND, +CH1_LDR_CORE2TX => GND, +D_SCIWDATA0 => sci_wrdata(0), +D_SCIWDATA1 => sci_wrdata(1), +D_SCIWDATA2 => sci_wrdata(2), +D_SCIWDATA3 => sci_wrdata(3), +D_SCIWDATA4 => sci_wrdata(4), +D_SCIWDATA5 => sci_wrdata(5), +D_SCIWDATA6 => sci_wrdata(6), +D_SCIWDATA7 => sci_wrdata(7), +D_SCIADDR0 => sci_addr(0), +D_SCIADDR1 => sci_addr(1), +D_SCIADDR2 => sci_addr(2), +D_SCIADDR3 => sci_addr(3), +D_SCIADDR4 => sci_addr(4), +D_SCIADDR5 => sci_addr(5), +D_SCIENAUX => sci_en_dual, +D_SCISELAUX => sci_sel_dual, +CH0_SCIEN => sci_en, +CH1_SCIEN => GND, +CH0_SCISEL => sci_sel, +CH1_SCISEL => GND, +D_SCIRD => sci_rd, +D_SCIWSTN => sci_wrn, +D_CYAWSTN => cyawstn, +D_FFC_SYNC_TOGGLE => GND, +D_FFC_DUAL_RST => rst_dual_c, +D_FFC_MACRO_RST => RSL_SERDES_RST_DUAL_C, +D_FFC_MACROPDB => serdes_pdb, +D_FFC_TRST => RSL_TX_SERDES_RST_C, +CH0_FFC_CDR_EN_BITSLIP => GND, +CH1_FFC_CDR_EN_BITSLIP => GND, +D_SCAN_ENABLE => GND, +D_SCAN_IN_0 => GND, +D_SCAN_IN_1 => GND, +D_SCAN_IN_2 => GND, +D_SCAN_IN_3 => GND, +D_SCAN_IN_4 => GND, +D_SCAN_IN_5 => GND, +D_SCAN_IN_6 => GND, +D_SCAN_IN_7 => GND, +D_SCAN_MODE => GND, +D_SCAN_RESET => GND, +D_CIN0 => GND, +D_CIN1 => GND, +D_CIN2 => GND, +D_CIN3 => GND, +D_CIN4 => GND, +D_CIN5 => GND, +D_CIN6 => GND, +D_CIN7 => GND, +D_CIN8 => GND, +D_CIN9 => GND, +D_CIN10 => GND, +D_CIN11 => GND, +CH0_HDOUTP => hdoutp, +CH1_HDOUTP => N50_1, +CH0_HDOUTN => hdoutn, +CH1_HDOUTN => N51_1, +D_TXBIT_CLKP_TO_ND => N1_1, +D_TXBIT_CLKN_TO_ND => N2_1, +D_SYNC_PULSE2ND => N3_1, +D_TXPLL_LOL_TO_ND => N4_1, +CH0_FF_RX_F_CLK => N5_1, +CH1_FF_RX_F_CLK => N52_1, +CH0_FF_RX_H_CLK => N6_1, +CH1_FF_RX_H_CLK => N53_1, +CH0_FF_TX_F_CLK => N7_1, +CH1_FF_TX_F_CLK => N54_1, +CH0_FF_TX_H_CLK => N8_1, +CH1_FF_TX_H_CLK => N55_1, +CH0_FF_RX_PCLK => RX_PCLK_11, +CH1_FF_RX_PCLK => N56_1, +CH0_FF_TX_PCLK => TX_PCLK_I, +CH1_FF_TX_PCLK => N57_1, +CH0_FF_RX_D_0 => rxdata(0), +CH1_FF_RX_D_0 => N58_1, +CH0_FF_RX_D_1 => rxdata(1), +CH1_FF_RX_D_1 => N59_1, +CH0_FF_RX_D_2 => rxdata(2), +CH1_FF_RX_D_2 => N60_1, +CH0_FF_RX_D_3 => rxdata(3), +CH1_FF_RX_D_3 => N61_1, +CH0_FF_RX_D_4 => rxdata(4), +CH1_FF_RX_D_4 => N62_1, +CH0_FF_RX_D_5 => rxdata(5), +CH1_FF_RX_D_5 => N63_1, +CH0_FF_RX_D_6 => rxdata(6), +CH1_FF_RX_D_6 => N64_1, +CH0_FF_RX_D_7 => rxdata(7), +CH1_FF_RX_D_7 => N65_1, +CH0_FF_RX_D_8 => rx_k(0), +CH1_FF_RX_D_8 => N66_1, +CH0_FF_RX_D_9 => rx_disp_err(0), +CH1_FF_RX_D_9 => N67_1, +CH0_FF_RX_D_10 => rx_cv_err(0), +CH1_FF_RX_D_10 => N68_1, +CH0_FF_RX_D_11 => N9_1, +CH1_FF_RX_D_11 => N69_1, +CH0_FF_RX_D_12 => N70_1, +CH1_FF_RX_D_12 => N71_1, +CH0_FF_RX_D_13 => N72_1, +CH1_FF_RX_D_13 => N73_1, +CH0_FF_RX_D_14 => N74_1, +CH1_FF_RX_D_14 => N75_1, +CH0_FF_RX_D_15 => N76_1, +CH1_FF_RX_D_15 => N77_1, +CH0_FF_RX_D_16 => N78_1, +CH1_FF_RX_D_16 => N79_1, +CH0_FF_RX_D_17 => N80_1, +CH1_FF_RX_D_17 => N81_1, +CH0_FF_RX_D_18 => N82_1, +CH1_FF_RX_D_18 => N83_1, +CH0_FF_RX_D_19 => N84_1, +CH1_FF_RX_D_19 => N85_1, +CH0_FF_RX_D_20 => N86_1, +CH1_FF_RX_D_20 => N87_1, +CH0_FF_RX_D_21 => N88_1, +CH1_FF_RX_D_21 => N89_1, +CH0_FF_RX_D_22 => N90_1, +CH1_FF_RX_D_22 => N91_1, +CH0_FF_RX_D_23 => N10_1, +CH1_FF_RX_D_23 => N92_1, +CH0_FFS_PCIE_DONE => N11_1, +CH1_FFS_PCIE_DONE => N93_1, +CH0_FFS_PCIE_CON => N12_1, +CH1_FFS_PCIE_CON => N94_1, +CH0_FFS_RLOS => RX_LOS_LOW_S_13, +CH1_FFS_RLOS => N95_1, +CH0_FFS_LS_SYNC_STATUS => lsm_status_s, +CH1_FFS_LS_SYNC_STATUS => N96_1, +CH0_FFS_CC_UNDERRUN => N13_1, +CH1_FFS_CC_UNDERRUN => N97_1, +CH0_FFS_CC_OVERRUN => N14_1, +CH1_FFS_CC_OVERRUN => N98_1, +CH0_FFS_RXFBFIFO_ERROR => N15_1, +CH1_FFS_RXFBFIFO_ERROR => N99_1, +CH0_FFS_TXFBFIFO_ERROR => N16_1, +CH1_FFS_TXFBFIFO_ERROR => N100_1, +CH0_FFS_RLOL => RX_CDR_LOL_S_14, +CH1_FFS_RLOL => N101_1, +CH0_FFS_SKP_ADDED => N17_1, +CH1_FFS_SKP_ADDED => N102_1, +CH0_FFS_SKP_DELETED => N18_1, +CH1_FFS_SKP_DELETED => N103_1, +CH0_LDR_RX2CORE => N104_1, +CH1_LDR_RX2CORE => N115_1, +D_SCIRDATA0 => sci_rddata(0), +D_SCIRDATA1 => sci_rddata(1), +D_SCIRDATA2 => sci_rddata(2), +D_SCIRDATA3 => sci_rddata(3), +D_SCIRDATA4 => sci_rddata(4), +D_SCIRDATA5 => sci_rddata(5), +D_SCIRDATA6 => sci_rddata(6), +D_SCIRDATA7 => sci_rddata(7), +D_SCIINT => sci_int, +D_SCAN_OUT_0 => N19_1, +D_SCAN_OUT_1 => N20_1, +D_SCAN_OUT_2 => N21_1, +D_SCAN_OUT_3 => N22_1, +D_SCAN_OUT_4 => N23_1, +D_SCAN_OUT_5 => N24_1, +D_SCAN_OUT_6 => N25_1, +D_SCAN_OUT_7 => N26_1, +D_COUT0 => N27_1, +D_COUT1 => N28_1, +D_COUT2 => N29_1, +D_COUT3 => N30_1, +D_COUT4 => N31_1, +D_COUT5 => N32_1, +D_COUT6 => N33_1, +D_COUT7 => N34_1, +D_COUT8 => N35_1, +D_COUT9 => N36_1, +D_COUT10 => N37_1, +D_COUT11 => N38_1, +D_COUT12 => N39_1, +D_COUT13 => N40_1, +D_COUT14 => N41_1, +D_COUT15 => N42_1, +D_COUT16 => N43_1, +D_COUT17 => N44_1, +D_COUT18 => N45_1, +D_COUT19 => N46_1, +D_REFCLKI => pll_refclki, +D_FFS_PLOL => N49_1); +SLL_INST: serdes_sync_1sll_core_Z1_layer1 port map ( +tx_pclk => TX_PCLK_12, +sli_rst => sli_rst, +pll_refclki => pll_refclki, +pll_lock_i => \SLL_INST.PLL_LOCK_I_15\); +RSL_INST: serdes_sync_1rsl_core_Z2_layer1 port map ( +rx_pcs_rst_c => rx_pcs_rst_c, +serdes_rst_dual_c => serdes_rst_dual_c, +tx_serdes_rst_c => tx_serdes_rst_c, +rsl_tx_pcs_rst_c => RSL_TX_PCS_RST_C, +rst_dual_c => rst_dual_c, +rsl_rx_pcs_rst_c => RSL_RX_PCS_RST_C, +rsl_tx_serdes_rst_c => RSL_TX_SERDES_RST_C, +rsl_tx_rdy => rsl_tx_rdy, +pll_lock_i => \SLL_INST.PLL_LOCK_I_15\, +pll_refclki => pll_refclki, +rsl_rx_rdy => rsl_rx_rdy, +rx_cdr_lol_s => RX_CDR_LOL_S_14, +rx_los_low_s => RX_LOS_LOW_S_13, +rsl_rst => rsl_rst, +rxrefclk => rxrefclk, +rx_serdes_rst_c => rx_serdes_rst_c, +rsl_rx_serdes_rst_c => RSL_RX_SERDES_RST_C, +rsl_serdes_rst_dual_c => RSL_SERDES_RST_DUAL_C, +rsl_disable => rsl_disable, +tx_pcs_rst_c => tx_pcs_rst_c); +rx_pclk <= RX_PCLK_11; +tx_pclk <= TX_PCLK_12; +rx_los_low_s <= RX_LOS_LOW_S_13; +rx_cdr_lol_s <= RX_CDR_LOL_S_14; +pll_lol <= \SLL_INST.PLL_LOCK_I_15\; +end beh; + diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.vm b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.vm new file mode 100644 index 0000000..8c03aad --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.vm @@ -0,0 +1,6580 @@ +// +// Written by Synplify Pro +// Product Version "M-2017.03L-SP1-1" +// Program "Synplify Pro", Mapper "maplat, Build 1796R" +// Fri May 10 10:23:37 2019 +// +// Source file index table: +// Object locations will have the form : +// file 0 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd " +// file 1 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/snps_haps_pkg.vhd " +// file 2 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std1164.vhd " +// file 3 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/numeric.vhd " +// file 4 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/umr_capim.vhd " +// file 5 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/arith.vhd " +// file 6 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/unsigned.vhd " +// file 7 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/hyperents.vhd " +// file 8 "\/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd " +// file 9 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd " +// file 10 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v " +// file 11 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v " +// file 12 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v " +// file 13 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v " +// file 14 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v " +// file 15 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh " +// file 16 "\/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v " +// file 17 "\/home/soft/lattice/diamond/3.10_x64/synpbase/lib/nlconst.dat " +// file 18 "\/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.fdc " + +`timescale 100 ps/100 ps +module sync_0s ( + phb, + rhb_sync, + sli_rst, + pll_refclki +) +; +input phb ; +output rhb_sync ; +input sli_rst ; +input pll_refclki ; +wire phb ; +wire rhb_sync ; +wire sli_rst ; +wire pll_refclki ; +wire data_p1 ; +wire data_p2_QN_0 ; +wire VCC ; +wire data_p1_QN_0 ; +wire GND ; +// @16:1988 + FD1S3DX data_p2 ( + .D(data_p1), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_sync) +); +// @16:1988 + FD1S3DX data_p1_reg ( + .D(phb), + .CK(pll_refclki), + .CD(sli_rst), + .Q(data_p1) +); + VHI VCC_0 ( + .Z(VCC) +); +// @16:865 + VLO GND_cZ ( + .Z(GND) +); +endmodule /* sync_0s */ + +module sync_0s_6 ( + rtc_pul, + ppul_sync, + sli_rst, + tx_pclk +) +; +input rtc_pul ; +output ppul_sync ; +input sli_rst ; +input tx_pclk ; +wire rtc_pul ; +wire ppul_sync ; +wire sli_rst ; +wire tx_pclk ; +wire data_p1 ; +wire data_p2_QN ; +wire VCC ; +wire data_p1_QN ; +wire GND ; +// @16:1988 + FD1S3DX data_p2 ( + .D(data_p1), + .CK(tx_pclk), + .CD(sli_rst), + .Q(ppul_sync) +); +// @16:1988 + FD1S3DX data_p1_reg ( + .D(rtc_pul), + .CK(tx_pclk), + .CD(sli_rst), + .Q(data_p1) +); + VHI VCC_0 ( + .Z(VCC) +); +// @16:865 + VLO GND_cZ ( + .Z(GND) +); +endmodule /* sync_0s_6 */ + +module sync_0s_0 ( + ppul_sync, + pdiff_sync, + sli_rst, + pll_refclki +) +; +input ppul_sync ; +output pdiff_sync ; +input sli_rst ; +input pll_refclki ; +wire ppul_sync ; +wire pdiff_sync ; +wire sli_rst ; +wire pll_refclki ; +wire data_p1 ; +wire data_p2_QN_1 ; +wire VCC ; +wire data_p1_QN_1 ; +wire GND ; +// @16:1988 + FD1S3DX data_p2 ( + .D(data_p1), + .CK(pll_refclki), + .CD(sli_rst), + .Q(pdiff_sync) +); +// @16:1988 + FD1S3DX data_p1_reg ( + .D(ppul_sync), + .CK(pll_refclki), + .CD(sli_rst), + .Q(data_p1) +); + VHI VCC_0 ( + .Z(VCC) +); +// @16:865 + VLO GND_cZ ( + .Z(GND) +); +endmodule /* sync_0s_0 */ + +module serdes_sync_1sll_core_Z1_layer1 ( + tx_pclk, + sli_rst, + pll_refclki, + pll_lock_i +) +; +input tx_pclk ; +input sli_rst ; +input pll_refclki ; +output pll_lock_i ; +wire tx_pclk ; +wire sli_rst ; +wire pll_refclki ; +wire pll_lock_i ; +wire [2:0] phb_cnt; +wire [2:0] phb_cnt_i; +wire [15:0] rcount; +wire [21:0] pcount; +wire [0:0] un1_pcount_diff_i; +wire [1:1] sll_state; +wire [1:1] sll_state_QN; +wire [7:0] rhb_wait_cnt_s; +wire [7:0] rhb_wait_cnt; +wire [7:0] rhb_wait_cnt_QN; +wire [15:0] rcount_s; +wire [15:0] rcount_QN; +wire [2:0] phb_cnt_QN; +wire [2:1] phb_cnt_RNO; +wire [21:0] pcount_diff_QN; +wire [21:0] pcount_s; +wire [21:0] pcount_QN; +wire [2:2] rdiff_comp_lock; +wire [2:2] rdiff_comp_lock_QN; +wire [1:1] sll_state_ns_i_0_m3; +wire [0:0] un1_pcount_diff; +wire [20:0] pcount_cry; +wire [0:0] pcount_cry_0_S0; +wire [21:21] pcount_s_0_COUT; +wire [21:21] pcount_s_0_S1; +wire [14:0] rcount_cry; +wire [0:0] rcount_cry_0_S0; +wire [15:15] rcount_s_0_COUT; +wire [15:15] rcount_s_0_S1; +wire [6:0] rhb_wait_cnt_cry; +wire [0:0] rhb_wait_cnt_cry_0_S0; +wire [7:7] rhb_wait_cnt_s_0_COUT; +wire [7:7] rhb_wait_cnt_s_0_S1; +wire pll_lock ; +wire rtc_ctrl4_0_a3_1 ; +wire un13_lock_20 ; +wire ppul_sync_p2 ; +wire ppul_sync_p1 ; +wire un1_pcount_diff_1_axb_20 ; +wire un13_lock_19 ; +wire un1_pcount_diff_1_axb_19 ; +wire un13_lock_18 ; +wire un1_pcount_diff_1_axb_18 ; +wire un13_lock_17 ; +wire un1_pcount_diff_1_cry_17_0_RNO ; +wire un13_lock_16 ; +wire un1_pcount_diff_1_axb_16 ; +wire un13_lock_15 ; +wire un1_pcount_diff_1_axb_15 ; +wire un13_lock_14 ; +wire un1_pcount_diff_1_axb_14 ; +wire un13_lock_13 ; +wire un1_pcount_diff_1_axb_13 ; +wire un13_lock_12 ; +wire un1_pcount_diff_1_axb_12 ; +wire un13_lock_11 ; +wire un1_pcount_diff_1_axb_11 ; +wire un13_lock_10 ; +wire un1_pcount_diff_1_axb_10 ; +wire un13_lock_9 ; +wire un1_pcount_diff_1_axb_9 ; +wire un13_lock_8 ; +wire un1_pcount_diff_1_axb_8 ; +wire un13_lock_7 ; +wire un1_pcount_diff_1_axb_7 ; +wire un13_lock_6 ; +wire un1_pcount_diff_1_axb_6 ; +wire un13_lock_5 ; +wire un1_pcount_diff_1_axb_5 ; +wire un13_lock_4 ; +wire un1_pcount_diff_1_axb_4 ; +wire un13_lock_3 ; +wire un1_pcount_diff_1_axb_3 ; +wire un13_lock_2 ; +wire un1_pcount_diff_1_axb_2 ; +wire un13_lock_1 ; +wire un1_pcount_diff_1_axb_1 ; +wire un13_lock_21 ; +wire ppul_sync_p3 ; +wire N_7 ; +wire un13_lock_0 ; +wire rtc_ctrl4 ; +wire rtc_ctrl ; +wire VCC ; +wire N_2136_0 ; +wire unlock_5 ; +wire unlock_1_sqmuxa_i_0 ; +wire unlock ; +wire unlock_QN ; +wire N_89_i ; +wire rtc_pul ; +wire rtc_pul_p1 ; +wire rtc_pul_p1_QN ; +wire rtc_pul5 ; +wire rtc_pul_QN ; +wire rtc_ctrl_QN ; +wire rstat_pclk_2 ; +wire rstat_pclk ; +wire rstat_pclk_QN ; +wire rhb_sync_p1 ; +wire rhb_sync_p2 ; +wire rhb_sync_p2_QN ; +wire rhb_sync ; +wire rhb_sync_p1_QN ; +wire ppul_sync_p3_QN ; +wire ppul_sync_p2_QN ; +wire ppul_sync ; +wire ppul_sync_p1_QN ; +wire pll_lock_QN ; +wire phb ; +wire phb_QN ; +wire pdiff_sync ; +wire pdiff_sync_p1 ; +wire pdiff_sync_p1_QN ; +wire un1_pcount_diff_1_cry_1_0_S0 ; +wire un1_pcount_diff_1_cry_1_0_S1 ; +wire un1_pcount_diff_1_cry_3_0_S0 ; +wire un1_pcount_diff_1_cry_3_0_S1 ; +wire un1_pcount_diff_1_cry_5_0_S0 ; +wire un1_pcount_diff_1_cry_5_0_S1 ; +wire un1_pcount_diff_1_cry_7_0_S0 ; +wire un1_pcount_diff_1_cry_7_0_S1 ; +wire un1_pcount_diff_1_cry_9_0_S0 ; +wire un1_pcount_diff_1_cry_9_0_S1 ; +wire un1_pcount_diff_1_cry_11_0_S0 ; +wire un1_pcount_diff_1_cry_11_0_S1 ; +wire un1_pcount_diff_1_cry_13_0_S0 ; +wire un1_pcount_diff_1_cry_13_0_S1 ; +wire un1_pcount_diff_1_cry_15_0_S0 ; +wire un1_pcount_diff_1_cry_15_0_S1 ; +wire un1_pcount_diff_1_cry_17_0_S0 ; +wire un1_pcount_diff_1_cry_17_0_S1 ; +wire un1_pcount_diff_1_cry_19_0_S0 ; +wire un1_pcount_diff_1_cry_19_0_S1 ; +wire un1_pcount_diff_1_s_21_0_S0 ; +wire lock_5 ; +wire lock_1_sqmuxa_i_0 ; +wire lock ; +wire lock_QN ; +wire rtc_pul5_0_o3 ; +wire rtc_pul5_0_a3_6 ; +wire rtc_pul5_0_a3_7 ; +wire un1_rcount_1_0_a3 ; +wire un1_rhb_wait_cnt ; +wire N_12 ; +wire rtc_ctrl4_0_a3_12_4 ; +wire rtc_ctrl4_0_a3_12_5 ; +wire rtc_ctrl4_10 ; +wire un1_rcount_1_0_a3_1 ; +wire N_6 ; +wire un1_rhb_wait_cnt_3 ; +wire un1_rhb_wait_cnt_4 ; +wire rtc_pul5_0_a3_5 ; +wire un13_lock_cry_21_i ; +wire un13_unlock_cry_21 ; +wire N_8 ; +wire un1_pcount_diff_1_cry_0 ; +wire un1_pcount_diff_1_cry_0_0_S0 ; +wire un1_pcount_diff_1_cry_0_0_S1 ; +wire un1_pcount_diff_1_cry_2 ; +wire un1_pcount_diff_1_cry_4 ; +wire un1_pcount_diff_1_cry_6 ; +wire un1_pcount_diff_1_cry_8 ; +wire un1_pcount_diff_1_cry_10 ; +wire un1_pcount_diff_1_cry_12 ; +wire un1_pcount_diff_1_cry_14 ; +wire un1_pcount_diff_1_cry_16 ; +wire un1_pcount_diff_1_cry_18 ; +wire un1_pcount_diff_1_cry_20 ; +wire un1_pcount_diff_1_s_21_0_COUT ; +wire un1_pcount_diff_1_s_21_0_S1 ; +wire un13_lock_cry_0 ; +wire un13_lock_cry_0_0_S0 ; +wire un13_lock_cry_0_0_S1 ; +wire un13_lock_cry_2 ; +wire un13_lock_cry_1_0_S0 ; +wire un13_lock_cry_1_0_S1 ; +wire un13_lock_cry_4 ; +wire un13_lock_cry_3_0_S0 ; +wire un13_lock_cry_3_0_S1 ; +wire un13_lock_cry_6 ; +wire un13_lock_cry_5_0_S0 ; +wire un13_lock_cry_5_0_S1 ; +wire un13_lock_cry_8 ; +wire un13_lock_cry_7_0_S0 ; +wire un13_lock_cry_7_0_S1 ; +wire un13_lock_cry_10 ; +wire un13_lock_cry_9_0_S0 ; +wire un13_lock_cry_9_0_S1 ; +wire un13_lock_cry_12 ; +wire un13_lock_cry_11_0_S0 ; +wire un13_lock_cry_11_0_S1 ; +wire un13_lock_cry_14 ; +wire un13_lock_cry_13_0_S0 ; +wire un13_lock_cry_13_0_S1 ; +wire un13_lock_cry_16 ; +wire un13_lock_cry_15_0_S0 ; +wire un13_lock_cry_15_0_S1 ; +wire un13_lock_cry_18 ; +wire un13_lock_cry_17_0_S0 ; +wire un13_lock_cry_17_0_S1 ; +wire un13_lock_cry_20 ; +wire un13_lock_cry_19_0_S0 ; +wire un13_lock_cry_19_0_S1 ; +wire un13_lock_cry_21_0_COUT ; +wire un13_lock_cry_21_0_S0 ; +wire un13_unlock_cry_0 ; +wire un13_unlock_cry_0_0_S0 ; +wire un13_unlock_cry_0_0_S1 ; +wire un13_unlock_cry_2 ; +wire un13_unlock_cry_1_0_S0 ; +wire un13_unlock_cry_1_0_S1 ; +wire un13_unlock_cry_4 ; +wire un13_unlock_cry_3_0_S0 ; +wire un13_unlock_cry_3_0_S1 ; +wire un13_unlock_cry_6 ; +wire un13_unlock_cry_5_0_S0 ; +wire un13_unlock_cry_5_0_S1 ; +wire un13_unlock_cry_8 ; +wire un13_unlock_cry_7_0_S0 ; +wire un13_unlock_cry_7_0_S1 ; +wire un13_unlock_cry_10 ; +wire un13_unlock_cry_9_0_S0 ; +wire un13_unlock_cry_9_0_S1 ; +wire un13_unlock_cry_12 ; +wire un13_unlock_cry_11_0_S0 ; +wire un13_unlock_cry_11_0_S1 ; +wire un13_unlock_cry_14 ; +wire un13_unlock_cry_13_0_S0 ; +wire un13_unlock_cry_13_0_S1 ; +wire un13_unlock_cry_16 ; +wire un13_unlock_cry_15_0_S0 ; +wire un13_unlock_cry_15_0_S1 ; +wire un13_unlock_cry_18 ; +wire un13_unlock_cry_17_0_S0 ; +wire un13_unlock_cry_17_0_S1 ; +wire un13_unlock_cry_20 ; +wire un13_unlock_cry_19_0_S0 ; +wire un13_unlock_cry_19_0_S1 ; +wire un13_unlock_cry_21_0_COUT ; +wire un13_unlock_cry_21_0_S0 ; +wire N_96 ; +wire N_20 ; +wire N_19 ; +wire N_18 ; +wire N_14 ; +wire GND ; +wire N_1 ; +wire N_2 ; +wire N_3 ; +wire N_4 ; +wire N_5 ; +wire N_9 ; + INV phb_RNO ( + .A(phb_cnt[2]), + .Z(phb_cnt_i[2]) +); + INV \phb_cnt_RNO[0] ( + .A(phb_cnt[0]), + .Z(phb_cnt_i[0]) +); + INV pll_lock_RNI6JK9 ( + .A(pll_lock), + .Z(pll_lock_i) +); + LUT4 rtc_ctrl4_0_a3_RNO ( + .A(rcount[2]), + .B(rcount[0]), + .C(rcount[5]), + .D(rcount[4]), + .Z(rtc_ctrl4_0_a3_1) +); +defparam rtc_ctrl4_0_a3_RNO.init=16'h2000; + LUT4 un1_pcount_diff_1_cry_19_0_RNO_0 ( + .A(un13_lock_20), + .B(pcount[20]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_20) +); +defparam un1_pcount_diff_1_cry_19_0_RNO_0.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_19_0_RNO ( + .A(un13_lock_19), + .B(pcount[19]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_19) +); +defparam un1_pcount_diff_1_cry_19_0_RNO.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_17_0_RNO_0 ( + .A(un13_lock_18), + .B(pcount[18]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_18) +); +defparam un1_pcount_diff_1_cry_17_0_RNO_0.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_17_0_RNO_cZ ( + .A(un13_lock_17), + .B(pcount[17]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_cry_17_0_RNO) +); +defparam un1_pcount_diff_1_cry_17_0_RNO_cZ.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_15_0_RNO_0 ( + .A(un13_lock_16), + .B(pcount[16]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_16) +); +defparam un1_pcount_diff_1_cry_15_0_RNO_0.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_15_0_RNO ( + .A(un13_lock_15), + .B(pcount[15]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_15) +); +defparam un1_pcount_diff_1_cry_15_0_RNO.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_13_0_RNO_0 ( + .A(un13_lock_14), + .B(pcount[14]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_14) +); +defparam un1_pcount_diff_1_cry_13_0_RNO_0.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_13_0_RNO ( + .A(un13_lock_13), + .B(pcount[13]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_13) +); +defparam un1_pcount_diff_1_cry_13_0_RNO.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_11_0_RNO_0 ( + .A(un13_lock_12), + .B(pcount[12]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_12) +); +defparam un1_pcount_diff_1_cry_11_0_RNO_0.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_11_0_RNO ( + .A(un13_lock_11), + .B(pcount[11]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_11) +); +defparam un1_pcount_diff_1_cry_11_0_RNO.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_9_0_RNO_0 ( + .A(un13_lock_10), + .B(pcount[10]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_10) +); +defparam un1_pcount_diff_1_cry_9_0_RNO_0.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_9_0_RNO ( + .A(un13_lock_9), + .B(pcount[9]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_9) +); +defparam un1_pcount_diff_1_cry_9_0_RNO.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_7_0_RNO_0 ( + .A(un13_lock_8), + .B(pcount[8]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_8) +); +defparam un1_pcount_diff_1_cry_7_0_RNO_0.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_7_0_RNO ( + .A(un13_lock_7), + .B(pcount[7]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_7) +); +defparam un1_pcount_diff_1_cry_7_0_RNO.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_5_0_RNO_0 ( + .A(un13_lock_6), + .B(pcount[6]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_6) +); +defparam un1_pcount_diff_1_cry_5_0_RNO_0.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_5_0_RNO ( + .A(un13_lock_5), + .B(pcount[5]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_5) +); +defparam un1_pcount_diff_1_cry_5_0_RNO.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_3_0_RNO_0 ( + .A(un13_lock_4), + .B(pcount[4]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_4) +); +defparam un1_pcount_diff_1_cry_3_0_RNO_0.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_3_0_RNO ( + .A(un13_lock_3), + .B(pcount[3]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_3) +); +defparam un1_pcount_diff_1_cry_3_0_RNO.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_1_0_RNO_0 ( + .A(un13_lock_2), + .B(pcount[2]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_2) +); +defparam un1_pcount_diff_1_cry_1_0_RNO_0.init=16'h5355; + LUT4 un1_pcount_diff_1_cry_1_0_RNO ( + .A(un13_lock_1), + .B(pcount[1]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff_1_axb_1) +); +defparam un1_pcount_diff_1_cry_1_0_RNO.init=16'h5355; + LUT4 ppul_sync_p3_RNIU65C ( + .A(un13_lock_21), + .B(ppul_sync_p3), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(N_7) +); +defparam ppul_sync_p3_RNIU65C.init=16'h2F20; + LUT4 \pcount_diff_RNO[0] ( + .A(ppul_sync_p1), + .B(ppul_sync_p2), + .C(pcount[0]), + .D(un13_lock_0), + .Z(un1_pcount_diff_i[0]) +); +defparam \pcount_diff_RNO[0] .init=16'hFD20; +// @16:1304 + LUT4 rtc_ctrl_0 ( + .A(rtc_ctrl4), + .B(rtc_ctrl), + .C(VCC), + .D(VCC), + .Z(N_2136_0) +); +defparam rtc_ctrl_0.init=16'hEEEE; +// @16:1278 + FD1P3DX unlock_reg ( + .D(unlock_5), + .SP(unlock_1_sqmuxa_i_0), + .CK(pll_refclki), + .CD(sli_rst), + .Q(unlock) +); +// @16:1801 + FD1S3DX \sll_state_reg[1] ( + .D(N_89_i), + .CK(pll_refclki), + .CD(sli_rst), + .Q(sll_state[1]) +); +// @16:1304 + FD1S3DX rtc_pul_p1_reg ( + .D(rtc_pul), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rtc_pul_p1) +); +// @16:1304 + FD1P3DX rtc_pul_reg ( + .D(rtc_pul5), + .SP(rtc_ctrl), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rtc_pul) +); +// @16:1304 + FD1S3DX rtc_ctrl_reg ( + .D(N_2136_0), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rtc_ctrl) +); +// @16:1350 + FD1P3DX rstat_pclk_reg ( + .D(rstat_pclk_2), + .SP(rtc_ctrl), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rstat_pclk) +); +// @16:1350 + FD1P3DX \rhb_wait_cnt_reg[0] ( + .D(rhb_wait_cnt_s[0]), + .SP(rtc_ctrl), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_wait_cnt[0]) +); +// @16:1350 + FD1P3DX \rhb_wait_cnt_reg[1] ( + .D(rhb_wait_cnt_s[1]), + .SP(rtc_ctrl), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_wait_cnt[1]) +); +// @16:1350 + FD1P3DX \rhb_wait_cnt_reg[2] ( + .D(rhb_wait_cnt_s[2]), + .SP(rtc_ctrl), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_wait_cnt[2]) +); +// @16:1350 + FD1P3DX \rhb_wait_cnt_reg[3] ( + .D(rhb_wait_cnt_s[3]), + .SP(rtc_ctrl), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_wait_cnt[3]) +); +// @16:1350 + FD1P3DX \rhb_wait_cnt_reg[4] ( + .D(rhb_wait_cnt_s[4]), + .SP(rtc_ctrl), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_wait_cnt[4]) +); +// @16:1350 + FD1P3DX \rhb_wait_cnt_reg[5] ( + .D(rhb_wait_cnt_s[5]), + .SP(rtc_ctrl), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_wait_cnt[5]) +); +// @16:1350 + FD1P3DX \rhb_wait_cnt_reg[6] ( + .D(rhb_wait_cnt_s[6]), + .SP(rtc_ctrl), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_wait_cnt[6]) +); +// @16:1350 + FD1P3DX \rhb_wait_cnt_reg[7] ( + .D(rhb_wait_cnt_s[7]), + .SP(rtc_ctrl), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_wait_cnt[7]) +); +// @16:1350 + FD1S3DX rhb_sync_p2_reg ( + .D(rhb_sync_p1), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_sync_p2) +); +// @16:1350 + FD1S3DX rhb_sync_p1_reg ( + .D(rhb_sync), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rhb_sync_p1) +); +// @16:1304 + FD1S3DX \rcount_reg[0] ( + .D(rcount_s[0]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[0]) +); +// @16:1304 + FD1S3DX \rcount_reg[1] ( + .D(rcount_s[1]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[1]) +); +// @16:1304 + FD1S3DX \rcount_reg[2] ( + .D(rcount_s[2]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[2]) +); +// @16:1304 + FD1S3DX \rcount_reg[3] ( + .D(rcount_s[3]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[3]) +); +// @16:1304 + FD1S3DX \rcount_reg[4] ( + .D(rcount_s[4]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[4]) +); +// @16:1304 + FD1S3DX \rcount_reg[5] ( + .D(rcount_s[5]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[5]) +); +// @16:1304 + FD1S3DX \rcount_reg[6] ( + .D(rcount_s[6]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[6]) +); +// @16:1304 + FD1S3DX \rcount_reg[7] ( + .D(rcount_s[7]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[7]) +); +// @16:1304 + FD1S3DX \rcount_reg[8] ( + .D(rcount_s[8]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[8]) +); +// @16:1304 + FD1S3DX \rcount_reg[9] ( + .D(rcount_s[9]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[9]) +); +// @16:1304 + FD1S3DX \rcount_reg[10] ( + .D(rcount_s[10]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[10]) +); +// @16:1304 + FD1S3DX \rcount_reg[11] ( + .D(rcount_s[11]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[11]) +); +// @16:1304 + FD1S3DX \rcount_reg[12] ( + .D(rcount_s[12]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[12]) +); +// @16:1304 + FD1S3DX \rcount_reg[13] ( + .D(rcount_s[13]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[13]) +); +// @16:1304 + FD1S3DX \rcount_reg[14] ( + .D(rcount_s[14]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[14]) +); +// @16:1304 + FD1S3DX \rcount_reg[15] ( + .D(rcount_s[15]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rcount[15]) +); +// @16:1408 + FD1S3DX ppul_sync_p3_reg ( + .D(ppul_sync_p2), + .CK(tx_pclk), + .CD(sli_rst), + .Q(ppul_sync_p3) +); +// @16:1408 + FD1S3DX ppul_sync_p2_reg ( + .D(ppul_sync_p1), + .CK(tx_pclk), + .CD(sli_rst), + .Q(ppul_sync_p2) +); +// @16:1408 + FD1S3DX ppul_sync_p1_reg ( + .D(ppul_sync), + .CK(tx_pclk), + .CD(sli_rst), + .Q(ppul_sync_p1) +); +// @16:1879 + FD1S3DX pll_lock_reg ( + .D(sll_state[1]), + .CK(pll_refclki), + .CD(sli_rst), + .Q(pll_lock) +); +// @16:1759 + FD1S3DX \phb_cnt_reg[0] ( + .D(phb_cnt_i[0]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(phb_cnt[0]) +); +// @16:1759 + FD1S3DX \phb_cnt_reg[1] ( + .D(phb_cnt_RNO[1]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(phb_cnt[1]) +); +// @16:1759 + FD1S3DX \phb_cnt_reg[2] ( + .D(phb_cnt_RNO[2]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(phb_cnt[2]) +); +// @16:1759 + FD1S3DX phb_reg ( + .D(phb_cnt_i[2]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(phb) +); +// @16:1278 + FD1S3DX pdiff_sync_p1_reg ( + .D(pdiff_sync), + .CK(pll_refclki), + .CD(sli_rst), + .Q(pdiff_sync_p1) +); +// @16:1759 + FD1P3BX \pcount_diff[0] ( + .D(un1_pcount_diff_i[0]), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_0) +); +// @16:1759 + FD1S3DX \pcount_reg[0] ( + .D(pcount_s[0]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[0]) +); +// @16:1759 + FD1S3DX \pcount_reg[1] ( + .D(pcount_s[1]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[1]) +); +// @16:1759 + FD1P3BX \pcount_diff[1] ( + .D(un1_pcount_diff_1_cry_1_0_S0), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_1) +); +// @16:1759 + FD1P3BX \pcount_diff[2] ( + .D(un1_pcount_diff_1_cry_1_0_S1), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_2) +); +// @16:1759 + FD1S3DX \pcount_reg[2] ( + .D(pcount_s[2]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[2]) +); +// @16:1759 + FD1S3DX \pcount_reg[3] ( + .D(pcount_s[3]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[3]) +); +// @16:1759 + FD1P3BX \pcount_diff[3] ( + .D(un1_pcount_diff_1_cry_3_0_S0), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_3) +); +// @16:1759 + FD1P3BX \pcount_diff[4] ( + .D(un1_pcount_diff_1_cry_3_0_S1), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_4) +); +// @16:1759 + FD1S3DX \pcount_reg[4] ( + .D(pcount_s[4]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[4]) +); +// @16:1759 + FD1S3DX \pcount_reg[5] ( + .D(pcount_s[5]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[5]) +); +// @16:1759 + FD1P3BX \pcount_diff[5] ( + .D(un1_pcount_diff_1_cry_5_0_S0), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_5) +); +// @16:1759 + FD1P3BX \pcount_diff[6] ( + .D(un1_pcount_diff_1_cry_5_0_S1), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_6) +); +// @16:1759 + FD1S3DX \pcount_reg[6] ( + .D(pcount_s[6]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[6]) +); +// @16:1759 + FD1P3BX \pcount_diff[7] ( + .D(un1_pcount_diff_1_cry_7_0_S0), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_7) +); +// @16:1759 + FD1S3DX \pcount_reg[7] ( + .D(pcount_s[7]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[7]) +); +// @16:1759 + FD1S3DX \pcount_reg[8] ( + .D(pcount_s[8]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[8]) +); +// @16:1759 + FD1P3BX \pcount_diff[8] ( + .D(un1_pcount_diff_1_cry_7_0_S1), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_8) +); +// @16:1759 + FD1P3BX \pcount_diff[9] ( + .D(un1_pcount_diff_1_cry_9_0_S0), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_9) +); +// @16:1759 + FD1S3DX \pcount_reg[9] ( + .D(pcount_s[9]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[9]) +); +// @16:1759 + FD1S3DX \pcount_reg[10] ( + .D(pcount_s[10]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[10]) +); +// @16:1759 + FD1P3BX \pcount_diff[10] ( + .D(un1_pcount_diff_1_cry_9_0_S1), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_10) +); +// @16:1759 + FD1P3BX \pcount_diff[11] ( + .D(un1_pcount_diff_1_cry_11_0_S0), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_11) +); +// @16:1759 + FD1S3DX \pcount_reg[11] ( + .D(pcount_s[11]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[11]) +); +// @16:1759 + FD1S3DX \pcount_reg[12] ( + .D(pcount_s[12]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[12]) +); +// @16:1759 + FD1P3BX \pcount_diff[12] ( + .D(un1_pcount_diff_1_cry_11_0_S1), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_12) +); +// @16:1759 + FD1S3DX \pcount_reg[13] ( + .D(pcount_s[13]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[13]) +); +// @16:1759 + FD1P3BX \pcount_diff[13] ( + .D(un1_pcount_diff_1_cry_13_0_S0), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_13) +); +// @16:1759 + FD1P3BX \pcount_diff[14] ( + .D(un1_pcount_diff_1_cry_13_0_S1), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_14) +); +// @16:1759 + FD1S3DX \pcount_reg[14] ( + .D(pcount_s[14]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[14]) +); +// @16:1759 + FD1P3BX \pcount_diff[15] ( + .D(un1_pcount_diff_1_cry_15_0_S0), + .SP(N_7), + .CK(tx_pclk), + .PD(sli_rst), + .Q(un13_lock_15) +); +// @16:1759 + FD1S3DX \pcount_reg[15] ( + .D(pcount_s[15]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[15]) +); +// @16:1759 + FD1S3DX \pcount_reg[16] ( + .D(pcount_s[16]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[16]) +); +// @16:1759 + FD1P3DX \pcount_diff[16] ( + .D(un1_pcount_diff_1_cry_15_0_S1), + .SP(N_7), + .CK(tx_pclk), + .CD(sli_rst), + .Q(un13_lock_16) +); +// @16:1759 + FD1P3DX \pcount_diff[17] ( + .D(un1_pcount_diff_1_cry_17_0_S0), + .SP(N_7), + .CK(tx_pclk), + .CD(sli_rst), + .Q(un13_lock_17) +); +// @16:1759 + FD1S3DX \pcount_reg[17] ( + .D(pcount_s[17]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[17]) +); +// @16:1759 + FD1S3DX \pcount_reg[18] ( + .D(pcount_s[18]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[18]) +); +// @16:1759 + FD1P3DX \pcount_diff[18] ( + .D(un1_pcount_diff_1_cry_17_0_S1), + .SP(N_7), + .CK(tx_pclk), + .CD(sli_rst), + .Q(un13_lock_18) +); +// @16:1759 + FD1S3DX \pcount_reg[19] ( + .D(pcount_s[19]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[19]) +); +// @16:1759 + FD1P3DX \pcount_diff[19] ( + .D(un1_pcount_diff_1_cry_19_0_S0), + .SP(N_7), + .CK(tx_pclk), + .CD(sli_rst), + .Q(un13_lock_19) +); +// @16:1759 + FD1P3DX \pcount_diff[20] ( + .D(un1_pcount_diff_1_cry_19_0_S1), + .SP(N_7), + .CK(tx_pclk), + .CD(sli_rst), + .Q(un13_lock_20) +); +// @16:1759 + FD1S3DX \pcount_reg[20] ( + .D(pcount_s[20]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[20]) +); +// @16:1759 + FD1S3DX \pcount_reg[21] ( + .D(pcount_s[21]), + .CK(tx_pclk), + .CD(sli_rst), + .Q(pcount[21]) +); +// @16:1759 + FD1P3DX \pcount_diff[21] ( + .D(un1_pcount_diff_1_s_21_0_S0), + .SP(N_7), + .CK(tx_pclk), + .CD(sli_rst), + .Q(un13_lock_21) +); +// @16:1278 + FD1P3DX lock_reg ( + .D(lock_5), + .SP(lock_1_sqmuxa_i_0), + .CK(pll_refclki), + .CD(sli_rst), + .Q(lock) +); +// @16:1739 + FD1S3DX \genblk5.rdiff_comp_lock[2] ( + .D(VCC), + .CK(pll_refclki), + .CD(sli_rst), + .Q(rdiff_comp_lock[2]) +); +// @16:1334 + LUT4 rtc_pul5_0_0 ( + .A(rtc_pul5_0_o3), + .B(rtc_pul5_0_a3_6), + .C(rtc_pul5_0_a3_7), + .D(un1_rcount_1_0_a3), + .Z(rtc_pul5) +); +defparam rtc_pul5_0_0.init=16'hFF80; +// @16:1389 + LUT4 rstat_pclk_2_iv_0_0 ( + .A(un1_rhb_wait_cnt), + .B(rhb_sync_p1), + .C(rhb_sync_p2), + .D(rstat_pclk), + .Z(rstat_pclk_2) +); +defparam rstat_pclk_2_iv_0_0.init=16'h5D0C; +// @16:1801 + LUT4 \sll_state_RNO[1] ( + .A(sll_state_ns_i_0_m3[1]), + .B(rstat_pclk), + .C(sll_state[1]), + .D(unlock), + .Z(N_89_i) +); +defparam \sll_state_RNO[1] .init=16'h4044; +// @16:1389 + LUT4 un1_rhb_wait_cnt12_1_i_0_a3 ( + .A(un1_rhb_wait_cnt), + .B(rhb_sync_p1), + .C(rhb_sync_p2), + .D(VCC), + .Z(N_12) +); +defparam un1_rhb_wait_cnt12_1_i_0_a3.init=16'h5151; +// @16:1328 + LUT4 rtc_ctrl4_0_a3 ( + .A(rtc_ctrl4_0_a3_1), + .B(rtc_ctrl4_0_a3_12_4), + .C(rtc_ctrl4_0_a3_12_5), + .D(rtc_ctrl4_10), + .Z(rtc_ctrl4) +); +defparam rtc_ctrl4_0_a3.init=16'h8000; +// @16:1319 + LUT4 un1_rcount_1_0_a3_cZ ( + .A(rtc_ctrl4_0_a3_12_4), + .B(rtc_ctrl4_0_a3_12_5), + .C(rtc_ctrl4_10), + .D(un1_rcount_1_0_a3_1), + .Z(un1_rcount_1_0_a3) +); +defparam un1_rcount_1_0_a3_cZ.init=16'h8000; +// @16:1334 + LUT4 rtc_pul5_0_o3_cZ ( + .A(N_6), + .B(rcount[1]), + .C(rcount[2]), + .D(rcount[3]), + .Z(rtc_pul5_0_o3) +); +defparam rtc_pul5_0_o3_cZ.init=16'hAAAB; +// @16:1393 + LUT4 un1_rhb_wait_cnt_cZ ( + .A(rhb_wait_cnt[4]), + .B(rhb_wait_cnt[5]), + .C(un1_rhb_wait_cnt_3), + .D(un1_rhb_wait_cnt_4), + .Z(un1_rhb_wait_cnt) +); +defparam un1_rhb_wait_cnt_cZ.init=16'h8000; +// @16:1334 + LUT4 rtc_pul5_0_a3_7_cZ ( + .A(rcount[7]), + .B(rcount[8]), + .C(rtc_pul5_0_a3_5), + .D(VCC), + .Z(rtc_pul5_0_a3_7) +); +defparam rtc_pul5_0_a3_7_cZ.init=16'h1010; +// @16:1801 + LUT4 \sll_state_ns_i_0_m3_cZ[1] ( + .A(lock), + .B(rtc_pul), + .C(rtc_pul_p1), + .D(sll_state[1]), + .Z(sll_state_ns_i_0_m3[1]) +); +defparam \sll_state_ns_i_0_m3_cZ[1] .init=16'h10DF; +// @16:1776 + LUT4 \phb_cnt_RNO_cZ[2] ( + .A(phb_cnt[0]), + .B(phb_cnt[1]), + .C(phb_cnt[2]), + .D(VCC), + .Z(phb_cnt_RNO[2]) +); +defparam \phb_cnt_RNO_cZ[2] .init=16'h7878; +// @16:1287 + LUT4 unlock_1_sqmuxa_i_0_cZ ( + .A(pdiff_sync), + .B(pdiff_sync_p1), + .C(unlock), + .D(VCC), + .Z(unlock_1_sqmuxa_i_0) +); +defparam unlock_1_sqmuxa_i_0_cZ.init=16'h4F4F; +// @16:1287 + LUT4 lock_1_sqmuxa_i_0_cZ ( + .A(lock), + .B(pdiff_sync), + .C(pdiff_sync_p1), + .D(VCC), + .Z(lock_1_sqmuxa_i_0) +); +defparam lock_1_sqmuxa_i_0_cZ.init=16'h7575; +// @16:1328 + LUT4 rtc_ctrl4_0_a3_10 ( + .A(rcount[1]), + .B(rcount[3]), + .C(rcount[6]), + .D(rcount[15]), + .Z(rtc_ctrl4_10) +); +defparam rtc_ctrl4_0_a3_10.init=16'h8000; +// @16:1393 + LUT4 un1_rhb_wait_cnt_4_cZ ( + .A(rhb_wait_cnt[0]), + .B(rhb_wait_cnt[1]), + .C(rhb_wait_cnt[2]), + .D(rhb_wait_cnt[3]), + .Z(un1_rhb_wait_cnt_4) +); +defparam un1_rhb_wait_cnt_4_cZ.init=16'h8000; +// @16:1328 + LUT4 rtc_ctrl4_0_a3_12_4_cZ ( + .A(rcount[11]), + .B(rcount[12]), + .C(rcount[13]), + .D(rcount[14]), + .Z(rtc_ctrl4_0_a3_12_4) +); +defparam rtc_ctrl4_0_a3_12_4_cZ.init=16'h8000; +// @16:1328 + LUT4 rtc_ctrl4_0_a3_12_5_cZ ( + .A(rcount[7]), + .B(rcount[8]), + .C(rcount[9]), + .D(rcount[10]), + .Z(rtc_ctrl4_0_a3_12_5) +); +defparam rtc_ctrl4_0_a3_12_5_cZ.init=16'h8000; +// @16:1334 + LUT4 rtc_pul5_0_a3_5_cZ ( + .A(rcount[6]), + .B(rcount[13]), + .C(rcount[14]), + .D(rcount[15]), + .Z(rtc_pul5_0_a3_5) +); +defparam rtc_pul5_0_a3_5_cZ.init=16'h0001; +// @16:1334 + LUT4 rtc_pul5_0_a3_6_cZ ( + .A(rcount[9]), + .B(rcount[10]), + .C(rcount[11]), + .D(rcount[12]), + .Z(rtc_pul5_0_a3_6) +); +defparam rtc_pul5_0_a3_6_cZ.init=16'h0001; +// @16:1292 + LUT4 lock_5_cZ ( + .A(pdiff_sync), + .B(un13_lock_cry_21_i), + .C(VCC), + .D(VCC), + .Z(lock_5) +); +defparam lock_5_cZ.init=16'h8888; +// @16:1286 + LUT4 unlock_5_cZ ( + .A(pdiff_sync), + .B(un13_unlock_cry_21), + .C(VCC), + .D(VCC), + .Z(unlock_5) +); +defparam unlock_5_cZ.init=16'h8888; +// @16:1768 + LUT4 pcount10_0_o3 ( + .A(ppul_sync_p1), + .B(ppul_sync_p2), + .C(VCC), + .D(VCC), + .Z(N_8) +); +defparam pcount10_0_o3.init=16'hDDDD; +// @16:1776 + LUT4 \phb_cnt_RNO_cZ[1] ( + .A(phb_cnt[0]), + .B(phb_cnt[1]), + .C(VCC), + .D(VCC), + .Z(phb_cnt_RNO[1]) +); +defparam \phb_cnt_RNO_cZ[1] .init=16'h6666; +// @16:1328 + LUT4 rtc_ctrl4_0_o3 ( + .A(rcount[4]), + .B(rcount[5]), + .C(VCC), + .D(VCC), + .Z(N_6) +); +defparam rtc_ctrl4_0_o3.init=16'h7777; +// @16:1393 + LUT4 un1_rhb_wait_cnt_3_cZ ( + .A(rhb_wait_cnt[6]), + .B(rhb_wait_cnt[7]), + .C(VCC), + .D(VCC), + .Z(un1_rhb_wait_cnt_3) +); +defparam un1_rhb_wait_cnt_3_cZ.init=16'h8888; +// @16:1786 + LUT4 \un1_pcount_diff_cZ[0] ( + .A(un13_lock_0), + .B(pcount[0]), + .C(ppul_sync_p2), + .D(ppul_sync_p1), + .Z(un1_pcount_diff[0]) +); +defparam \un1_pcount_diff_cZ[0] .init=16'h5355; +// @16:1319 + LUT4 un1_rcount_1_0_a3_1_cZ ( + .A(rcount[2]), + .B(rcount[0]), + .C(rcount[5]), + .D(rcount[4]), + .Z(un1_rcount_1_0_a3_1) +); +defparam un1_rcount_1_0_a3_1_cZ.init=16'h8000; + CCU2C \pcount_cry_0[0] ( + .A0(VCC), + .B0(N_8), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_9), + .COUT(pcount_cry[0]), + .S0(pcount_cry_0_S0[0]), + .S1(pcount_s[0]) +); +defparam \pcount_cry_0[0] .INIT0=16'h500c; +defparam \pcount_cry_0[0] .INIT1=16'h8000; +defparam \pcount_cry_0[0] .INJECT1_0="NO"; +defparam \pcount_cry_0[0] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_cry_0[1] ( + .A0(N_8), + .B0(pcount[1]), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[2]), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[0]), + .COUT(pcount_cry[2]), + .S0(pcount_s[1]), + .S1(pcount_s[2]) +); +defparam \pcount_cry_0[1] .INIT0=16'h8000; +defparam \pcount_cry_0[1] .INIT1=16'h8000; +defparam \pcount_cry_0[1] .INJECT1_0="NO"; +defparam \pcount_cry_0[1] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_cry_0[3] ( + .A0(N_8), + .B0(pcount[3]), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[4]), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[2]), + .COUT(pcount_cry[4]), + .S0(pcount_s[3]), + .S1(pcount_s[4]) +); +defparam \pcount_cry_0[3] .INIT0=16'h8000; +defparam \pcount_cry_0[3] .INIT1=16'h8000; +defparam \pcount_cry_0[3] .INJECT1_0="NO"; +defparam \pcount_cry_0[3] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_cry_0[5] ( + .A0(N_8), + .B0(pcount[5]), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[6]), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[4]), + .COUT(pcount_cry[6]), + .S0(pcount_s[5]), + .S1(pcount_s[6]) +); +defparam \pcount_cry_0[5] .INIT0=16'h8000; +defparam \pcount_cry_0[5] .INIT1=16'h8000; +defparam \pcount_cry_0[5] .INJECT1_0="NO"; +defparam \pcount_cry_0[5] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_cry_0[7] ( + .A0(N_8), + .B0(pcount[7]), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[8]), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[6]), + .COUT(pcount_cry[8]), + .S0(pcount_s[7]), + .S1(pcount_s[8]) +); +defparam \pcount_cry_0[7] .INIT0=16'h8000; +defparam \pcount_cry_0[7] .INIT1=16'h8000; +defparam \pcount_cry_0[7] .INJECT1_0="NO"; +defparam \pcount_cry_0[7] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_cry_0[9] ( + .A0(N_8), + .B0(pcount[9]), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[10]), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[8]), + .COUT(pcount_cry[10]), + .S0(pcount_s[9]), + .S1(pcount_s[10]) +); +defparam \pcount_cry_0[9] .INIT0=16'h8000; +defparam \pcount_cry_0[9] .INIT1=16'h8000; +defparam \pcount_cry_0[9] .INJECT1_0="NO"; +defparam \pcount_cry_0[9] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_cry_0[11] ( + .A0(N_8), + .B0(pcount[11]), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[12]), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[10]), + .COUT(pcount_cry[12]), + .S0(pcount_s[11]), + .S1(pcount_s[12]) +); +defparam \pcount_cry_0[11] .INIT0=16'h8000; +defparam \pcount_cry_0[11] .INIT1=16'h8000; +defparam \pcount_cry_0[11] .INJECT1_0="NO"; +defparam \pcount_cry_0[11] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_cry_0[13] ( + .A0(N_8), + .B0(pcount[13]), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[14]), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[12]), + .COUT(pcount_cry[14]), + .S0(pcount_s[13]), + .S1(pcount_s[14]) +); +defparam \pcount_cry_0[13] .INIT0=16'h8000; +defparam \pcount_cry_0[13] .INIT1=16'h8000; +defparam \pcount_cry_0[13] .INJECT1_0="NO"; +defparam \pcount_cry_0[13] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_cry_0[15] ( + .A0(N_8), + .B0(pcount[15]), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[16]), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[14]), + .COUT(pcount_cry[16]), + .S0(pcount_s[15]), + .S1(pcount_s[16]) +); +defparam \pcount_cry_0[15] .INIT0=16'h8000; +defparam \pcount_cry_0[15] .INIT1=16'h8000; +defparam \pcount_cry_0[15] .INJECT1_0="NO"; +defparam \pcount_cry_0[15] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_cry_0[17] ( + .A0(N_8), + .B0(pcount[17]), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[18]), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[16]), + .COUT(pcount_cry[18]), + .S0(pcount_s[17]), + .S1(pcount_s[18]) +); +defparam \pcount_cry_0[17] .INIT0=16'h8000; +defparam \pcount_cry_0[17] .INIT1=16'h8000; +defparam \pcount_cry_0[17] .INJECT1_0="NO"; +defparam \pcount_cry_0[17] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_cry_0[19] ( + .A0(N_8), + .B0(pcount[19]), + .C0(VCC), + .D0(VCC), + .A1(N_8), + .B1(pcount[20]), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[18]), + .COUT(pcount_cry[20]), + .S0(pcount_s[19]), + .S1(pcount_s[20]) +); +defparam \pcount_cry_0[19] .INIT0=16'h8000; +defparam \pcount_cry_0[19] .INIT1=16'h8000; +defparam \pcount_cry_0[19] .INJECT1_0="NO"; +defparam \pcount_cry_0[19] .INJECT1_1="NO"; +// @16:1759 + CCU2C \pcount_s_0[21] ( + .A0(N_8), + .B0(pcount[21]), + .C0(VCC), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(pcount_cry[20]), + .COUT(pcount_s_0_COUT[21]), + .S0(pcount_s[21]), + .S1(pcount_s_0_S1[21]) +); +defparam \pcount_s_0[21] .INIT0=16'h800a; +defparam \pcount_s_0[21] .INIT1=16'h5003; +defparam \pcount_s_0[21] .INJECT1_0="NO"; +defparam \pcount_s_0[21] .INJECT1_1="NO"; + CCU2C \rcount_cry_0[0] ( + .A0(VCC), + .B0(un1_rcount_1_0_a3), + .C0(VCC), + .D0(VCC), + .A1(un1_rcount_1_0_a3), + .B1(rcount[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_5), + .COUT(rcount_cry[0]), + .S0(rcount_cry_0_S0[0]), + .S1(rcount_s[0]) +); +defparam \rcount_cry_0[0] .INIT0=16'h5003; +defparam \rcount_cry_0[0] .INIT1=16'h4000; +defparam \rcount_cry_0[0] .INJECT1_0="NO"; +defparam \rcount_cry_0[0] .INJECT1_1="NO"; +// @16:1304 + CCU2C \rcount_cry_0[1] ( + .A0(un1_rcount_1_0_a3), + .B0(rcount[1]), + .C0(VCC), + .D0(VCC), + .A1(un1_rcount_1_0_a3), + .B1(rcount[2]), + .C1(VCC), + .D1(VCC), + .CIN(rcount_cry[0]), + .COUT(rcount_cry[2]), + .S0(rcount_s[1]), + .S1(rcount_s[2]) +); +defparam \rcount_cry_0[1] .INIT0=16'h4000; +defparam \rcount_cry_0[1] .INIT1=16'h4000; +defparam \rcount_cry_0[1] .INJECT1_0="NO"; +defparam \rcount_cry_0[1] .INJECT1_1="NO"; +// @16:1304 + CCU2C \rcount_cry_0[3] ( + .A0(un1_rcount_1_0_a3), + .B0(rcount[3]), + .C0(VCC), + .D0(VCC), + .A1(un1_rcount_1_0_a3), + .B1(rcount[4]), + .C1(VCC), + .D1(VCC), + .CIN(rcount_cry[2]), + .COUT(rcount_cry[4]), + .S0(rcount_s[3]), + .S1(rcount_s[4]) +); +defparam \rcount_cry_0[3] .INIT0=16'h4000; +defparam \rcount_cry_0[3] .INIT1=16'h4000; +defparam \rcount_cry_0[3] .INJECT1_0="NO"; +defparam \rcount_cry_0[3] .INJECT1_1="NO"; +// @16:1304 + CCU2C \rcount_cry_0[5] ( + .A0(un1_rcount_1_0_a3), + .B0(rcount[5]), + .C0(VCC), + .D0(VCC), + .A1(un1_rcount_1_0_a3), + .B1(rcount[6]), + .C1(VCC), + .D1(VCC), + .CIN(rcount_cry[4]), + .COUT(rcount_cry[6]), + .S0(rcount_s[5]), + .S1(rcount_s[6]) +); +defparam \rcount_cry_0[5] .INIT0=16'h4000; +defparam \rcount_cry_0[5] .INIT1=16'h4000; +defparam \rcount_cry_0[5] .INJECT1_0="NO"; +defparam \rcount_cry_0[5] .INJECT1_1="NO"; +// @16:1304 + CCU2C \rcount_cry_0[7] ( + .A0(un1_rcount_1_0_a3), + .B0(rcount[7]), + .C0(VCC), + .D0(VCC), + .A1(un1_rcount_1_0_a3), + .B1(rcount[8]), + .C1(VCC), + .D1(VCC), + .CIN(rcount_cry[6]), + .COUT(rcount_cry[8]), + .S0(rcount_s[7]), + .S1(rcount_s[8]) +); +defparam \rcount_cry_0[7] .INIT0=16'h4000; +defparam \rcount_cry_0[7] .INIT1=16'h4000; +defparam \rcount_cry_0[7] .INJECT1_0="NO"; +defparam \rcount_cry_0[7] .INJECT1_1="NO"; +// @16:1304 + CCU2C \rcount_cry_0[9] ( + .A0(un1_rcount_1_0_a3), + .B0(rcount[9]), + .C0(VCC), + .D0(VCC), + .A1(un1_rcount_1_0_a3), + .B1(rcount[10]), + .C1(VCC), + .D1(VCC), + .CIN(rcount_cry[8]), + .COUT(rcount_cry[10]), + .S0(rcount_s[9]), + .S1(rcount_s[10]) +); +defparam \rcount_cry_0[9] .INIT0=16'h4000; +defparam \rcount_cry_0[9] .INIT1=16'h4000; +defparam \rcount_cry_0[9] .INJECT1_0="NO"; +defparam \rcount_cry_0[9] .INJECT1_1="NO"; +// @16:1304 + CCU2C \rcount_cry_0[11] ( + .A0(un1_rcount_1_0_a3), + .B0(rcount[11]), + .C0(VCC), + .D0(VCC), + .A1(un1_rcount_1_0_a3), + .B1(rcount[12]), + .C1(VCC), + .D1(VCC), + .CIN(rcount_cry[10]), + .COUT(rcount_cry[12]), + .S0(rcount_s[11]), + .S1(rcount_s[12]) +); +defparam \rcount_cry_0[11] .INIT0=16'h4000; +defparam \rcount_cry_0[11] .INIT1=16'h4000; +defparam \rcount_cry_0[11] .INJECT1_0="NO"; +defparam \rcount_cry_0[11] .INJECT1_1="NO"; +// @16:1304 + CCU2C \rcount_cry_0[13] ( + .A0(un1_rcount_1_0_a3), + .B0(rcount[13]), + .C0(VCC), + .D0(VCC), + .A1(un1_rcount_1_0_a3), + .B1(rcount[14]), + .C1(VCC), + .D1(VCC), + .CIN(rcount_cry[12]), + .COUT(rcount_cry[14]), + .S0(rcount_s[13]), + .S1(rcount_s[14]) +); +defparam \rcount_cry_0[13] .INIT0=16'h4000; +defparam \rcount_cry_0[13] .INIT1=16'h4000; +defparam \rcount_cry_0[13] .INJECT1_0="NO"; +defparam \rcount_cry_0[13] .INJECT1_1="NO"; +// @16:1304 + CCU2C \rcount_s_0[15] ( + .A0(un1_rcount_1_0_a3), + .B0(rcount[15]), + .C0(VCC), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(rcount_cry[14]), + .COUT(rcount_s_0_COUT[15]), + .S0(rcount_s[15]), + .S1(rcount_s_0_S1[15]) +); +defparam \rcount_s_0[15] .INIT0=16'h4005; +defparam \rcount_s_0[15] .INIT1=16'h5003; +defparam \rcount_s_0[15] .INJECT1_0="NO"; +defparam \rcount_s_0[15] .INJECT1_1="NO"; + CCU2C \rhb_wait_cnt_cry_0[0] ( + .A0(VCC), + .B0(N_12), + .C0(VCC), + .D0(VCC), + .A1(N_12), + .B1(rhb_wait_cnt[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_4), + .COUT(rhb_wait_cnt_cry[0]), + .S0(rhb_wait_cnt_cry_0_S0[0]), + .S1(rhb_wait_cnt_s[0]) +); +defparam \rhb_wait_cnt_cry_0[0] .INIT0=16'h500c; +defparam \rhb_wait_cnt_cry_0[0] .INIT1=16'h8000; +defparam \rhb_wait_cnt_cry_0[0] .INJECT1_0="NO"; +defparam \rhb_wait_cnt_cry_0[0] .INJECT1_1="NO"; +// @16:1350 + CCU2C \rhb_wait_cnt_cry_0[1] ( + .A0(N_12), + .B0(rhb_wait_cnt[1]), + .C0(VCC), + .D0(VCC), + .A1(N_12), + .B1(rhb_wait_cnt[2]), + .C1(VCC), + .D1(VCC), + .CIN(rhb_wait_cnt_cry[0]), + .COUT(rhb_wait_cnt_cry[2]), + .S0(rhb_wait_cnt_s[1]), + .S1(rhb_wait_cnt_s[2]) +); +defparam \rhb_wait_cnt_cry_0[1] .INIT0=16'h8000; +defparam \rhb_wait_cnt_cry_0[1] .INIT1=16'h8000; +defparam \rhb_wait_cnt_cry_0[1] .INJECT1_0="NO"; +defparam \rhb_wait_cnt_cry_0[1] .INJECT1_1="NO"; +// @16:1350 + CCU2C \rhb_wait_cnt_cry_0[3] ( + .A0(N_12), + .B0(rhb_wait_cnt[3]), + .C0(VCC), + .D0(VCC), + .A1(N_12), + .B1(rhb_wait_cnt[4]), + .C1(VCC), + .D1(VCC), + .CIN(rhb_wait_cnt_cry[2]), + .COUT(rhb_wait_cnt_cry[4]), + .S0(rhb_wait_cnt_s[3]), + .S1(rhb_wait_cnt_s[4]) +); +defparam \rhb_wait_cnt_cry_0[3] .INIT0=16'h8000; +defparam \rhb_wait_cnt_cry_0[3] .INIT1=16'h8000; +defparam \rhb_wait_cnt_cry_0[3] .INJECT1_0="NO"; +defparam \rhb_wait_cnt_cry_0[3] .INJECT1_1="NO"; +// @16:1350 + CCU2C \rhb_wait_cnt_cry_0[5] ( + .A0(N_12), + .B0(rhb_wait_cnt[5]), + .C0(VCC), + .D0(VCC), + .A1(N_12), + .B1(rhb_wait_cnt[6]), + .C1(VCC), + .D1(VCC), + .CIN(rhb_wait_cnt_cry[4]), + .COUT(rhb_wait_cnt_cry[6]), + .S0(rhb_wait_cnt_s[5]), + .S1(rhb_wait_cnt_s[6]) +); +defparam \rhb_wait_cnt_cry_0[5] .INIT0=16'h8000; +defparam \rhb_wait_cnt_cry_0[5] .INIT1=16'h8000; +defparam \rhb_wait_cnt_cry_0[5] .INJECT1_0="NO"; +defparam \rhb_wait_cnt_cry_0[5] .INJECT1_1="NO"; +// @16:1350 + CCU2C \rhb_wait_cnt_s_0[7] ( + .A0(N_12), + .B0(rhb_wait_cnt[7]), + .C0(VCC), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(rhb_wait_cnt_cry[6]), + .COUT(rhb_wait_cnt_s_0_COUT[7]), + .S0(rhb_wait_cnt_s[7]), + .S1(rhb_wait_cnt_s_0_S1[7]) +); +defparam \rhb_wait_cnt_s_0[7] .INIT0=16'h800a; +defparam \rhb_wait_cnt_s_0[7] .INIT1=16'h5003; +defparam \rhb_wait_cnt_s_0[7] .INJECT1_0="NO"; +defparam \rhb_wait_cnt_s_0[7] .INJECT1_1="NO"; + CCU2C un1_pcount_diff_1_cry_0_0 ( + .A0(VCC), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un1_pcount_diff[0]), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(N_3), + .COUT(un1_pcount_diff_1_cry_0), + .S0(un1_pcount_diff_1_cry_0_0_S0), + .S1(un1_pcount_diff_1_cry_0_0_S1) +); +defparam un1_pcount_diff_1_cry_0_0.INIT0=16'h5003; +defparam un1_pcount_diff_1_cry_0_0.INIT1=16'h500f; +defparam un1_pcount_diff_1_cry_0_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_0_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_cry_1_0 ( + .A0(un1_pcount_diff_1_axb_1), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un1_pcount_diff_1_axb_2), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_0), + .COUT(un1_pcount_diff_1_cry_2), + .S0(un1_pcount_diff_1_cry_1_0_S0), + .S1(un1_pcount_diff_1_cry_1_0_S1) +); +defparam un1_pcount_diff_1_cry_1_0.INIT0=16'ha003; +defparam un1_pcount_diff_1_cry_1_0.INIT1=16'ha003; +defparam un1_pcount_diff_1_cry_1_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_1_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_cry_3_0 ( + .A0(un1_pcount_diff_1_axb_3), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un1_pcount_diff_1_axb_4), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_2), + .COUT(un1_pcount_diff_1_cry_4), + .S0(un1_pcount_diff_1_cry_3_0_S0), + .S1(un1_pcount_diff_1_cry_3_0_S1) +); +defparam un1_pcount_diff_1_cry_3_0.INIT0=16'ha003; +defparam un1_pcount_diff_1_cry_3_0.INIT1=16'ha003; +defparam un1_pcount_diff_1_cry_3_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_3_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_cry_5_0 ( + .A0(un1_pcount_diff_1_axb_5), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un1_pcount_diff_1_axb_6), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_4), + .COUT(un1_pcount_diff_1_cry_6), + .S0(un1_pcount_diff_1_cry_5_0_S0), + .S1(un1_pcount_diff_1_cry_5_0_S1) +); +defparam un1_pcount_diff_1_cry_5_0.INIT0=16'ha003; +defparam un1_pcount_diff_1_cry_5_0.INIT1=16'ha003; +defparam un1_pcount_diff_1_cry_5_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_5_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_cry_7_0 ( + .A0(un1_pcount_diff_1_axb_7), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un1_pcount_diff_1_axb_8), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_6), + .COUT(un1_pcount_diff_1_cry_8), + .S0(un1_pcount_diff_1_cry_7_0_S0), + .S1(un1_pcount_diff_1_cry_7_0_S1) +); +defparam un1_pcount_diff_1_cry_7_0.INIT0=16'ha003; +defparam un1_pcount_diff_1_cry_7_0.INIT1=16'ha003; +defparam un1_pcount_diff_1_cry_7_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_7_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_cry_9_0 ( + .A0(un1_pcount_diff_1_axb_9), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un1_pcount_diff_1_axb_10), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_8), + .COUT(un1_pcount_diff_1_cry_10), + .S0(un1_pcount_diff_1_cry_9_0_S0), + .S1(un1_pcount_diff_1_cry_9_0_S1) +); +defparam un1_pcount_diff_1_cry_9_0.INIT0=16'ha003; +defparam un1_pcount_diff_1_cry_9_0.INIT1=16'ha003; +defparam un1_pcount_diff_1_cry_9_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_9_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_cry_11_0 ( + .A0(un1_pcount_diff_1_axb_11), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un1_pcount_diff_1_axb_12), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_10), + .COUT(un1_pcount_diff_1_cry_12), + .S0(un1_pcount_diff_1_cry_11_0_S0), + .S1(un1_pcount_diff_1_cry_11_0_S1) +); +defparam un1_pcount_diff_1_cry_11_0.INIT0=16'ha003; +defparam un1_pcount_diff_1_cry_11_0.INIT1=16'ha003; +defparam un1_pcount_diff_1_cry_11_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_11_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_cry_13_0 ( + .A0(un1_pcount_diff_1_axb_13), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un1_pcount_diff_1_axb_14), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_12), + .COUT(un1_pcount_diff_1_cry_14), + .S0(un1_pcount_diff_1_cry_13_0_S0), + .S1(un1_pcount_diff_1_cry_13_0_S1) +); +defparam un1_pcount_diff_1_cry_13_0.INIT0=16'ha003; +defparam un1_pcount_diff_1_cry_13_0.INIT1=16'ha003; +defparam un1_pcount_diff_1_cry_13_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_13_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_cry_15_0 ( + .A0(un1_pcount_diff_1_axb_15), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un1_pcount_diff_1_axb_16), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_14), + .COUT(un1_pcount_diff_1_cry_16), + .S0(un1_pcount_diff_1_cry_15_0_S0), + .S1(un1_pcount_diff_1_cry_15_0_S1) +); +defparam un1_pcount_diff_1_cry_15_0.INIT0=16'ha003; +defparam un1_pcount_diff_1_cry_15_0.INIT1=16'ha003; +defparam un1_pcount_diff_1_cry_15_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_15_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_cry_17_0 ( + .A0(N_8), + .B0(rdiff_comp_lock[2]), + .C0(un1_pcount_diff_1_cry_17_0_RNO), + .D0(VCC), + .A1(un1_pcount_diff_1_axb_18), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_16), + .COUT(un1_pcount_diff_1_cry_18), + .S0(un1_pcount_diff_1_cry_17_0_S0), + .S1(un1_pcount_diff_1_cry_17_0_S1) +); +defparam un1_pcount_diff_1_cry_17_0.INIT0=16'hb404; +defparam un1_pcount_diff_1_cry_17_0.INIT1=16'ha003; +defparam un1_pcount_diff_1_cry_17_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_17_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_cry_19_0 ( + .A0(un1_pcount_diff_1_axb_19), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un1_pcount_diff_1_axb_20), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_18), + .COUT(un1_pcount_diff_1_cry_20), + .S0(un1_pcount_diff_1_cry_19_0_S0), + .S1(un1_pcount_diff_1_cry_19_0_S1) +); +defparam un1_pcount_diff_1_cry_19_0.INIT0=16'ha003; +defparam un1_pcount_diff_1_cry_19_0.INIT1=16'ha003; +defparam un1_pcount_diff_1_cry_19_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_cry_19_0.INJECT1_1="NO"; +// @16:1786 + CCU2C un1_pcount_diff_1_s_21_0 ( + .A0(pcount[21]), + .B0(un13_lock_21), + .C0(N_8), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un1_pcount_diff_1_cry_20), + .COUT(un1_pcount_diff_1_s_21_0_COUT), + .S0(un1_pcount_diff_1_s_21_0_S0), + .S1(un1_pcount_diff_1_s_21_0_S1) +); +defparam un1_pcount_diff_1_s_21_0.INIT0=16'h350a; +defparam un1_pcount_diff_1_s_21_0.INIT1=16'h5003; +defparam un1_pcount_diff_1_s_21_0.INJECT1_0="NO"; +defparam un1_pcount_diff_1_s_21_0.INJECT1_1="NO"; + CCU2C un13_lock_cry_0_0 ( + .A0(VCC), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_0), + .B1(rdiff_comp_lock[2]), + .C1(VCC), + .D1(VCC), + .CIN(N_2), + .COUT(un13_lock_cry_0), + .S0(un13_lock_cry_0_0_S0), + .S1(un13_lock_cry_0_0_S1) +); +defparam un13_lock_cry_0_0.INIT0=16'h5003; +defparam un13_lock_cry_0_0.INIT1=16'h900a; +defparam un13_lock_cry_0_0.INJECT1_0="NO"; +defparam un13_lock_cry_0_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_1_0 ( + .A0(un13_lock_1), + .B0(rdiff_comp_lock[2]), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_2), + .B1(rdiff_comp_lock[2]), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_0), + .COUT(un13_lock_cry_2), + .S0(un13_lock_cry_1_0_S0), + .S1(un13_lock_cry_1_0_S1) +); +defparam un13_lock_cry_1_0.INIT0=16'h900a; +defparam un13_lock_cry_1_0.INIT1=16'h900a; +defparam un13_lock_cry_1_0.INJECT1_0="NO"; +defparam un13_lock_cry_1_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_3_0 ( + .A0(un13_lock_3), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_4), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_2), + .COUT(un13_lock_cry_4), + .S0(un13_lock_cry_3_0_S0), + .S1(un13_lock_cry_3_0_S1) +); +defparam un13_lock_cry_3_0.INIT0=16'h500a; +defparam un13_lock_cry_3_0.INIT1=16'h500a; +defparam un13_lock_cry_3_0.INJECT1_0="NO"; +defparam un13_lock_cry_3_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_5_0 ( + .A0(un13_lock_5), + .B0(rdiff_comp_lock[2]), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_6), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_4), + .COUT(un13_lock_cry_6), + .S0(un13_lock_cry_5_0_S0), + .S1(un13_lock_cry_5_0_S1) +); +defparam un13_lock_cry_5_0.INIT0=16'h900a; +defparam un13_lock_cry_5_0.INIT1=16'h500a; +defparam un13_lock_cry_5_0.INJECT1_0="NO"; +defparam un13_lock_cry_5_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_7_0 ( + .A0(un13_lock_7), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_8), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_6), + .COUT(un13_lock_cry_8), + .S0(un13_lock_cry_7_0_S0), + .S1(un13_lock_cry_7_0_S1) +); +defparam un13_lock_cry_7_0.INIT0=16'h500a; +defparam un13_lock_cry_7_0.INIT1=16'h500a; +defparam un13_lock_cry_7_0.INJECT1_0="NO"; +defparam un13_lock_cry_7_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_9_0 ( + .A0(un13_lock_9), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_10), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_8), + .COUT(un13_lock_cry_10), + .S0(un13_lock_cry_9_0_S0), + .S1(un13_lock_cry_9_0_S1) +); +defparam un13_lock_cry_9_0.INIT0=16'h500a; +defparam un13_lock_cry_9_0.INIT1=16'h500a; +defparam un13_lock_cry_9_0.INJECT1_0="NO"; +defparam un13_lock_cry_9_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_11_0 ( + .A0(un13_lock_11), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_12), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_10), + .COUT(un13_lock_cry_12), + .S0(un13_lock_cry_11_0_S0), + .S1(un13_lock_cry_11_0_S1) +); +defparam un13_lock_cry_11_0.INIT0=16'h500a; +defparam un13_lock_cry_11_0.INIT1=16'h500a; +defparam un13_lock_cry_11_0.INJECT1_0="NO"; +defparam un13_lock_cry_11_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_13_0 ( + .A0(un13_lock_13), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_14), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_12), + .COUT(un13_lock_cry_14), + .S0(un13_lock_cry_13_0_S0), + .S1(un13_lock_cry_13_0_S1) +); +defparam un13_lock_cry_13_0.INIT0=16'h500a; +defparam un13_lock_cry_13_0.INIT1=16'h500a; +defparam un13_lock_cry_13_0.INJECT1_0="NO"; +defparam un13_lock_cry_13_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_15_0 ( + .A0(un13_lock_15), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_16), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_14), + .COUT(un13_lock_cry_16), + .S0(un13_lock_cry_15_0_S0), + .S1(un13_lock_cry_15_0_S1) +); +defparam un13_lock_cry_15_0.INIT0=16'h500a; +defparam un13_lock_cry_15_0.INIT1=16'h500a; +defparam un13_lock_cry_15_0.INJECT1_0="NO"; +defparam un13_lock_cry_15_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_17_0 ( + .A0(un13_lock_17), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_18), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_16), + .COUT(un13_lock_cry_18), + .S0(un13_lock_cry_17_0_S0), + .S1(un13_lock_cry_17_0_S1) +); +defparam un13_lock_cry_17_0.INIT0=16'h500a; +defparam un13_lock_cry_17_0.INIT1=16'h500a; +defparam un13_lock_cry_17_0.INJECT1_0="NO"; +defparam un13_lock_cry_17_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_19_0 ( + .A0(un13_lock_19), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_20), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_18), + .COUT(un13_lock_cry_20), + .S0(un13_lock_cry_19_0_S0), + .S1(un13_lock_cry_19_0_S1) +); +defparam un13_lock_cry_19_0.INIT0=16'h500a; +defparam un13_lock_cry_19_0.INIT1=16'h500a; +defparam un13_lock_cry_19_0.INJECT1_0="NO"; +defparam un13_lock_cry_19_0.INJECT1_1="NO"; +// @16:1296 + CCU2C un13_lock_cry_21_0 ( + .A0(un13_lock_21), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_lock_cry_20), + .COUT(un13_lock_cry_21_0_COUT), + .S0(un13_lock_cry_21_0_S0), + .S1(un13_lock_cry_21_i) +); +defparam un13_lock_cry_21_0.INIT0=16'h500f; +defparam un13_lock_cry_21_0.INIT1=16'ha003; +defparam un13_lock_cry_21_0.INJECT1_0="NO"; +defparam un13_lock_cry_21_0.INJECT1_1="NO"; + CCU2C un13_unlock_cry_0_0 ( + .A0(VCC), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_0), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(N_1), + .COUT(un13_unlock_cry_0), + .S0(un13_unlock_cry_0_0_S0), + .S1(un13_unlock_cry_0_0_S1) +); +defparam un13_unlock_cry_0_0.INIT0=16'h5003; +defparam un13_unlock_cry_0_0.INIT1=16'h500a; +defparam un13_unlock_cry_0_0.INJECT1_0="NO"; +defparam un13_unlock_cry_0_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_1_0 ( + .A0(un13_lock_1), + .B0(rdiff_comp_lock[2]), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_2), + .B1(rdiff_comp_lock[2]), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_0), + .COUT(un13_unlock_cry_2), + .S0(un13_unlock_cry_1_0_S0), + .S1(un13_unlock_cry_1_0_S1) +); +defparam un13_unlock_cry_1_0.INIT0=16'h900a; +defparam un13_unlock_cry_1_0.INIT1=16'h900a; +defparam un13_unlock_cry_1_0.INJECT1_0="NO"; +defparam un13_unlock_cry_1_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_3_0 ( + .A0(un13_lock_3), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_4), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_2), + .COUT(un13_unlock_cry_4), + .S0(un13_unlock_cry_3_0_S0), + .S1(un13_unlock_cry_3_0_S1) +); +defparam un13_unlock_cry_3_0.INIT0=16'h500a; +defparam un13_unlock_cry_3_0.INIT1=16'h500a; +defparam un13_unlock_cry_3_0.INJECT1_0="NO"; +defparam un13_unlock_cry_3_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_5_0 ( + .A0(un13_lock_5), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_6), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_4), + .COUT(un13_unlock_cry_6), + .S0(un13_unlock_cry_5_0_S0), + .S1(un13_unlock_cry_5_0_S1) +); +defparam un13_unlock_cry_5_0.INIT0=16'h500a; +defparam un13_unlock_cry_5_0.INIT1=16'h500a; +defparam un13_unlock_cry_5_0.INJECT1_0="NO"; +defparam un13_unlock_cry_5_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_7_0 ( + .A0(un13_lock_7), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_8), + .B1(rdiff_comp_lock[2]), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_6), + .COUT(un13_unlock_cry_8), + .S0(un13_unlock_cry_7_0_S0), + .S1(un13_unlock_cry_7_0_S1) +); +defparam un13_unlock_cry_7_0.INIT0=16'h500a; +defparam un13_unlock_cry_7_0.INIT1=16'h900a; +defparam un13_unlock_cry_7_0.INJECT1_0="NO"; +defparam un13_unlock_cry_7_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_9_0 ( + .A0(un13_lock_9), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_10), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_8), + .COUT(un13_unlock_cry_10), + .S0(un13_unlock_cry_9_0_S0), + .S1(un13_unlock_cry_9_0_S1) +); +defparam un13_unlock_cry_9_0.INIT0=16'h500a; +defparam un13_unlock_cry_9_0.INIT1=16'h500a; +defparam un13_unlock_cry_9_0.INJECT1_0="NO"; +defparam un13_unlock_cry_9_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_11_0 ( + .A0(un13_lock_11), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_12), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_10), + .COUT(un13_unlock_cry_12), + .S0(un13_unlock_cry_11_0_S0), + .S1(un13_unlock_cry_11_0_S1) +); +defparam un13_unlock_cry_11_0.INIT0=16'h500a; +defparam un13_unlock_cry_11_0.INIT1=16'h500a; +defparam un13_unlock_cry_11_0.INJECT1_0="NO"; +defparam un13_unlock_cry_11_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_13_0 ( + .A0(un13_lock_13), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_14), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_12), + .COUT(un13_unlock_cry_14), + .S0(un13_unlock_cry_13_0_S0), + .S1(un13_unlock_cry_13_0_S1) +); +defparam un13_unlock_cry_13_0.INIT0=16'h500a; +defparam un13_unlock_cry_13_0.INIT1=16'h500a; +defparam un13_unlock_cry_13_0.INJECT1_0="NO"; +defparam un13_unlock_cry_13_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_15_0 ( + .A0(un13_lock_15), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_16), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_14), + .COUT(un13_unlock_cry_16), + .S0(un13_unlock_cry_15_0_S0), + .S1(un13_unlock_cry_15_0_S1) +); +defparam un13_unlock_cry_15_0.INIT0=16'h500a; +defparam un13_unlock_cry_15_0.INIT1=16'h500a; +defparam un13_unlock_cry_15_0.INJECT1_0="NO"; +defparam un13_unlock_cry_15_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_17_0 ( + .A0(un13_lock_17), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_18), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_16), + .COUT(un13_unlock_cry_18), + .S0(un13_unlock_cry_17_0_S0), + .S1(un13_unlock_cry_17_0_S1) +); +defparam un13_unlock_cry_17_0.INIT0=16'h500a; +defparam un13_unlock_cry_17_0.INIT1=16'h500a; +defparam un13_unlock_cry_17_0.INJECT1_0="NO"; +defparam un13_unlock_cry_17_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_19_0 ( + .A0(un13_lock_19), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(un13_lock_20), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_18), + .COUT(un13_unlock_cry_20), + .S0(un13_unlock_cry_19_0_S0), + .S1(un13_unlock_cry_19_0_S1) +); +defparam un13_unlock_cry_19_0.INIT0=16'h500a; +defparam un13_unlock_cry_19_0.INIT1=16'h500a; +defparam un13_unlock_cry_19_0.INJECT1_0="NO"; +defparam un13_unlock_cry_19_0.INJECT1_1="NO"; +// @16:1290 + CCU2C un13_unlock_cry_21_0 ( + .A0(un13_lock_21), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(un13_unlock_cry_20), + .COUT(un13_unlock_cry_21_0_COUT), + .S0(un13_unlock_cry_21_0_S0), + .S1(un13_unlock_cry_21) +); +defparam un13_unlock_cry_21_0.INIT0=16'h500f; +defparam un13_unlock_cry_21_0.INIT1=16'h5003; +defparam un13_unlock_cry_21_0.INJECT1_0="NO"; +defparam un13_unlock_cry_21_0.INJECT1_1="NO"; +//@8:425 +//@16:1801 +//@8:425 +// @16:1211 + sync_0s phb_sync_inst ( + .phb(phb), + .rhb_sync(rhb_sync), + .sli_rst(sli_rst), + .pll_refclki(pll_refclki) +); +// @16:1220 + sync_0s_6 rtc_sync_inst ( + .rtc_pul(rtc_pul), + .ppul_sync(ppul_sync), + .sli_rst(sli_rst), + .tx_pclk(tx_pclk) +); +// @16:1228 + sync_0s_0 pdiff_sync_inst ( + .ppul_sync(ppul_sync), + .pdiff_sync(pdiff_sync), + .sli_rst(sli_rst), + .pll_refclki(pll_refclki) +); + VHI VCC_0 ( + .Z(VCC) +); +// @16:865 + VLO GND_cZ ( + .Z(GND) +); +endmodule /* serdes_sync_1sll_core_Z1_layer1 */ + +module serdes_sync_1rsl_core_Z2_layer1 ( + rx_pcs_rst_c, + serdes_rst_dual_c, + tx_serdes_rst_c, + rsl_tx_pcs_rst_c, + rst_dual_c, + rsl_rx_pcs_rst_c, + rsl_tx_serdes_rst_c, + rsl_tx_rdy, + pll_lock_i, + pll_refclki, + rsl_rx_rdy, + rx_cdr_lol_s, + rx_los_low_s, + rsl_rst, + rxrefclk, + rx_serdes_rst_c, + rsl_rx_serdes_rst_c, + rsl_serdes_rst_dual_c, + rsl_disable, + tx_pcs_rst_c +) +; +input rx_pcs_rst_c ; +input serdes_rst_dual_c ; +input tx_serdes_rst_c ; +output rsl_tx_pcs_rst_c ; +input rst_dual_c ; +output rsl_rx_pcs_rst_c ; +output rsl_tx_serdes_rst_c ; +output rsl_tx_rdy ; +input pll_lock_i ; +input pll_refclki ; +output rsl_rx_rdy ; +input rx_cdr_lol_s ; +input rx_los_low_s ; +input rsl_rst ; +input rxrefclk ; +input rx_serdes_rst_c ; +output rsl_rx_serdes_rst_c ; +output rsl_serdes_rst_dual_c ; +input rsl_disable ; +input tx_pcs_rst_c ; +wire rx_pcs_rst_c ; +wire serdes_rst_dual_c ; +wire tx_serdes_rst_c ; +wire rsl_tx_pcs_rst_c ; +wire rst_dual_c ; +wire rsl_rx_pcs_rst_c ; +wire rsl_tx_serdes_rst_c ; +wire rsl_tx_rdy ; +wire pll_lock_i ; +wire pll_refclki ; +wire rsl_rx_rdy ; +wire rx_cdr_lol_s ; +wire rx_los_low_s ; +wire rsl_rst ; +wire rxrefclk ; +wire rx_serdes_rst_c ; +wire rsl_rx_serdes_rst_c ; +wire rsl_serdes_rst_dual_c ; +wire rsl_disable ; +wire tx_pcs_rst_c ; +wire [2:0] plol0_cnt; +wire [2:0] plol0_cnt_3; +wire [0:0] rxsr_appd; +wire [1:0] rxs_cnt_3; +wire [1:0] rxs_cnt; +wire [1:0] rxs_cnt_QN; +wire [3:0] rlos_db_cnt; +wire [3:0] rlos_db_cnt_QN; +wire [17:0] rlols0_cnt_s; +wire [17:0] rlols0_cnt; +wire [17:0] rlols0_cnt_QN; +wire [3:0] rlol_db_cnt; +wire [3:0] rlol_db_cnt_QN; +wire [18:0] rlol1_cnt_s; +wire [18:0] rlol1_cnt; +wire [18:0] rlol1_cnt_QN; +wire [11:0] rxr_wt_cnt_s; +wire [11:0] rxr_wt_cnt; +wire [11:0] rxr_wt_cnt_QN; +wire [0:0] rxsr_appd_QN; +wire [0:0] rxpr_appd; +wire [0:0] rxpr_appd_QN; +wire [1:0] txs_cnt; +wire [1:0] txs_cnt_QN; +wire [1:1] txs_cnt_RNO; +wire [1:0] txp_cnt; +wire [1:0] txp_cnt_QN; +wire [1:1] txp_cnt_RNO; +wire [19:0] plol_cnt_s; +wire [19:0] plol_cnt; +wire [19:0] plol_cnt_QN; +wire [2:0] plol0_cnt_QN; +wire [11:0] txr_wt_cnt_s; +wire [11:0] txr_wt_cnt; +wire [11:0] txr_wt_cnt_QN; +wire [0:0] txpr_appd; +wire [0:0] txpr_appd_QN; +wire [0:0] un1_rlol_db_cnt_zero; +wire [0:0] un1_rlos_db_cnt_zero; +wire [0:0] un1_rlol_db_cnt_zero_bm; +wire [0:0] un1_rlol_db_cnt_zero_am; +wire [0:0] un1_rlos_db_cnt_zero_bm; +wire [0:0] un1_rlos_db_cnt_zero_am; +wire [16:0] rlol1_cnt_cry; +wire [0:0] rlol1_cnt_cry_0_S0; +wire [17:17] rlol1_cnt_cry_0_COUT; +wire [16:0] rlols0_cnt_cry; +wire [0:0] rlols0_cnt_cry_0_S0; +wire [17:17] rlols0_cnt_s_0_COUT; +wire [17:17] rlols0_cnt_s_0_S1; +wire [10:0] txr_wt_cnt_cry; +wire [0:0] txr_wt_cnt_cry_0_S0; +wire [11:11] txr_wt_cnt_s_0_COUT; +wire [11:11] txr_wt_cnt_s_0_S1; +wire [10:0] rxr_wt_cnt_cry; +wire [0:0] rxr_wt_cnt_cry_0_S0; +wire [11:11] rxr_wt_cnt_s_0_COUT; +wire [11:11] rxr_wt_cnt_s_0_S1; +wire [18:0] plol_cnt_cry; +wire [0:0] plol_cnt_cry_0_S0; +wire [19:19] plol_cnt_s_0_COUT; +wire [19:19] plol_cnt_s_0_S1; +wire txdpr_appd ; +wire txp_rst ; +wire un2_rdo_tx_pcs_rst_c ; +wire rlos_db_p1 ; +wire rlos_db ; +wire rxp_rst25 ; +wire plol0_cnt9 ; +wire waita_plol0 ; +wire dual_or_serd_rst ; +wire un18_txr_wt_tc_8 ; +wire un18_txr_wt_tc_7 ; +wire un18_txr_wt_tc_6 ; +wire un1_dual_or_serd_rst_1_1 ; +wire un1_rui_rst_dual_c_1_1 ; +wire un17_rxr_wt_tc_8 ; +wire un17_rxr_wt_tc_7 ; +wire un17_rxr_wt_tc_6 ; +wire un3_rx_all_well_1 ; +wire rlol1_cnt_tc_1 ; +wire rxs_rst ; +wire rlol1_cnt_scalar ; +wire un2_plol_fedge_5_1 ; +wire un2_plol_fedge_5_i ; +wire N_2175_0 ; +wire waita_rlols06 ; +wire un1_rlols0_cnt_tc ; +wire waita_rlols0 ; +wire waita_rlols0_QN ; +wire VCC ; +wire wait_calib_RNO ; +wire un1_rlos_fedge_1 ; +wire wait_calib ; +wire wait_calib_QN ; +wire rxs_rst6 ; +wire un1_rxs_cnt_tc ; +wire rxs_rst_QN ; +wire un2_rlos_redge_1_i ; +wire rxp_rst2 ; +wire rxp_rst2_QN ; +wire rlos_p1 ; +wire rlos_p2 ; +wire rlos_p2_QN ; +wire rlos_p1_QN ; +wire rlos_db_p1_QN ; +wire rlos_db_cnt_axb_0 ; +wire rlos_db_cnt_cry_1_0_S0 ; +wire rlos_db_cnt_cry_1_0_S1 ; +wire rlos_db_cnt_s_3_0_S0 ; +wire un1_rlos_db_cnt_max ; +wire rlos_db_QN ; +wire rlols0_cnte ; +wire rlol_p1 ; +wire rlol_p2 ; +wire rlol_p2_QN ; +wire rlol_p1_QN ; +wire rlol_db ; +wire rlol_db_p1 ; +wire rlol_db_p1_QN ; +wire rlol_db_cnt_axb_0 ; +wire rlol_db_cnt_cry_1_0_S0 ; +wire rlol_db_cnt_cry_1_0_S1 ; +wire rlol_db_cnt_s_3_0_S0 ; +wire un1_rlol_db_cnt_max ; +wire rlol_db_QN ; +wire rlol1_cnte ; +wire rxsdr_appd_2 ; +wire rxsdr_appd_4 ; +wire rxsdr_appd_QN ; +wire un1_dual_or_rserd_rst_2_i ; +wire rxr_wt_en ; +wire rxr_wt_en_QN ; +wire rxr_wt_cnte ; +wire un1_rui_rst_dual_c_1_i ; +wire rxdpr_appd ; +wire rxdpr_appd_QN ; +wire un3_rx_all_well_2 ; +wire rxr_wt_cnt9 ; +wire ruo_rx_rdyr_QN ; +wire un2_rdo_serdes_rst_dual_c_1 ; +wire un2_rdo_serdes_rst_dual_c_2_i ; +wire plol_fedge ; +wire un1_plol0_cnt_tc_1_i ; +wire waita_plol0_QN ; +wire un1_plol_cnt_tc ; +wire un2_plol_cnt_tc ; +wire txs_rst ; +wire txs_rst_QN ; +wire N_10_i ; +wire un9_plol0_cnt_tc ; +wire un1_plol0_cnt_tc_1 ; +wire txp_rst_QN ; +wire N_11_i ; +wire pll_lol_p2 ; +wire pll_lol_p3 ; +wire pll_lol_p3_QN ; +wire pll_lol_p1 ; +wire pll_lol_p2_QN ; +wire pll_lol_p1_QN ; +wire txsr_appd_2 ; +wire txsr_appd_4 ; +wire txsr_appd_QN ; +wire un1_dual_or_serd_rst_1_i ; +wire txr_wt_en ; +wire txr_wt_en_QN ; +wire txr_wt_cnte ; +wire un2_plol_fedge_2 ; +wire un2_plol_fedge_3_i ; +wire txdpr_appd_QN ; +wire ruo_tx_rdyr_QN ; +wire un2_plol_fedge_8_i ; +wire rlols0_cnt_tc_1 ; +wire rlos_redge ; +wire rlols0_cnt11_0 ; +wire plol_cnt_scalar ; +wire rlols0_cnt_scalar ; +wire un8_rxs_cnt_tc ; +wire un17_rxr_wt_tc ; +wire un1_dual_or_rserd_rst_2_0 ; +wire un1_rxsdr_or_sr_appd_0 ; +wire un2_rdo_serdes_rst_dual_c_2_0 ; +wire txr_wt_cnt9 ; +wire rx_any_rst ; +wire un18_txr_wt_tc ; +wire rlols0_cnt_tc_1_10 ; +wire rlols0_cnt_tc_1_11 ; +wire rlols0_cnt_tc_1_12 ; +wire rlols0_cnt_tc_1_13 ; +wire rlol1_cnt_tc_1_11 ; +wire rlol1_cnt_tc_1_12 ; +wire rlol1_cnt_tc_1_13 ; +wire rlol1_cnt_tc_1_14 ; +wire un1_plol_cnt_tc_11 ; +wire un1_plol_cnt_tc_12 ; +wire un1_plol_cnt_tc_13 ; +wire un1_plol_cnt_tc_14 ; +wire CO0_2 ; +wire rlols0_cnt_tc_1_9 ; +wire un1_plol_cnt_tc_10 ; +wire rlol1_cnt_tc_1_10 ; +wire un3_rx_all_well_2_1 ; +wire rlos_db_cnt_cry_0 ; +wire rlos_db_cnt_cry_0_0_S0 ; +wire rlos_db_cnt_cry_0_0_S1 ; +wire rlos_db_cnt_cry_2 ; +wire rlos_db_cnt_s_3_0_COUT ; +wire rlos_db_cnt_s_3_0_S1 ; +wire rlol_db_cnt_cry_0 ; +wire rlol_db_cnt_cry_0_0_S0 ; +wire rlol_db_cnt_cry_0_0_S1 ; +wire rlol_db_cnt_cry_2 ; +wire rlol_db_cnt_s_3_0_COUT ; +wire rlol_db_cnt_s_3_0_S1 ; +wire GND ; +wire N_1 ; +wire N_2 ; +wire N_3 ; +wire N_4 ; +wire N_5 ; +wire N_6 ; +wire N_7 ; + LUT4 \genblk1.genblk2.mfor[0].txpr_appd_RNO_0[0] ( + .A(txdpr_appd), + .B(tx_pcs_rst_c), + .C(txp_rst), + .D(rsl_disable), + .Z(un2_rdo_tx_pcs_rst_c) +); +defparam \genblk1.genblk2.mfor[0].txpr_appd_RNO_0[0] .init=16'hEEFE; + LUT4 \genblk2.rxp_rst2_RNO ( + .A(rsl_serdes_rst_dual_c), + .B(rsl_rx_serdes_rst_c), + .C(rlos_db_p1), + .D(rlos_db), + .Z(rxp_rst25) +); +defparam \genblk2.rxp_rst2_RNO .init=16'hEFEE; + LUT4 \genblk1.plol0_cnt_RNO[1] ( + .A(plol0_cnt[1]), + .B(plol0_cnt9), + .C(waita_plol0), + .D(plol0_cnt[0]), + .Z(plol0_cnt_3[1]) +); +defparam \genblk1.plol0_cnt_RNO[1] .init=16'h1222; + LUT4 \genblk1.genblk2.un18_txr_wt_tc_6_RNI7IS21 ( + .A(dual_or_serd_rst), + .B(un18_txr_wt_tc_8), + .C(un18_txr_wt_tc_7), + .D(un18_txr_wt_tc_6), + .Z(un1_dual_or_serd_rst_1_1) +); +defparam \genblk1.genblk2.un18_txr_wt_tc_6_RNI7IS21 .init=16'h1555; + LUT4 \genblk2.genblk3.rxr_wt_en_RNO ( + .A(un1_rui_rst_dual_c_1_1), + .B(un17_rxr_wt_tc_8), + .C(un17_rxr_wt_tc_7), + .D(un17_rxr_wt_tc_6), + .Z(un3_rx_all_well_1) +); +defparam \genblk2.genblk3.rxr_wt_en_RNO .init=16'h2AAA; + LUT4 \genblk2.rlos_db_p1_RNIS0OP ( + .A(rlol1_cnt_tc_1), + .B(rxs_rst), + .C(rlos_db_p1), + .D(rlos_db), + .Z(rlol1_cnt_scalar) +); +defparam \genblk2.rlos_db_p1_RNIS0OP .init=16'h1011; + LUT4 \genblk1.genblk2.ruo_tx_rdyr_RNO ( + .A(un2_plol_fedge_5_1), + .B(un18_txr_wt_tc_8), + .C(un18_txr_wt_tc_7), + .D(un18_txr_wt_tc_6), + .Z(un2_plol_fedge_5_i) +); +defparam \genblk1.genblk2.ruo_tx_rdyr_RNO .init=16'hD555; + LUT4 \genblk2.genblk3.lfor[0].rxsr_appd_RNO[0] ( + .A(rxsr_appd[0]), + .B(rx_serdes_rst_c), + .C(rxs_rst), + .D(rsl_disable), + .Z(N_2175_0) +); +defparam \genblk2.genblk3.lfor[0].rxsr_appd_RNO[0] .init=16'hEEFE; +// @16:759 + FD1P3DX \genblk2.waita_rlols0 ( + .D(waita_rlols06), + .SP(un1_rlols0_cnt_tc), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(waita_rlols0) +); +// @16:656 + FD1P3BX \genblk2.wait_calib ( + .D(wait_calib_RNO), + .SP(un1_rlos_fedge_1), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(wait_calib) +); +// @16:694 + FD1P3DX \genblk2.rxs_rst ( + .D(rxs_rst6), + .SP(un1_rxs_cnt_tc), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxs_rst) +); +// @16:694 + FD1S3DX \genblk2.rxs_cnt[0] ( + .D(rxs_cnt_3[0]), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxs_cnt[0]) +); +// @16:694 + FD1S3DX \genblk2.rxs_cnt[1] ( + .D(rxs_cnt_3[1]), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxs_cnt[1]) +); +// @16:806 + FD1P3BX \genblk2.rxp_rst2 ( + .D(rxp_rst25), + .SP(un2_rlos_redge_1_i), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rxp_rst2) +); +// @16:567 + FD1S3DX \genblk2.rlos_p2 ( + .D(rlos_p1), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlos_p2) +); +// @16:567 + FD1S3DX \genblk2.rlos_p1 ( + .D(rx_los_low_s), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlos_p1) +); +// @16:567 + FD1S3BX \genblk2.rlos_db_p1 ( + .D(rlos_db), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlos_db_p1) +); +// @16:640 + FD1S3BX \genblk2.rlos_db_cnt[0] ( + .D(rlos_db_cnt_axb_0), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlos_db_cnt[0]) +); +// @16:640 + FD1S3BX \genblk2.rlos_db_cnt[1] ( + .D(rlos_db_cnt_cry_1_0_S0), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlos_db_cnt[1]) +); +// @16:640 + FD1S3BX \genblk2.rlos_db_cnt[2] ( + .D(rlos_db_cnt_cry_1_0_S1), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlos_db_cnt[2]) +); +// @16:640 + FD1S3BX \genblk2.rlos_db_cnt[3] ( + .D(rlos_db_cnt_s_3_0_S0), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlos_db_cnt[3]) +); +// @16:649 + FD1P3BX \genblk2.rlos_db ( + .D(rlos_db_cnt[1]), + .SP(un1_rlos_db_cnt_max), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlos_db) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[0] ( + .D(rlols0_cnt_s[0]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[0]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[1] ( + .D(rlols0_cnt_s[1]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[1]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[2] ( + .D(rlols0_cnt_s[2]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[2]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[3] ( + .D(rlols0_cnt_s[3]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[3]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[4] ( + .D(rlols0_cnt_s[4]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[4]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[5] ( + .D(rlols0_cnt_s[5]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[5]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[6] ( + .D(rlols0_cnt_s[6]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[6]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[7] ( + .D(rlols0_cnt_s[7]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[7]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[8] ( + .D(rlols0_cnt_s[8]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[8]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[9] ( + .D(rlols0_cnt_s[9]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[9]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[10] ( + .D(rlols0_cnt_s[10]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[10]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[11] ( + .D(rlols0_cnt_s[11]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[11]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[12] ( + .D(rlols0_cnt_s[12]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[12]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[13] ( + .D(rlols0_cnt_s[13]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[13]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[14] ( + .D(rlols0_cnt_s[14]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[14]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[15] ( + .D(rlols0_cnt_s[15]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[15]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[16] ( + .D(rlols0_cnt_s[16]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[16]) +); +// @16:778 + FD1P3DX \genblk2.rlols0_cnt[17] ( + .D(rlols0_cnt_s[17]), + .SP(rlols0_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlols0_cnt[17]) +); +// @16:567 + FD1S3DX \genblk2.rlol_p2 ( + .D(rlol_p1), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol_p2) +); +// @16:567 + FD1S3DX \genblk2.rlol_p1 ( + .D(rx_cdr_lol_s), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol_p1) +); +// @16:567 + FD1S3BX \genblk2.rlol_db_p1 ( + .D(rlol_db), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlol_db_p1) +); +// @16:624 + FD1S3BX \genblk2.rlol_db_cnt[0] ( + .D(rlol_db_cnt_axb_0), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlol_db_cnt[0]) +); +// @16:624 + FD1S3BX \genblk2.rlol_db_cnt[1] ( + .D(rlol_db_cnt_cry_1_0_S0), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlol_db_cnt[1]) +); +// @16:624 + FD1S3BX \genblk2.rlol_db_cnt[2] ( + .D(rlol_db_cnt_cry_1_0_S1), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlol_db_cnt[2]) +); +// @16:624 + FD1S3BX \genblk2.rlol_db_cnt[3] ( + .D(rlol_db_cnt_s_3_0_S0), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlol_db_cnt[3]) +); +// @16:633 + FD1P3BX \genblk2.rlol_db ( + .D(rlol_db_cnt[1]), + .SP(un1_rlol_db_cnt_max), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rlol_db) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[0] ( + .D(rlol1_cnt_s[0]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[0]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[1] ( + .D(rlol1_cnt_s[1]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[1]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[2] ( + .D(rlol1_cnt_s[2]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[2]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[3] ( + .D(rlol1_cnt_s[3]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[3]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[4] ( + .D(rlol1_cnt_s[4]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[4]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[5] ( + .D(rlol1_cnt_s[5]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[5]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[6] ( + .D(rlol1_cnt_s[6]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[6]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[7] ( + .D(rlol1_cnt_s[7]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[7]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[8] ( + .D(rlol1_cnt_s[8]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[8]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[9] ( + .D(rlol1_cnt_s[9]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[9]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[10] ( + .D(rlol1_cnt_s[10]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[10]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[11] ( + .D(rlol1_cnt_s[11]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[11]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[12] ( + .D(rlol1_cnt_s[12]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[12]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[13] ( + .D(rlol1_cnt_s[13]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[13]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[14] ( + .D(rlol1_cnt_s[14]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[14]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[15] ( + .D(rlol1_cnt_s[15]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[15]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[16] ( + .D(rlol1_cnt_s[16]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[16]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[17] ( + .D(rlol1_cnt_s[17]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[17]) +); +// @16:680 + FD1P3DX \genblk2.rlol1_cnt[18] ( + .D(rlol1_cnt_s[18]), + .SP(rlol1_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rlol1_cnt[18]) +); +// @16:865 + FD1S3BX \genblk2.genblk3.rxsdr_appd ( + .D(rxsdr_appd_2), + .CK(rxrefclk), + .PD(rsl_rst), + .Q(rxsdr_appd_4) +); +// @16:900 + FD1P3DX \genblk2.genblk3.rxr_wt_en ( + .D(un3_rx_all_well_1), + .SP(un1_dual_or_rserd_rst_2_i), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_en) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[0] ( + .D(rxr_wt_cnt_s[0]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[0]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[1] ( + .D(rxr_wt_cnt_s[1]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[1]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[2] ( + .D(rxr_wt_cnt_s[2]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[2]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[3] ( + .D(rxr_wt_cnt_s[3]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[3]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[4] ( + .D(rxr_wt_cnt_s[4]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[4]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[5] ( + .D(rxr_wt_cnt_s[5]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[5]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[6] ( + .D(rxr_wt_cnt_s[6]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[6]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[7] ( + .D(rxr_wt_cnt_s[7]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[7]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[8] ( + .D(rxr_wt_cnt_s[8]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[8]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[9] ( + .D(rxr_wt_cnt_s[9]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[9]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[10] ( + .D(rxr_wt_cnt_s[10]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[10]) +); +// @16:909 + FD1P3DX \genblk2.genblk3.rxr_wt_cnt[11] ( + .D(rxr_wt_cnt_s[11]), + .SP(rxr_wt_cnte), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxr_wt_cnt[11]) +); +// @16:871 + FD1P3DX \genblk2.genblk3.rxdpr_appd ( + .D(un1_rui_rst_dual_c_1_1), + .SP(un1_rui_rst_dual_c_1_i), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxdpr_appd) +); +// @16:920 + FD1P3DX \genblk2.genblk3.ruo_rx_rdyr ( + .D(un3_rx_all_well_2), + .SP(rxr_wt_cnt9), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rsl_rx_rdy) +); +// @16:882 + FD1S3DX \genblk2.genblk3.lfor[0].rxsr_appd[0] ( + .D(N_2175_0), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxsr_appd[0]) +); +// @16:888 + FD1P3DX \genblk2.genblk3.lfor[0].rxpr_appd[0] ( + .D(un2_rdo_serdes_rst_dual_c_1), + .SP(un2_rdo_serdes_rst_dual_c_2_i), + .CK(rxrefclk), + .CD(rsl_rst), + .Q(rxpr_appd[0]) +); +// @16:443 + FD1P3DX \genblk1.waita_plol0 ( + .D(plol_fedge), + .SP(un1_plol0_cnt_tc_1_i), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(waita_plol0) +); +// @16:422 + FD1P3DX \genblk1.txs_rst ( + .D(un1_plol_cnt_tc), + .SP(un2_plol_cnt_tc), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txs_rst) +); +// @16:422 + FD1S3DX \genblk1.txs_cnt[0] ( + .D(N_10_i), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txs_cnt[0]) +); +// @16:422 + FD1S3DX \genblk1.txs_cnt[1] ( + .D(txs_cnt_RNO[1]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txs_cnt[1]) +); +// @16:461 + FD1P3DX \genblk1.txp_rst ( + .D(un9_plol0_cnt_tc), + .SP(un1_plol0_cnt_tc_1), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txp_rst) +); +// @16:461 + FD1S3DX \genblk1.txp_cnt[0] ( + .D(N_11_i), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txp_cnt[0]) +); +// @16:461 + FD1S3DX \genblk1.txp_cnt[1] ( + .D(txp_cnt_RNO[1]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txp_cnt[1]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[0] ( + .D(plol_cnt_s[0]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[0]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[1] ( + .D(plol_cnt_s[1]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[1]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[2] ( + .D(plol_cnt_s[2]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[2]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[3] ( + .D(plol_cnt_s[3]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[3]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[4] ( + .D(plol_cnt_s[4]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[4]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[5] ( + .D(plol_cnt_s[5]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[5]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[6] ( + .D(plol_cnt_s[6]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[6]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[7] ( + .D(plol_cnt_s[7]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[7]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[8] ( + .D(plol_cnt_s[8]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[8]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[9] ( + .D(plol_cnt_s[9]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[9]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[10] ( + .D(plol_cnt_s[10]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[10]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[11] ( + .D(plol_cnt_s[11]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[11]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[12] ( + .D(plol_cnt_s[12]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[12]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[13] ( + .D(plol_cnt_s[13]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[13]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[14] ( + .D(plol_cnt_s[14]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[14]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[15] ( + .D(plol_cnt_s[15]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[15]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[16] ( + .D(plol_cnt_s[16]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[16]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[17] ( + .D(plol_cnt_s[17]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[17]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[18] ( + .D(plol_cnt_s[18]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[18]) +); +// @16:412 + FD1S3DX \genblk1.plol_cnt[19] ( + .D(plol_cnt_s[19]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol_cnt[19]) +); +// @16:451 + FD1S3DX \genblk1.plol0_cnt[0] ( + .D(plol0_cnt_3[0]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol0_cnt[0]) +); +// @16:451 + FD1S3DX \genblk1.plol0_cnt[1] ( + .D(plol0_cnt_3[1]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol0_cnt[1]) +); +// @16:451 + FD1S3DX \genblk1.plol0_cnt[2] ( + .D(plol0_cnt_3[2]), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(plol0_cnt[2]) +); +// @16:398 + FD1S3DX \genblk1.pll_lol_p3 ( + .D(pll_lol_p2), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(pll_lol_p3) +); +// @16:398 + FD1S3DX \genblk1.pll_lol_p2 ( + .D(pll_lol_p1), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(pll_lol_p2) +); +// @16:398 + FD1S3DX \genblk1.pll_lol_p1 ( + .D(pll_lock_i), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(pll_lol_p1) +); +// @16:492 + FD1S3BX \genblk1.genblk2.txsr_appd ( + .D(txsr_appd_2), + .CK(pll_refclki), + .PD(rsl_rst), + .Q(txsr_appd_4) +); +// @16:519 + FD1P3DX \genblk1.genblk2.txr_wt_en ( + .D(un1_dual_or_serd_rst_1_1), + .SP(un1_dual_or_serd_rst_1_i), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_en) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[0] ( + .D(txr_wt_cnt_s[0]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[0]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[1] ( + .D(txr_wt_cnt_s[1]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[1]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[2] ( + .D(txr_wt_cnt_s[2]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[2]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[3] ( + .D(txr_wt_cnt_s[3]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[3]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[4] ( + .D(txr_wt_cnt_s[4]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[4]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[5] ( + .D(txr_wt_cnt_s[5]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[5]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[6] ( + .D(txr_wt_cnt_s[6]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[6]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[7] ( + .D(txr_wt_cnt_s[7]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[7]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[8] ( + .D(txr_wt_cnt_s[8]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[8]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[9] ( + .D(txr_wt_cnt_s[9]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[9]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[10] ( + .D(txr_wt_cnt_s[10]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[10]) +); +// @16:527 + FD1P3DX \genblk1.genblk2.txr_wt_cnt[11] ( + .D(txr_wt_cnt_s[11]), + .SP(txr_wt_cnte), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txr_wt_cnt[11]) +); +// @16:498 + FD1P3DX \genblk1.genblk2.txdpr_appd ( + .D(un2_plol_fedge_2), + .SP(un2_plol_fedge_3_i), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txdpr_appd) +); +// @16:537 + FD1P3DX \genblk1.genblk2.ruo_tx_rdyr ( + .D(un2_plol_fedge_5_1), + .SP(un2_plol_fedge_5_i), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(rsl_tx_rdy) +); +// @16:509 + FD1P3DX \genblk1.genblk2.mfor[0].txpr_appd[0] ( + .D(un2_plol_fedge_2), + .SP(un2_plol_fedge_8_i), + .CK(pll_refclki), + .CD(rsl_rst), + .Q(txpr_appd[0]) +); +// @16:422 + LUT4 \genblk1.txs_cnt_RNO[0] ( + .A(txs_cnt[0]), + .B(txs_rst), + .C(un1_plol_cnt_tc), + .D(VCC), + .Z(N_10_i) +); +defparam \genblk1.txs_cnt_RNO[0] .init=16'hA6A6; +// @16:434 + LUT4 \genblk1.txs_cnt_RNO[1] ( + .A(txs_cnt[0]), + .B(txs_cnt[1]), + .C(txs_rst), + .D(un1_plol_cnt_tc), + .Z(txs_cnt_RNO[1]) +); +defparam \genblk1.txs_cnt_RNO[1] .init=16'hCC6C; +// @16:806 + LUT4 \genblk2.rxp_rst2_RNO_0 ( + .A(rlols0_cnt_tc_1), + .B(rlos_redge), + .C(rsl_rx_serdes_rst_c), + .D(rsl_serdes_rst_dual_c), + .Z(un2_rlos_redge_1_i) +); +defparam \genblk2.rxp_rst2_RNO_0 .init=16'hFFFE; +// @16:519 + LUT4 \genblk1.genblk2.txr_wt_en_RNO ( + .A(txpr_appd[0]), + .B(pll_lol_p2), + .C(un1_dual_or_serd_rst_1_1), + .D(rsl_tx_rdy), + .Z(un1_dual_or_serd_rst_1_i) +); +defparam \genblk1.genblk2.txr_wt_en_RNO .init=16'h0F2F; +// @8:395 + LUT4 \genblk2.wait_calib_RNIKRP81 ( + .A(rxs_rst), + .B(wait_calib), + .C(rlol1_cnt_tc_1), + .D(rlos_redge), + .Z(rlol1_cnte) +); +defparam \genblk2.wait_calib_RNIKRP81 .init=16'hFFFE; +// @16:317 + LUT4 \genblk2.rxs_rst6 ( + .A(rlol_db), + .B(rlos_db), + .C(rlol1_cnt_tc_1), + .D(VCC), + .Z(rxs_rst6) +); +defparam \genblk2.rxs_rst6 .init=16'h2020; +// @8:395 + LUT4 \genblk2.waita_rlols0_RNI266C ( + .A(rlols0_cnt11_0), + .B(waita_rlols0), + .C(rlols0_cnt_tc_1), + .D(VCC), + .Z(rlols0_cnte) +); +defparam \genblk2.waita_rlols0_RNI266C .init=16'hFEFE; +// @8:395 + LUT4 \genblk2.genblk3.rxr_wt_en_RNI1B6E ( + .A(rxr_wt_cnt9), + .B(rxr_wt_en), + .C(VCC), + .D(VCC), + .Z(rxr_wt_cnte) +); +defparam \genblk2.genblk3.rxr_wt_en_RNI1B6E .init=16'hEEEE; +// @16:412 + LUT4 \genblk1.plol_cnt11_i ( + .A(pll_lol_p2), + .B(un1_plol_cnt_tc), + .C(rsl_tx_serdes_rst_c), + .D(VCC), + .Z(plol_cnt_scalar) +); +defparam \genblk1.plol_cnt11_i .init=16'h0202; +// @16:778 + LUT4 \genblk2.rlols0_cnt11_i ( + .A(rlols0_cnt11_0), + .B(rlols0_cnt_tc_1), + .C(VCC), + .D(VCC), + .Z(rlols0_cnt_scalar) +); +defparam \genblk2.rlols0_cnt11_i .init=16'h1111; +// @16:317 + LUT4 \genblk2.un1_rxs_cnt_tc ( + .A(rlol_db), + .B(rlos_db), + .C(un8_rxs_cnt_tc), + .D(rlol1_cnt_tc_1), + .Z(un1_rxs_cnt_tc) +); +defparam \genblk2.un1_rxs_cnt_tc .init=16'hFEFC; +// @8:395 + LUT4 \genblk2.wait_calib_RNO ( + .A(rlol_db), + .B(rlos_db), + .C(rlol1_cnt_tc_1), + .D(VCC), + .Z(wait_calib_RNO) +); +defparam \genblk2.wait_calib_RNO .init=16'hA3A3; +// @16:509 + LUT4 \genblk1.genblk2.mfor[0].txpr_appd_RNO[0] ( + .A(dual_or_serd_rst), + .B(un2_rdo_tx_pcs_rst_c), + .C(pll_lol_p2), + .D(txsr_appd_4), + .Z(un2_plol_fedge_8_i) +); +defparam \genblk1.genblk2.mfor[0].txpr_appd_RNO[0] .init=16'hFEFA; +// @16:900 + LUT4 \genblk2.genblk3.rxr_wt_en_RNO_0 ( + .A(un17_rxr_wt_tc), + .B(un1_dual_or_rserd_rst_2_0), + .C(rsl_rx_serdes_rst_c), + .D(rsl_serdes_rst_dual_c), + .Z(un1_dual_or_rserd_rst_2_i) +); +defparam \genblk2.genblk3.rxr_wt_en_RNO_0 .init=16'hFFFB; +// @16:888 + LUT4 \genblk2.genblk3.lfor[0].rxpr_appd_RNO[0] ( + .A(un1_rxsdr_or_sr_appd_0), + .B(un2_rdo_serdes_rst_dual_c_2_0), + .C(rsl_rx_pcs_rst_c), + .D(rsl_rx_serdes_rst_c), + .Z(un2_rdo_serdes_rst_dual_c_2_i) +); +defparam \genblk2.genblk3.lfor[0].rxpr_appd_RNO[0] .init=16'hFFB3; +// @16:871 + LUT4 \genblk2.genblk3.rxdpr_appd_RNO ( + .A(un1_rui_rst_dual_c_1_1), + .B(rst_dual_c), + .C(VCC), + .D(VCC), + .Z(un1_rui_rst_dual_c_1_i) +); +defparam \genblk2.genblk3.rxdpr_appd_RNO .init=16'hDDDD; +// @16:259 + LUT4 \genblk1.un2_plol_cnt_tc ( + .A(txs_cnt[0]), + .B(txs_cnt[1]), + .C(un1_plol_cnt_tc), + .D(VCC), + .Z(un2_plol_cnt_tc) +); +defparam \genblk1.un2_plol_cnt_tc .init=16'hF8F8; +// @8:395 + LUT4 \genblk1.genblk2.txr_wt_en_RNI1JHS ( + .A(txr_wt_cnt9), + .B(txr_wt_en), + .C(VCC), + .D(VCC), + .Z(txr_wt_cnte) +); +defparam \genblk1.genblk2.txr_wt_en_RNI1JHS .init=16'hEEEE; +// @16:913 + LUT4 \genblk2.genblk3.rxr_wt_cnt9 ( + .A(un17_rxr_wt_tc), + .B(rlol_db), + .C(rlos_db), + .D(rx_any_rst), + .Z(rxr_wt_cnt9) +); +defparam \genblk2.genblk3.rxr_wt_cnt9 .init=16'hFFFE; +// @16:340 + LUT4 \genblk2.un1_rlols0_cnt_tc ( + .A(rlols0_cnt11_0), + .B(waita_rlols06), + .C(rlols0_cnt_tc_1), + .D(VCC), + .Z(un1_rlols0_cnt_tc) +); +defparam \genblk2.un1_rlols0_cnt_tc .init=16'hFEFE; +// @16:322 + LUT4 \genblk2.un1_rlos_fedge_1 ( + .A(rlos_db), + .B(rlos_db_p1), + .C(rlol1_cnt_tc_1), + .D(VCC), + .Z(un1_rlos_fedge_1) +); +defparam \genblk2.un1_rlos_fedge_1 .init=16'hF6F6; +// @16:498 + LUT4 \genblk1.genblk2.txdpr_appd_RNO ( + .A(dual_or_serd_rst), + .B(pll_lol_p2), + .C(rst_dual_c), + .D(VCC), + .Z(un2_plol_fedge_3_i) +); +defparam \genblk1.genblk2.txdpr_appd_RNO .init=16'hFEFE; +// @16:461 + LUT4 \genblk1.txp_cnt_RNO[0] ( + .A(txp_cnt[0]), + .B(txp_rst), + .C(un9_plol0_cnt_tc), + .D(VCC), + .Z(N_11_i) +); +defparam \genblk1.txp_cnt_RNO[0] .init=16'hA6A6; +// @16:473 + LUT4 \genblk1.txp_cnt_RNO[1] ( + .A(txp_cnt[0]), + .B(txp_cnt[1]), + .C(txp_rst), + .D(un9_plol0_cnt_tc), + .Z(txp_cnt_RNO[1]) +); +defparam \genblk1.txp_cnt_RNO[1] .init=16'hCC6C; +// @16:366 + LUT4 un3_rx_all_well_2_cZ ( + .A(rlol_db), + .B(rlos_db), + .C(rx_any_rst), + .D(VCC), + .Z(un3_rx_all_well_2) +); +defparam un3_rx_all_well_2_cZ.init=16'h0101; +// @16:530 + LUT4 \genblk1.genblk2.txr_wt_cnt9 ( + .A(dual_or_serd_rst), + .B(un18_txr_wt_tc), + .C(rsl_tx_pcs_rst_c), + .D(rst_dual_c), + .Z(txr_wt_cnt9) +); +defparam \genblk1.genblk2.txr_wt_cnt9 .init=16'hFFFE; +// @16:282 + LUT4 un2_plol_fedge_5_1_cZ ( + .A(dual_or_serd_rst), + .B(pll_lol_p2), + .C(rsl_tx_pcs_rst_c), + .D(rst_dual_c), + .Z(un2_plol_fedge_5_1) +); +defparam un2_plol_fedge_5_1_cZ.init=16'h0001; +// @16:388 + LUT4 rlols0_cnt_tc_1_cZ ( + .A(rlols0_cnt_tc_1_10), + .B(rlols0_cnt_tc_1_11), + .C(rlols0_cnt_tc_1_12), + .D(rlols0_cnt_tc_1_13), + .Z(rlols0_cnt_tc_1) +); +defparam rlols0_cnt_tc_1_cZ.init=16'h8000; +// @16:387 + LUT4 rlol1_cnt_tc_1_cZ ( + .A(rlol1_cnt_tc_1_11), + .B(rlol1_cnt_tc_1_12), + .C(rlol1_cnt_tc_1_13), + .D(rlol1_cnt_tc_1_14), + .Z(rlol1_cnt_tc_1) +); +defparam rlol1_cnt_tc_1_cZ.init=16'h8000; +// @16:386 + LUT4 \genblk1.un1_plol_cnt_tc ( + .A(un1_plol_cnt_tc_11), + .B(un1_plol_cnt_tc_12), + .C(un1_plol_cnt_tc_13), + .D(un1_plol_cnt_tc_14), + .Z(un1_plol_cnt_tc) +); +defparam \genblk1.un1_plol_cnt_tc .init=16'h8000; +// @16:625 + LUT4 \un1_genblk2.rlol_db_cnt_axb_0 ( + .A(rlol_db_cnt[0]), + .B(un1_rlol_db_cnt_zero[0]), + .C(VCC), + .D(VCC), + .Z(rlol_db_cnt_axb_0) +); +defparam \un1_genblk2.rlol_db_cnt_axb_0 .init=16'h9999; +// @16:641 + LUT4 \un1_genblk2.rlos_db_cnt_axb_0 ( + .A(rlos_db_cnt[0]), + .B(un1_rlos_db_cnt_zero[0]), + .C(VCC), + .D(VCC), + .Z(rlos_db_cnt_axb_0) +); +defparam \un1_genblk2.rlos_db_cnt_axb_0 .init=16'h9999; +// @16:443 + LUT4 \genblk1.waita_plol0_RNO ( + .A(pll_lol_p2), + .B(pll_lol_p3), + .C(un9_plol0_cnt_tc), + .D(VCC), + .Z(un1_plol0_cnt_tc_1_i) +); +defparam \genblk1.waita_plol0_RNO .init=16'hF6F6; +// @16:452 + LUT4 \genblk1.plol0_cnt_3[2] ( + .A(CO0_2), + .B(plol0_cnt9), + .C(plol0_cnt[1]), + .D(plol0_cnt[2]), + .Z(plol0_cnt_3[2]) +); +defparam \genblk1.plol0_cnt_3[2] .init=16'h1320; +// @16:452 + LUT4 \genblk1.plol0_cnt_3[0] ( + .A(plol0_cnt9), + .B(plol0_cnt[0]), + .C(waita_plol0), + .D(VCC), + .Z(plol0_cnt_3[0]) +); +defparam \genblk1.plol0_cnt_3[0] .init=16'h1414; +// @16:211 + LUT4 un1_rui_rst_dual_c_1_1_cZ ( + .A(rlol_db), + .B(rlos_db), + .C(rsl_rx_serdes_rst_c), + .D(rsl_serdes_rst_dual_c), + .Z(un1_rui_rst_dual_c_1_1) +); +defparam un1_rui_rst_dual_c_1_1_cZ.init=16'h0001; +// @16:891 + LUT4 un2_rdo_serdes_rst_dual_c_1_cZ ( + .A(rsl_rx_serdes_rst_c), + .B(rsl_serdes_rst_dual_c), + .C(rx_cdr_lol_s), + .D(rx_los_low_s), + .Z(un2_rdo_serdes_rst_dual_c_1) +); +defparam un2_rdo_serdes_rst_dual_c_1_cZ.init=16'h0001; +// @16:493 + LUT4 \genblk1.genblk2.txsr_appd_2 ( + .A(dual_or_serd_rst), + .B(txsr_appd_4), + .C(VCC), + .D(VCC), + .Z(txsr_appd_2) +); +defparam \genblk1.genblk2.txsr_appd_2 .init=16'hEEEE; +// @16:535 + LUT4 \genblk1.genblk2.un18_txr_wt_tc ( + .A(un18_txr_wt_tc_6), + .B(un18_txr_wt_tc_7), + .C(un18_txr_wt_tc_8), + .D(VCC), + .Z(un18_txr_wt_tc) +); +defparam \genblk1.genblk2.un18_txr_wt_tc .init=16'h8080; +// @16:211 + LUT4 un2_plol_fedge_2_cZ ( + .A(pll_lol_p2), + .B(rsl_serdes_rst_dual_c), + .C(rsl_tx_serdes_rst_c), + .D(VCC), + .Z(un2_plol_fedge_2) +); +defparam un2_plol_fedge_2_cZ.init=16'h0101; +// @16:863 + LUT4 rx_any_rst_cZ ( + .A(rsl_rx_pcs_rst_c), + .B(rsl_rx_serdes_rst_c), + .C(rsl_serdes_rst_dual_c), + .D(rst_dual_c), + .Z(rx_any_rst) +); +defparam rx_any_rst_cZ.init=16'hFFFE; +// @16:535 + LUT4 \genblk2.genblk3.un17_rxr_wt_tc ( + .A(un17_rxr_wt_tc_6), + .B(un17_rxr_wt_tc_7), + .C(un17_rxr_wt_tc_8), + .D(VCC), + .Z(un17_rxr_wt_tc) +); +defparam \genblk2.genblk3.un17_rxr_wt_tc .init=16'h8080; +// @16:219 + LUT4 \un1_rlol_db_cnt_zero_bm_cZ[0] ( + .A(rlol_db_cnt[0]), + .B(rlol_db_cnt[1]), + .C(rlol_db_cnt[2]), + .D(rlol_db_cnt[3]), + .Z(un1_rlol_db_cnt_zero_bm[0]) +); +defparam \un1_rlol_db_cnt_zero_bm_cZ[0] .init=16'h8000; +// @16:219 + PFUMX \un1_rlol_db_cnt_zero_cZ[0] ( + .ALUT(un1_rlol_db_cnt_zero_bm[0]), + .BLUT(un1_rlol_db_cnt_zero_am[0]), + .C0(rlol_p2), + .Z(un1_rlol_db_cnt_zero[0]) +); +// @16:219 + LUT4 \un1_rlos_db_cnt_zero_bm_cZ[0] ( + .A(rlos_db_cnt[0]), + .B(rlos_db_cnt[1]), + .C(rlos_db_cnt[2]), + .D(rlos_db_cnt[3]), + .Z(un1_rlos_db_cnt_zero_bm[0]) +); +defparam \un1_rlos_db_cnt_zero_bm_cZ[0] .init=16'h8000; +// @16:219 + PFUMX \un1_rlos_db_cnt_zero_cZ[0] ( + .ALUT(un1_rlos_db_cnt_zero_bm[0]), + .BLUT(un1_rlos_db_cnt_zero_am[0]), + .C0(rlos_p2), + .Z(un1_rlos_db_cnt_zero[0]) +); +// @16:708 + LUT4 \rxs_cnt_3_cZ[1] ( + .A(rxs_cnt[0]), + .B(rxs_cnt[1]), + .C(rxs_rst), + .D(VCC), + .Z(rxs_cnt_3[1]) +); +defparam \rxs_cnt_3_cZ[1] .init=16'h6464; +// @16:269 + LUT4 \genblk1.un1_plol0_cnt_tc_1 ( + .A(txp_cnt[0]), + .B(txp_cnt[1]), + .C(un9_plol0_cnt_tc), + .D(VCC), + .Z(un1_plol0_cnt_tc_1) +); +defparam \genblk1.un1_plol0_cnt_tc_1 .init=16'hF8F8; +// @16:309 + LUT4 \genblk2.un1_rlol_db_cnt_max ( + .A(rlol_db_cnt[0]), + .B(rlol_db_cnt[1]), + .C(rlol_db_cnt[2]), + .D(rlol_db_cnt[3]), + .Z(un1_rlol_db_cnt_max) +); +defparam \genblk2.un1_rlol_db_cnt_max .init=16'h8001; +// @16:315 + LUT4 \genblk2.un1_rlos_db_cnt_max ( + .A(rlos_db_cnt[0]), + .B(rlos_db_cnt[1]), + .C(rlos_db_cnt[2]), + .D(rlos_db_cnt[3]), + .Z(un1_rlos_db_cnt_max) +); +defparam \genblk2.un1_rlos_db_cnt_max .init=16'h8001; +// @16:764 + LUT4 \genblk2.waita_rlols06 ( + .A(rlol_db), + .B(rlol_db_p1), + .C(rlos_db), + .D(rlos_db_p1), + .Z(waita_rlols06) +); +defparam \genblk2.waita_rlols06 .init=16'h0504; +// @16:388 + LUT4 rlols0_cnt_tc_1_13_cZ ( + .A(rlols0_cnt[16]), + .B(rlols0_cnt[17]), + .C(rlols0_cnt_tc_1_9), + .D(VCC), + .Z(rlols0_cnt_tc_1_13) +); +defparam rlols0_cnt_tc_1_13_cZ.init=16'h1010; +// @16:386 + LUT4 \genblk1.un1_plol_cnt_tc_14 ( + .A(plol_cnt[5]), + .B(plol_cnt[10]), + .C(plol_cnt[18]), + .D(un1_plol_cnt_tc_10), + .Z(un1_plol_cnt_tc_14) +); +defparam \genblk1.un1_plol_cnt_tc_14 .init=16'h0100; +// @16:387 + LUT4 rlol1_cnt_tc_1_14_cZ ( + .A(rlol1_cnt[12]), + .B(rlol1_cnt[13]), + .C(rlol1_cnt[18]), + .D(rlol1_cnt_tc_1_10), + .Z(rlol1_cnt_tc_1_14) +); +defparam rlol1_cnt_tc_1_14_cZ.init=16'h0100; +// @16:891 + LUT4 un2_rdo_serdes_rst_dual_c_2_0_cZ ( + .A(rsl_serdes_rst_dual_c), + .B(rx_cdr_lol_s), + .C(rx_los_low_s), + .D(VCC), + .Z(un2_rdo_serdes_rst_dual_c_2_0) +); +defparam un2_rdo_serdes_rst_dual_c_2_0_cZ.init=16'h0101; +// @16:904 + LUT4 un1_dual_or_rserd_rst_2_0_cZ ( + .A(un3_rx_all_well_2_1), + .B(rlol_db), + .C(rlos_db), + .D(VCC), + .Z(un1_dual_or_rserd_rst_2_0) +); +defparam un1_dual_or_rserd_rst_2_0_cZ.init=16'h0101; +// @16:708 + LUT4 \rxs_cnt_3_cZ[0] ( + .A(rxs_cnt[0]), + .B(rxs_cnt[1]), + .C(rxs_rst), + .D(VCC), + .Z(rxs_cnt_3[0]) +); +defparam \rxs_cnt_3_cZ[0] .init=16'h5252; +// @16:743 + LUT4 \rdo_rx_serdes_rst_c_1[0] ( + .A(rsl_disable), + .B(rxs_rst), + .C(rx_serdes_rst_c), + .D(VCC), + .Z(rsl_rx_serdes_rst_c) +); +defparam \rdo_rx_serdes_rst_c_1[0] .init=16'hF4F4; +// @16:479 + LUT4 \rdo_tx_pcs_rst_c_1[0] ( + .A(rsl_disable), + .B(txp_rst), + .C(tx_pcs_rst_c), + .D(VCC), + .Z(rsl_tx_pcs_rst_c) +); +defparam \rdo_tx_pcs_rst_c_1[0] .init=16'hF4F4; +// @16:438 + LUT4 rdo_tx_serdes_rst_c ( + .A(rsl_disable), + .B(txs_rst), + .C(tx_serdes_rst_c), + .D(VCC), + .Z(rsl_tx_serdes_rst_c) +); +defparam rdo_tx_serdes_rst_c.init=16'hF4F4; +// @16:375 + LUT4 rdo_serdes_rst_dual_c ( + .A(rsl_disable), + .B(rsl_rst), + .C(serdes_rst_dual_c), + .D(VCC), + .Z(rsl_serdes_rst_dual_c) +); +defparam rdo_serdes_rst_dual_c.init=16'hF4F4; +// @16:906 + LUT4 \genblk2.genblk3.un3_rx_all_well_2_1 ( + .A(rxpr_appd[0]), + .B(rxdpr_appd), + .C(rsl_rx_rdy), + .D(VCC), + .Z(un3_rx_all_well_2_1) +); +defparam \genblk2.genblk3.un3_rx_all_well_2_1 .init=16'h0E0E; +// @16:852 + LUT4 \rdo_rx_pcs_rst_c_1[0] ( + .A(rsl_disable), + .B(rxp_rst2), + .C(rx_pcs_rst_c), + .D(VCC), + .Z(rsl_rx_pcs_rst_c) +); +defparam \rdo_rx_pcs_rst_c_1[0] .init=16'hF4F4; +// @16:459 + LUT4 \genblk1.un9_plol0_cnt_tc ( + .A(plol0_cnt[0]), + .B(plol0_cnt[1]), + .C(plol0_cnt[2]), + .D(VCC), + .Z(un9_plol0_cnt_tc) +); +defparam \genblk1.un9_plol0_cnt_tc .init=16'h1010; +// @16:893 + LUT4 \genblk2.genblk3.lfor[0].un1_rxsdr_or_sr_appd_0 ( + .A(rxsr_appd[0]), + .B(rlol_db), + .C(rlos_db), + .D(rxsdr_appd_4), + .Z(un1_rxsdr_or_sr_appd_0) +); +defparam \genblk2.genblk3.lfor[0].un1_rxsdr_or_sr_appd_0 .init=16'hFCA8; +// @16:535 + LUT4 \genblk1.genblk2.un18_txr_wt_tc_6 ( + .A(txr_wt_cnt[0]), + .B(txr_wt_cnt[8]), + .C(txr_wt_cnt[9]), + .D(txr_wt_cnt[11]), + .Z(un18_txr_wt_tc_6) +); +defparam \genblk1.genblk2.un18_txr_wt_tc_6 .init=16'h4000; +// @16:535 + LUT4 \genblk1.genblk2.un18_txr_wt_tc_7 ( + .A(txr_wt_cnt[3]), + .B(txr_wt_cnt[4]), + .C(txr_wt_cnt[5]), + .D(txr_wt_cnt[7]), + .Z(un18_txr_wt_tc_7) +); +defparam \genblk1.genblk2.un18_txr_wt_tc_7 .init=16'h8000; +// @16:535 + LUT4 \genblk1.genblk2.un18_txr_wt_tc_8 ( + .A(txr_wt_cnt[1]), + .B(txr_wt_cnt[2]), + .C(txr_wt_cnt[6]), + .D(txr_wt_cnt[10]), + .Z(un18_txr_wt_tc_8) +); +defparam \genblk1.genblk2.un18_txr_wt_tc_8 .init=16'h0001; +// @16:535 + LUT4 \genblk2.genblk3.un17_rxr_wt_tc_6 ( + .A(rxr_wt_cnt[3]), + .B(rxr_wt_cnt[4]), + .C(rxr_wt_cnt[5]), + .D(rxr_wt_cnt[7]), + .Z(un17_rxr_wt_tc_6) +); +defparam \genblk2.genblk3.un17_rxr_wt_tc_6 .init=16'h8000; +// @16:535 + LUT4 \genblk2.genblk3.un17_rxr_wt_tc_7 ( + .A(rxr_wt_cnt[0]), + .B(rxr_wt_cnt[8]), + .C(rxr_wt_cnt[9]), + .D(rxr_wt_cnt[11]), + .Z(un17_rxr_wt_tc_7) +); +defparam \genblk2.genblk3.un17_rxr_wt_tc_7 .init=16'h4000; +// @16:535 + LUT4 \genblk2.genblk3.un17_rxr_wt_tc_8 ( + .A(rxr_wt_cnt[1]), + .B(rxr_wt_cnt[2]), + .C(rxr_wt_cnt[6]), + .D(rxr_wt_cnt[10]), + .Z(un17_rxr_wt_tc_8) +); +defparam \genblk2.genblk3.un17_rxr_wt_tc_8 .init=16'h0001; +// @16:388 + LUT4 rlols0_cnt_tc_1_9_cZ ( + .A(rlols0_cnt[9]), + .B(rlols0_cnt[11]), + .C(rlols0_cnt[12]), + .D(rlols0_cnt[13]), + .Z(rlols0_cnt_tc_1_9) +); +defparam rlols0_cnt_tc_1_9_cZ.init=16'h0001; +// @16:388 + LUT4 rlols0_cnt_tc_1_10_cZ ( + .A(rlols0_cnt[5]), + .B(rlols0_cnt[6]), + .C(rlols0_cnt[7]), + .D(rlols0_cnt[8]), + .Z(rlols0_cnt_tc_1_10) +); +defparam rlols0_cnt_tc_1_10_cZ.init=16'h0001; +// @16:388 + LUT4 rlols0_cnt_tc_1_11_cZ ( + .A(rlols0_cnt[1]), + .B(rlols0_cnt[2]), + .C(rlols0_cnt[3]), + .D(rlols0_cnt[4]), + .Z(rlols0_cnt_tc_1_11) +); +defparam rlols0_cnt_tc_1_11_cZ.init=16'h0001; +// @16:388 + LUT4 rlols0_cnt_tc_1_12_cZ ( + .A(rlols0_cnt[0]), + .B(rlols0_cnt[10]), + .C(rlols0_cnt[14]), + .D(rlols0_cnt[15]), + .Z(rlols0_cnt_tc_1_12) +); +defparam rlols0_cnt_tc_1_12_cZ.init=16'h4000; +// @16:386 + LUT4 \genblk1.un1_plol_cnt_tc_10 ( + .A(plol_cnt[1]), + .B(plol_cnt[6]), + .C(plol_cnt[7]), + .D(plol_cnt[12]), + .Z(un1_plol_cnt_tc_10) +); +defparam \genblk1.un1_plol_cnt_tc_10 .init=16'h0080; +// @16:386 + LUT4 \genblk1.un1_plol_cnt_tc_11 ( + .A(plol_cnt[8]), + .B(plol_cnt[9]), + .C(plol_cnt[11]), + .D(plol_cnt[13]), + .Z(un1_plol_cnt_tc_11) +); +defparam \genblk1.un1_plol_cnt_tc_11 .init=16'h8000; +// @16:386 + LUT4 \genblk1.un1_plol_cnt_tc_12 ( + .A(plol_cnt[14]), + .B(plol_cnt[15]), + .C(plol_cnt[16]), + .D(plol_cnt[17]), + .Z(un1_plol_cnt_tc_12) +); +defparam \genblk1.un1_plol_cnt_tc_12 .init=16'h8000; +// @16:386 + LUT4 \genblk1.un1_plol_cnt_tc_13 ( + .A(plol_cnt[2]), + .B(plol_cnt[3]), + .C(plol_cnt[4]), + .D(plol_cnt[19]), + .Z(un1_plol_cnt_tc_13) +); +defparam \genblk1.un1_plol_cnt_tc_13 .init=16'h0100; +// @16:387 + LUT4 rlol1_cnt_tc_1_10_cZ ( + .A(rlol1_cnt[14]), + .B(rlol1_cnt[15]), + .C(rlol1_cnt[16]), + .D(rlol1_cnt[17]), + .Z(rlol1_cnt_tc_1_10) +); +defparam rlol1_cnt_tc_1_10_cZ.init=16'h0800; +// @16:387 + LUT4 rlol1_cnt_tc_1_11_cZ ( + .A(rlol1_cnt[0]), + .B(rlol1_cnt[1]), + .C(rlol1_cnt[2]), + .D(rlol1_cnt[3]), + .Z(rlol1_cnt_tc_1_11) +); +defparam rlol1_cnt_tc_1_11_cZ.init=16'h0001; +// @16:387 + LUT4 rlol1_cnt_tc_1_12_cZ ( + .A(rlol1_cnt[4]), + .B(rlol1_cnt[5]), + .C(rlol1_cnt[6]), + .D(rlol1_cnt[7]), + .Z(rlol1_cnt_tc_1_12) +); +defparam rlol1_cnt_tc_1_12_cZ.init=16'h0001; +// @16:387 + LUT4 rlol1_cnt_tc_1_13_cZ ( + .A(rlol1_cnt[8]), + .B(rlol1_cnt[9]), + .C(rlol1_cnt[10]), + .D(rlol1_cnt[11]), + .Z(rlol1_cnt_tc_1_13) +); +defparam rlol1_cnt_tc_1_13_cZ.init=16'h0001; +// @16:457 + LUT4 \genblk1.plol0_cnt_3_RNO[2] ( + .A(plol0_cnt[0]), + .B(waita_plol0), + .C(VCC), + .D(VCC), + .Z(CO0_2) +); +defparam \genblk1.plol0_cnt_3_RNO[2] .init=16'h8888; +// @16:441 + LUT4 plol_fedge_cZ ( + .A(pll_lol_p2), + .B(pll_lol_p3), + .C(VCC), + .D(VCC), + .Z(plol_fedge) +); +defparam plol_fedge_cZ.init=16'h4444; +// @16:436 + LUT4 \genblk2.un8_rxs_cnt_tc ( + .A(rxs_cnt[0]), + .B(rxs_cnt[1]), + .C(VCC), + .D(VCC), + .Z(un8_rxs_cnt_tc) +); +defparam \genblk2.un8_rxs_cnt_tc .init=16'h8888; +// @16:757 + LUT4 rlos_redge_cZ ( + .A(rlos_db), + .B(rlos_db_p1), + .C(VCC), + .D(VCC), + .Z(rlos_redge) +); +defparam rlos_redge_cZ.init=16'h2222; +// @16:866 + LUT4 \genblk2.genblk3.rxsdr_appd_2 ( + .A(rxsdr_appd_4), + .B(serdes_rst_dual_c), + .C(VCC), + .D(VCC), + .Z(rxsdr_appd_2) +); +defparam \genblk2.genblk3.rxsdr_appd_2 .init=16'hEEEE; +// @16:219 + LUT4 \un1_rlos_db_cnt_zero_am_cZ[0] ( + .A(rlos_db_cnt[0]), + .B(rlos_db_cnt[1]), + .C(rlos_db_cnt[2]), + .D(rlos_db_cnt[3]), + .Z(un1_rlos_db_cnt_zero_am[0]) +); +defparam \un1_rlos_db_cnt_zero_am_cZ[0] .init=16'h0001; +// @16:219 + LUT4 \un1_rlol_db_cnt_zero_am_cZ[0] ( + .A(rlol_db_cnt[0]), + .B(rlol_db_cnt[1]), + .C(rlol_db_cnt[2]), + .D(rlol_db_cnt[3]), + .Z(un1_rlol_db_cnt_zero_am[0]) +); +defparam \un1_rlol_db_cnt_zero_am_cZ[0] .init=16'h0001; +// @16:488 + LUT4 dual_or_serd_rst_cZ ( + .A(rsl_serdes_rst_dual_c), + .B(tx_serdes_rst_c), + .C(txs_rst), + .D(rsl_disable), + .Z(dual_or_serd_rst) +); +defparam dual_or_serd_rst_cZ.init=16'hEEFE; +// @16:454 + LUT4 \genblk1.plol0_cnt9 ( + .A(pll_lol_p2), + .B(plol0_cnt[2]), + .C(plol0_cnt[1]), + .D(plol0_cnt[0]), + .Z(plol0_cnt9) +); +defparam \genblk1.plol0_cnt9 .init=16'hAAAE; +// @16:783 + LUT4 \genblk2.rlols0_cnt11_0 ( + .A(rlol_db_p1), + .B(rlol_db), + .C(rlos_db_p1), + .D(rlos_db), + .Z(rlols0_cnt11_0) +); +defparam \genblk2.rlols0_cnt11_0 .init=16'h4F44; + CCU2C \genblk2.rlol1_cnt_cry_0[0] ( + .A0(VCC), + .B0(rlol1_cnt_scalar), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_7), + .COUT(rlol1_cnt_cry[0]), + .S0(rlol1_cnt_cry_0_S0[0]), + .S1(rlol1_cnt_s[0]) +); +defparam \genblk2.rlol1_cnt_cry_0[0] .INIT0=16'h500c; +defparam \genblk2.rlol1_cnt_cry_0[0] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[0] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[0] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[1] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[1]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[2]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[0]), + .COUT(rlol1_cnt_cry[2]), + .S0(rlol1_cnt_s[1]), + .S1(rlol1_cnt_s[2]) +); +defparam \genblk2.rlol1_cnt_cry_0[1] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[1] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[1] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[1] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[3] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[3]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[4]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[2]), + .COUT(rlol1_cnt_cry[4]), + .S0(rlol1_cnt_s[3]), + .S1(rlol1_cnt_s[4]) +); +defparam \genblk2.rlol1_cnt_cry_0[3] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[3] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[3] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[3] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[5] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[5]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[6]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[4]), + .COUT(rlol1_cnt_cry[6]), + .S0(rlol1_cnt_s[5]), + .S1(rlol1_cnt_s[6]) +); +defparam \genblk2.rlol1_cnt_cry_0[5] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[5] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[5] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[5] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[7] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[7]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[8]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[6]), + .COUT(rlol1_cnt_cry[8]), + .S0(rlol1_cnt_s[7]), + .S1(rlol1_cnt_s[8]) +); +defparam \genblk2.rlol1_cnt_cry_0[7] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[7] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[7] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[7] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[9] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[9]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[10]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[8]), + .COUT(rlol1_cnt_cry[10]), + .S0(rlol1_cnt_s[9]), + .S1(rlol1_cnt_s[10]) +); +defparam \genblk2.rlol1_cnt_cry_0[9] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[9] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[9] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[9] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[11] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[11]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[12]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[10]), + .COUT(rlol1_cnt_cry[12]), + .S0(rlol1_cnt_s[11]), + .S1(rlol1_cnt_s[12]) +); +defparam \genblk2.rlol1_cnt_cry_0[11] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[11] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[11] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[11] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[13] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[13]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[14]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[12]), + .COUT(rlol1_cnt_cry[14]), + .S0(rlol1_cnt_s[13]), + .S1(rlol1_cnt_s[14]) +); +defparam \genblk2.rlol1_cnt_cry_0[13] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[13] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[13] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[13] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[15] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[15]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[16]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[14]), + .COUT(rlol1_cnt_cry[16]), + .S0(rlol1_cnt_s[15]), + .S1(rlol1_cnt_s[16]) +); +defparam \genblk2.rlol1_cnt_cry_0[15] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[15] .INIT1=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[15] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[15] .INJECT1_1="NO"; +// @16:680 + CCU2C \genblk2.rlol1_cnt_cry_0[17] ( + .A0(rlol1_cnt_scalar), + .B0(rlol1_cnt[17]), + .C0(VCC), + .D0(VCC), + .A1(rlol1_cnt_scalar), + .B1(rlol1_cnt[18]), + .C1(VCC), + .D1(VCC), + .CIN(rlol1_cnt_cry[16]), + .COUT(rlol1_cnt_cry_0_COUT[17]), + .S0(rlol1_cnt_s[17]), + .S1(rlol1_cnt_s[18]) +); +defparam \genblk2.rlol1_cnt_cry_0[17] .INIT0=16'h8000; +defparam \genblk2.rlol1_cnt_cry_0[17] .INIT1=16'h800a; +defparam \genblk2.rlol1_cnt_cry_0[17] .INJECT1_0="NO"; +defparam \genblk2.rlol1_cnt_cry_0[17] .INJECT1_1="NO"; + CCU2C \genblk2.rlols0_cnt_cry_0[0] ( + .A0(VCC), + .B0(rlols0_cnt_scalar), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_6), + .COUT(rlols0_cnt_cry[0]), + .S0(rlols0_cnt_cry_0_S0[0]), + .S1(rlols0_cnt_s[0]) +); +defparam \genblk2.rlols0_cnt_cry_0[0] .INIT0=16'h500c; +defparam \genblk2.rlols0_cnt_cry_0[0] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[0] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[0] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_cry_0[1] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[1]), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[2]), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[0]), + .COUT(rlols0_cnt_cry[2]), + .S0(rlols0_cnt_s[1]), + .S1(rlols0_cnt_s[2]) +); +defparam \genblk2.rlols0_cnt_cry_0[1] .INIT0=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[1] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[1] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[1] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_cry_0[3] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[3]), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[4]), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[2]), + .COUT(rlols0_cnt_cry[4]), + .S0(rlols0_cnt_s[3]), + .S1(rlols0_cnt_s[4]) +); +defparam \genblk2.rlols0_cnt_cry_0[3] .INIT0=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[3] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[3] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[3] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_cry_0[5] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[5]), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[6]), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[4]), + .COUT(rlols0_cnt_cry[6]), + .S0(rlols0_cnt_s[5]), + .S1(rlols0_cnt_s[6]) +); +defparam \genblk2.rlols0_cnt_cry_0[5] .INIT0=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[5] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[5] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[5] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_cry_0[7] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[7]), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[8]), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[6]), + .COUT(rlols0_cnt_cry[8]), + .S0(rlols0_cnt_s[7]), + .S1(rlols0_cnt_s[8]) +); +defparam \genblk2.rlols0_cnt_cry_0[7] .INIT0=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[7] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[7] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[7] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_cry_0[9] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[9]), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[10]), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[8]), + .COUT(rlols0_cnt_cry[10]), + .S0(rlols0_cnt_s[9]), + .S1(rlols0_cnt_s[10]) +); +defparam \genblk2.rlols0_cnt_cry_0[9] .INIT0=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[9] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[9] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[9] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_cry_0[11] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[11]), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[12]), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[10]), + .COUT(rlols0_cnt_cry[12]), + .S0(rlols0_cnt_s[11]), + .S1(rlols0_cnt_s[12]) +); +defparam \genblk2.rlols0_cnt_cry_0[11] .INIT0=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[11] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[11] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[11] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_cry_0[13] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[13]), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[14]), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[12]), + .COUT(rlols0_cnt_cry[14]), + .S0(rlols0_cnt_s[13]), + .S1(rlols0_cnt_s[14]) +); +defparam \genblk2.rlols0_cnt_cry_0[13] .INIT0=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[13] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[13] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[13] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_cry_0[15] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[15]), + .C0(VCC), + .D0(VCC), + .A1(rlols0_cnt_scalar), + .B1(rlols0_cnt[16]), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[14]), + .COUT(rlols0_cnt_cry[16]), + .S0(rlols0_cnt_s[15]), + .S1(rlols0_cnt_s[16]) +); +defparam \genblk2.rlols0_cnt_cry_0[15] .INIT0=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[15] .INIT1=16'h8000; +defparam \genblk2.rlols0_cnt_cry_0[15] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_cry_0[15] .INJECT1_1="NO"; +// @16:778 + CCU2C \genblk2.rlols0_cnt_s_0[17] ( + .A0(rlols0_cnt_scalar), + .B0(rlols0_cnt[17]), + .C0(VCC), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(rlols0_cnt_cry[16]), + .COUT(rlols0_cnt_s_0_COUT[17]), + .S0(rlols0_cnt_s[17]), + .S1(rlols0_cnt_s_0_S1[17]) +); +defparam \genblk2.rlols0_cnt_s_0[17] .INIT0=16'h800a; +defparam \genblk2.rlols0_cnt_s_0[17] .INIT1=16'h5003; +defparam \genblk2.rlols0_cnt_s_0[17] .INJECT1_0="NO"; +defparam \genblk2.rlols0_cnt_s_0[17] .INJECT1_1="NO"; + CCU2C \genblk1.genblk2.txr_wt_cnt_cry_0[0] ( + .A0(VCC), + .B0(txr_wt_cnt9), + .C0(VCC), + .D0(VCC), + .A1(txr_wt_cnt9), + .B1(txr_wt_cnt[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_5), + .COUT(txr_wt_cnt_cry[0]), + .S0(txr_wt_cnt_cry_0_S0[0]), + .S1(txr_wt_cnt_s[0]) +); +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[0] .INIT0=16'h5003; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[0] .INIT1=16'h4000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[0] .INJECT1_0="NO"; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[0] .INJECT1_1="NO"; +// @16:527 + CCU2C \genblk1.genblk2.txr_wt_cnt_cry_0[1] ( + .A0(txr_wt_cnt9), + .B0(txr_wt_cnt[1]), + .C0(VCC), + .D0(VCC), + .A1(txr_wt_cnt9), + .B1(txr_wt_cnt[2]), + .C1(VCC), + .D1(VCC), + .CIN(txr_wt_cnt_cry[0]), + .COUT(txr_wt_cnt_cry[2]), + .S0(txr_wt_cnt_s[1]), + .S1(txr_wt_cnt_s[2]) +); +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[1] .INIT0=16'h4000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[1] .INIT1=16'h4000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[1] .INJECT1_0="NO"; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[1] .INJECT1_1="NO"; +// @16:527 + CCU2C \genblk1.genblk2.txr_wt_cnt_cry_0[3] ( + .A0(txr_wt_cnt9), + .B0(txr_wt_cnt[3]), + .C0(VCC), + .D0(VCC), + .A1(txr_wt_cnt9), + .B1(txr_wt_cnt[4]), + .C1(VCC), + .D1(VCC), + .CIN(txr_wt_cnt_cry[2]), + .COUT(txr_wt_cnt_cry[4]), + .S0(txr_wt_cnt_s[3]), + .S1(txr_wt_cnt_s[4]) +); +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[3] .INIT0=16'h4000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[3] .INIT1=16'h4000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[3] .INJECT1_0="NO"; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[3] .INJECT1_1="NO"; +// @16:527 + CCU2C \genblk1.genblk2.txr_wt_cnt_cry_0[5] ( + .A0(txr_wt_cnt9), + .B0(txr_wt_cnt[5]), + .C0(VCC), + .D0(VCC), + .A1(txr_wt_cnt9), + .B1(txr_wt_cnt[6]), + .C1(VCC), + .D1(VCC), + .CIN(txr_wt_cnt_cry[4]), + .COUT(txr_wt_cnt_cry[6]), + .S0(txr_wt_cnt_s[5]), + .S1(txr_wt_cnt_s[6]) +); +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[5] .INIT0=16'h4000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[5] .INIT1=16'h4000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[5] .INJECT1_0="NO"; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[5] .INJECT1_1="NO"; +// @16:527 + CCU2C \genblk1.genblk2.txr_wt_cnt_cry_0[7] ( + .A0(txr_wt_cnt9), + .B0(txr_wt_cnt[7]), + .C0(VCC), + .D0(VCC), + .A1(txr_wt_cnt9), + .B1(txr_wt_cnt[8]), + .C1(VCC), + .D1(VCC), + .CIN(txr_wt_cnt_cry[6]), + .COUT(txr_wt_cnt_cry[8]), + .S0(txr_wt_cnt_s[7]), + .S1(txr_wt_cnt_s[8]) +); +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[7] .INIT0=16'h4000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[7] .INIT1=16'h4000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[7] .INJECT1_0="NO"; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[7] .INJECT1_1="NO"; +// @16:527 + CCU2C \genblk1.genblk2.txr_wt_cnt_cry_0[9] ( + .A0(txr_wt_cnt9), + .B0(txr_wt_cnt[9]), + .C0(VCC), + .D0(VCC), + .A1(txr_wt_cnt9), + .B1(txr_wt_cnt[10]), + .C1(VCC), + .D1(VCC), + .CIN(txr_wt_cnt_cry[8]), + .COUT(txr_wt_cnt_cry[10]), + .S0(txr_wt_cnt_s[9]), + .S1(txr_wt_cnt_s[10]) +); +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[9] .INIT0=16'h4000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[9] .INIT1=16'h4000; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[9] .INJECT1_0="NO"; +defparam \genblk1.genblk2.txr_wt_cnt_cry_0[9] .INJECT1_1="NO"; +// @16:527 + CCU2C \genblk1.genblk2.txr_wt_cnt_s_0[11] ( + .A0(txr_wt_cnt9), + .B0(txr_wt_cnt[11]), + .C0(VCC), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(txr_wt_cnt_cry[10]), + .COUT(txr_wt_cnt_s_0_COUT[11]), + .S0(txr_wt_cnt_s[11]), + .S1(txr_wt_cnt_s_0_S1[11]) +); +defparam \genblk1.genblk2.txr_wt_cnt_s_0[11] .INIT0=16'h4005; +defparam \genblk1.genblk2.txr_wt_cnt_s_0[11] .INIT1=16'h5003; +defparam \genblk1.genblk2.txr_wt_cnt_s_0[11] .INJECT1_0="NO"; +defparam \genblk1.genblk2.txr_wt_cnt_s_0[11] .INJECT1_1="NO"; + CCU2C \genblk2.genblk3.rxr_wt_cnt_cry_0[0] ( + .A0(VCC), + .B0(rxr_wt_cnt9), + .C0(VCC), + .D0(VCC), + .A1(rxr_wt_cnt9), + .B1(rxr_wt_cnt[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_4), + .COUT(rxr_wt_cnt_cry[0]), + .S0(rxr_wt_cnt_cry_0_S0[0]), + .S1(rxr_wt_cnt_s[0]) +); +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[0] .INIT0=16'h5003; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[0] .INIT1=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[0] .INJECT1_0="NO"; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[0] .INJECT1_1="NO"; +// @16:909 + CCU2C \genblk2.genblk3.rxr_wt_cnt_cry_0[1] ( + .A0(rxr_wt_cnt9), + .B0(rxr_wt_cnt[1]), + .C0(VCC), + .D0(VCC), + .A1(rxr_wt_cnt9), + .B1(rxr_wt_cnt[2]), + .C1(VCC), + .D1(VCC), + .CIN(rxr_wt_cnt_cry[0]), + .COUT(rxr_wt_cnt_cry[2]), + .S0(rxr_wt_cnt_s[1]), + .S1(rxr_wt_cnt_s[2]) +); +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[1] .INIT0=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[1] .INIT1=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[1] .INJECT1_0="NO"; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[1] .INJECT1_1="NO"; +// @16:909 + CCU2C \genblk2.genblk3.rxr_wt_cnt_cry_0[3] ( + .A0(rxr_wt_cnt9), + .B0(rxr_wt_cnt[3]), + .C0(VCC), + .D0(VCC), + .A1(rxr_wt_cnt9), + .B1(rxr_wt_cnt[4]), + .C1(VCC), + .D1(VCC), + .CIN(rxr_wt_cnt_cry[2]), + .COUT(rxr_wt_cnt_cry[4]), + .S0(rxr_wt_cnt_s[3]), + .S1(rxr_wt_cnt_s[4]) +); +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[3] .INIT0=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[3] .INIT1=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[3] .INJECT1_0="NO"; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[3] .INJECT1_1="NO"; +// @16:909 + CCU2C \genblk2.genblk3.rxr_wt_cnt_cry_0[5] ( + .A0(rxr_wt_cnt9), + .B0(rxr_wt_cnt[5]), + .C0(VCC), + .D0(VCC), + .A1(rxr_wt_cnt9), + .B1(rxr_wt_cnt[6]), + .C1(VCC), + .D1(VCC), + .CIN(rxr_wt_cnt_cry[4]), + .COUT(rxr_wt_cnt_cry[6]), + .S0(rxr_wt_cnt_s[5]), + .S1(rxr_wt_cnt_s[6]) +); +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[5] .INIT0=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[5] .INIT1=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[5] .INJECT1_0="NO"; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[5] .INJECT1_1="NO"; +// @16:909 + CCU2C \genblk2.genblk3.rxr_wt_cnt_cry_0[7] ( + .A0(rxr_wt_cnt9), + .B0(rxr_wt_cnt[7]), + .C0(VCC), + .D0(VCC), + .A1(rxr_wt_cnt9), + .B1(rxr_wt_cnt[8]), + .C1(VCC), + .D1(VCC), + .CIN(rxr_wt_cnt_cry[6]), + .COUT(rxr_wt_cnt_cry[8]), + .S0(rxr_wt_cnt_s[7]), + .S1(rxr_wt_cnt_s[8]) +); +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[7] .INIT0=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[7] .INIT1=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[7] .INJECT1_0="NO"; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[7] .INJECT1_1="NO"; +// @16:909 + CCU2C \genblk2.genblk3.rxr_wt_cnt_cry_0[9] ( + .A0(rxr_wt_cnt9), + .B0(rxr_wt_cnt[9]), + .C0(VCC), + .D0(VCC), + .A1(rxr_wt_cnt9), + .B1(rxr_wt_cnt[10]), + .C1(VCC), + .D1(VCC), + .CIN(rxr_wt_cnt_cry[8]), + .COUT(rxr_wt_cnt_cry[10]), + .S0(rxr_wt_cnt_s[9]), + .S1(rxr_wt_cnt_s[10]) +); +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[9] .INIT0=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[9] .INIT1=16'h4000; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[9] .INJECT1_0="NO"; +defparam \genblk2.genblk3.rxr_wt_cnt_cry_0[9] .INJECT1_1="NO"; +// @16:909 + CCU2C \genblk2.genblk3.rxr_wt_cnt_s_0[11] ( + .A0(rxr_wt_cnt9), + .B0(rxr_wt_cnt[11]), + .C0(VCC), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(rxr_wt_cnt_cry[10]), + .COUT(rxr_wt_cnt_s_0_COUT[11]), + .S0(rxr_wt_cnt_s[11]), + .S1(rxr_wt_cnt_s_0_S1[11]) +); +defparam \genblk2.genblk3.rxr_wt_cnt_s_0[11] .INIT0=16'h4005; +defparam \genblk2.genblk3.rxr_wt_cnt_s_0[11] .INIT1=16'h5003; +defparam \genblk2.genblk3.rxr_wt_cnt_s_0[11] .INJECT1_0="NO"; +defparam \genblk2.genblk3.rxr_wt_cnt_s_0[11] .INJECT1_1="NO"; + CCU2C \genblk1.plol_cnt_cry_0[0] ( + .A0(VCC), + .B0(plol_cnt_scalar), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_3), + .COUT(plol_cnt_cry[0]), + .S0(plol_cnt_cry_0_S0[0]), + .S1(plol_cnt_s[0]) +); +defparam \genblk1.plol_cnt_cry_0[0] .INIT0=16'h500c; +defparam \genblk1.plol_cnt_cry_0[0] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[0] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[0] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[1] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[1]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[2]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[0]), + .COUT(plol_cnt_cry[2]), + .S0(plol_cnt_s[1]), + .S1(plol_cnt_s[2]) +); +defparam \genblk1.plol_cnt_cry_0[1] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[1] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[1] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[1] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[3] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[3]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[4]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[2]), + .COUT(plol_cnt_cry[4]), + .S0(plol_cnt_s[3]), + .S1(plol_cnt_s[4]) +); +defparam \genblk1.plol_cnt_cry_0[3] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[3] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[3] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[3] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[5] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[5]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[6]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[4]), + .COUT(plol_cnt_cry[6]), + .S0(plol_cnt_s[5]), + .S1(plol_cnt_s[6]) +); +defparam \genblk1.plol_cnt_cry_0[5] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[5] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[5] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[5] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[7] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[7]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[8]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[6]), + .COUT(plol_cnt_cry[8]), + .S0(plol_cnt_s[7]), + .S1(plol_cnt_s[8]) +); +defparam \genblk1.plol_cnt_cry_0[7] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[7] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[7] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[7] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[9] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[9]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[10]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[8]), + .COUT(plol_cnt_cry[10]), + .S0(plol_cnt_s[9]), + .S1(plol_cnt_s[10]) +); +defparam \genblk1.plol_cnt_cry_0[9] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[9] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[9] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[9] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[11] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[11]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[12]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[10]), + .COUT(plol_cnt_cry[12]), + .S0(plol_cnt_s[11]), + .S1(plol_cnt_s[12]) +); +defparam \genblk1.plol_cnt_cry_0[11] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[11] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[11] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[11] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[13] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[13]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[14]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[12]), + .COUT(plol_cnt_cry[14]), + .S0(plol_cnt_s[13]), + .S1(plol_cnt_s[14]) +); +defparam \genblk1.plol_cnt_cry_0[13] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[13] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[13] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[13] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[15] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[15]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[16]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[14]), + .COUT(plol_cnt_cry[16]), + .S0(plol_cnt_s[15]), + .S1(plol_cnt_s[16]) +); +defparam \genblk1.plol_cnt_cry_0[15] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[15] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[15] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[15] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_cry_0[17] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[17]), + .C0(VCC), + .D0(VCC), + .A1(plol_cnt_scalar), + .B1(plol_cnt[18]), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[16]), + .COUT(plol_cnt_cry[18]), + .S0(plol_cnt_s[17]), + .S1(plol_cnt_s[18]) +); +defparam \genblk1.plol_cnt_cry_0[17] .INIT0=16'h8000; +defparam \genblk1.plol_cnt_cry_0[17] .INIT1=16'h8000; +defparam \genblk1.plol_cnt_cry_0[17] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_cry_0[17] .INJECT1_1="NO"; +// @16:412 + CCU2C \genblk1.plol_cnt_s_0[19] ( + .A0(plol_cnt_scalar), + .B0(plol_cnt[19]), + .C0(VCC), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(plol_cnt_cry[18]), + .COUT(plol_cnt_s_0_COUT[19]), + .S0(plol_cnt_s[19]), + .S1(plol_cnt_s_0_S1[19]) +); +defparam \genblk1.plol_cnt_s_0[19] .INIT0=16'h800a; +defparam \genblk1.plol_cnt_s_0[19] .INIT1=16'h5003; +defparam \genblk1.plol_cnt_s_0[19] .INJECT1_0="NO"; +defparam \genblk1.plol_cnt_s_0[19] .INJECT1_1="NO"; + CCU2C \un1_genblk2.rlos_db_cnt_cry_0_0 ( + .A0(VCC), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(rlos_db_cnt[0]), + .B1(un1_rlos_db_cnt_zero[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_2), + .COUT(rlos_db_cnt_cry_0), + .S0(rlos_db_cnt_cry_0_0_S0), + .S1(rlos_db_cnt_cry_0_0_S1) +); +defparam \un1_genblk2.rlos_db_cnt_cry_0_0 .INIT0=16'h5003; +defparam \un1_genblk2.rlos_db_cnt_cry_0_0 .INIT1=16'h900a; +defparam \un1_genblk2.rlos_db_cnt_cry_0_0 .INJECT1_0="NO"; +defparam \un1_genblk2.rlos_db_cnt_cry_0_0 .INJECT1_1="NO"; +// @16:641 + CCU2C \un1_genblk2.rlos_db_cnt_cry_1_0 ( + .A0(un1_rlos_db_cnt_zero[0]), + .B0(rlos_p2), + .C0(rlos_db_cnt[1]), + .D0(VCC), + .A1(un1_rlos_db_cnt_zero[0]), + .B1(rlos_p2), + .C1(rlos_db_cnt[2]), + .D1(VCC), + .CIN(rlos_db_cnt_cry_0), + .COUT(rlos_db_cnt_cry_2), + .S0(rlos_db_cnt_cry_1_0_S0), + .S1(rlos_db_cnt_cry_1_0_S1) +); +defparam \un1_genblk2.rlos_db_cnt_cry_1_0 .INIT0=16'he101; +defparam \un1_genblk2.rlos_db_cnt_cry_1_0 .INIT1=16'he101; +defparam \un1_genblk2.rlos_db_cnt_cry_1_0 .INJECT1_0="NO"; +defparam \un1_genblk2.rlos_db_cnt_cry_1_0 .INJECT1_1="NO"; +// @16:641 + CCU2C \un1_genblk2.rlos_db_cnt_s_3_0 ( + .A0(rlos_db_cnt[3]), + .B0(rlos_p2), + .C0(un1_rlos_db_cnt_zero[0]), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(rlos_db_cnt_cry_2), + .COUT(rlos_db_cnt_s_3_0_COUT), + .S0(rlos_db_cnt_s_3_0_S0), + .S1(rlos_db_cnt_s_3_0_S1) +); +defparam \un1_genblk2.rlos_db_cnt_s_3_0 .INIT0=16'ha90a; +defparam \un1_genblk2.rlos_db_cnt_s_3_0 .INIT1=16'h5003; +defparam \un1_genblk2.rlos_db_cnt_s_3_0 .INJECT1_0="NO"; +defparam \un1_genblk2.rlos_db_cnt_s_3_0 .INJECT1_1="NO"; + CCU2C \un1_genblk2.rlol_db_cnt_cry_0_0 ( + .A0(VCC), + .B0(VCC), + .C0(VCC), + .D0(VCC), + .A1(rlol_db_cnt[0]), + .B1(un1_rlol_db_cnt_zero[0]), + .C1(VCC), + .D1(VCC), + .CIN(N_1), + .COUT(rlol_db_cnt_cry_0), + .S0(rlol_db_cnt_cry_0_0_S0), + .S1(rlol_db_cnt_cry_0_0_S1) +); +defparam \un1_genblk2.rlol_db_cnt_cry_0_0 .INIT0=16'h5003; +defparam \un1_genblk2.rlol_db_cnt_cry_0_0 .INIT1=16'h900a; +defparam \un1_genblk2.rlol_db_cnt_cry_0_0 .INJECT1_0="NO"; +defparam \un1_genblk2.rlol_db_cnt_cry_0_0 .INJECT1_1="NO"; +// @16:625 + CCU2C \un1_genblk2.rlol_db_cnt_cry_1_0 ( + .A0(un1_rlol_db_cnt_zero[0]), + .B0(rlol_p2), + .C0(rlol_db_cnt[1]), + .D0(VCC), + .A1(un1_rlol_db_cnt_zero[0]), + .B1(rlol_p2), + .C1(rlol_db_cnt[2]), + .D1(VCC), + .CIN(rlol_db_cnt_cry_0), + .COUT(rlol_db_cnt_cry_2), + .S0(rlol_db_cnt_cry_1_0_S0), + .S1(rlol_db_cnt_cry_1_0_S1) +); +defparam \un1_genblk2.rlol_db_cnt_cry_1_0 .INIT0=16'he101; +defparam \un1_genblk2.rlol_db_cnt_cry_1_0 .INIT1=16'he101; +defparam \un1_genblk2.rlol_db_cnt_cry_1_0 .INJECT1_0="NO"; +defparam \un1_genblk2.rlol_db_cnt_cry_1_0 .INJECT1_1="NO"; +// @16:625 + CCU2C \un1_genblk2.rlol_db_cnt_s_3_0 ( + .A0(rlol_db_cnt[3]), + .B0(rlol_p2), + .C0(un1_rlol_db_cnt_zero[0]), + .D0(VCC), + .A1(VCC), + .B1(VCC), + .C1(VCC), + .D1(VCC), + .CIN(rlol_db_cnt_cry_2), + .COUT(rlol_db_cnt_s_3_0_COUT), + .S0(rlol_db_cnt_s_3_0_S0), + .S1(rlol_db_cnt_s_3_0_S1) +); +defparam \un1_genblk2.rlol_db_cnt_s_3_0 .INIT0=16'ha90a; +defparam \un1_genblk2.rlol_db_cnt_s_3_0 .INIT1=16'h5003; +defparam \un1_genblk2.rlol_db_cnt_s_3_0 .INJECT1_0="NO"; +defparam \un1_genblk2.rlol_db_cnt_s_3_0 .INJECT1_1="NO"; +//@16:865 +//@16:492 + VHI VCC_0 ( + .Z(VCC) +); +// @16:865 + VLO GND_cZ ( + .Z(GND) +); +endmodule /* serdes_sync_1rsl_core_Z2_layer1 */ + +module serdes_sync_1 ( + hdoutp, + hdoutn, + hdinp, + hdinn, + rxrefclk, + rx_pclk, + tx_pclk, + txdata, + tx_k, + tx_force_disp, + tx_disp_sel, + rxdata, + rx_k, + rx_disp_err, + rx_cv_err, + tx_idle_c, + signal_detect_c, + rx_los_low_s, + lsm_status_s, + rx_cdr_lol_s, + sli_rst, + tx_pwrup_c, + rx_pwrup_c, + sci_wrdata, + sci_addr, + sci_rddata, + sci_en_dual, + sci_sel_dual, + sci_en, + sci_sel, + sci_rd, + sci_wrn, + sci_int, + cyawstn, + serdes_pdb, + pll_refclki, + rsl_disable, + rsl_rst, + serdes_rst_dual_c, + rst_dual_c, + tx_serdes_rst_c, + tx_pcs_rst_c, + pll_lol, + rsl_tx_rdy, + rx_serdes_rst_c, + rx_pcs_rst_c, + rsl_rx_rdy +) +; +output hdoutp ; +output hdoutn ; +input hdinp ; +input hdinn ; +input rxrefclk ; +output rx_pclk ; +output tx_pclk ; +input [7:0] txdata ; +input [0:0] tx_k ; +input [0:0] tx_force_disp ; +input [0:0] tx_disp_sel ; +output [7:0] rxdata ; +output [0:0] rx_k ; +output [0:0] rx_disp_err ; +output [0:0] rx_cv_err ; +input tx_idle_c ; +input signal_detect_c ; +output rx_los_low_s ; +output lsm_status_s ; +output rx_cdr_lol_s ; +input sli_rst ; +input tx_pwrup_c ; +input rx_pwrup_c ; +input [7:0] sci_wrdata ; +input [5:0] sci_addr ; +output [7:0] sci_rddata ; +input sci_en_dual ; +input sci_sel_dual ; +input sci_en ; +input sci_sel ; +input sci_rd ; +input sci_wrn ; +output sci_int ; +input cyawstn ; +input serdes_pdb ; +input pll_refclki ; +input rsl_disable ; +input rsl_rst ; +input serdes_rst_dual_c ; +input rst_dual_c ; +input tx_serdes_rst_c ; +input tx_pcs_rst_c ; +output pll_lol ; +output rsl_tx_rdy ; +input rx_serdes_rst_c ; +input rx_pcs_rst_c ; +output rsl_rx_rdy ; +wire hdoutp ; +wire hdoutn ; +wire hdinp ; +wire hdinn ; +wire rxrefclk ; +wire rx_pclk ; +wire tx_pclk ; +wire tx_idle_c ; +wire signal_detect_c ; +wire rx_los_low_s ; +wire lsm_status_s ; +wire rx_cdr_lol_s ; +wire sli_rst ; +wire tx_pwrup_c ; +wire rx_pwrup_c ; +wire sci_en_dual ; +wire sci_sel_dual ; +wire sci_en ; +wire sci_sel ; +wire sci_rd ; +wire sci_wrn ; +wire sci_int ; +wire cyawstn ; +wire serdes_pdb ; +wire pll_refclki ; +wire rsl_disable ; +wire rsl_rst ; +wire serdes_rst_dual_c ; +wire rst_dual_c ; +wire tx_serdes_rst_c ; +wire tx_pcs_rst_c ; +wire pll_lol ; +wire rsl_tx_rdy ; +wire rx_serdes_rst_c ; +wire rx_pcs_rst_c ; +wire rsl_rx_rdy ; +wire rsl_tx_pcs_rst_c ; +wire rsl_rx_pcs_rst_c ; +wire rsl_rx_serdes_rst_c ; +wire rsl_serdes_rst_dual_c ; +wire rsl_tx_serdes_rst_c ; +wire n50_1 ; +wire n51_1 ; +wire n1_1 ; +wire n2_1 ; +wire n3_1 ; +wire n4_1 ; +wire n5_1 ; +wire n52_1 ; +wire n6_1 ; +wire n53_1 ; +wire n7_1 ; +wire n54_1 ; +wire n8_1 ; +wire n55_1 ; +wire n56_1 ; +wire n57_1 ; +wire n58_1 ; +wire n59_1 ; +wire n60_1 ; +wire n61_1 ; +wire n62_1 ; +wire n63_1 ; +wire n64_1 ; +wire n65_1 ; +wire n66_1 ; +wire n67_1 ; +wire n68_1 ; +wire n9_1 ; +wire n69_1 ; +wire n70_1 ; +wire n71_1 ; +wire n72_1 ; +wire n73_1 ; +wire n74_1 ; +wire n75_1 ; +wire n76_1 ; +wire n77_1 ; +wire n78_1 ; +wire n79_1 ; +wire n80_1 ; +wire n81_1 ; +wire n82_1 ; +wire n83_1 ; +wire n84_1 ; +wire n85_1 ; +wire n86_1 ; +wire n87_1 ; +wire n88_1 ; +wire n89_1 ; +wire n90_1 ; +wire n91_1 ; +wire n10_1 ; +wire n92_1 ; +wire n11_1 ; +wire n93_1 ; +wire n12_1 ; +wire n94_1 ; +wire n95_1 ; +wire n96_1 ; +wire n13_1 ; +wire n97_1 ; +wire n14_1 ; +wire n98_1 ; +wire n15_1 ; +wire n99_1 ; +wire n16_1 ; +wire n100_1 ; +wire n101_1 ; +wire n17_1 ; +wire n102_1 ; +wire n18_1 ; +wire n103_1 ; +wire n104_1 ; +wire n115_1 ; +wire n19_1 ; +wire n20_1 ; +wire n21_1 ; +wire n22_1 ; +wire n23_1 ; +wire n24_1 ; +wire n25_1 ; +wire n26_1 ; +wire n27_1 ; +wire n28_1 ; +wire n29_1 ; +wire n30_1 ; +wire n31_1 ; +wire n32_1 ; +wire n33_1 ; +wire n34_1 ; +wire n35_1 ; +wire n36_1 ; +wire n37_1 ; +wire n38_1 ; +wire n39_1 ; +wire n40_1 ; +wire n41_1 ; +wire n42_1 ; +wire n43_1 ; +wire n44_1 ; +wire n45_1 ; +wire n46_1 ; +wire n49_1 ; +wire GND ; +wire VCC ; + VLO GND_0 ( + .Z(GND) +); + VHI VCC_0 ( + .Z(VCC) +); +// @16:865 + PUR PUR_INST ( + .PUR(VCC) +); +// @16:865 + GSR GSR_INST ( + .GSR(VCC) +); +// @8:160 +(* CHAN="CH0" *) DCUA DCU0_inst ( + .CH0_HDINP(hdinp), + .CH1_HDINP(GND), + .CH0_HDINN(hdinn), + .CH1_HDINN(GND), + .D_TXBIT_CLKP_FROM_ND(GND), + .D_TXBIT_CLKN_FROM_ND(GND), + .D_SYNC_ND(GND), + .D_TXPLL_LOL_FROM_ND(GND), + .CH0_RX_REFCLK(rxrefclk), + .CH1_RX_REFCLK(GND), + .CH0_FF_RXI_CLK(rx_pclk), + .CH1_FF_RXI_CLK(VCC), + .CH0_FF_TXI_CLK(tx_pclk), + .CH1_FF_TXI_CLK(VCC), + .CH0_FF_EBRD_CLK(VCC), + .CH1_FF_EBRD_CLK(VCC), + .CH0_FF_TX_D_0(txdata[0]), + .CH1_FF_TX_D_0(GND), + .CH0_FF_TX_D_1(txdata[1]), + .CH1_FF_TX_D_1(GND), + .CH0_FF_TX_D_2(txdata[2]), + .CH1_FF_TX_D_2(GND), + .CH0_FF_TX_D_3(txdata[3]), + .CH1_FF_TX_D_3(GND), + .CH0_FF_TX_D_4(txdata[4]), + .CH1_FF_TX_D_4(GND), + .CH0_FF_TX_D_5(txdata[5]), + .CH1_FF_TX_D_5(GND), + .CH0_FF_TX_D_6(txdata[6]), + .CH1_FF_TX_D_6(GND), + .CH0_FF_TX_D_7(txdata[7]), + .CH1_FF_TX_D_7(GND), + .CH0_FF_TX_D_8(tx_k[0]), + .CH1_FF_TX_D_8(GND), + .CH0_FF_TX_D_9(tx_force_disp[0]), + .CH1_FF_TX_D_9(GND), + .CH0_FF_TX_D_10(tx_disp_sel[0]), + .CH1_FF_TX_D_10(GND), + .CH0_FF_TX_D_11(GND), + .CH1_FF_TX_D_11(GND), + .CH0_FF_TX_D_12(GND), + .CH1_FF_TX_D_12(GND), + .CH0_FF_TX_D_13(GND), + .CH1_FF_TX_D_13(GND), + .CH0_FF_TX_D_14(GND), + .CH1_FF_TX_D_14(GND), + .CH0_FF_TX_D_15(GND), + .CH1_FF_TX_D_15(GND), + .CH0_FF_TX_D_16(GND), + .CH1_FF_TX_D_16(GND), + .CH0_FF_TX_D_17(GND), + .CH1_FF_TX_D_17(GND), + .CH0_FF_TX_D_18(GND), + .CH1_FF_TX_D_18(GND), + .CH0_FF_TX_D_19(GND), + .CH1_FF_TX_D_19(GND), + .CH0_FF_TX_D_20(GND), + .CH1_FF_TX_D_20(GND), + .CH0_FF_TX_D_21(GND), + .CH1_FF_TX_D_21(GND), + .CH0_FF_TX_D_22(GND), + .CH1_FF_TX_D_22(GND), + .CH0_FF_TX_D_23(GND), + .CH1_FF_TX_D_23(GND), + .CH0_FFC_EI_EN(tx_idle_c), + .CH1_FFC_EI_EN(GND), + .CH0_FFC_PCIE_DET_EN(GND), + .CH1_FFC_PCIE_DET_EN(GND), + .CH0_FFC_PCIE_CT(GND), + .CH1_FFC_PCIE_CT(GND), + .CH0_FFC_SB_INV_RX(GND), + .CH1_FFC_SB_INV_RX(GND), + .CH0_FFC_ENABLE_CGALIGN(GND), + .CH1_FFC_ENABLE_CGALIGN(GND), + .CH0_FFC_SIGNAL_DETECT(signal_detect_c), + .CH1_FFC_SIGNAL_DETECT(GND), + .CH0_FFC_FB_LOOPBACK(GND), + .CH1_FFC_FB_LOOPBACK(GND), + .CH0_FFC_SB_PFIFO_LP(GND), + .CH1_FFC_SB_PFIFO_LP(GND), + .CH0_FFC_PFIFO_CLR(GND), + .CH1_FFC_PFIFO_CLR(GND), + .CH0_FFC_RATE_MODE_RX(GND), + .CH1_FFC_RATE_MODE_RX(GND), + .CH0_FFC_RATE_MODE_TX(GND), + .CH1_FFC_RATE_MODE_TX(GND), + .CH0_FFC_DIV11_MODE_RX(GND), + .CH1_FFC_DIV11_MODE_RX(GND), + .CH0_FFC_RX_GEAR_MODE(GND), + .CH1_FFC_RX_GEAR_MODE(GND), + .CH0_FFC_TX_GEAR_MODE(GND), + .CH1_FFC_TX_GEAR_MODE(GND), + .CH0_FFC_DIV11_MODE_TX(GND), + .CH1_FFC_DIV11_MODE_TX(GND), + .CH0_FFC_LDR_CORE2TX_EN(GND), + .CH1_FFC_LDR_CORE2TX_EN(GND), + .CH0_FFC_LANE_TX_RST(rsl_tx_pcs_rst_c), + .CH1_FFC_LANE_TX_RST(GND), + .CH0_FFC_LANE_RX_RST(rsl_rx_pcs_rst_c), + .CH1_FFC_LANE_RX_RST(GND), + .CH0_FFC_RRST(rsl_rx_serdes_rst_c), + .CH1_FFC_RRST(GND), + .CH0_FFC_TXPWDNB(tx_pwrup_c), + .CH1_FFC_TXPWDNB(GND), + .CH0_FFC_RXPWDNB(rx_pwrup_c), + .CH1_FFC_RXPWDNB(GND), + .CH0_LDR_CORE2TX(GND), + .CH1_LDR_CORE2TX(GND), + .D_SCIWDATA0(sci_wrdata[0]), + .D_SCIWDATA1(sci_wrdata[1]), + .D_SCIWDATA2(sci_wrdata[2]), + .D_SCIWDATA3(sci_wrdata[3]), + .D_SCIWDATA4(sci_wrdata[4]), + .D_SCIWDATA5(sci_wrdata[5]), + .D_SCIWDATA6(sci_wrdata[6]), + .D_SCIWDATA7(sci_wrdata[7]), + .D_SCIADDR0(sci_addr[0]), + .D_SCIADDR1(sci_addr[1]), + .D_SCIADDR2(sci_addr[2]), + .D_SCIADDR3(sci_addr[3]), + .D_SCIADDR4(sci_addr[4]), + .D_SCIADDR5(sci_addr[5]), + .D_SCIENAUX(sci_en_dual), + .D_SCISELAUX(sci_sel_dual), + .CH0_SCIEN(sci_en), + .CH1_SCIEN(GND), + .CH0_SCISEL(sci_sel), + .CH1_SCISEL(GND), + .D_SCIRD(sci_rd), + .D_SCIWSTN(sci_wrn), + .D_CYAWSTN(cyawstn), + .D_FFC_SYNC_TOGGLE(GND), + .D_FFC_DUAL_RST(rst_dual_c), + .D_FFC_MACRO_RST(rsl_serdes_rst_dual_c), + .D_FFC_MACROPDB(serdes_pdb), + .D_FFC_TRST(rsl_tx_serdes_rst_c), + .CH0_FFC_CDR_EN_BITSLIP(GND), + .CH1_FFC_CDR_EN_BITSLIP(GND), + .D_SCAN_ENABLE(GND), + .D_SCAN_IN_0(GND), + .D_SCAN_IN_1(GND), + .D_SCAN_IN_2(GND), + .D_SCAN_IN_3(GND), + .D_SCAN_IN_4(GND), + .D_SCAN_IN_5(GND), + .D_SCAN_IN_6(GND), + .D_SCAN_IN_7(GND), + .D_SCAN_MODE(GND), + .D_SCAN_RESET(GND), + .D_CIN0(GND), + .D_CIN1(GND), + .D_CIN2(GND), + .D_CIN3(GND), + .D_CIN4(GND), + .D_CIN5(GND), + .D_CIN6(GND), + .D_CIN7(GND), + .D_CIN8(GND), + .D_CIN9(GND), + .D_CIN10(GND), + .D_CIN11(GND), + .CH0_HDOUTP(hdoutp), + .CH1_HDOUTP(n50_1), + .CH0_HDOUTN(hdoutn), + .CH1_HDOUTN(n51_1), + .D_TXBIT_CLKP_TO_ND(n1_1), + .D_TXBIT_CLKN_TO_ND(n2_1), + .D_SYNC_PULSE2ND(n3_1), + .D_TXPLL_LOL_TO_ND(n4_1), + .CH0_FF_RX_F_CLK(n5_1), + .CH1_FF_RX_F_CLK(n52_1), + .CH0_FF_RX_H_CLK(n6_1), + .CH1_FF_RX_H_CLK(n53_1), + .CH0_FF_TX_F_CLK(n7_1), + .CH1_FF_TX_F_CLK(n54_1), + .CH0_FF_TX_H_CLK(n8_1), + .CH1_FF_TX_H_CLK(n55_1), + .CH0_FF_RX_PCLK(rx_pclk), + .CH1_FF_RX_PCLK(n56_1), + .CH0_FF_TX_PCLK(tx_pclk), + .CH1_FF_TX_PCLK(n57_1), + .CH0_FF_RX_D_0(rxdata[0]), + .CH1_FF_RX_D_0(n58_1), + .CH0_FF_RX_D_1(rxdata[1]), + .CH1_FF_RX_D_1(n59_1), + .CH0_FF_RX_D_2(rxdata[2]), + .CH1_FF_RX_D_2(n60_1), + .CH0_FF_RX_D_3(rxdata[3]), + .CH1_FF_RX_D_3(n61_1), + .CH0_FF_RX_D_4(rxdata[4]), + .CH1_FF_RX_D_4(n62_1), + .CH0_FF_RX_D_5(rxdata[5]), + .CH1_FF_RX_D_5(n63_1), + .CH0_FF_RX_D_6(rxdata[6]), + .CH1_FF_RX_D_6(n64_1), + .CH0_FF_RX_D_7(rxdata[7]), + .CH1_FF_RX_D_7(n65_1), + .CH0_FF_RX_D_8(rx_k[0]), + .CH1_FF_RX_D_8(n66_1), + .CH0_FF_RX_D_9(rx_disp_err[0]), + .CH1_FF_RX_D_9(n67_1), + .CH0_FF_RX_D_10(rx_cv_err[0]), + .CH1_FF_RX_D_10(n68_1), + .CH0_FF_RX_D_11(n9_1), + .CH1_FF_RX_D_11(n69_1), + .CH0_FF_RX_D_12(n70_1), + .CH1_FF_RX_D_12(n71_1), + .CH0_FF_RX_D_13(n72_1), + .CH1_FF_RX_D_13(n73_1), + .CH0_FF_RX_D_14(n74_1), + .CH1_FF_RX_D_14(n75_1), + .CH0_FF_RX_D_15(n76_1), + .CH1_FF_RX_D_15(n77_1), + .CH0_FF_RX_D_16(n78_1), + .CH1_FF_RX_D_16(n79_1), + .CH0_FF_RX_D_17(n80_1), + .CH1_FF_RX_D_17(n81_1), + .CH0_FF_RX_D_18(n82_1), + .CH1_FF_RX_D_18(n83_1), + .CH0_FF_RX_D_19(n84_1), + .CH1_FF_RX_D_19(n85_1), + .CH0_FF_RX_D_20(n86_1), + .CH1_FF_RX_D_20(n87_1), + .CH0_FF_RX_D_21(n88_1), + .CH1_FF_RX_D_21(n89_1), + .CH0_FF_RX_D_22(n90_1), + .CH1_FF_RX_D_22(n91_1), + .CH0_FF_RX_D_23(n10_1), + .CH1_FF_RX_D_23(n92_1), + .CH0_FFS_PCIE_DONE(n11_1), + .CH1_FFS_PCIE_DONE(n93_1), + .CH0_FFS_PCIE_CON(n12_1), + .CH1_FFS_PCIE_CON(n94_1), + .CH0_FFS_RLOS(rx_los_low_s), + .CH1_FFS_RLOS(n95_1), + .CH0_FFS_LS_SYNC_STATUS(lsm_status_s), + .CH1_FFS_LS_SYNC_STATUS(n96_1), + .CH0_FFS_CC_UNDERRUN(n13_1), + .CH1_FFS_CC_UNDERRUN(n97_1), + .CH0_FFS_CC_OVERRUN(n14_1), + .CH1_FFS_CC_OVERRUN(n98_1), + .CH0_FFS_RXFBFIFO_ERROR(n15_1), + .CH1_FFS_RXFBFIFO_ERROR(n99_1), + .CH0_FFS_TXFBFIFO_ERROR(n16_1), + .CH1_FFS_TXFBFIFO_ERROR(n100_1), + .CH0_FFS_RLOL(rx_cdr_lol_s), + .CH1_FFS_RLOL(n101_1), + .CH0_FFS_SKP_ADDED(n17_1), + .CH1_FFS_SKP_ADDED(n102_1), + .CH0_FFS_SKP_DELETED(n18_1), + .CH1_FFS_SKP_DELETED(n103_1), + .CH0_LDR_RX2CORE(n104_1), + .CH1_LDR_RX2CORE(n115_1), + .D_SCIRDATA0(sci_rddata[0]), + .D_SCIRDATA1(sci_rddata[1]), + .D_SCIRDATA2(sci_rddata[2]), + .D_SCIRDATA3(sci_rddata[3]), + .D_SCIRDATA4(sci_rddata[4]), + .D_SCIRDATA5(sci_rddata[5]), + .D_SCIRDATA6(sci_rddata[6]), + .D_SCIRDATA7(sci_rddata[7]), + .D_SCIINT(sci_int), + .D_SCAN_OUT_0(n19_1), + .D_SCAN_OUT_1(n20_1), + .D_SCAN_OUT_2(n21_1), + .D_SCAN_OUT_3(n22_1), + .D_SCAN_OUT_4(n23_1), + .D_SCAN_OUT_5(n24_1), + .D_SCAN_OUT_6(n25_1), + .D_SCAN_OUT_7(n26_1), + .D_COUT0(n27_1), + .D_COUT1(n28_1), + .D_COUT2(n29_1), + .D_COUT3(n30_1), + .D_COUT4(n31_1), + .D_COUT5(n32_1), + .D_COUT6(n33_1), + .D_COUT7(n34_1), + .D_COUT8(n35_1), + .D_COUT9(n36_1), + .D_COUT10(n37_1), + .D_COUT11(n38_1), + .D_COUT12(n39_1), + .D_COUT13(n40_1), + .D_COUT14(n41_1), + .D_COUT15(n42_1), + .D_COUT16(n43_1), + .D_COUT17(n44_1), + .D_COUT18(n45_1), + .D_COUT19(n46_1), + .D_REFCLKI(pll_refclki), + .D_FFS_PLOL(n49_1) +); +defparam DCU0_inst.D_MACROPDB = "0b1"; +defparam DCU0_inst.D_IB_PWDNB = "0b1"; +defparam DCU0_inst.D_XGE_MODE = "0b0"; +defparam DCU0_inst.D_LOW_MARK = "0d4"; +defparam DCU0_inst.D_HIGH_MARK = "0d12"; +defparam DCU0_inst.D_BUS8BIT_SEL = "0b0"; +defparam DCU0_inst.D_CDR_LOL_SET = "0b11"; +defparam DCU0_inst.D_BITCLK_LOCAL_EN = "0b1"; +defparam DCU0_inst.D_BITCLK_ND_EN = "0b0"; +defparam DCU0_inst.D_BITCLK_FROM_ND_EN = "0b0"; +defparam DCU0_inst.D_SYNC_LOCAL_EN = "0b1"; +defparam DCU0_inst.D_SYNC_ND_EN = "0b0"; +defparam DCU0_inst.CH0_UC_MODE = "0b1"; +defparam DCU0_inst.CH0_PCIE_MODE = "0b0"; +defparam DCU0_inst.CH0_RIO_MODE = "0b0"; +defparam DCU0_inst.CH0_WA_MODE = "0b0"; +defparam DCU0_inst.CH0_INVERT_RX = "0b0"; +defparam DCU0_inst.CH0_INVERT_TX = "0b0"; +defparam DCU0_inst.CH0_PRBS_SELECTION = "0b0"; +defparam DCU0_inst.CH0_GE_AN_ENABLE = "0b0"; +defparam DCU0_inst.CH0_PRBS_LOCK = "0b0"; +defparam DCU0_inst.CH0_PRBS_ENABLE = "0b0"; +defparam DCU0_inst.CH0_ENABLE_CG_ALIGN = "0b1"; +defparam DCU0_inst.CH0_TX_GEAR_MODE = "0b0"; +defparam DCU0_inst.CH0_RX_GEAR_MODE = "0b0"; +defparam DCU0_inst.CH0_PCS_DET_TIME_SEL = "0b00"; +defparam DCU0_inst.CH0_PCIE_EI_EN = "0b0"; +defparam DCU0_inst.CH0_TX_GEAR_BYPASS = "0b0"; +defparam DCU0_inst.CH0_ENC_BYPASS = "0b0"; +defparam DCU0_inst.CH0_SB_BYPASS = "0b0"; +defparam DCU0_inst.CH0_RX_SB_BYPASS = "0b0"; +defparam DCU0_inst.CH0_WA_BYPASS = "0b0"; +defparam DCU0_inst.CH0_DEC_BYPASS = "0b0"; +defparam DCU0_inst.CH0_CTC_BYPASS = "0b1"; +defparam DCU0_inst.CH0_RX_GEAR_BYPASS = "0b0"; +defparam DCU0_inst.CH0_LSM_DISABLE = "0b0"; +defparam DCU0_inst.CH0_MATCH_2_ENABLE = "0b0"; +defparam DCU0_inst.CH0_MATCH_4_ENABLE = "0b1"; +defparam DCU0_inst.CH0_MIN_IPG_CNT = "0b11"; +defparam DCU0_inst.CH0_CC_MATCH_1 = "0x1BC"; +defparam DCU0_inst.CH0_CC_MATCH_2 = "0x11C"; +defparam DCU0_inst.CH0_CC_MATCH_3 = "0x11C"; +defparam DCU0_inst.CH0_CC_MATCH_4 = "0x11C"; +defparam DCU0_inst.CH0_UDF_COMMA_MASK = "0x0ff"; +defparam DCU0_inst.CH0_UDF_COMMA_A = "0x083"; +defparam DCU0_inst.CH0_UDF_COMMA_B = "0x07C"; +defparam DCU0_inst.CH0_RX_DCO_CK_DIV = "0b010"; +defparam DCU0_inst.CH0_RCV_DCC_EN = "0b0"; +defparam DCU0_inst.CH0_REQ_LVL_SET = "0b00"; +defparam DCU0_inst.CH0_REQ_EN = "0b1"; +defparam DCU0_inst.CH0_RTERM_RX = "0d22"; +defparam DCU0_inst.CH0_PDEN_SEL = "0b1"; +defparam DCU0_inst.CH0_LDR_RX2CORE_SEL = "0b0"; +defparam DCU0_inst.CH0_LDR_CORE2TX_SEL = "0b0"; +defparam DCU0_inst.CH0_TPWDNB = "0b1"; +defparam DCU0_inst.CH0_RATE_MODE_TX = "0b0"; +defparam DCU0_inst.CH0_RTERM_TX = "0d19"; +defparam DCU0_inst.CH0_TX_CM_SEL = "0b00"; +defparam DCU0_inst.CH0_TDRV_PRE_EN = "0b0"; +defparam DCU0_inst.CH0_TDRV_SLICE0_SEL = "0b00"; +defparam DCU0_inst.CH0_TDRV_SLICE1_SEL = "0b00"; +defparam DCU0_inst.CH0_TDRV_SLICE2_SEL = "0b01"; +defparam DCU0_inst.CH0_TDRV_SLICE3_SEL = "0b01"; +defparam DCU0_inst.CH0_TDRV_SLICE4_SEL = "0b01"; +defparam DCU0_inst.CH0_TDRV_SLICE5_SEL = "0b00"; +defparam DCU0_inst.CH0_TDRV_SLICE0_CUR = "0b000"; +defparam DCU0_inst.CH0_TDRV_SLICE1_CUR = "0b000"; +defparam DCU0_inst.CH0_TDRV_SLICE2_CUR = "0b11"; +defparam DCU0_inst.CH0_TDRV_SLICE3_CUR = "0b11"; +defparam DCU0_inst.CH0_TDRV_SLICE4_CUR = "0b01"; +defparam DCU0_inst.CH0_TDRV_SLICE5_CUR = "0b00"; +defparam DCU0_inst.CH0_TDRV_DAT_SEL = "0b00"; +defparam DCU0_inst.CH0_TX_DIV11_SEL = "0b0"; +defparam DCU0_inst.CH0_RPWDNB = "0b1"; +defparam DCU0_inst.CH0_RATE_MODE_RX = "0b0"; +defparam DCU0_inst.CH0_RLOS_SEL = "0b1"; +defparam DCU0_inst.CH0_RX_LOS_LVL = "0b100"; +defparam DCU0_inst.CH0_RX_LOS_CEQ = "0b11"; +defparam DCU0_inst.CH0_RX_LOS_HYST_EN = "0b0"; +defparam DCU0_inst.CH0_RX_LOS_EN = "0b1"; +defparam DCU0_inst.CH0_RX_DIV11_SEL = "0b0"; +defparam DCU0_inst.CH0_SEL_SD_RX_CLK = "0b1"; +defparam DCU0_inst.CH0_FF_RX_H_CLK_EN = "0b0"; +defparam DCU0_inst.CH0_FF_RX_F_CLK_DIS = "0b0"; +defparam DCU0_inst.CH0_FF_TX_H_CLK_EN = "0b0"; +defparam DCU0_inst.CH0_FF_TX_F_CLK_DIS = "0b0"; +defparam DCU0_inst.CH0_RX_RATE_SEL = "0d10"; +defparam DCU0_inst.CH0_TDRV_POST_EN = "0b0"; +defparam DCU0_inst.CH0_TX_POST_SIGN = "0b0"; +defparam DCU0_inst.CH0_TX_PRE_SIGN = "0b0"; +defparam DCU0_inst.CH0_RXTERM_CM = "0b11"; +defparam DCU0_inst.CH0_RXIN_CM = "0b11"; +defparam DCU0_inst.CH0_LEQ_OFFSET_SEL = "0b0"; +defparam DCU0_inst.CH0_LEQ_OFFSET_TRIM = "0b000"; +defparam DCU0_inst.D_TX_MAX_RATE = "1.25"; +defparam DCU0_inst.CH0_CDR_MAX_RATE = "1.25"; +defparam DCU0_inst.CH0_TXAMPLITUDE = "0d800"; +defparam DCU0_inst.CH0_TXDEPRE = "DISABLED"; +defparam DCU0_inst.CH0_TXDEPOST = "DISABLED"; +defparam DCU0_inst.CH0_PROTOCOL = "G8B10B"; +defparam DCU0_inst.D_ISETLOS = "0d0"; +defparam DCU0_inst.D_SETIRPOLY_AUX = "0b00"; +defparam DCU0_inst.D_SETICONST_AUX = "0b00"; +defparam DCU0_inst.D_SETIRPOLY_CH = "0b00"; +defparam DCU0_inst.D_SETICONST_CH = "0b00"; +defparam DCU0_inst.D_REQ_ISET = "0b000"; +defparam DCU0_inst.D_PD_ISET = "0b00"; +defparam DCU0_inst.D_DCO_CALIB_TIME_SEL = "0b00"; +defparam DCU0_inst.CH0_DCOCTLGI = "0b010"; +defparam DCU0_inst.CH0_DCOATDDLY = "0b00"; +defparam DCU0_inst.CH0_DCOATDCFG = "0b00"; +defparam DCU0_inst.CH0_DCOBYPSATD = "0b1"; +defparam DCU0_inst.CH0_DCOSCALEI = "0b00"; +defparam DCU0_inst.CH0_DCOITUNE4LSB = "0b111"; +defparam DCU0_inst.CH0_DCOIOSTUNE = "0b000"; +defparam DCU0_inst.CH0_DCODISBDAVOID = "0b0"; +defparam DCU0_inst.CH0_DCOCALDIV = "0b001"; +defparam DCU0_inst.CH0_DCONUOFLSB = "0b101"; +defparam DCU0_inst.CH0_DCOIUPDNX2 = "0b1"; +defparam DCU0_inst.CH0_DCOSTEP = "0b00"; +defparam DCU0_inst.CH0_DCOSTARTVAL = "0b000"; +defparam DCU0_inst.CH0_DCOFLTDAC = "0b01"; +defparam DCU0_inst.CH0_DCOITUNE = "0b00"; +defparam DCU0_inst.CH0_DCOFTNRG = "0b110"; +defparam DCU0_inst.CH0_CDR_CNT4SEL = "0b00"; +defparam DCU0_inst.CH0_CDR_CNT8SEL = "0b00"; +defparam DCU0_inst.CH0_BAND_THRESHOLD = "0d0"; +defparam DCU0_inst.CH0_AUTO_FACQ_EN = "0b1"; +defparam DCU0_inst.CH0_AUTO_CALIB_EN = "0b1"; +defparam DCU0_inst.CH0_CALIB_CK_MODE = "0b0"; +defparam DCU0_inst.CH0_REG_BAND_OFFSET = "0d0"; +defparam DCU0_inst.CH0_REG_BAND_SEL = "0d0"; +defparam DCU0_inst.CH0_REG_IDAC_SEL = "0d0"; +defparam DCU0_inst.CH0_REG_IDAC_EN = "0b0"; +defparam DCU0_inst.D_TXPLL_PWDNB = "0b1"; +defparam DCU0_inst.D_SETPLLRC = "0d1"; +defparam DCU0_inst.D_REFCK_MODE = "0b001"; +defparam DCU0_inst.D_TX_VCO_CK_DIV = "0b010"; +defparam DCU0_inst.D_PLL_LOL_SET = "0b01"; +defparam DCU0_inst.D_RG_EN = "0b0"; +defparam DCU0_inst.D_RG_SET = "0b00"; +defparam DCU0_inst.D_CMUSETISCL4VCO = "0b000"; +defparam DCU0_inst.D_CMUSETI4VCO = "0b00"; +defparam DCU0_inst.D_CMUSETINITVCT = "0b00"; +defparam DCU0_inst.D_CMUSETZGM = "0b000"; +defparam DCU0_inst.D_CMUSETP2AGM = "0b000"; +defparam DCU0_inst.D_CMUSETP1GM = "0b000"; +defparam DCU0_inst.D_CMUSETI4CPZ = "0d0"; +defparam DCU0_inst.D_CMUSETI4CPP = "0d0"; +defparam DCU0_inst.D_CMUSETICP4Z = "0b101"; +defparam DCU0_inst.D_CMUSETICP4P = "0b11"; +defparam DCU0_inst.D_CMUSETBIASI = "0b00"; +// @8:425 + serdes_sync_1sll_core_Z1_layer1 sll_inst ( + .tx_pclk(tx_pclk), + .sli_rst(sli_rst), + .pll_refclki(pll_refclki), + .pll_lock_i(pll_lol) +); +// @8:395 + serdes_sync_1rsl_core_Z2_layer1 rsl_inst ( + .rx_pcs_rst_c(rx_pcs_rst_c), + .serdes_rst_dual_c(serdes_rst_dual_c), + .tx_serdes_rst_c(tx_serdes_rst_c), + .rsl_tx_pcs_rst_c(rsl_tx_pcs_rst_c), + .rst_dual_c(rst_dual_c), + .rsl_rx_pcs_rst_c(rsl_rx_pcs_rst_c), + .rsl_tx_serdes_rst_c(rsl_tx_serdes_rst_c), + .rsl_tx_rdy(rsl_tx_rdy), + .pll_lock_i(pll_lol), + .pll_refclki(pll_refclki), + .rsl_rx_rdy(rsl_rx_rdy), + .rx_cdr_lol_s(rx_cdr_lol_s), + .rx_los_low_s(rx_los_low_s), + .rsl_rst(rsl_rst), + .rxrefclk(rxrefclk), + .rx_serdes_rst_c(rx_serdes_rst_c), + .rsl_rx_serdes_rst_c(rsl_rx_serdes_rst_c), + .rsl_serdes_rst_dual_c(rsl_serdes_rst_dual_c), + .rsl_disable(rsl_disable), + .tx_pcs_rst_c(tx_pcs_rst_c) +); +endmodule /* serdes_sync_1 */ + diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1_cck.rpt.db b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1_cck.rpt.db new file mode 100644 index 0000000000000000000000000000000000000000..029fa7a6cf9014af50ee9d4aa843536a1f7b5c42 GIT binary patch literal 8192 zcmeI#JqyA>3DEQgKL*xDXO@ z%d=&(imfwzIG4G0Jf%J073BwWN1`{~f``Krs^Nta{J wY>_tId!-qqw)j}S$WL3iQGJ`s(T{)t1Rwwb2tWV=5P$##AOHafK;VZ3UKAiP82|tP literal 0 HcmV?d00001 diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1_scck.rpt.db b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1_scck.rpt.db new file mode 100644 index 0000000000000000000000000000000000000000..029fa7a6cf9014af50ee9d4aa843536a1f7b5c42 GIT binary patch literal 8192 zcmeI#JqyA>3DEQgKL*xDXO@ z%d=&(imfwzIG4G0Jf%J073BwWN1`{~f``Krs^Nta{J wY>_tId!-qqw)j}S$WL3iQGJ`s(T{)t1Rwwb2tWV=5P$##AOHafK;VZ3UKAiP82|tP literal 0 HcmV?d00001 diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1_synplify.lpf b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1_synplify.lpf new file mode 100644 index 0000000..9cbac38 --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1_synplify.lpf @@ -0,0 +1,29 @@ +# +# Logical Preferences generated for Lattice by Synplify maplat, Build 1796R. +# + +# Period Constraints +#FREQUENCY PORT "pll_refclki" 100.0 MHz; +#FREQUENCY PORT "rxrefclk" 100.0 MHz; +#FREQUENCY NET "tx_pclk" 100.0 MHz; + + +# Output Constraints + +# Input Constraints + +# Point-to-point Delay Constraints + + + +# Block Path Constraints +#BLOCK PATH FROM CLKNET "tx_pclk" TO CLKNET "rxrefclk"; +#BLOCK PATH FROM CLKNET "tx_pclk" TO CLKNET "pll_refclki"; +#BLOCK PATH FROM CLKNET "rxrefclk" TO CLKNET "tx_pclk"; +#BLOCK PATH FROM CLKNET "rxrefclk" TO CLKNET "pll_refclki"; +#BLOCK PATH FROM CLKNET "pll_refclki" TO CLKNET "tx_pclk"; +#BLOCK PATH FROM CLKNET "pll_refclki" TO CLKNET "rxrefclk"; + +BLOCK ASYNCPATHS; + +# End of generated Logical Preferences. diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1_synplify_tmp2.lpf b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1_synplify_tmp2.lpf new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1_synplify_tmp4.lpf b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1_synplify_tmp4.lpf new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1_synplify_tmp8.lpf b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1_synplify_tmp8.lpf new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/layer0.tlg.rptmap b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/layer0.tlg.rptmap new file mode 100644 index 0000000..3910cac --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/layer0.tlg.rptmap @@ -0,0 +1 @@ +./synwork/layer0.tlg,layer0.tlg,An incremental, partial HDL compilation log file that may allow early access to errors or other messages. diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/layer1.tlg.rptmap b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/layer1.tlg.rptmap new file mode 100644 index 0000000..af92e0b --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/layer1.tlg.rptmap @@ -0,0 +1 @@ +./synwork/layer1.tlg,layer1.tlg,An incremental, partial HDL compilation log file that may allow early access to errors or other messages. diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/linker.rpt.rptmap b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/linker.rpt.rptmap new file mode 100644 index 0000000..708d195 --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/linker.rpt.rptmap @@ -0,0 +1 @@ +./synwork/serdes_sync_1_comp.linkerlog,linker.rpt,Summary of linker messages for components that did not bind diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/metrics.db b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/metrics.db new file mode 100644 index 0000000000000000000000000000000000000000..331403430b3ebe0c4be37c68ac99a74e31551523 GIT binary patch literal 20480 zcmeI3O>fgk7{_gBi49DKibGXZ5rYDRA`()kX^XZJbfGFQEeNQDIH1UJCh1Un9LAGK zTvlpN@I|=paX-RJE6%%LV7~+x#AC;Kt3mf7qeeE;2bel@3Gh{o0-{s-aIHIHg_97U=G^C=Ofiq<90_zj>B@YHqU-B=^r$rYuPU+ z@Lv!uBLO6U1dsp{Kmter2_OL^fCP{L68H{*HOnIT8IpT!>rlIXtqDu@XmK@Nw5y%C zlgUm{=Zb|*_Tc^&6SCdWED5Y;EK;B(_e+``gpCg5FMTUL9bZ3Vks_pR+t4AJf;VbE zn8{M*hOs$qkp<9rJ=91nIp3Q5koAF5y#7B!&l&U|`a6A3>vS0!Sdah`Kmter2_OL^ zfCP{L5vj#G&^9F}NA&34PJ1#Y{|)s1r& z$t9tRyM7w$EIP{*Vy~P{WakF5i=}c>QrWiRAbQnK6d|gwI5F%RY*>KD+=y6pX|;U2 znu_(8{{`5Z0D}-Wlv{RImIgP|4~*CU7I|yXKj{Zr&Hk1BEt?~spaTmMKmter2_OL^ zfCP{L5k;X};7{lda%x#Sep8*_H|>@S-fF$?0<^)xWVvLV#pA4@ zM3+lef5(#4TP-fRibYs2NGr~xN5mqxV1k!p`pMAb369Vb=fUhnFgs&=@z)+k%sS3w zwTX6RD2u&mlG-HO&tdr=+is1`l-RCJ{PX>Q<{E4hT%~00sV%%#O>ylC2~R_BcVPG+ zJiNEbd{=wBJYw+JFxWf@yS%Xi+Xs2b-b}NT&Lfl4#CZL0(!UM(!GZ*k01`j~NB{{S w0VIF~kN^@u0!RP}oG1d*O + + + + + /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/serdes_sync_1_compiler.srr + Synopsys HDL Compiler + + + Completed + + + + 15 + /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_compiler_notes.txt + + + 77 + /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_compiler_warnings.txt + + + 0 + /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_compiler_errors.txt + + + - + + + 00h:00m:02s + + + - + + + 1557476612 + + + \ No newline at end of file diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_compiler_warnings.txt b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_compiler_warnings.txt new file mode 100644 index 0000000..6622b46 --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_compiler_warnings.txt @@ -0,0 +1,78 @@ +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1350:0:1350:5|Pruning unused register rcpri_mod_ch_st. Make sure that there are no unused intermediate registers. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 0 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 0 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 1 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 2 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 16 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 18 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 19 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 20 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 21 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":326:33:326:40|Object rrst_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":327:33:327:43|Removing wire rrst_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":328:33:328:41|Object rrst_wait is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":341:33:341:39|Object rxp_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":342:33:342:39|Object rxp_rst is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":343:33:343:42|Removing wire rxp_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":346:33:346:42|Object rlolsz_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":347:33:347:45|Removing wire rlolsz_cnt_tc, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":350:33:350:43|Removing wire rxp_cnt2_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":351:33:351:47|Object data_loop_b_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":352:33:352:43|Object data_loop_b is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":353:33:353:46|Removing wire data_loop_b_tc, as there is no assignment to it. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":806:3:806:8|Pruning unused register genblk2.rxp_cnt2[2:0]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlol_p3. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlos_p3. Make sure that there are no unused intermediate registers. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":694:3:694:8|Optimizing register bit genblk2.rxs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":461:3:461:8|Optimizing register bit genblk1.txp_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":422:3:422:8|Optimizing register bit genblk1.txs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":422:3:422:8|Pruning register bit 2 of genblk1.txs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":461:3:461:8|Pruning register bit 2 of genblk1.txp_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":694:3:694:8|Pruning register bit 2 of genblk2.rxs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":200:33:200:48|Input port bits 3 to 1 of rui_tx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":204:33:204:51|Input port bits 3 to 1 of rui_rx_serdes_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":205:33:205:48|Input port bits 3 to 1 of rui_rx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":206:33:206:48|Input port bits 3 to 1 of rdi_rx_los_low_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":207:33:207:48|Input port bits 3 to 1 of rdi_rx_cdr_lol_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|Pruning register bits 8 to 7 of genblk5.rdiff_comp_unlock[8:6]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|Pruning register bits 5 to 3 of genblk5.rdiff_comp_lock[5:2]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rdiff_comp_unlock[6]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rcount_tc[17]. Make sure that there are no unused intermediate registers. + diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_fpga_mapper_area_report.xml b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_fpga_mapper_area_report.xml new file mode 100644 index 0000000..8fa1b06 --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_fpga_mapper_area_report.xml @@ -0,0 +1,26 @@ + + + + +/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_fpga_mapper_resourceusage.rpt +Resource Usage + + +220 + + +0 + + +0 + + +0 + + +150 + + diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_fpga_mapper_errors.txt b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_fpga_mapper_errors.txt new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_fpga_mapper_notes.txt b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_fpga_mapper_notes.txt new file mode 100644 index 0000000..2d9eda0 --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_fpga_mapper_notes.txt @@ -0,0 +1,23 @@ +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1350:0:1350:5|Found counter in view:work.serdes_sync_1sll_core_Z1_layer1(verilog) instance rhb_wait_cnt[7:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1304:0:1304:5|Found counter in view:work.serdes_sync_1sll_core_Z1_layer1(verilog) instance rcount[15:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1759:0:1759:5|Found counter in view:work.serdes_sync_1sll_core_Z1_layer1(verilog) instance pcount[21:0] +@N: BN362 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1801:0:1801:5|Removing sequential instance sll_state[0] (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:PrimLib.dffr(prim) because it does not drive other instances. +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":412:3:412:8|Found counter in view:work.serdes_sync_1rsl_core_Z2_layer1(verilog) instance genblk1\.plol_cnt[19:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":909:3:909:8|Found counter in view:work.serdes_sync_1rsl_core_Z2_layer1(verilog) instance genblk2\.genblk3\.rxr_wt_cnt[11:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":527:3:527:8|Found counter in view:work.serdes_sync_1rsl_core_Z2_layer1(verilog) instance genblk1\.genblk2\.txr_wt_cnt[11:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":778:3:778:8|Found counter in view:work.serdes_sync_1rsl_core_Z2_layer1(verilog) instance genblk2\.rlols0_cnt[17:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":680:3:680:8|Found counter in view:work.serdes_sync_1rsl_core_Z2_layer1(verilog) instance genblk2\.rlol1_cnt[18:0] +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.serdes_sync_1(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.serdes_sync_1(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.serdes_sync_1(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.serdes_sync_1(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.serdes_sync_1(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.serdes_sync_1(v1)). +@N: FX164 |The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute. +@N: FX1056 |Writing EDF file: /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.edn +@N: BW106 |Synplicity Constraint File capacitance units using default value of 1pF +@N: MT320 |This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. +@N: MT322 |Clock constraints include only register-to-register paths associated with each individual clock. +@N: MT286 |System clock period 0.000 stretches to negative invalid value -- ignoring stretching. diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_fpga_mapper_opt_report.xml b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_fpga_mapper_opt_report.xml new file mode 100644 index 0000000..2137e39 --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_fpga_mapper_opt_report.xml @@ -0,0 +1,14 @@ + + + + +3 / 0 + +/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_fpga_mapper_combined_clk.rpt +START OF CLOCK OPTIMIZATION REPORT + + + diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_fpga_mapper_runstatus.xml b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_fpga_mapper_runstatus.xml new file mode 100644 index 0000000..dc0003e --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_fpga_mapper_runstatus.xml @@ -0,0 +1,46 @@ + + + + +/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/serdes_sync_1_fpga_mapper.srr +Synopsys Lattice Technology Mapper + + +Completed + + + +23 + +/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_fpga_mapper_notes.txt + + + +4 + +/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_fpga_mapper_warnings.txt + + + +0 + +/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_fpga_mapper_errors.txt + + + +0h:00m:03s + + +0h:00m:03s + + +152MB + + +1557476618 + + + diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_fpga_mapper_timing_report.xml b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_fpga_mapper_timing_report.xml new file mode 100644 index 0000000..ae318a5 --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_fpga_mapper_timing_report.xml @@ -0,0 +1,41 @@ + + + + +/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/serdes_sync_1_fpga_mapper.srr +START OF TIMING REPORT + + +Clock Name +Req Freq +Est Freq +Slack + + +serdes_sync_1|pll_refclki +100.0 MHz +168.9 MHz +4.079 + + +serdes_sync_1|rxrefclk +100.0 MHz +170.5 MHz +4.136 + + +serdes_sync_1|tx_pclk_inferred_clock +100.0 MHz +237.5 MHz +5.789 + + +System +100.0 MHz +840.7 MHz +8.810 + + diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_fpga_mapper_warnings.txt b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_fpga_mapper_warnings.txt new file mode 100644 index 0000000..08dea66 --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_fpga_mapper_warnings.txt @@ -0,0 +1,4 @@ +@W: MT246 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd":160:4:160:12|Blackbox DCUA is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) +@W: MT420 |Found inferred clock serdes_sync_1|rxrefclk with period 10.00ns. Please declare a user-defined clock on object "p:rxrefclk" +@W: MT420 |Found inferred clock serdes_sync_1|pll_refclki with period 10.00ns. Please declare a user-defined clock on object "p:pll_refclki" +@W: MT420 |Found inferred clock serdes_sync_1|tx_pclk_inferred_clock with period 10.00ns. Please declare a user-defined clock on object "n:tx_pclk" diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_premap_errors.txt b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_premap_errors.txt new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_premap_notes.txt b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_premap_notes.txt new file mode 100644 index 0000000..ff38fdb --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_premap_notes.txt @@ -0,0 +1,8 @@ +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) +@N: BN362 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1408:0:1408:5|Removing sequential instance pcpri_mod_ch (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:PrimLib.dffre(prim) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1244:27:1244:40|Removing instance div2_sync_inst (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_3(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1252:27:1252:41|Removing instance div11_sync_inst (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_2(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1236:27:1236:40|Removing instance gear_sync_inst (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_4(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1268:27:1268:44|Removing instance pcie_mod_sync_inst (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_0(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1260:27:1260:44|Removing instance cpri_mod_sync_inst (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_1(verilog) because it does not drive other instances. diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_premap_runstatus.xml b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_premap_runstatus.xml new file mode 100644 index 0000000..e63e0c3 --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_premap_runstatus.xml @@ -0,0 +1,46 @@ + + + + +/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/serdes_sync_1_premap.srr +Synopsys Lattice Technology Pre-mapping + + +Completed + + + +8 + +/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_premap_notes.txt + + + +3 + +/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_premap_warnings.txt + + + +0 + +/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_premap_errors.txt + + + +0h:00m:00s + + +0h:00m:00s + + +145MB + + +1557476614 + + + diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_premap_warnings.txt b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_premap_warnings.txt new file mode 100644 index 0000000..b332633 --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/report/serdes_sync_1_premap_warnings.txt @@ -0,0 +1,3 @@ +@W: MT529 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1988:0:1988:5|Found inferred clock serdes_sync_1|pll_refclki which controls 92 sequential elements including sll_inst.phb_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":567:3:567:8|Found inferred clock serdes_sync_1|rxrefclk which controls 77 sequential elements including rsl_inst.genblk2\.rlos_db_p1. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1988:0:1988:5|Found inferred clock serdes_sync_1|tx_pclk_inferred_clock which controls 53 sequential elements including sll_inst.rtc_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/serdes_sync_1_compiler.srr b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/serdes_sync_1_compiler.srr new file mode 100644 index 0000000..471f88d --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/serdes_sync_1_compiler.srr @@ -0,0 +1,357 @@ +Synopsys HDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Synopsys VHDL Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd":30:7:30:19|Top entity is set to serdes_sync_1. +VHDL syntax check successful! +File /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd changed - recompiling + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB) + + +Process completed successfully. +# Fri May 10 10:23:30 2019 + +###########################################################] +Synopsys Verilog Compiler, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. + +Running on host :lxhadeb07 +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps) +@I::"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v" (library work) +Verilog syntax check successful! + +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB) + + +Process completed successfully. +# Fri May 10 10:23:31 2019 + +###########################################################] +Running on host :lxhadeb07 +@N: CD720 :"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vhd/std.vhd":123:18:123:21|Setting time resolution to ps +@N:"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd":30:7:30:19|Top entity is set to serdes_sync_1. +File /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd changed - recompiling +File /home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd changed - recompiling +VHDL syntax check successful! +File /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd changed - recompiling +@N: CD630 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd":30:7:30:19|Synthesizing work.serdes_sync_1.v1. +Post processing for work.serdes_sync_1.v1 + +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 74MB peak: 76MB) + + +Process completed successfully. +# Fri May 10 10:23:31 2019 + +###########################################################] +Running on host :lxhadeb07 +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps) +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps) +@I::"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v" (library work) +Verilog syntax check successful! +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +@N: CG364 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1968:7:1968:10|Synthesizing module sync in library work. + + PDATA_RST_VAL=32'b00000000000000000000000000000000 + Generated name = sync_0s +@N: CG364 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1051:7:1051:27|Synthesizing module serdes_sync_1sll_core in library work. + + PPROTOCOL=48'b010001110011100001000010001100010011000001000010 + PLOL_SETTING=32'b00000000000000000000000000000001 + PDYN_RATE_CTRL=64'b0100010001001001010100110100000101000010010011000100010101000100 + PPCIE_MAX_RATE=24'b001100100010111000110101 + PDIFF_VAL_LOCK=32'b00000000000000000000000000100111 + PDIFF_VAL_UNLOCK=32'b00000000000000000000000100000110 + PPCLK_TC=32'b00000000000000100000000000000000 + PDIFF_DIV11_VAL_LOCK=32'b00000000000000000000000000000000 + PDIFF_DIV11_VAL_UNLOCK=32'b00000000000000000000000000000000 + PPCLK_DIV11_TC=32'b00000000000000000000000000000000 + LPLL_LOSS_ST=2'b00 + LPLL_PRELOSS_ST=2'b01 + LPLL_PRELOCK_ST=2'b10 + LPLL_LOCK_ST=2'b11 + LRCLK_TC=16'b1111111111111111 + LRCLK_TC_PUL_WIDTH=16'b0000000000110010 + LHB_WAIT_CNT=8'b11111111 + LPCLK_TC_0=32'b00000000000000001000000000000000 + LPCLK_TC_1=32'b00000000000000010000000000000000 + LPCLK_TC_2=32'b00000000000000100000000000000000 + LPCLK_TC_3=32'b00000000000000101000000000000000 + LPCLK_TC_4=32'b00000000000000010000000000000000 + LPDIFF_LOCK_00=32'b00000000000000000000000000001001 + LPDIFF_LOCK_10=32'b00000000000000000000000000010011 + LPDIFF_LOCK_20=32'b00000000000000000000000000100111 + LPDIFF_LOCK_30=32'b00000000000000000000000000110001 + LPDIFF_LOCK_40=32'b00000000000000000000000000010011 + LPDIFF_LOCK_01=32'b00000000000000000000000000001001 + LPDIFF_LOCK_11=32'b00000000000000000000000000010011 + LPDIFF_LOCK_21=32'b00000000000000000000000000100111 + LPDIFF_LOCK_31=32'b00000000000000000000000000110001 + LPDIFF_LOCK_41=32'b00000000000000000000000000010011 + LPDIFF_LOCK_02=32'b00000000000000000000000000110001 + LPDIFF_LOCK_12=32'b00000000000000000000000001100010 + LPDIFF_LOCK_22=32'b00000000000000000000000011000100 + LPDIFF_LOCK_32=32'b00000000000000000000000011110101 + LPDIFF_LOCK_42=32'b00000000000000000000000001100010 + LPDIFF_LOCK_03=32'b00000000000000000000000010000011 + LPDIFF_LOCK_13=32'b00000000000000000000000100000110 + LPDIFF_LOCK_23=32'b00000000000000000000001000001100 + LPDIFF_LOCK_33=32'b00000000000000000000001010001111 + LPDIFF_LOCK_43=32'b00000000000000000000000100000110 + LPDIFF_UNLOCK_00=32'b00000000000000000000000000010011 + LPDIFF_UNLOCK_10=32'b00000000000000000000000000100111 + LPDIFF_UNLOCK_20=32'b00000000000000000000000001001110 + LPDIFF_UNLOCK_30=32'b00000000000000000000000001100010 + LPDIFF_UNLOCK_40=32'b00000000000000000000000000100111 + LPDIFF_UNLOCK_01=32'b00000000000000000000000001000001 + LPDIFF_UNLOCK_11=32'b00000000000000000000000010000011 + LPDIFF_UNLOCK_21=32'b00000000000000000000000100000110 + LPDIFF_UNLOCK_31=32'b00000000000000000000000101000111 + LPDIFF_UNLOCK_41=32'b00000000000000000000000010000011 + LPDIFF_UNLOCK_02=32'b00000000000000000000000001001000 + LPDIFF_UNLOCK_12=32'b00000000000000000000000010010000 + LPDIFF_UNLOCK_22=32'b00000000000000000000000100100000 + LPDIFF_UNLOCK_32=32'b00000000000000000000000101101000 + LPDIFF_UNLOCK_42=32'b00000000000000000000000010010000 + LPDIFF_UNLOCK_03=32'b00000000000000000000000011000100 + LPDIFF_UNLOCK_13=32'b00000000000000000000000110001001 + LPDIFF_UNLOCK_23=32'b00000000000000000000001100010010 + LPDIFF_UNLOCK_33=32'b00000000000000000000001111010111 + LPDIFF_UNLOCK_43=32'b00000000000000000000000110001001 + Generated name = serdes_sync_1sll_core_Z1_layer1 +@N: CG179 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1287:54:1287:59|Removing redundant assignment. +@N: CG179 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1293:52:1293:55|Removing redundant assignment. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1350:0:1350:5|Pruning unused register rcpri_mod_ch_st. Make sure that there are no unused intermediate registers. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 0 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 0 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 1 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 2 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 16 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 18 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 19 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 20 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 21 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +@N: CG364 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":92:7:92:27|Synthesizing module serdes_sync_1rsl_core in library work. + + pnum_channels=32'b00000000000000000000000000000001 + pprotocol=48'b010001110011100001000010001100010011000001000010 + pserdes_mode=72'b010100100101100000100000010000010100111001000100001000000101010001011000 + pport_tx_rdy=56'b01000101010011100100000101000010010011000100010101000100 + pwait_tx_rdy=32'b00000000000000000000101110111000 + pport_rx_rdy=56'b01000101010011100100000101000010010011000100010101000100 + pwait_rx_rdy=32'b00000000000000000000101110111000 + wa_num_cycles=32'b00000000000000000000010000000000 + dac_num_cycles=32'b00000000000000000000000000000011 + lreset_pwidth=32'b00000000000000000000000000000011 + lwait_b4_trst=32'b00000000000010111110101111000010 + lwait_b4_trst_s=32'b00000000000000000000001100001101 + lplol_cnt_width=32'b00000000000000000000000000010100 + lwait_after_plol0=32'b00000000000000000000000000000100 + lwait_b4_rrst=32'b00000000000000101100000000000000 + lrrst_wait_width=32'b00000000000000000000000000010100 + lwait_after_rrst=32'b00000000000011000011010100000000 + lwait_b4_rrst_s=32'b00000000000000000000000111001100 + lrlol_cnt_width=32'b00000000000000000000000000010011 + lwait_after_lols=32'b00000000000000001100010000000000 + lwait_after_lols_s=32'b00000000000000000000000010010110 + llols_cnt_width=32'b00000000000000000000000000010010 + lrdb_max=32'b00000000000000000000000000001111 + ltxr_wait_width=32'b00000000000000000000000000001100 + lrxr_wait_width=32'b00000000000000000000000000001100 + Generated name = serdes_sync_1rsl_core_Z2_layer1 +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":326:33:326:40|Object rrst_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":327:33:327:43|Removing wire rrst_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":328:33:328:41|Object rrst_wait is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":341:33:341:39|Object rxp_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":342:33:342:39|Object rxp_rst is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":343:33:343:42|Removing wire rxp_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":346:33:346:42|Object rlolsz_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":347:33:347:45|Removing wire rlolsz_cnt_tc, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":350:33:350:43|Removing wire rxp_cnt2_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":351:33:351:47|Object data_loop_b_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":352:33:352:43|Object data_loop_b is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":353:33:353:46|Removing wire data_loop_b_tc, as there is no assignment to it. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":806:3:806:8|Pruning unused register genblk2.rxp_cnt2[2:0]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlol_p3. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlos_p3. Make sure that there are no unused intermediate registers. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":694:3:694:8|Optimizing register bit genblk2.rxs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":461:3:461:8|Optimizing register bit genblk1.txp_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":422:3:422:8|Optimizing register bit genblk1.txs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":422:3:422:8|Pruning register bit 2 of genblk1.txs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":461:3:461:8|Pruning register bit 2 of genblk1.txp_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":694:3:694:8|Pruning register bit 2 of genblk2.rxs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":200:33:200:48|Input port bits 3 to 1 of rui_tx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":204:33:204:51|Input port bits 3 to 1 of rui_rx_serdes_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":205:33:205:48|Input port bits 3 to 1 of rui_rx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":206:33:206:48|Input port bits 3 to 1 of rdi_rx_los_low_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":207:33:207:48|Input port bits 3 to 1 of rdi_rx_cdr_lol_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|Pruning register bits 8 to 7 of genblk5.rdiff_comp_unlock[8:6]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|Pruning register bits 5 to 3 of genblk5.rdiff_comp_lock[5:2]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rdiff_comp_unlock[6]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rcount_tc[17]. Make sure that there are no unused intermediate registers. +@N: CL201 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1801:0:1801:5|Trying to extract state machine for register sll_state. +Extracted state machine for register sll_state +State machine has 3 reachable states with original encodings of: + 00 + 01 + 11 + +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 75MB peak: 81MB) + + +Process completed successfully. +# Fri May 10 10:23:32 2019 + +###########################################################] +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug 4 2017 +@N|Running in 64-bit mode +File /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer0.srs changed - recompiling +File /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer1.srs changed - recompiling + +======================================================================================= +For a summary of linker messages for components that did not bind, please see log file: +@L: /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/serdes_sync_1_comp.linkerlog +======================================================================================= + + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 10:23:32 2019 + +###########################################################] +@END + +At c_hdl Exit (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 3MB peak: 4MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Fri May 10 10:23:32 2019 + +###########################################################] diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/serdes_sync_1_compiler.srr.db b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/serdes_sync_1_compiler.srr.db new file mode 100644 index 0000000000000000000000000000000000000000..b41afd23ba561957247397e61c5ae2f6545ea0dd GIT binary patch literal 32768 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 new code + 00 -> 00 + 01 -> 01 + 11 -> 10 +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1350:0:1350:5|Found counter in view:work.serdes_sync_1sll_core_Z1_layer1(verilog) instance rhb_wait_cnt[7:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1304:0:1304:5|Found counter in view:work.serdes_sync_1sll_core_Z1_layer1(verilog) instance rcount[15:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1759:0:1759:5|Found counter in view:work.serdes_sync_1sll_core_Z1_layer1(verilog) instance pcount[21:0] +@N: BN362 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1801:0:1801:5|Removing sequential instance sll_state[0] (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:PrimLib.dffr(prim) because it does not drive other instances. +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":412:3:412:8|Found counter in view:work.serdes_sync_1rsl_core_Z2_layer1(verilog) instance genblk1\.plol_cnt[19:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":909:3:909:8|Found counter in view:work.serdes_sync_1rsl_core_Z2_layer1(verilog) instance genblk2\.genblk3\.rxr_wt_cnt[11:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":527:3:527:8|Found counter in view:work.serdes_sync_1rsl_core_Z2_layer1(verilog) instance genblk1\.genblk2\.txr_wt_cnt[11:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":778:3:778:8|Found counter in view:work.serdes_sync_1rsl_core_Z2_layer1(verilog) instance genblk2\.rlols0_cnt[17:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":680:3:680:8|Found counter in view:work.serdes_sync_1rsl_core_Z2_layer1(verilog) instance genblk2\.rlol1_cnt[18:0] + +Starting factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + + +Finished factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 144MB) + + +Starting gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + + +Finished gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + + +Finished generic timing optimizations - Pass 1 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 145MB) + + +Starting Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 146MB) + + +Finished Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 146MB) + + +Finished generic timing optimizations - Pass 2 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 146MB) + + +Finished preparing to map (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:01s; Memory used current: 145MB peak: 146MB) + +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.serdes_sync_1(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.serdes_sync_1(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.serdes_sync_1(v1)). + +Finished technology mapping (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 146MB peak: 148MB) + +Pass CPU time Worst Slack Luts / Registers +------------------------------------------------------------ + 1 0h:00m:01s 5.35ns 151 / 220 +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.serdes_sync_1(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.serdes_sync_1(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.serdes_sync_1(v1)). + +Finished technology timing optimizations and critical path resynthesis (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 146MB peak: 148MB) + +@N: FX164 |The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute. + +Finished restoring hierarchy (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 146MB peak: 148MB) + + + +@S |Clock Optimization Summary + + +#### START OF CLOCK OPTIMIZATION REPORT #####[ + +3 non-gated/non-generated clock tree(s) driving 220 clock pin(s) of sequential element(s) +0 gated/generated clock tree(s) driving 0 clock pin(s) of sequential element(s) +0 instances converted, 0 sequential instances remain driven by gated/generated clocks + +============================================= Non-Gated/Non-Generated Clocks ============================================= +Clock Tree ID Driving Element Drive Element Type Fanout Sample Instance +-------------------------------------------------------------------------------------------------------------------------- +@K:CKID0001 pll_refclki port 90 rsl_inst.genblk1\.genblk2\.mfor\[0\]\.txpr_appd[0] +@K:CKID0002 rxrefclk port 77 rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] +@K:CKID0003 DCU0_inst DCUA 53 sll_inst.pcount_diff[21] +========================================================================================================================== + + +##### END OF CLOCK OPTIMIZATION REPORT ######] + + +Start Writing Netlists (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 111MB peak: 148MB) + +Writing Analyst data base /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/serdes_sync_1_m.srm + +Finished Writing Netlist Databases (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 146MB peak: 148MB) + +Writing EDIF Netlist and constraint files +@N: FX1056 |Writing EDF file: /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.edn +M-2017.03L-SP1-1 +@N: BW106 |Synplicity Constraint File capacitance units using default value of 1pF + +Finished Writing EDIF Netlist and constraint files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 150MB peak: 152MB) + +Writing Verilog Simulation files + +Finished Writing Verilog Simulation files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 150MB peak: 152MB) + +Writing VHDL Simulation files + +Finished Writing VHDL Simulation files (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 150MB peak: 152MB) + + +Start final timing analysis (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 150MB peak: 152MB) + +@W: MT246 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd":160:4:160:12|Blackbox DCUA is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) +@W: MT420 |Found inferred clock serdes_sync_1|rxrefclk with period 10.00ns. Please declare a user-defined clock on object "p:rxrefclk" +@W: MT420 |Found inferred clock serdes_sync_1|pll_refclki with period 10.00ns. Please declare a user-defined clock on object "p:pll_refclki" +@W: MT420 |Found inferred clock serdes_sync_1|tx_pclk_inferred_clock with period 10.00ns. Please declare a user-defined clock on object "n:tx_pclk" + + +##### START OF TIMING REPORT #####[ +# Timing Report written on Fri May 10 10:23:38 2019 +# + + +Top view: serdes_sync_1 +Requested Frequency: 100.0 MHz +Wire load mode: top +Paths requested: 5 +Constraint File(s): /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.fdc + +@N: MT320 |This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. + +@N: MT322 |Clock constraints include only register-to-register paths associated with each individual clock. + + + +Performance Summary +******************* + + +Worst slack in design: 4.079 + +@N: MT286 |System clock period 0.000 stretches to negative invalid value -- ignoring stretching. + Requested Estimated Requested Estimated Clock Clock +Starting Clock Frequency Frequency Period Period Slack Type Group +------------------------------------------------------------------------------------------------------------------------------------------- +serdes_sync_1|pll_refclki 100.0 MHz 168.9 MHz 10.000 5.921 4.079 inferred Inferred_clkgroup_0 +serdes_sync_1|rxrefclk 100.0 MHz 170.5 MHz 10.000 5.864 4.136 inferred Inferred_clkgroup_1 +serdes_sync_1|tx_pclk_inferred_clock 100.0 MHz 237.5 MHz 10.000 4.211 5.789 inferred Inferred_clkgroup_2 +System 100.0 MHz 840.7 MHz 10.000 1.190 8.810 system system_clkgroup +=========================================================================================================================================== + + + + + +Clock Relationships +******************* + +Clocks | rise to rise | fall to fall | rise to fall | fall to rise +------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Starting Ending | constraint slack | constraint slack | constraint slack | constraint slack +------------------------------------------------------------------------------------------------------------------------------------------------------------------- +System System | 10.000 10.000 | No paths - | No paths - | No paths - +System serdes_sync_1|rxrefclk | 10.000 8.811 | No paths - | No paths - | No paths - +serdes_sync_1|pll_refclki System | 10.000 8.307 | No paths - | No paths - | No paths - +serdes_sync_1|pll_refclki serdes_sync_1|pll_refclki | 10.000 4.079 | No paths - | No paths - | No paths - +serdes_sync_1|pll_refclki serdes_sync_1|tx_pclk_inferred_clock | Diff grp - | No paths - | No paths - | No paths - +serdes_sync_1|rxrefclk System | 10.000 8.193 | No paths - | No paths - | No paths - +serdes_sync_1|rxrefclk serdes_sync_1|rxrefclk | 10.000 4.136 | No paths - | No paths - | No paths - +serdes_sync_1|tx_pclk_inferred_clock serdes_sync_1|pll_refclki | Diff grp - | No paths - | No paths - | No paths - +serdes_sync_1|tx_pclk_inferred_clock serdes_sync_1|tx_pclk_inferred_clock | 10.000 5.789 | No paths - | No paths - | No paths - +=================================================================================================================================================================== + Note: 'No paths' indicates there are no paths in the design for that pair of clock edges. + 'Diff grp' indicates that paths exist but the starting clock and ending clock are in different clock groups. + + + +Interface Information +********************* + +No IO constraint found + + + +==================================== +Detailed Report for Clock: serdes_sync_1|pll_refclki +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +----------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[1] serdes_sync_1|pll_refclki FD1S3DX Q plol_cnt[1] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[6] serdes_sync_1|pll_refclki FD1S3DX Q plol_cnt[6] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[7] serdes_sync_1|pll_refclki FD1S3DX Q plol_cnt[7] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[12] serdes_sync_1|pll_refclki FD1S3DX Q plol_cnt[12] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[2] serdes_sync_1|pll_refclki FD1S3DX Q plol_cnt[2] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[3] serdes_sync_1|pll_refclki FD1S3DX Q plol_cnt[3] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[4] serdes_sync_1|pll_refclki FD1S3DX Q plol_cnt[4] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[5] serdes_sync_1|pll_refclki FD1S3DX Q plol_cnt[5] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[8] serdes_sync_1|pll_refclki FD1S3DX Q plol_cnt[8] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[9] serdes_sync_1|pll_refclki FD1S3DX Q plol_cnt[9] 0.907 4.684 +======================================================================================================================= + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +-------------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[19] serdes_sync_1|pll_refclki FD1S3DX D plol_cnt_s[19] 9.946 4.079 +rsl_inst.genblk1\.plol_cnt[17] serdes_sync_1|pll_refclki FD1S3DX D plol_cnt_s[17] 9.946 4.139 +rsl_inst.genblk1\.plol_cnt[18] serdes_sync_1|pll_refclki FD1S3DX D plol_cnt_s[18] 9.946 4.139 +rsl_inst.genblk1\.plol_cnt[15] serdes_sync_1|pll_refclki FD1S3DX D plol_cnt_s[15] 9.946 4.200 +rsl_inst.genblk1\.plol_cnt[16] serdes_sync_1|pll_refclki FD1S3DX D plol_cnt_s[16] 9.946 4.200 +rsl_inst.genblk1\.plol_cnt[13] serdes_sync_1|pll_refclki FD1S3DX D plol_cnt_s[13] 9.946 4.261 +rsl_inst.genblk1\.plol_cnt[14] serdes_sync_1|pll_refclki FD1S3DX D plol_cnt_s[14] 9.946 4.261 +rsl_inst.genblk1\.plol_cnt[11] serdes_sync_1|pll_refclki FD1S3DX D plol_cnt_s[11] 9.946 4.322 +rsl_inst.genblk1\.plol_cnt[12] serdes_sync_1|pll_refclki FD1S3DX D plol_cnt_s[12] 9.946 4.322 +rsl_inst.genblk1\.plol_cnt[9] serdes_sync_1|pll_refclki FD1S3DX D plol_cnt_s[9] 9.946 4.383 +========================================================================================================================== + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 5.867 + - Clock delay at starting point: 0.000 (ideal) + = Slack (critical) : 4.079 + + Number of logic level(s): 15 + Starting point: rsl_inst.genblk1\.plol_cnt[1] / Q + Ending point: rsl_inst.genblk1\.plol_cnt[19] / D + The start point is clocked by serdes_sync_1|pll_refclki [rising] on pin CK + The end point is clocked by serdes_sync_1|pll_refclki [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[1] FD1S3DX Q Out 0.907 0.907 - +plol_cnt[1] Net - - - - 2 +rsl_inst.genblk1\.un1_plol_cnt_tc_10 ORCALUT4 A In 0.000 0.907 - +rsl_inst.genblk1\.un1_plol_cnt_tc_10 ORCALUT4 Z Out 0.606 1.513 - +un1_plol_cnt_tc_10 Net - - - - 1 +rsl_inst.genblk1\.un1_plol_cnt_tc_14 ORCALUT4 D In 0.000 1.513 - +rsl_inst.genblk1\.un1_plol_cnt_tc_14 ORCALUT4 Z Out 0.606 2.119 - +un1_plol_cnt_tc_14 Net - - - - 1 +rsl_inst.genblk1\.un1_plol_cnt_tc ORCALUT4 D In 0.000 2.119 - +rsl_inst.genblk1\.un1_plol_cnt_tc ORCALUT4 Z Out 0.762 2.881 - +un1_plol_cnt_tc Net - - - - 5 +rsl_inst.genblk1\.plol_cnt11_i ORCALUT4 B In 0.000 2.881 - +rsl_inst.genblk1\.plol_cnt11_i ORCALUT4 Z Out 0.840 3.721 - +plol_cnt Net - - - - 21 +rsl_inst.genblk1\.plol_cnt_cry_0[0] CCU2C A1 In 0.000 3.721 - +rsl_inst.genblk1\.plol_cnt_cry_0[0] CCU2C COUT Out 0.900 4.621 - +plol_cnt_cry[0] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[1] CCU2C CIN In 0.000 4.621 - +rsl_inst.genblk1\.plol_cnt_cry_0[1] CCU2C COUT Out 0.061 4.682 - +plol_cnt_cry[2] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[3] CCU2C CIN In 0.000 4.682 - +rsl_inst.genblk1\.plol_cnt_cry_0[3] CCU2C COUT Out 0.061 4.743 - +plol_cnt_cry[4] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[5] CCU2C CIN In 0.000 4.743 - +rsl_inst.genblk1\.plol_cnt_cry_0[5] CCU2C COUT Out 0.061 4.804 - +plol_cnt_cry[6] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[7] CCU2C CIN In 0.000 4.804 - +rsl_inst.genblk1\.plol_cnt_cry_0[7] CCU2C COUT Out 0.061 4.865 - +plol_cnt_cry[8] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[9] CCU2C CIN In 0.000 4.865 - +rsl_inst.genblk1\.plol_cnt_cry_0[9] CCU2C COUT Out 0.061 4.926 - +plol_cnt_cry[10] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[11] CCU2C CIN In 0.000 4.926 - +rsl_inst.genblk1\.plol_cnt_cry_0[11] CCU2C COUT Out 0.061 4.987 - +plol_cnt_cry[12] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[13] CCU2C CIN In 0.000 4.987 - +rsl_inst.genblk1\.plol_cnt_cry_0[13] CCU2C COUT Out 0.061 5.048 - +plol_cnt_cry[14] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[15] CCU2C CIN In 0.000 5.048 - +rsl_inst.genblk1\.plol_cnt_cry_0[15] CCU2C COUT Out 0.061 5.109 - +plol_cnt_cry[16] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[17] CCU2C CIN In 0.000 5.109 - +rsl_inst.genblk1\.plol_cnt_cry_0[17] CCU2C COUT Out 0.061 5.170 - +plol_cnt_cry[18] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_s_0[19] CCU2C CIN In 0.000 5.170 - +rsl_inst.genblk1\.plol_cnt_s_0[19] CCU2C S0 Out 0.698 5.867 - +plol_cnt_s[19] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt[19] FD1S3DX D In 0.000 5.867 - +======================================================================================================= + + + + +==================================== +Detailed Report for Clock: serdes_sync_1|rxrefclk +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------------------------------------------ +rsl_inst.genblk2\.rlol1_cnt[14] serdes_sync_1|rxrefclk FD1P3DX Q rlol1_cnt[14] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[15] serdes_sync_1|rxrefclk FD1P3DX Q rlol1_cnt[15] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[16] serdes_sync_1|rxrefclk FD1P3DX Q rlol1_cnt[16] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[17] serdes_sync_1|rxrefclk FD1P3DX Q rlol1_cnt[17] 0.907 4.136 +rsl_inst.genblk2\.rlols0_cnt[9] serdes_sync_1|rxrefclk FD1P3DX Q rlols0_cnt[9] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[11] serdes_sync_1|rxrefclk FD1P3DX Q rlols0_cnt[11] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[12] serdes_sync_1|rxrefclk FD1P3DX Q rlols0_cnt[12] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[13] serdes_sync_1|rxrefclk FD1P3DX Q rlols0_cnt[13] 0.907 4.170 +rsl_inst.genblk2\.rlol1_cnt[0] serdes_sync_1|rxrefclk FD1P3DX Q rlol1_cnt[0] 0.907 4.742 +rsl_inst.genblk2\.rlol1_cnt[1] serdes_sync_1|rxrefclk FD1P3DX Q rlol1_cnt[1] 0.907 4.742 +======================================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rlol1_cnt[17] serdes_sync_1|rxrefclk FD1P3DX D rlol1_cnt_s[17] 9.946 4.136 +rsl_inst.genblk2\.rlol1_cnt[18] serdes_sync_1|rxrefclk FD1P3DX D rlol1_cnt_s[18] 9.946 4.136 +rsl_inst.genblk2\.rlols0_cnt[17] serdes_sync_1|rxrefclk FD1P3DX D rlols0_cnt_s[17] 9.946 4.170 +rsl_inst.genblk2\.rlol1_cnt[15] serdes_sync_1|rxrefclk FD1P3DX D rlol1_cnt_s[15] 9.946 4.197 +rsl_inst.genblk2\.rlol1_cnt[16] serdes_sync_1|rxrefclk FD1P3DX D rlol1_cnt_s[16] 9.946 4.197 +rsl_inst.genblk2\.rlols0_cnt[15] serdes_sync_1|rxrefclk FD1P3DX D rlols0_cnt_s[15] 9.946 4.231 +rsl_inst.genblk2\.rlols0_cnt[16] serdes_sync_1|rxrefclk FD1P3DX D rlols0_cnt_s[16] 9.946 4.231 +rsl_inst.genblk2\.rlol1_cnt[13] serdes_sync_1|rxrefclk FD1P3DX D rlol1_cnt_s[13] 9.946 4.258 +rsl_inst.genblk2\.rlol1_cnt[14] serdes_sync_1|rxrefclk FD1P3DX D rlol1_cnt_s[14] 9.946 4.258 +rsl_inst.genblk2\.rlols0_cnt[13] serdes_sync_1|rxrefclk FD1P3DX D rlols0_cnt_s[13] 9.946 4.292 +=========================================================================================================================== + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 5.809 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : 4.136 + + Number of logic level(s): 14 + Starting point: rsl_inst.genblk2\.rlol1_cnt[14] / Q + Ending point: rsl_inst.genblk2\.rlol1_cnt[18] / D + The start point is clocked by serdes_sync_1|rxrefclk [rising] on pin CK + The end point is clocked by serdes_sync_1|rxrefclk [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +-------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rlol1_cnt[14] FD1P3DX Q Out 0.907 0.907 - +rlol1_cnt[14] Net - - - - 2 +rsl_inst.rlol1_cnt_tc_1_10 ORCALUT4 A In 0.000 0.907 - +rsl_inst.rlol1_cnt_tc_1_10 ORCALUT4 Z Out 0.606 1.513 - +rlol1_cnt_tc_1_10 Net - - - - 1 +rsl_inst.rlol1_cnt_tc_1_14 ORCALUT4 D In 0.000 1.513 - +rsl_inst.rlol1_cnt_tc_1_14 ORCALUT4 Z Out 0.606 2.119 - +rlol1_cnt_tc_1_14 Net - - - - 1 +rsl_inst.rlol1_cnt_tc_1 ORCALUT4 D In 0.000 2.119 - +rsl_inst.rlol1_cnt_tc_1 ORCALUT4 Z Out 0.768 2.887 - +rlol1_cnt_tc_1 Net - - - - 6 +rsl_inst.genblk2\.rlos_db_p1_RNIS0OP ORCALUT4 A In 0.000 2.887 - +rsl_inst.genblk2\.rlos_db_p1_RNIS0OP ORCALUT4 Z Out 0.837 3.724 - +rlol1_cnt Net - - - - 20 +rsl_inst.genblk2\.rlol1_cnt_cry_0[0] CCU2C A1 In 0.000 3.724 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[0] CCU2C COUT Out 0.900 4.624 - +rlol1_cnt_cry[0] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[1] CCU2C CIN In 0.000 4.624 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[1] CCU2C COUT Out 0.061 4.685 - +rlol1_cnt_cry[2] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[3] CCU2C CIN In 0.000 4.685 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[3] CCU2C COUT Out 0.061 4.746 - +rlol1_cnt_cry[4] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[5] CCU2C CIN In 0.000 4.746 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[5] CCU2C COUT Out 0.061 4.807 - +rlol1_cnt_cry[6] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[7] CCU2C CIN In 0.000 4.807 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[7] CCU2C COUT Out 0.061 4.868 - +rlol1_cnt_cry[8] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[9] CCU2C CIN In 0.000 4.868 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[9] CCU2C COUT Out 0.061 4.929 - +rlol1_cnt_cry[10] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[11] CCU2C CIN In 0.000 4.929 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[11] CCU2C COUT Out 0.061 4.990 - +rlol1_cnt_cry[12] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[13] CCU2C CIN In 0.000 4.990 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[13] CCU2C COUT Out 0.061 5.051 - +rlol1_cnt_cry[14] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[15] CCU2C CIN In 0.000 5.051 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[15] CCU2C COUT Out 0.061 5.112 - +rlol1_cnt_cry[16] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt_cry_0[17] CCU2C CIN In 0.000 5.112 - +rsl_inst.genblk2\.rlol1_cnt_cry_0[17] CCU2C S1 Out 0.698 5.809 - +rlol1_cnt_s[18] Net - - - - 1 +rsl_inst.genblk2\.rlol1_cnt[18] FD1P3DX D In 0.000 5.809 - +======================================================================================================== + + + + +==================================== +Detailed Report for Clock: serdes_sync_1|tx_pclk_inferred_clock +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------------------------------------------------- +sll_inst.ppul_sync_p1 serdes_sync_1|tx_pclk_inferred_clock FD1S3DX Q ppul_sync_p1 1.098 5.789 +sll_inst.ppul_sync_p2 serdes_sync_1|tx_pclk_inferred_clock FD1S3DX Q ppul_sync_p2 1.098 5.789 +sll_inst.pcount_diff[0] serdes_sync_1|tx_pclk_inferred_clock FD1P3BX Q un13_lock_0 0.985 6.147 +sll_inst.pcount[0] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX Q pcount[0] 0.955 6.178 +sll_inst.pcount_diff[1] serdes_sync_1|tx_pclk_inferred_clock FD1P3BX Q un13_lock_1 0.955 6.239 +sll_inst.pcount_diff[2] serdes_sync_1|tx_pclk_inferred_clock FD1P3BX Q un13_lock_2 0.955 6.239 +sll_inst.pcount[1] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX Q pcount[1] 0.907 6.287 +sll_inst.pcount[2] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX Q pcount[2] 0.907 6.287 +sll_inst.pcount_diff[3] serdes_sync_1|tx_pclk_inferred_clock FD1P3BX Q un13_lock_3 0.955 6.300 +sll_inst.pcount_diff[4] serdes_sync_1|tx_pclk_inferred_clock FD1P3BX Q un13_lock_4 0.955 6.300 +=========================================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +-------------------------------------------------------------------------------------------------------------------------------------------- +sll_inst.pcount[21] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX D pcount_s[21] 9.946 5.789 +sll_inst.pcount[19] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX D pcount_s[19] 9.946 5.850 +sll_inst.pcount[20] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX D pcount_s[20] 9.946 5.850 +sll_inst.pcount[17] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX D pcount_s[17] 9.946 5.911 +sll_inst.pcount[18] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX D pcount_s[18] 9.946 5.911 +sll_inst.pcount[15] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX D pcount_s[15] 9.946 5.972 +sll_inst.pcount[16] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX D pcount_s[16] 9.946 5.972 +sll_inst.pcount[13] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX D pcount_s[13] 9.946 6.033 +sll_inst.pcount[14] serdes_sync_1|tx_pclk_inferred_clock FD1S3DX D pcount_s[14] 9.946 6.033 +sll_inst.pcount_diff[21] serdes_sync_1|tx_pclk_inferred_clock FD1P3DX D un1_pcount_diff_1_s_21_0_S0 9.946 6.034 +============================================================================================================================================ + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 4.157 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : 5.789 + + Number of logic level(s): 13 + Starting point: sll_inst.ppul_sync_p1 / Q + Ending point: sll_inst.pcount[21] / D + The start point is clocked by serdes_sync_1|tx_pclk_inferred_clock [rising] on pin CK + The end point is clocked by serdes_sync_1|tx_pclk_inferred_clock [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +-------------------------------------------------------------------------------------------- +sll_inst.ppul_sync_p1 FD1S3DX Q Out 1.098 1.098 - +ppul_sync_p1 Net - - - - 25 +sll_inst.pcount10_0_o3 ORCALUT4 A In 0.000 1.098 - +sll_inst.pcount10_0_o3 ORCALUT4 Z Out 0.851 1.950 - +N_8 Net - - - - 25 +sll_inst.pcount_cry_0[0] CCU2C A1 In 0.000 1.950 - +sll_inst.pcount_cry_0[0] CCU2C COUT Out 0.900 2.850 - +pcount_cry[0] Net - - - - 1 +sll_inst.pcount_cry_0[1] CCU2C CIN In 0.000 2.850 - +sll_inst.pcount_cry_0[1] CCU2C COUT Out 0.061 2.911 - +pcount_cry[2] Net - - - - 1 +sll_inst.pcount_cry_0[3] CCU2C CIN In 0.000 2.911 - +sll_inst.pcount_cry_0[3] CCU2C COUT Out 0.061 2.972 - +pcount_cry[4] Net - - - - 1 +sll_inst.pcount_cry_0[5] CCU2C CIN In 0.000 2.972 - +sll_inst.pcount_cry_0[5] CCU2C COUT Out 0.061 3.033 - +pcount_cry[6] Net - - - - 1 +sll_inst.pcount_cry_0[7] CCU2C CIN In 0.000 3.033 - +sll_inst.pcount_cry_0[7] CCU2C COUT Out 0.061 3.094 - +pcount_cry[8] Net - - - - 1 +sll_inst.pcount_cry_0[9] CCU2C CIN In 0.000 3.094 - +sll_inst.pcount_cry_0[9] CCU2C COUT Out 0.061 3.155 - +pcount_cry[10] Net - - - - 1 +sll_inst.pcount_cry_0[11] CCU2C CIN In 0.000 3.155 - +sll_inst.pcount_cry_0[11] CCU2C COUT Out 0.061 3.216 - +pcount_cry[12] Net - - - - 1 +sll_inst.pcount_cry_0[13] CCU2C CIN In 0.000 3.216 - +sll_inst.pcount_cry_0[13] CCU2C COUT Out 0.061 3.277 - +pcount_cry[14] Net - - - - 1 +sll_inst.pcount_cry_0[15] CCU2C CIN In 0.000 3.277 - +sll_inst.pcount_cry_0[15] CCU2C COUT Out 0.061 3.338 - +pcount_cry[16] Net - - - - 1 +sll_inst.pcount_cry_0[17] CCU2C CIN In 0.000 3.338 - +sll_inst.pcount_cry_0[17] CCU2C COUT Out 0.061 3.399 - +pcount_cry[18] Net - - - - 1 +sll_inst.pcount_cry_0[19] CCU2C CIN In 0.000 3.399 - +sll_inst.pcount_cry_0[19] CCU2C COUT Out 0.061 3.460 - +pcount_cry[20] Net - - - - 1 +sll_inst.pcount_s_0[21] CCU2C CIN In 0.000 3.460 - +sll_inst.pcount_s_0[21] CCU2C S0 Out 0.698 4.157 - +pcount_s[21] Net - - - - 1 +sll_inst.pcount[21] FD1S3DX D In 0.000 4.157 - +============================================================================================ + + + + +==================================== +Detailed Report for Clock: System +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------------- +DCU0_inst System DCUA CH0_FFS_RLOL rx_cdr_lol_s 0.000 8.810 +DCU0_inst System DCUA CH0_FFS_RLOS rx_los_low_s 0.000 8.810 +DCU0_inst System DCUA CH0_FF_RX_PCLK rx_pclk 0.000 10.000 +=========================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] System FD1P3DX SP un2_rdo_serdes_rst_dual_c_2_i 9.806 8.810 +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] System FD1P3DX D un2_rdo_serdes_rst_dual_c_1 9.946 9.556 +rsl_inst.genblk2\.rlol_p1 System FD1S3DX D rx_cdr_lol_s 9.946 9.946 +rsl_inst.genblk2\.rlos_p1 System FD1S3DX D rx_los_low_s 9.946 9.946 +DCU0_inst System DCUA CH0_FF_RXI_CLK rx_pclk 10.000 10.000 +========================================================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.194 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.806 + + - Propagation time: 0.996 + - Clock delay at starting point: 0.000 (ideal) + - Estimated clock delay at start point: -0.000 + = Slack (non-critical) : 8.810 + + Number of logic level(s): 2 + Starting point: DCU0_inst / CH0_FFS_RLOL + Ending point: rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] / SP + The start point is clocked by System [rising] + The end point is clocked by serdes_sync_1|rxrefclk [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +--------------------------------------------------------------------------------------------------------------------------------- +DCU0_inst DCUA CH0_FFS_RLOL Out 0.000 0.000 - +rx_cdr_lol_s Net - - - - 4 +rsl_inst.un2_rdo_serdes_rst_dual_c_2_0 ORCALUT4 B In 0.000 0.000 - +rsl_inst.un2_rdo_serdes_rst_dual_c_2_0 ORCALUT4 Z Out 0.606 0.606 - +un2_rdo_serdes_rst_dual_c_2_0 Net - - - - 1 +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd_RNO[0] ORCALUT4 B In 0.000 0.606 - +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd_RNO[0] ORCALUT4 Z Out 0.390 0.996 - +un2_rdo_serdes_rst_dual_c_2_i Net - - - - 1 +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] FD1P3DX SP In 0.000 0.996 - +================================================================================================================================= + + + +##### END OF TIMING REPORT #####] + +Timing exceptions that could not be applied +None + +Finished final timing analysis (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 150MB peak: 152MB) + + +Finished timing report (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 150MB peak: 152MB) + +--------------------------------------- +Resource Usage Report +Part: lfe5um_25f-6 + +Register bits: 220 of 24288 (1%) +PIC Latch: 0 +I/O cells: 0 + + +Details: +CCU2C: 113 +DCUA: 1 +FD1P3BX: 20 +FD1P3DX: 92 +FD1S3BX: 12 +FD1S3DX: 96 +GSR: 1 +INV: 3 +ORCALUT4: 150 +PFUMX: 2 +PUR: 1 +VHI: 6 +VLO: 6 +Mapper successful! + +At Mapper Exit (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 35MB peak: 152MB) + +Process took 0h:00m:03s realtime, 0h:00m:03s cputime +# Fri May 10 10:23:38 2019 + +###########################################################] diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/serdes_sync_1_fpga_mapper.srr.db b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/serdes_sync_1_fpga_mapper.srr.db new file mode 100644 index 0000000000000000000000000000000000000000..f91149b0137889f30b1864304ece9560b909c129 GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/serdes_sync_1_premap.srr b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/serdes_sync_1_premap.srr new file mode 100644 index 0000000..bee72ed --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/serdes_sync_1_premap.srr @@ -0,0 +1,84 @@ +# Fri May 10 10:23:33 2019 + +Synopsys Lattice Technology Pre-mapping, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + +Reading constraint file: /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.fdc +@L: /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1_scck.rpt +Printing clock summary report in "/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1_scck.rpt" file +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 102MB peak: 104MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 102MB peak: 104MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 115MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 117MB) + +@N: BN362 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1408:0:1408:5|Removing sequential instance pcpri_mod_ch (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:PrimLib.dffre(prim) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1244:27:1244:40|Removing instance div2_sync_inst (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_3(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1252:27:1252:41|Removing instance div11_sync_inst (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_2(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1236:27:1236:40|Removing instance gear_sync_inst (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_4(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1268:27:1268:44|Removing instance pcie_mod_sync_inst (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_0(verilog) because it does not drive other instances. +@N: BN115 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1260:27:1260:44|Removing instance cpri_mod_sync_inst (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_1(verilog) because it does not drive other instances. +ICG Latch Removal Summary: +Number of ICG latches removed: 0 +Number of ICG latches not removed: 0 +syn_allowed_resources : blockrams=56 set on top level netlist serdes_sync_1 + +Finished netlist restructuring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 145MB) + + + +Clock Summary +****************** + + Start Requested Requested Clock Clock Clock +Level Clock Frequency Period Type Group Load +------------------------------------------------------------------------------------------------------------------------- +0 - System 100.0 MHz 10.000 system system_clkgroup 0 + +0 - serdes_sync_1|pll_refclki 100.0 MHz 10.000 inferred Inferred_clkgroup_0 92 + +0 - serdes_sync_1|rxrefclk 100.0 MHz 10.000 inferred Inferred_clkgroup_1 77 + +0 - serdes_sync_1|tx_pclk_inferred_clock 100.0 MHz 10.000 inferred Inferred_clkgroup_2 53 +========================================================================================================================= + +@W: MT529 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1988:0:1988:5|Found inferred clock serdes_sync_1|pll_refclki which controls 92 sequential elements including sll_inst.phb_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":567:3:567:8|Found inferred clock serdes_sync_1|rxrefclk which controls 77 sequential elements including rsl_inst.genblk2\.rlos_db_p1. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1988:0:1988:5|Found inferred clock serdes_sync_1|tx_pclk_inferred_clock which controls 53 sequential elements including sll_inst.rtc_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. + +Finished Pre Mapping Phase. + +Starting constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 145MB) + +Encoding state machine sll_state[2:0] (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) +original code -> new code + 00 -> 00 + 01 -> 01 + 11 -> 10 + +Finished constraint checker preprocessing (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 145MB) + +None +None + +Finished constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 145MB) + +Pre-mapping successful! + +At Mapper Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 59MB peak: 145MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime +# Fri May 10 10:23:34 2019 + +###########################################################] diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/serdes_sync_1_premap.srr.db b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/serdes_sync_1_premap.srr.db new file mode 100644 index 0000000000000000000000000000000000000000..1df133250f99d67da2b94371cc7adb46762f2965 GIT binary patch literal 8192 zcmeI0&2HO95P&7cwUfBEa|sNz2r%_YLSsp!L|KwAO$_H!r)XWD>H@@y97xCGhQml{aRF-!3cb^^X!ojoWd%JMjTIN2C zne+xsK829S!?W5<<*Z@I<8#Uh_2jXxn0NE#duxTY-_{OS;ltmTe|b20u)Xx>;^D%t z)SQ=`!23kt_0#41>&LI&eExCi<$+^&HfjSAVU78cv$)phx~65%QC>}Bl!Q!UEs^3o z^r#(`c2$tn6iOeJtERE%)-Tkoi#1n?K!>8wz3OR67xDP4} zX$YmOQhV8&)0)pTa}&D?2LrBV^ADJUSb$2<;{m5-X&#v&XfmZGBX0uP>=BznB5_Pp znTKPPii;RT0DU6ngOJe27-d>Xm#u)&?=}6HZ`3iI0*?~rX&{!oA47sN{f{#CunH3< zW13m7zW(STnQQXq(_1%})7t7by5`#c2gZ^|5(Bc<4A9&>TU(cyN2-~52v{#1+TT`X zD3t5>+{F6N8|RY;=~;4a-8ff0O9>r<%s~9_7V6lSSZIELl0onPcYsbh_sK>-p7bA= zo_}Fk&Mo>oyH)SnTV2b@W^*4SF*e@BxF1HR9K1wwHxm9CR4DTp#vCVIm9z9Jk>zwsX-LrDfw4jF`8z}@%PDh~eb#x>77(wU( z%K6Gvm7btpJ?Sjn9lQ37UHhHv5|87}v#ZYuU!9$^n6h*4VBa-b89S2A`rG@ik4)a| zo@-u%TkC_A8@mH;j-7EM*|gr~=JT;--7Gl!8sMCTJKJ#0W(JPryEYtwvu~DL;~L!B z_lVo86K*zKqh;S>fN0j!gxCmYzTM7cv-3!i%tHmGzW+{)_)_v{kN2v65J)UjB#J6m z_HonF()!Br;p5WF7p+!nC(Yr{rNbDT_k6z!1M?N3qG4jee`S*`x4AQ59!F F>@P*+<39iZ literal 0 HcmV?d00001 diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/serdes_sync_1_premap.szr b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/serdes_sync_1_premap.szr new file mode 100644 index 0000000000000000000000000000000000000000..d9730c2db9cd6aa0794a1e62ca77442afc646761 GIT binary patch literal 3615 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/syntax_constraint_check.rpt.rptmap b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/syntax_constraint_check.rpt.rptmap new file mode 100644 index 0000000..6c6e0b6 --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synlog/syntax_constraint_check.rpt.rptmap @@ -0,0 +1 @@ +./serdes_sync_1_scck.rpt,syntax_constraint_check.rpt,Syntax Constraint Check Report diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/syntmp/closed.png b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/syntmp/closed.png new file mode 100644 index 0000000000000000000000000000000000000000..0d78634f322a904e7bd0c9466498c0a42777589f GIT binary patch literal 3672 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 + + + + + + + + + + + + + + + + diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/syntmp/serdes_sync_1.plg b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/syntmp/serdes_sync_1.plg new file mode 100644 index 0000000..a777b88 --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/syntmp/serdes_sync_1.plg @@ -0,0 +1,28 @@ +@P: Worst Slack : 4.079 +@P: serdes_sync_1|pll_refclki - Estimated Frequency : 168.9 MHz +@P: serdes_sync_1|pll_refclki - Requested Frequency : 100.0 MHz +@P: serdes_sync_1|pll_refclki - Estimated Period : 5.921 +@P: serdes_sync_1|pll_refclki - Requested Period : 10.000 +@P: serdes_sync_1|pll_refclki - Slack : 4.079 +@P: serdes_sync_1|rxrefclk - Estimated Frequency : 170.5 MHz +@P: serdes_sync_1|rxrefclk - Requested Frequency : 100.0 MHz +@P: serdes_sync_1|rxrefclk - Estimated Period : 5.864 +@P: serdes_sync_1|rxrefclk - Requested Period : 10.000 +@P: serdes_sync_1|rxrefclk - Slack : 4.136 +@P: serdes_sync_1|tx_pclk_inferred_clock - Estimated Frequency : 237.5 MHz +@P: serdes_sync_1|tx_pclk_inferred_clock - Requested Frequency : 100.0 MHz +@P: serdes_sync_1|tx_pclk_inferred_clock - Estimated Period : 4.211 +@P: serdes_sync_1|tx_pclk_inferred_clock - Requested Period : 10.000 +@P: serdes_sync_1|tx_pclk_inferred_clock - Slack : 5.789 +@P: System - Estimated Frequency : 840.7 MHz +@P: System - Requested Frequency : 100.0 MHz +@P: System - Estimated Period : 1.190 +@P: System - Requested Period : 10.000 +@P: System - Slack : 8.810 +@P: Total Area : 153.0 +@P: Total Area : 0.0 +@P: Total Area : 0.0 +@P: Total Area : 0.0 +@P: Total Area : 0.0 +@P: Total Area : 0.0 +@P: CPU Time : 0h:00m:03s diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/syntmp/serdes_sync_1_srr.htm b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/syntmp/serdes_sync_1_srr.htm new file mode 100644 index 0000000..e476d77 --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/syntmp/serdes_sync_1_srr.htm @@ -0,0 +1,1167 @@ +

    +
    +#Build: Synplify Pro (R) M-2017.03L-SP1-1, Build 086R, Aug  4 2017
    +#install: /home/soft/lattice/diamond/3.10_x64/synpbase
    +#OS: Linux 
    +#Hostname: lxhadeb07
    +
    +# Fri May 10 10:23:30 2019
    +
    +#Implementation: syn_results
    +
    +Synopsys HDL Compiler, version comp2017q2p1, Build 190R, built Aug  4 2017
    +@N: :  | Running in 64-bit mode 
    +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited.
    +
    +Synopsys VHDL Compiler, version comp2017q2p1, Build 190R, built Aug  4 2017
    +@N: :  | Running in 64-bit mode 
    +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited.
    +
    +Running on host :lxhadeb07
    +@N:CD720 : std.vhd(123) | Setting time resolution to ps
    +@N: : serdes_sync_1.vhd(30) | Top entity is set to serdes_sync_1.
    +VHDL syntax check successful!
    +File /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd changed - recompiling
    +
    +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB)
    +
    +
    +Process completed successfully.
    +# Fri May 10 10:23:30 2019
    +
    +###########################################################]
    +Synopsys Verilog Compiler, version comp2017q2p1, Build 190R, built Aug  4 2017
    +@N: :  | Running in 64-bit mode 
    +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited.
    +
    +Running on host :lxhadeb07
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps)
    +@I::"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v" (library work)
    +Verilog syntax check successful!
    +
    +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB)
    +
    +
    +Process completed successfully.
    +# Fri May 10 10:23:31 2019
    +
    +###########################################################]
    +Running on host :lxhadeb07
    +@N:CD720 : std.vhd(123) | Setting time resolution to ps
    +@N: : serdes_sync_1.vhd(30) | Top entity is set to serdes_sync_1.
    +File /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd changed - recompiling
    +File /home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd changed - recompiling
    +VHDL syntax check successful!
    +File /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd changed - recompiling
    +@N:CD630 : serdes_sync_1.vhd(30) | Synthesizing work.serdes_sync_1.v1.
    +Post processing for work.serdes_sync_1.v1
    +
    +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 74MB peak: 76MB)
    +
    +
    +Process completed successfully.
    +# Fri May 10 10:23:31 2019
    +
    +###########################################################]
    +Running on host :lxhadeb07
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps)
    +@I::"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v" (library work)
    +Verilog syntax check successful!
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +@N:CG364 : serdes_sync_1_softlogic.v(1968) | Synthesizing module sync in library work.
    +
    +	PDATA_RST_VAL=32'b00000000000000000000000000000000
    +   Generated name = sync_0s
    +@N:CG364 : serdes_sync_1_softlogic.v(1051) | Synthesizing module serdes_sync_1sll_core in library work.
    +
    +	PPROTOCOL=48'b010001110011100001000010001100010011000001000010
    +	PLOL_SETTING=32'b00000000000000000000000000000001
    +	PDYN_RATE_CTRL=64'b0100010001001001010100110100000101000010010011000100010101000100
    +	PPCIE_MAX_RATE=24'b001100100010111000110101
    +	PDIFF_VAL_LOCK=32'b00000000000000000000000000100111
    +	PDIFF_VAL_UNLOCK=32'b00000000000000000000000100000110
    +	PPCLK_TC=32'b00000000000000100000000000000000
    +	PDIFF_DIV11_VAL_LOCK=32'b00000000000000000000000000000000
    +	PDIFF_DIV11_VAL_UNLOCK=32'b00000000000000000000000000000000
    +	PPCLK_DIV11_TC=32'b00000000000000000000000000000000
    +	LPLL_LOSS_ST=2'b00
    +	LPLL_PRELOSS_ST=2'b01
    +	LPLL_PRELOCK_ST=2'b10
    +	LPLL_LOCK_ST=2'b11
    +	LRCLK_TC=16'b1111111111111111
    +	LRCLK_TC_PUL_WIDTH=16'b0000000000110010
    +	LHB_WAIT_CNT=8'b11111111
    +	LPCLK_TC_0=32'b00000000000000001000000000000000
    +	LPCLK_TC_1=32'b00000000000000010000000000000000
    +	LPCLK_TC_2=32'b00000000000000100000000000000000
    +	LPCLK_TC_3=32'b00000000000000101000000000000000
    +	LPCLK_TC_4=32'b00000000000000010000000000000000
    +	LPDIFF_LOCK_00=32'b00000000000000000000000000001001
    +	LPDIFF_LOCK_10=32'b00000000000000000000000000010011
    +	LPDIFF_LOCK_20=32'b00000000000000000000000000100111
    +	LPDIFF_LOCK_30=32'b00000000000000000000000000110001
    +	LPDIFF_LOCK_40=32'b00000000000000000000000000010011
    +	LPDIFF_LOCK_01=32'b00000000000000000000000000001001
    +	LPDIFF_LOCK_11=32'b00000000000000000000000000010011
    +	LPDIFF_LOCK_21=32'b00000000000000000000000000100111
    +	LPDIFF_LOCK_31=32'b00000000000000000000000000110001
    +	LPDIFF_LOCK_41=32'b00000000000000000000000000010011
    +	LPDIFF_LOCK_02=32'b00000000000000000000000000110001
    +	LPDIFF_LOCK_12=32'b00000000000000000000000001100010
    +	LPDIFF_LOCK_22=32'b00000000000000000000000011000100
    +	LPDIFF_LOCK_32=32'b00000000000000000000000011110101
    +	LPDIFF_LOCK_42=32'b00000000000000000000000001100010
    +	LPDIFF_LOCK_03=32'b00000000000000000000000010000011
    +	LPDIFF_LOCK_13=32'b00000000000000000000000100000110
    +	LPDIFF_LOCK_23=32'b00000000000000000000001000001100
    +	LPDIFF_LOCK_33=32'b00000000000000000000001010001111
    +	LPDIFF_LOCK_43=32'b00000000000000000000000100000110
    +	LPDIFF_UNLOCK_00=32'b00000000000000000000000000010011
    +	LPDIFF_UNLOCK_10=32'b00000000000000000000000000100111
    +	LPDIFF_UNLOCK_20=32'b00000000000000000000000001001110
    +	LPDIFF_UNLOCK_30=32'b00000000000000000000000001100010
    +	LPDIFF_UNLOCK_40=32'b00000000000000000000000000100111
    +	LPDIFF_UNLOCK_01=32'b00000000000000000000000001000001
    +	LPDIFF_UNLOCK_11=32'b00000000000000000000000010000011
    +	LPDIFF_UNLOCK_21=32'b00000000000000000000000100000110
    +	LPDIFF_UNLOCK_31=32'b00000000000000000000000101000111
    +	LPDIFF_UNLOCK_41=32'b00000000000000000000000010000011
    +	LPDIFF_UNLOCK_02=32'b00000000000000000000000001001000
    +	LPDIFF_UNLOCK_12=32'b00000000000000000000000010010000
    +	LPDIFF_UNLOCK_22=32'b00000000000000000000000100100000
    +	LPDIFF_UNLOCK_32=32'b00000000000000000000000101101000
    +	LPDIFF_UNLOCK_42=32'b00000000000000000000000010010000
    +	LPDIFF_UNLOCK_03=32'b00000000000000000000000011000100
    +	LPDIFF_UNLOCK_13=32'b00000000000000000000000110001001
    +	LPDIFF_UNLOCK_23=32'b00000000000000000000001100010010
    +	LPDIFF_UNLOCK_33=32'b00000000000000000000001111010111
    +	LPDIFF_UNLOCK_43=32'b00000000000000000000000110001001
    +   Generated name = serdes_sync_1sll_core_Z1_layer1
    +@N:CG179 : serdes_sync_1_softlogic.v(1287) | Removing redundant assignment.
    +@N:CG179 : serdes_sync_1_softlogic.v(1293) | Removing redundant assignment.
    +@W:CL169 : serdes_sync_1_softlogic.v(1350) | Pruning unused register rcpri_mod_ch_st. Make sure that there are no unused intermediate registers.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 0 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 3 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 4 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 5 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 6 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 7 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 9 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 10 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 11 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 12 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 13 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 14 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 15 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 3 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 4 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 6 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 7 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 8 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 9 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 10 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 11 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 12 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 13 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 14 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 15 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 0 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 1 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 2 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 3 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 4 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 5 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 6 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 7 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 8 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 9 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 10 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 11 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 12 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 13 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 14 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 15 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 16 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 18 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 19 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 20 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : serdes_sync_1_softlogic.v(1739) | All reachable assignments to bit 21 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +@N:CG364 : serdes_sync_1_softlogic.v(92) | Synthesizing module serdes_sync_1rsl_core in library work.
    +
    +	pnum_channels=32'b00000000000000000000000000000001
    +	pprotocol=48'b010001110011100001000010001100010011000001000010
    +	pserdes_mode=72'b010100100101100000100000010000010100111001000100001000000101010001011000
    +	pport_tx_rdy=56'b01000101010011100100000101000010010011000100010101000100
    +	pwait_tx_rdy=32'b00000000000000000000101110111000
    +	pport_rx_rdy=56'b01000101010011100100000101000010010011000100010101000100
    +	pwait_rx_rdy=32'b00000000000000000000101110111000
    +	wa_num_cycles=32'b00000000000000000000010000000000
    +	dac_num_cycles=32'b00000000000000000000000000000011
    +	lreset_pwidth=32'b00000000000000000000000000000011
    +	lwait_b4_trst=32'b00000000000010111110101111000010
    +	lwait_b4_trst_s=32'b00000000000000000000001100001101
    +	lplol_cnt_width=32'b00000000000000000000000000010100
    +	lwait_after_plol0=32'b00000000000000000000000000000100
    +	lwait_b4_rrst=32'b00000000000000101100000000000000
    +	lrrst_wait_width=32'b00000000000000000000000000010100
    +	lwait_after_rrst=32'b00000000000011000011010100000000
    +	lwait_b4_rrst_s=32'b00000000000000000000000111001100
    +	lrlol_cnt_width=32'b00000000000000000000000000010011
    +	lwait_after_lols=32'b00000000000000001100010000000000
    +	lwait_after_lols_s=32'b00000000000000000000000010010110
    +	llols_cnt_width=32'b00000000000000000000000000010010
    +	lrdb_max=32'b00000000000000000000000000001111
    +	ltxr_wait_width=32'b00000000000000000000000000001100
    +	lrxr_wait_width=32'b00000000000000000000000000001100
    +   Generated name = serdes_sync_1rsl_core_Z2_layer1
    +@W:CG133 : serdes_sync_1_softlogic.v(326) | Object rrst_cnt is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG360 : serdes_sync_1_softlogic.v(327) | Removing wire rrst_cnt_tc, as there is no assignment to it.
    +@W:CG133 : serdes_sync_1_softlogic.v(328) | Object rrst_wait is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG133 : serdes_sync_1_softlogic.v(341) | Object rxp_cnt is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG133 : serdes_sync_1_softlogic.v(342) | Object rxp_rst is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG360 : serdes_sync_1_softlogic.v(343) | Removing wire rxp_cnt_tc, as there is no assignment to it.
    +@W:CG133 : serdes_sync_1_softlogic.v(346) | Object rlolsz_cnt is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG360 : serdes_sync_1_softlogic.v(347) | Removing wire rlolsz_cnt_tc, as there is no assignment to it.
    +@W:CG360 : serdes_sync_1_softlogic.v(350) | Removing wire rxp_cnt2_tc, as there is no assignment to it.
    +@W:CG133 : serdes_sync_1_softlogic.v(351) | Object data_loop_b_cnt is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG133 : serdes_sync_1_softlogic.v(352) | Object data_loop_b is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG360 : serdes_sync_1_softlogic.v(353) | Removing wire data_loop_b_tc, as there is no assignment to it.
    +@W:CL169 : serdes_sync_1_softlogic.v(806) | Pruning unused register genblk2.rxp_cnt2[2:0]. Make sure that there are no unused intermediate registers.
    +@W:CL169 : serdes_sync_1_softlogic.v(567) | Pruning unused register genblk2.rlol_p3. Make sure that there are no unused intermediate registers.
    +@W:CL169 : serdes_sync_1_softlogic.v(567) | Pruning unused register genblk2.rlos_p3. Make sure that there are no unused intermediate registers.
    +@W:CL190 : serdes_sync_1_softlogic.v(694) | Optimizing register bit genblk2.rxs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance.
    +@W:CL190 : serdes_sync_1_softlogic.v(461) | Optimizing register bit genblk1.txp_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance.
    +@W:CL190 : serdes_sync_1_softlogic.v(422) | Optimizing register bit genblk1.txs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance.
    +@W:CL260 : serdes_sync_1_softlogic.v(422) | Pruning register bit 2 of genblk1.txs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level.
    +@W:CL260 : serdes_sync_1_softlogic.v(461) | Pruning register bit 2 of genblk1.txp_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level.
    +@W:CL260 : serdes_sync_1_softlogic.v(694) | Pruning register bit 2 of genblk2.rxs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level.
    +@W:CL246 : serdes_sync_1_softlogic.v(200) | Input port bits 3 to 1 of rui_tx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size.
    +@W:CL246 : serdes_sync_1_softlogic.v(204) | Input port bits 3 to 1 of rui_rx_serdes_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size.
    +@W:CL246 : serdes_sync_1_softlogic.v(205) | Input port bits 3 to 1 of rui_rx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size.
    +@W:CL246 : serdes_sync_1_softlogic.v(206) | Input port bits 3 to 1 of rdi_rx_los_low_s[3:0] are unused. Assign logic for all port bits or change the input port size.
    +@W:CL246 : serdes_sync_1_softlogic.v(207) | Input port bits 3 to 1 of rdi_rx_cdr_lol_s[3:0] are unused. Assign logic for all port bits or change the input port size.
    +@W:CL279 : serdes_sync_1_softlogic.v(1739) | Pruning register bits 8 to 7 of genblk5.rdiff_comp_unlock[8:6]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level.
    +@W:CL279 : serdes_sync_1_softlogic.v(1739) | Pruning register bits 5 to 3 of genblk5.rdiff_comp_lock[5:2]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level.
    +@W:CL169 : serdes_sync_1_softlogic.v(1739) | Pruning unused register genblk5.rdiff_comp_unlock[6]. Make sure that there are no unused intermediate registers.
    +@W:CL169 : serdes_sync_1_softlogic.v(1739) | Pruning unused register genblk5.rcount_tc[17]. Make sure that there are no unused intermediate registers.
    +@N:CL201 : serdes_sync_1_softlogic.v(1801) | Trying to extract state machine for register sll_state.
    +Extracted state machine for register sll_state
    +State machine has 3 reachable states with original encodings of:
    +   00
    +   01
    +   11
    +
    +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 75MB peak: 81MB)
    +
    +
    +Process completed successfully.
    +# Fri May 10 10:23:32 2019
    +
    +###########################################################]
    +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug  4 2017
    +@N: :  | Running in 64-bit mode 
    +File /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer0.srs changed - recompiling
    +File /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer1.srs changed - recompiling
    +
    +=======================================================================================
    +For a summary of linker messages for components that did not bind, please see log file:
    +Linked File: serdes_sync_1_comp.linkerlog
    +=======================================================================================
    +
    +
    +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB)
    +
    +Process took 0h:00m:01s realtime, 0h:00m:01s cputime
    +
    +Process completed successfully.
    +# Fri May 10 10:23:32 2019
    +
    +###########################################################]
    +@END
    +
    +At c_hdl Exit (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 3MB peak: 4MB)
    +
    +Process took 0h:00m:01s realtime, 0h:00m:01s cputime
    +
    +Process completed successfully.
    +# Fri May 10 10:23:32 2019
    +
    +###########################################################]
    +
    +
    +
    +
    +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug  4 2017
    +@N: :  | Running in 64-bit mode 
    +File /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/serdes_sync_1_comp.srs changed - recompiling
    +
    +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB)
    +
    +Process took 0h:00m:01s realtime, 0h:00m:01s cputime
    +
    +Process completed successfully.
    +# Fri May 10 10:23:33 2019
    +
    +###########################################################]
    +
    +
    +
    +
    +# Fri May 10 10:23:33 2019
    +
    +Synopsys Lattice Technology Pre-mapping, Version maplat, Build 1796R, Built Aug  4 2017 09:36:35
    +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited.
    +Product Version M-2017.03L-SP1-1
    +
    +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB)
    +
    +Reading constraint file: /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.fdc
    +Linked File: serdes_sync_1_scck.rpt
    +Printing clock  summary report in "/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1_scck.rpt" file 
    +@N:MF248 :  | Running in 64-bit mode. 
    +@N:MF666 :  | Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) 
    +
    +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 102MB peak: 104MB)
    +
    +
    +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 102MB peak: 104MB)
    +
    +
    +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 115MB)
    +
    +
    +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 114MB peak: 117MB)
    +
    +@N:BN362 : serdes_sync_1_softlogic.v(1408) | Removing sequential instance pcpri_mod_ch (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:PrimLib.dffre(prim) because it does not drive other instances.
    +@N:BN115 : serdes_sync_1_softlogic.v(1244) | Removing instance div2_sync_inst (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_3(verilog) because it does not drive other instances.
    +@N:BN115 : serdes_sync_1_softlogic.v(1252) | Removing instance div11_sync_inst (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_2(verilog) because it does not drive other instances.
    +@N:BN115 : serdes_sync_1_softlogic.v(1236) | Removing instance gear_sync_inst (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_4(verilog) because it does not drive other instances.
    +@N:BN115 : serdes_sync_1_softlogic.v(1268) | Removing instance pcie_mod_sync_inst (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_0(verilog) because it does not drive other instances.
    +@N:BN115 : serdes_sync_1_softlogic.v(1260) | Removing instance cpri_mod_sync_inst (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:work.sync_0s_1(verilog) because it does not drive other instances.
    +ICG Latch Removal Summary:
    +Number of ICG latches removed:	0
    +Number of ICG latches not removed:	0
    +syn_allowed_resources : blockrams=56  set on top level netlist serdes_sync_1
    +
    +Finished netlist restructuring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 145MB)
    +
    +
    +
    +Clock Summary
    +******************
    +
    +          Start                                    Requested     Requested     Clock        Clock                   Clock
    +Level     Clock                                    Frequency     Period        Type         Group                   Load 
    +-------------------------------------------------------------------------------------------------------------------------
    +0 -       System                                   100.0 MHz     10.000        system       system_clkgroup         0    
    +                                                                                                                         
    +0 -       serdes_sync_1|pll_refclki                100.0 MHz     10.000        inferred     Inferred_clkgroup_0     92   
    +                                                                                                                         
    +0 -       serdes_sync_1|rxrefclk                   100.0 MHz     10.000        inferred     Inferred_clkgroup_1     77   
    +                                                                                                                         
    +0 -       serdes_sync_1|tx_pclk_inferred_clock     100.0 MHz     10.000        inferred     Inferred_clkgroup_2     53   
    +=========================================================================================================================
    +
    +@W:MT529 : serdes_sync_1_softlogic.v(1988) | Found inferred clock serdes_sync_1|pll_refclki which controls 92 sequential elements including sll_inst.phb_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. 
    +@W:MT529 : serdes_sync_1_softlogic.v(567) | Found inferred clock serdes_sync_1|rxrefclk which controls 77 sequential elements including rsl_inst.genblk2\.rlos_db_p1. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. 
    +@W:MT529 : serdes_sync_1_softlogic.v(1988) | Found inferred clock serdes_sync_1|tx_pclk_inferred_clock which controls 53 sequential elements including sll_inst.rtc_sync_inst.data_p2. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. 
    +
    +Finished Pre Mapping Phase.
    +
    +Starting constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 145MB)
    +
    +Encoding state machine sll_state[2:0] (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog))
    +original code -> new code
    +   00 -> 00
    +   01 -> 01
    +   11 -> 10
    +
    +Finished constraint checker preprocessing (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 145MB)
    +
    +None
    +None
    +
    +Finished constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 145MB)
    +
    +Pre-mapping successful!
    +
    +At Mapper Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 59MB peak: 145MB)
    +
    +Process took 0h:00m:01s realtime, 0h:00m:01s cputime
    +# Fri May 10 10:23:34 2019
    +
    +###########################################################]
    +
    +
    +
    +
    +# Fri May 10 10:23:34 2019
    +
    +Synopsys Lattice Technology Mapper, Version maplat, Build 1796R, Built Aug  4 2017 09:36:35
    +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited.
    +Product Version M-2017.03L-SP1-1
    +
    +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB)
    +
    +@N:MF248 :  | Running in 64-bit mode. 
    +@N:MF666 :  | Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) 
    +
    +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB)
    +
    +
    +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB)
    +
    +
    +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 113MB)
    +
    +
    +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 115MB)
    +
    +
    +
    +Starting Optimization and Mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 141MB peak: 144MB)
    +
    +
    +Available hyper_sources - for debug and ip models
    +	None Found
    +
    +
    +Finished RTL optimizations (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB)
    +
    +Encoding state machine sll_state[2:0] (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog))
    +original code -> new code
    +   00 -> 00
    +   01 -> 01
    +   11 -> 10
    +@N:MO231 : serdes_sync_1_softlogic.v(1350) | Found counter in view:work.serdes_sync_1sll_core_Z1_layer1(verilog) instance rhb_wait_cnt[7:0] 
    +@N:MO231 : serdes_sync_1_softlogic.v(1304) | Found counter in view:work.serdes_sync_1sll_core_Z1_layer1(verilog) instance rcount[15:0] 
    +@N:MO231 : serdes_sync_1_softlogic.v(1759) | Found counter in view:work.serdes_sync_1sll_core_Z1_layer1(verilog) instance pcount[21:0] 
    +@N:BN362 : serdes_sync_1_softlogic.v(1801) | Removing sequential instance sll_state[0] (in view: work.serdes_sync_1sll_core_Z1_layer1(verilog)) of type view:PrimLib.dffr(prim) because it does not drive other instances.
    +@N:MO231 : serdes_sync_1_softlogic.v(412) | Found counter in view:work.serdes_sync_1rsl_core_Z2_layer1(verilog) instance genblk1\.plol_cnt[19:0] 
    +@N:MO231 : serdes_sync_1_softlogic.v(909) | Found counter in view:work.serdes_sync_1rsl_core_Z2_layer1(verilog) instance genblk2\.genblk3\.rxr_wt_cnt[11:0] 
    +@N:MO231 : serdes_sync_1_softlogic.v(527) | Found counter in view:work.serdes_sync_1rsl_core_Z2_layer1(verilog) instance genblk1\.genblk2\.txr_wt_cnt[11:0] 
    +@N:MO231 : serdes_sync_1_softlogic.v(778) | Found counter in view:work.serdes_sync_1rsl_core_Z2_layer1(verilog) instance genblk2\.rlols0_cnt[17:0] 
    +@N:MO231 : serdes_sync_1_softlogic.v(680) | Found counter in view:work.serdes_sync_1rsl_core_Z2_layer1(verilog) instance genblk2\.rlol1_cnt[18:0] 
    +
    +Starting factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB)
    +
    +
    +Finished factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 144MB)
    +
    +
    +Starting gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB)
    +
    +
    +Finished gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB)
    +
    +
    +Finished generic timing optimizations - Pass 1 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 145MB)
    +
    +
    +Starting Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 146MB)
    +
    +
    +Finished Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 146MB)
    +
    +
    +Finished generic timing optimizations - Pass 2 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 146MB)
    +
    +
    +Finished preparing to map (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:01s; Memory used current: 145MB peak: 146MB)
    +
    +@N:FX1019 : serdes_sync_1_softlogic.v(1988) | Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.serdes_sync_1(v1)).
    +@N:FX1019 : serdes_sync_1_softlogic.v(1988) | Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.serdes_sync_1(v1)).
    +@N:FX1019 : serdes_sync_1_softlogic.v(1988) | Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.serdes_sync_1(v1)).
    +
    +Finished technology mapping (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 146MB peak: 148MB)
    +
    +Pass		 CPU time		Worst Slack		Luts / Registers
    +------------------------------------------------------------
    +   1		0h:00m:01s		     5.35ns		 151 /       220
    +@N:FX1019 : serdes_sync_1_softlogic.v(1988) | Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.serdes_sync_1(v1)).
    +@N:FX1019 : serdes_sync_1_softlogic.v(1988) | Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.serdes_sync_1(v1)).
    +@N:FX1019 : serdes_sync_1_softlogic.v(1988) | Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.serdes_sync_1(v1)).
    +
    +Finished technology timing optimizations and critical path resynthesis (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 146MB peak: 148MB)
    +
    +@N:FX164 :  | The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute.   
    +
    +Finished restoring hierarchy (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 146MB peak: 148MB)
    +
    +
    +
    +@S |Clock Optimization Summary
    +
    +
    +#### START OF CLOCK OPTIMIZATION REPORT #####[
    +
    +3 non-gated/non-generated clock tree(s) driving 220 clock pin(s) of sequential element(s)
    +0 gated/generated clock tree(s) driving 0 clock pin(s) of sequential element(s)
    +0 instances converted, 0 sequential instances remain driven by gated/generated clocks
    +
    +============================================= Non-Gated/Non-Generated Clocks =============================================
    +Clock Tree ID     Driving Element     Drive Element Type     Fanout     Sample Instance                                   
    +--------------------------------------------------------------------------------------------------------------------------
    +ClockId0001        pll_refclki         port                   90         rsl_inst.genblk1\.genblk2\.mfor\[0\]\.txpr_appd[0]
    +ClockId0002        rxrefclk            port                   77         rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0]
    +ClockId0003        DCU0_inst           DCUA                   53         sll_inst.pcount_diff[21]                          
    +==========================================================================================================================
    +
    +
    +##### END OF CLOCK OPTIMIZATION REPORT ######]
    +
    +
    +Start Writing Netlists (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 111MB peak: 148MB)
    +
    +Writing Analyst data base /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/serdes_sync_1_m.srm
    +
    +Finished Writing Netlist Databases (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 146MB peak: 148MB)
    +
    +Writing EDIF Netlist and constraint files
    +@N:FX1056 :  | Writing EDF file: /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/serdes_sync_1.edn 
    +M-2017.03L-SP1-1
    +@N:BW106 :  | Synplicity Constraint File capacitance units using default value of 1pF  
    +
    +Finished Writing EDIF Netlist and constraint files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 150MB peak: 152MB)
    +
    +Writing Verilog Simulation files
    +
    +Finished Writing Verilog Simulation files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 150MB peak: 152MB)
    +
    +Writing VHDL Simulation files
    +
    +Finished Writing VHDL Simulation files (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 150MB peak: 152MB)
    +
    +
    +Start final timing analysis (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 150MB peak: 152MB)
    +
    +@W:MT246 : serdes_sync_1.vhd(160) | Blackbox DCUA is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) 
    +@W:MT420 :  | Found inferred clock serdes_sync_1|rxrefclk with period 10.00ns. Please declare a user-defined clock on object "p:rxrefclk" 
    +@W:MT420 :  | Found inferred clock serdes_sync_1|pll_refclki with period 10.00ns. Please declare a user-defined clock on object "p:pll_refclki" 
    +@W:MT420 :  | Found inferred clock serdes_sync_1|tx_pclk_inferred_clock with period 10.00ns. Please declare a user-defined clock on object "n:tx_pclk" 
    +
    +
    +##### START OF TIMING REPORT #####[
    +# Timing Report written on Fri May 10 10:23:38 2019
    +#
    +
    +
    +Top view:               serdes_sync_1
    +Requested Frequency:    100.0 MHz
    +Wire load mode:         top
    +Paths requested:        5
    +Constraint File(s):    /home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.fdc
    +                       
    +@N:MT320 :  | This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. 
    +
    +@N:MT322 :  | Clock constraints include only register-to-register paths associated with each individual clock. 
    +
    +
    +
    +Performance Summary
    +*******************
    +
    +
    +Worst slack in design: 4.079
    +
    +@N:MT286 :  | System clock period 0.000 stretches to negative invalid value -- ignoring stretching. 
    +                                         Requested     Estimated     Requested     Estimated               Clock        Clock              
    +Starting Clock                           Frequency     Frequency     Period        Period        Slack     Type         Group              
    +-------------------------------------------------------------------------------------------------------------------------------------------
    +serdes_sync_1|pll_refclki                100.0 MHz     168.9 MHz     10.000        5.921         4.079     inferred     Inferred_clkgroup_0
    +serdes_sync_1|rxrefclk                   100.0 MHz     170.5 MHz     10.000        5.864         4.136     inferred     Inferred_clkgroup_1
    +serdes_sync_1|tx_pclk_inferred_clock     100.0 MHz     237.5 MHz     10.000        4.211         5.789     inferred     Inferred_clkgroup_2
    +System                                   100.0 MHz     840.7 MHz     10.000        1.190         8.810     system       system_clkgroup    
    +===========================================================================================================================================
    +
    +
    +
    +
    +
    +Clock Relationships
    +*******************
    +
    +Clocks                                                                      |    rise  to  rise    |    fall  to  fall   |    rise  to  fall   |    fall  to  rise 
    +-------------------------------------------------------------------------------------------------------------------------------------------------------------------
    +Starting                              Ending                                |  constraint  slack   |  constraint  slack  |  constraint  slack  |  constraint  slack
    +-------------------------------------------------------------------------------------------------------------------------------------------------------------------
    +System                                System                                |  10.000      10.000  |  No paths    -      |  No paths    -      |  No paths    -    
    +System                                serdes_sync_1|rxrefclk                |  10.000      8.811   |  No paths    -      |  No paths    -      |  No paths    -    
    +serdes_sync_1|pll_refclki             System                                |  10.000      8.307   |  No paths    -      |  No paths    -      |  No paths    -    
    +serdes_sync_1|pll_refclki             serdes_sync_1|pll_refclki             |  10.000      4.079   |  No paths    -      |  No paths    -      |  No paths    -    
    +serdes_sync_1|pll_refclki             serdes_sync_1|tx_pclk_inferred_clock  |  Diff grp    -       |  No paths    -      |  No paths    -      |  No paths    -    
    +serdes_sync_1|rxrefclk                System                                |  10.000      8.193   |  No paths    -      |  No paths    -      |  No paths    -    
    +serdes_sync_1|rxrefclk                serdes_sync_1|rxrefclk                |  10.000      4.136   |  No paths    -      |  No paths    -      |  No paths    -    
    +serdes_sync_1|tx_pclk_inferred_clock  serdes_sync_1|pll_refclki             |  Diff grp    -       |  No paths    -      |  No paths    -      |  No paths    -    
    +serdes_sync_1|tx_pclk_inferred_clock  serdes_sync_1|tx_pclk_inferred_clock  |  10.000      5.789   |  No paths    -      |  No paths    -      |  No paths    -    
    +===================================================================================================================================================================
    + Note: 'No paths' indicates there are no paths in the design for that pair of clock edges.
    +       'Diff grp' indicates that paths exist but the starting clock and ending clock are in different clock groups.
    +
    +
    +
    +Interface Information 
    +*********************
    +
    +No IO constraint found
    +
    +
    +
    +====================================
    +Detailed Report for Clock: serdes_sync_1|pll_refclki
    +====================================
    +
    +
    +
    +Starting Points with Worst Slack
    +********************************
    +
    +                                   Starting                                                           Arrival          
    +Instance                           Reference                     Type        Pin     Net              Time        Slack
    +                                   Clock                                                                               
    +-----------------------------------------------------------------------------------------------------------------------
    +rsl_inst.genblk1\.plol_cnt[1]      serdes_sync_1|pll_refclki     FD1S3DX     Q       plol_cnt[1]      0.907       4.079
    +rsl_inst.genblk1\.plol_cnt[6]      serdes_sync_1|pll_refclki     FD1S3DX     Q       plol_cnt[6]      0.907       4.079
    +rsl_inst.genblk1\.plol_cnt[7]      serdes_sync_1|pll_refclki     FD1S3DX     Q       plol_cnt[7]      0.907       4.079
    +rsl_inst.genblk1\.plol_cnt[12]     serdes_sync_1|pll_refclki     FD1S3DX     Q       plol_cnt[12]     0.907       4.079
    +rsl_inst.genblk1\.plol_cnt[2]      serdes_sync_1|pll_refclki     FD1S3DX     Q       plol_cnt[2]      0.907       4.684
    +rsl_inst.genblk1\.plol_cnt[3]      serdes_sync_1|pll_refclki     FD1S3DX     Q       plol_cnt[3]      0.907       4.684
    +rsl_inst.genblk1\.plol_cnt[4]      serdes_sync_1|pll_refclki     FD1S3DX     Q       plol_cnt[4]      0.907       4.684
    +rsl_inst.genblk1\.plol_cnt[5]      serdes_sync_1|pll_refclki     FD1S3DX     Q       plol_cnt[5]      0.907       4.684
    +rsl_inst.genblk1\.plol_cnt[8]      serdes_sync_1|pll_refclki     FD1S3DX     Q       plol_cnt[8]      0.907       4.684
    +rsl_inst.genblk1\.plol_cnt[9]      serdes_sync_1|pll_refclki     FD1S3DX     Q       plol_cnt[9]      0.907       4.684
    +=======================================================================================================================
    +
    +
    +Ending Points with Worst Slack
    +******************************
    +
    +                                   Starting                                                             Required          
    +Instance                           Reference                     Type        Pin     Net                Time         Slack
    +                                   Clock                                                                                  
    +--------------------------------------------------------------------------------------------------------------------------
    +rsl_inst.genblk1\.plol_cnt[19]     serdes_sync_1|pll_refclki     FD1S3DX     D       plol_cnt_s[19]     9.946        4.079
    +rsl_inst.genblk1\.plol_cnt[17]     serdes_sync_1|pll_refclki     FD1S3DX     D       plol_cnt_s[17]     9.946        4.139
    +rsl_inst.genblk1\.plol_cnt[18]     serdes_sync_1|pll_refclki     FD1S3DX     D       plol_cnt_s[18]     9.946        4.139
    +rsl_inst.genblk1\.plol_cnt[15]     serdes_sync_1|pll_refclki     FD1S3DX     D       plol_cnt_s[15]     9.946        4.200
    +rsl_inst.genblk1\.plol_cnt[16]     serdes_sync_1|pll_refclki     FD1S3DX     D       plol_cnt_s[16]     9.946        4.200
    +rsl_inst.genblk1\.plol_cnt[13]     serdes_sync_1|pll_refclki     FD1S3DX     D       plol_cnt_s[13]     9.946        4.261
    +rsl_inst.genblk1\.plol_cnt[14]     serdes_sync_1|pll_refclki     FD1S3DX     D       plol_cnt_s[14]     9.946        4.261
    +rsl_inst.genblk1\.plol_cnt[11]     serdes_sync_1|pll_refclki     FD1S3DX     D       plol_cnt_s[11]     9.946        4.322
    +rsl_inst.genblk1\.plol_cnt[12]     serdes_sync_1|pll_refclki     FD1S3DX     D       plol_cnt_s[12]     9.946        4.322
    +rsl_inst.genblk1\.plol_cnt[9]      serdes_sync_1|pll_refclki     FD1S3DX     D       plol_cnt_s[9]      9.946        4.383
    +==========================================================================================================================
    +
    +
    +
    +Worst Path Information
    +View Worst Path in Analyst
    +***********************
    +
    +
    +Path information for path number 1: 
    +      Requested Period:                      10.000
    +    - Setup time:                            0.054
    +    + Clock delay at ending point:           0.000 (ideal)
    +    = Required time:                         9.946
    +
    +    - Propagation time:                      5.867
    +    - Clock delay at starting point:         0.000 (ideal)
    +    = Slack (critical) :                     4.079
    +
    +    Number of logic level(s):                15
    +    Starting point:                          rsl_inst.genblk1\.plol_cnt[1] / Q
    +    Ending point:                            rsl_inst.genblk1\.plol_cnt[19] / D
    +    The start point is clocked by            serdes_sync_1|pll_refclki [rising] on pin CK
    +    The end   point is clocked by            serdes_sync_1|pll_refclki [rising] on pin CK
    +
    +Instance / Net                                        Pin      Pin               Arrival     No. of    
    +Name                                     Type         Name     Dir     Delay     Time        Fan Out(s)
    +-------------------------------------------------------------------------------------------------------
    +rsl_inst.genblk1\.plol_cnt[1]            FD1S3DX      Q        Out     0.907     0.907       -         
    +plol_cnt[1]                              Net          -        -       -         -           2         
    +rsl_inst.genblk1\.un1_plol_cnt_tc_10     ORCALUT4     A        In      0.000     0.907       -         
    +rsl_inst.genblk1\.un1_plol_cnt_tc_10     ORCALUT4     Z        Out     0.606     1.513       -         
    +un1_plol_cnt_tc_10                       Net          -        -       -         -           1         
    +rsl_inst.genblk1\.un1_plol_cnt_tc_14     ORCALUT4     D        In      0.000     1.513       -         
    +rsl_inst.genblk1\.un1_plol_cnt_tc_14     ORCALUT4     Z        Out     0.606     2.119       -         
    +un1_plol_cnt_tc_14                       Net          -        -       -         -           1         
    +rsl_inst.genblk1\.un1_plol_cnt_tc        ORCALUT4     D        In      0.000     2.119       -         
    +rsl_inst.genblk1\.un1_plol_cnt_tc        ORCALUT4     Z        Out     0.762     2.881       -         
    +un1_plol_cnt_tc                          Net          -        -       -         -           5         
    +rsl_inst.genblk1\.plol_cnt11_i           ORCALUT4     B        In      0.000     2.881       -         
    +rsl_inst.genblk1\.plol_cnt11_i           ORCALUT4     Z        Out     0.840     3.721       -         
    +plol_cnt                                 Net          -        -       -         -           21        
    +rsl_inst.genblk1\.plol_cnt_cry_0[0]      CCU2C        A1       In      0.000     3.721       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[0]      CCU2C        COUT     Out     0.900     4.621       -         
    +plol_cnt_cry[0]                          Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[1]      CCU2C        CIN      In      0.000     4.621       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[1]      CCU2C        COUT     Out     0.061     4.682       -         
    +plol_cnt_cry[2]                          Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[3]      CCU2C        CIN      In      0.000     4.682       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[3]      CCU2C        COUT     Out     0.061     4.743       -         
    +plol_cnt_cry[4]                          Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[5]      CCU2C        CIN      In      0.000     4.743       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[5]      CCU2C        COUT     Out     0.061     4.804       -         
    +plol_cnt_cry[6]                          Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[7]      CCU2C        CIN      In      0.000     4.804       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[7]      CCU2C        COUT     Out     0.061     4.865       -         
    +plol_cnt_cry[8]                          Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[9]      CCU2C        CIN      In      0.000     4.865       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[9]      CCU2C        COUT     Out     0.061     4.926       -         
    +plol_cnt_cry[10]                         Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[11]     CCU2C        CIN      In      0.000     4.926       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[11]     CCU2C        COUT     Out     0.061     4.987       -         
    +plol_cnt_cry[12]                         Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[13]     CCU2C        CIN      In      0.000     4.987       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[13]     CCU2C        COUT     Out     0.061     5.048       -         
    +plol_cnt_cry[14]                         Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[15]     CCU2C        CIN      In      0.000     5.048       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[15]     CCU2C        COUT     Out     0.061     5.109       -         
    +plol_cnt_cry[16]                         Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_cry_0[17]     CCU2C        CIN      In      0.000     5.109       -         
    +rsl_inst.genblk1\.plol_cnt_cry_0[17]     CCU2C        COUT     Out     0.061     5.170       -         
    +plol_cnt_cry[18]                         Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt_s_0[19]       CCU2C        CIN      In      0.000     5.170       -         
    +rsl_inst.genblk1\.plol_cnt_s_0[19]       CCU2C        S0       Out     0.698     5.867       -         
    +plol_cnt_s[19]                           Net          -        -       -         -           1         
    +rsl_inst.genblk1\.plol_cnt[19]           FD1S3DX      D        In      0.000     5.867       -         
    +=======================================================================================================
    +
    +
    +
    +
    +====================================
    +Detailed Report for Clock: serdes_sync_1|rxrefclk
    +====================================
    +
    +
    +
    +Starting Points with Worst Slack
    +********************************
    +
    +                                     Starting                                                          Arrival          
    +Instance                             Reference                  Type        Pin     Net                Time        Slack
    +                                     Clock                                                                              
    +------------------------------------------------------------------------------------------------------------------------
    +rsl_inst.genblk2\.rlol1_cnt[14]      serdes_sync_1|rxrefclk     FD1P3DX     Q       rlol1_cnt[14]      0.907       4.136
    +rsl_inst.genblk2\.rlol1_cnt[15]      serdes_sync_1|rxrefclk     FD1P3DX     Q       rlol1_cnt[15]      0.907       4.136
    +rsl_inst.genblk2\.rlol1_cnt[16]      serdes_sync_1|rxrefclk     FD1P3DX     Q       rlol1_cnt[16]      0.907       4.136
    +rsl_inst.genblk2\.rlol1_cnt[17]      serdes_sync_1|rxrefclk     FD1P3DX     Q       rlol1_cnt[17]      0.907       4.136
    +rsl_inst.genblk2\.rlols0_cnt[9]      serdes_sync_1|rxrefclk     FD1P3DX     Q       rlols0_cnt[9]      0.907       4.170
    +rsl_inst.genblk2\.rlols0_cnt[11]     serdes_sync_1|rxrefclk     FD1P3DX     Q       rlols0_cnt[11]     0.907       4.170
    +rsl_inst.genblk2\.rlols0_cnt[12]     serdes_sync_1|rxrefclk     FD1P3DX     Q       rlols0_cnt[12]     0.907       4.170
    +rsl_inst.genblk2\.rlols0_cnt[13]     serdes_sync_1|rxrefclk     FD1P3DX     Q       rlols0_cnt[13]     0.907       4.170
    +rsl_inst.genblk2\.rlol1_cnt[0]       serdes_sync_1|rxrefclk     FD1P3DX     Q       rlol1_cnt[0]       0.907       4.742
    +rsl_inst.genblk2\.rlol1_cnt[1]       serdes_sync_1|rxrefclk     FD1P3DX     Q       rlol1_cnt[1]       0.907       4.742
    +========================================================================================================================
    +
    +
    +Ending Points with Worst Slack
    +******************************
    +
    +                                     Starting                                                            Required          
    +Instance                             Reference                  Type        Pin     Net                  Time         Slack
    +                                     Clock                                                                                 
    +---------------------------------------------------------------------------------------------------------------------------
    +rsl_inst.genblk2\.rlol1_cnt[17]      serdes_sync_1|rxrefclk     FD1P3DX     D       rlol1_cnt_s[17]      9.946        4.136
    +rsl_inst.genblk2\.rlol1_cnt[18]      serdes_sync_1|rxrefclk     FD1P3DX     D       rlol1_cnt_s[18]      9.946        4.136
    +rsl_inst.genblk2\.rlols0_cnt[17]     serdes_sync_1|rxrefclk     FD1P3DX     D       rlols0_cnt_s[17]     9.946        4.170
    +rsl_inst.genblk2\.rlol1_cnt[15]      serdes_sync_1|rxrefclk     FD1P3DX     D       rlol1_cnt_s[15]      9.946        4.197
    +rsl_inst.genblk2\.rlol1_cnt[16]      serdes_sync_1|rxrefclk     FD1P3DX     D       rlol1_cnt_s[16]      9.946        4.197
    +rsl_inst.genblk2\.rlols0_cnt[15]     serdes_sync_1|rxrefclk     FD1P3DX     D       rlols0_cnt_s[15]     9.946        4.231
    +rsl_inst.genblk2\.rlols0_cnt[16]     serdes_sync_1|rxrefclk     FD1P3DX     D       rlols0_cnt_s[16]     9.946        4.231
    +rsl_inst.genblk2\.rlol1_cnt[13]      serdes_sync_1|rxrefclk     FD1P3DX     D       rlol1_cnt_s[13]      9.946        4.258
    +rsl_inst.genblk2\.rlol1_cnt[14]      serdes_sync_1|rxrefclk     FD1P3DX     D       rlol1_cnt_s[14]      9.946        4.258
    +rsl_inst.genblk2\.rlols0_cnt[13]     serdes_sync_1|rxrefclk     FD1P3DX     D       rlols0_cnt_s[13]     9.946        4.292
    +===========================================================================================================================
    +
    +
    +
    +Worst Path Information
    +View Worst Path in Analyst
    +***********************
    +
    +
    +Path information for path number 1: 
    +      Requested Period:                      10.000
    +    - Setup time:                            0.054
    +    + Clock delay at ending point:           0.000 (ideal)
    +    = Required time:                         9.946
    +
    +    - Propagation time:                      5.809
    +    - Clock delay at starting point:         0.000 (ideal)
    +    = Slack (non-critical) :                 4.136
    +
    +    Number of logic level(s):                14
    +    Starting point:                          rsl_inst.genblk2\.rlol1_cnt[14] / Q
    +    Ending point:                            rsl_inst.genblk2\.rlol1_cnt[18] / D
    +    The start point is clocked by            serdes_sync_1|rxrefclk [rising] on pin CK
    +    The end   point is clocked by            serdes_sync_1|rxrefclk [rising] on pin CK
    +
    +Instance / Net                                         Pin      Pin               Arrival     No. of    
    +Name                                      Type         Name     Dir     Delay     Time        Fan Out(s)
    +--------------------------------------------------------------------------------------------------------
    +rsl_inst.genblk2\.rlol1_cnt[14]           FD1P3DX      Q        Out     0.907     0.907       -         
    +rlol1_cnt[14]                             Net          -        -       -         -           2         
    +rsl_inst.rlol1_cnt_tc_1_10                ORCALUT4     A        In      0.000     0.907       -         
    +rsl_inst.rlol1_cnt_tc_1_10                ORCALUT4     Z        Out     0.606     1.513       -         
    +rlol1_cnt_tc_1_10                         Net          -        -       -         -           1         
    +rsl_inst.rlol1_cnt_tc_1_14                ORCALUT4     D        In      0.000     1.513       -         
    +rsl_inst.rlol1_cnt_tc_1_14                ORCALUT4     Z        Out     0.606     2.119       -         
    +rlol1_cnt_tc_1_14                         Net          -        -       -         -           1         
    +rsl_inst.rlol1_cnt_tc_1                   ORCALUT4     D        In      0.000     2.119       -         
    +rsl_inst.rlol1_cnt_tc_1                   ORCALUT4     Z        Out     0.768     2.887       -         
    +rlol1_cnt_tc_1                            Net          -        -       -         -           6         
    +rsl_inst.genblk2\.rlos_db_p1_RNIS0OP      ORCALUT4     A        In      0.000     2.887       -         
    +rsl_inst.genblk2\.rlos_db_p1_RNIS0OP      ORCALUT4     Z        Out     0.837     3.724       -         
    +rlol1_cnt                                 Net          -        -       -         -           20        
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[0]      CCU2C        A1       In      0.000     3.724       -         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[0]      CCU2C        COUT     Out     0.900     4.624       -         
    +rlol1_cnt_cry[0]                          Net          -        -       -         -           1         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[1]      CCU2C        CIN      In      0.000     4.624       -         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[1]      CCU2C        COUT     Out     0.061     4.685       -         
    +rlol1_cnt_cry[2]                          Net          -        -       -         -           1         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[3]      CCU2C        CIN      In      0.000     4.685       -         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[3]      CCU2C        COUT     Out     0.061     4.746       -         
    +rlol1_cnt_cry[4]                          Net          -        -       -         -           1         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[5]      CCU2C        CIN      In      0.000     4.746       -         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[5]      CCU2C        COUT     Out     0.061     4.807       -         
    +rlol1_cnt_cry[6]                          Net          -        -       -         -           1         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[7]      CCU2C        CIN      In      0.000     4.807       -         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[7]      CCU2C        COUT     Out     0.061     4.868       -         
    +rlol1_cnt_cry[8]                          Net          -        -       -         -           1         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[9]      CCU2C        CIN      In      0.000     4.868       -         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[9]      CCU2C        COUT     Out     0.061     4.929       -         
    +rlol1_cnt_cry[10]                         Net          -        -       -         -           1         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[11]     CCU2C        CIN      In      0.000     4.929       -         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[11]     CCU2C        COUT     Out     0.061     4.990       -         
    +rlol1_cnt_cry[12]                         Net          -        -       -         -           1         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[13]     CCU2C        CIN      In      0.000     4.990       -         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[13]     CCU2C        COUT     Out     0.061     5.051       -         
    +rlol1_cnt_cry[14]                         Net          -        -       -         -           1         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[15]     CCU2C        CIN      In      0.000     5.051       -         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[15]     CCU2C        COUT     Out     0.061     5.112       -         
    +rlol1_cnt_cry[16]                         Net          -        -       -         -           1         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[17]     CCU2C        CIN      In      0.000     5.112       -         
    +rsl_inst.genblk2\.rlol1_cnt_cry_0[17]     CCU2C        S1       Out     0.698     5.809       -         
    +rlol1_cnt_s[18]                           Net          -        -       -         -           1         
    +rsl_inst.genblk2\.rlol1_cnt[18]           FD1P3DX      D        In      0.000     5.809       -         
    +========================================================================================================
    +
    +
    +
    +
    +====================================
    +Detailed Report for Clock: serdes_sync_1|tx_pclk_inferred_clock
    +====================================
    +
    +
    +
    +Starting Points with Worst Slack
    +********************************
    +
    +                            Starting                                                                      Arrival          
    +Instance                    Reference                                Type        Pin     Net              Time        Slack
    +                            Clock                                                                                          
    +---------------------------------------------------------------------------------------------------------------------------
    +sll_inst.ppul_sync_p1       serdes_sync_1|tx_pclk_inferred_clock     FD1S3DX     Q       ppul_sync_p1     1.098       5.789
    +sll_inst.ppul_sync_p2       serdes_sync_1|tx_pclk_inferred_clock     FD1S3DX     Q       ppul_sync_p2     1.098       5.789
    +sll_inst.pcount_diff[0]     serdes_sync_1|tx_pclk_inferred_clock     FD1P3BX     Q       un13_lock_0      0.985       6.147
    +sll_inst.pcount[0]          serdes_sync_1|tx_pclk_inferred_clock     FD1S3DX     Q       pcount[0]        0.955       6.178
    +sll_inst.pcount_diff[1]     serdes_sync_1|tx_pclk_inferred_clock     FD1P3BX     Q       un13_lock_1      0.955       6.239
    +sll_inst.pcount_diff[2]     serdes_sync_1|tx_pclk_inferred_clock     FD1P3BX     Q       un13_lock_2      0.955       6.239
    +sll_inst.pcount[1]          serdes_sync_1|tx_pclk_inferred_clock     FD1S3DX     Q       pcount[1]        0.907       6.287
    +sll_inst.pcount[2]          serdes_sync_1|tx_pclk_inferred_clock     FD1S3DX     Q       pcount[2]        0.907       6.287
    +sll_inst.pcount_diff[3]     serdes_sync_1|tx_pclk_inferred_clock     FD1P3BX     Q       un13_lock_3      0.955       6.300
    +sll_inst.pcount_diff[4]     serdes_sync_1|tx_pclk_inferred_clock     FD1P3BX     Q       un13_lock_4      0.955       6.300
    +===========================================================================================================================
    +
    +
    +Ending Points with Worst Slack
    +******************************
    +
    +                             Starting                                                                                     Required          
    +Instance                     Reference                                Type        Pin     Net                             Time         Slack
    +                             Clock                                                                                                          
    +--------------------------------------------------------------------------------------------------------------------------------------------
    +sll_inst.pcount[21]          serdes_sync_1|tx_pclk_inferred_clock     FD1S3DX     D       pcount_s[21]                    9.946        5.789
    +sll_inst.pcount[19]          serdes_sync_1|tx_pclk_inferred_clock     FD1S3DX     D       pcount_s[19]                    9.946        5.850
    +sll_inst.pcount[20]          serdes_sync_1|tx_pclk_inferred_clock     FD1S3DX     D       pcount_s[20]                    9.946        5.850
    +sll_inst.pcount[17]          serdes_sync_1|tx_pclk_inferred_clock     FD1S3DX     D       pcount_s[17]                    9.946        5.911
    +sll_inst.pcount[18]          serdes_sync_1|tx_pclk_inferred_clock     FD1S3DX     D       pcount_s[18]                    9.946        5.911
    +sll_inst.pcount[15]          serdes_sync_1|tx_pclk_inferred_clock     FD1S3DX     D       pcount_s[15]                    9.946        5.972
    +sll_inst.pcount[16]          serdes_sync_1|tx_pclk_inferred_clock     FD1S3DX     D       pcount_s[16]                    9.946        5.972
    +sll_inst.pcount[13]          serdes_sync_1|tx_pclk_inferred_clock     FD1S3DX     D       pcount_s[13]                    9.946        6.033
    +sll_inst.pcount[14]          serdes_sync_1|tx_pclk_inferred_clock     FD1S3DX     D       pcount_s[14]                    9.946        6.033
    +sll_inst.pcount_diff[21]     serdes_sync_1|tx_pclk_inferred_clock     FD1P3DX     D       un1_pcount_diff_1_s_21_0_S0     9.946        6.034
    +============================================================================================================================================
    +
    +
    +
    +Worst Path Information
    +View Worst Path in Analyst
    +***********************
    +
    +
    +Path information for path number 1: 
    +      Requested Period:                      10.000
    +    - Setup time:                            0.054
    +    + Clock delay at ending point:           0.000 (ideal)
    +    = Required time:                         9.946
    +
    +    - Propagation time:                      4.157
    +    - Clock delay at starting point:         0.000 (ideal)
    +    = Slack (non-critical) :                 5.789
    +
    +    Number of logic level(s):                13
    +    Starting point:                          sll_inst.ppul_sync_p1 / Q
    +    Ending point:                            sll_inst.pcount[21] / D
    +    The start point is clocked by            serdes_sync_1|tx_pclk_inferred_clock [rising] on pin CK
    +    The end   point is clocked by            serdes_sync_1|tx_pclk_inferred_clock [rising] on pin CK
    +
    +Instance / Net                             Pin      Pin               Arrival     No. of    
    +Name                          Type         Name     Dir     Delay     Time        Fan Out(s)
    +--------------------------------------------------------------------------------------------
    +sll_inst.ppul_sync_p1         FD1S3DX      Q        Out     1.098     1.098       -         
    +ppul_sync_p1                  Net          -        -       -         -           25        
    +sll_inst.pcount10_0_o3        ORCALUT4     A        In      0.000     1.098       -         
    +sll_inst.pcount10_0_o3        ORCALUT4     Z        Out     0.851     1.950       -         
    +N_8                           Net          -        -       -         -           25        
    +sll_inst.pcount_cry_0[0]      CCU2C        A1       In      0.000     1.950       -         
    +sll_inst.pcount_cry_0[0]      CCU2C        COUT     Out     0.900     2.850       -         
    +pcount_cry[0]                 Net          -        -       -         -           1         
    +sll_inst.pcount_cry_0[1]      CCU2C        CIN      In      0.000     2.850       -         
    +sll_inst.pcount_cry_0[1]      CCU2C        COUT     Out     0.061     2.911       -         
    +pcount_cry[2]                 Net          -        -       -         -           1         
    +sll_inst.pcount_cry_0[3]      CCU2C        CIN      In      0.000     2.911       -         
    +sll_inst.pcount_cry_0[3]      CCU2C        COUT     Out     0.061     2.972       -         
    +pcount_cry[4]                 Net          -        -       -         -           1         
    +sll_inst.pcount_cry_0[5]      CCU2C        CIN      In      0.000     2.972       -         
    +sll_inst.pcount_cry_0[5]      CCU2C        COUT     Out     0.061     3.033       -         
    +pcount_cry[6]                 Net          -        -       -         -           1         
    +sll_inst.pcount_cry_0[7]      CCU2C        CIN      In      0.000     3.033       -         
    +sll_inst.pcount_cry_0[7]      CCU2C        COUT     Out     0.061     3.094       -         
    +pcount_cry[8]                 Net          -        -       -         -           1         
    +sll_inst.pcount_cry_0[9]      CCU2C        CIN      In      0.000     3.094       -         
    +sll_inst.pcount_cry_0[9]      CCU2C        COUT     Out     0.061     3.155       -         
    +pcount_cry[10]                Net          -        -       -         -           1         
    +sll_inst.pcount_cry_0[11]     CCU2C        CIN      In      0.000     3.155       -         
    +sll_inst.pcount_cry_0[11]     CCU2C        COUT     Out     0.061     3.216       -         
    +pcount_cry[12]                Net          -        -       -         -           1         
    +sll_inst.pcount_cry_0[13]     CCU2C        CIN      In      0.000     3.216       -         
    +sll_inst.pcount_cry_0[13]     CCU2C        COUT     Out     0.061     3.277       -         
    +pcount_cry[14]                Net          -        -       -         -           1         
    +sll_inst.pcount_cry_0[15]     CCU2C        CIN      In      0.000     3.277       -         
    +sll_inst.pcount_cry_0[15]     CCU2C        COUT     Out     0.061     3.338       -         
    +pcount_cry[16]                Net          -        -       -         -           1         
    +sll_inst.pcount_cry_0[17]     CCU2C        CIN      In      0.000     3.338       -         
    +sll_inst.pcount_cry_0[17]     CCU2C        COUT     Out     0.061     3.399       -         
    +pcount_cry[18]                Net          -        -       -         -           1         
    +sll_inst.pcount_cry_0[19]     CCU2C        CIN      In      0.000     3.399       -         
    +sll_inst.pcount_cry_0[19]     CCU2C        COUT     Out     0.061     3.460       -         
    +pcount_cry[20]                Net          -        -       -         -           1         
    +sll_inst.pcount_s_0[21]       CCU2C        CIN      In      0.000     3.460       -         
    +sll_inst.pcount_s_0[21]       CCU2C        S0       Out     0.698     4.157       -         
    +pcount_s[21]                  Net          -        -       -         -           1         
    +sll_inst.pcount[21]           FD1S3DX      D        In      0.000     4.157       -         
    +============================================================================================
    +
    +
    +
    +
    +====================================
    +Detailed Report for Clock: System
    +====================================
    +
    +
    +
    +Starting Points with Worst Slack
    +********************************
    +
    +              Starting                                                   Arrival           
    +Instance      Reference     Type     Pin                Net              Time        Slack 
    +              Clock                                                                        
    +-------------------------------------------------------------------------------------------
    +DCU0_inst     System        DCUA     CH0_FFS_RLOL       rx_cdr_lol_s     0.000       8.810 
    +DCU0_inst     System        DCUA     CH0_FFS_RLOS       rx_los_low_s     0.000       8.810 
    +DCU0_inst     System        DCUA     CH0_FF_RX_PCLK     rx_pclk          0.000       10.000
    +===========================================================================================
    +
    +
    +Ending Points with Worst Slack
    +******************************
    +
    +                                                       Starting                                                                       Required           
    +Instance                                               Reference     Type        Pin                Net                               Time         Slack 
    +                                                       Clock                                                                                             
    +---------------------------------------------------------------------------------------------------------------------------------------------------------
    +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0]     System        FD1P3DX     SP                 un2_rdo_serdes_rst_dual_c_2_i     9.806        8.810 
    +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0]     System        FD1P3DX     D                  un2_rdo_serdes_rst_dual_c_1       9.946        9.556 
    +rsl_inst.genblk2\.rlol_p1                              System        FD1S3DX     D                  rx_cdr_lol_s                      9.946        9.946 
    +rsl_inst.genblk2\.rlos_p1                              System        FD1S3DX     D                  rx_los_low_s                      9.946        9.946 
    +DCU0_inst                                              System        DCUA        CH0_FF_RXI_CLK     rx_pclk                           10.000       10.000
    +=========================================================================================================================================================
    +
    +
    +
    +Worst Path Information
    +View Worst Path in Analyst
    +***********************
    +
    +
    +Path information for path number 1: 
    +      Requested Period:                      10.000
    +    - Setup time:                            0.194
    +    + Clock delay at ending point:           0.000 (ideal)
    +    = Required time:                         9.806
    +
    +    - Propagation time:                      0.996
    +    - Clock delay at starting point:         0.000 (ideal)
    +    - Estimated clock delay at start point:  -0.000
    +    = Slack (non-critical) :                 8.810
    +
    +    Number of logic level(s):                2
    +    Starting point:                          DCU0_inst / CH0_FFS_RLOL
    +    Ending point:                            rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] / SP
    +    The start point is clocked by            System [rising]
    +    The end   point is clocked by            serdes_sync_1|rxrefclk [rising] on pin CK
    +
    +Instance / Net                                                          Pin              Pin               Arrival     No. of    
    +Name                                                       Type         Name             Dir     Delay     Time        Fan Out(s)
    +---------------------------------------------------------------------------------------------------------------------------------
    +DCU0_inst                                                  DCUA         CH0_FFS_RLOL     Out     0.000     0.000       -         
    +rx_cdr_lol_s                                               Net          -                -       -         -           4         
    +rsl_inst.un2_rdo_serdes_rst_dual_c_2_0                     ORCALUT4     B                In      0.000     0.000       -         
    +rsl_inst.un2_rdo_serdes_rst_dual_c_2_0                     ORCALUT4     Z                Out     0.606     0.606       -         
    +un2_rdo_serdes_rst_dual_c_2_0                              Net          -                -       -         -           1         
    +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd_RNO[0]     ORCALUT4     B                In      0.000     0.606       -         
    +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd_RNO[0]     ORCALUT4     Z                Out     0.390     0.996       -         
    +un2_rdo_serdes_rst_dual_c_2_i                              Net          -                -       -         -           1         
    +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0]         FD1P3DX      SP               In      0.000     0.996       -         
    +=================================================================================================================================
    +
    +
    +
    +##### END OF TIMING REPORT #####]
    +
    +Timing exceptions that could not be applied
    +None
    +
    +Finished final timing analysis (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 150MB peak: 152MB)
    +
    +
    +Finished timing report (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 150MB peak: 152MB)
    +
    +---------------------------------------
    +Resource Usage Report
    +Part: lfe5um_25f-6
    +
    +Register bits: 220 of 24288 (1%)
    +PIC Latch:       0
    +I/O cells:       0
    +
    +
    +Details:
    +CCU2C:          113
    +DCUA:           1
    +FD1P3BX:        20
    +FD1P3DX:        92
    +FD1S3BX:        12
    +FD1S3DX:        96
    +GSR:            1
    +INV:            3
    +ORCALUT4:       150
    +PFUMX:          2
    +PUR:            1
    +VHI:            6
    +VLO:            6
    +Mapper successful!
    +
    +At Mapper Exit (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 35MB peak: 152MB)
    +
    +Process took 0h:00m:03s realtime, 0h:00m:03s cputime
    +# Fri May 10 10:23:38 2019
    +
    +###########################################################]
    +
    +
    diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/syntmp/serdes_sync_1_toc.htm b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/syntmp/serdes_sync_1_toc.htm new file mode 100644 index 0000000..9abc35f --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/syntmp/serdes_sync_1_toc.htm @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/syntmp/statusReport.html b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/syntmp/statusReport.html new file mode 100644 index 0000000..1a6a0b4 --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/syntmp/statusReport.html @@ -0,0 +1,115 @@ + + + Project Status Summary Page + + + + + + +
    + + + + + + + + + + +
    Project Settings
    Project Name serdes_sync_1 Device Name syn_results: Lattice ECP5UM : LFE5UM_25F
    Implementation Name syn_results Top Module serdes_sync_1
    Pipelining 0 Retiming 0
    Resource Sharing 1 Fanout Guide 50
    Disable I/O Insertion 1 Disable Sequential Optimizations 0
    Clock Conversion 1 FSM Compiler 1

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Run Status
    Job NameStatusCPU TimeReal TimeMemoryDate/Time
    (compiler)Complete15770-00m:02s-5/10/19
    10:23 AM
    (premap)Complete8300m:00s0m:00s145MB5/10/19
    10:23 AM
    (fpga_mapper)Complete23400m:03s0m:03s152MB5/10/19
    10:23 AM
    Multi-srs GeneratorComplete5/10/19
    10:23 AM
    +
    + + + + + + + + + + + + + + + + +
    Area Summary
    Register bits 220I/O cells 0
    Block RAMs +(v_ram) 0DSPs +(dsp_used) 0
    ORCA LUTs +(total_luts) 150

    + + + + + + + + + + + +
    Timing Summary
    Clock NameReq FreqEst FreqSlack
    serdes_sync_1|pll_refclki100.0 MHz168.9 MHz4.079
    serdes_sync_1|rxrefclk100.0 MHz170.5 MHz4.136
    serdes_sync_1|tx_pclk_inferred_clock100.0 MHz237.5 MHz5.789
    System100.0 MHz840.7 MHz8.810
    +
    + + + + + + +
    Optimizations Summary
    Combined Clock Conversion 3 / 0

    +
    +
    + \ No newline at end of file diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/.cckTransfer b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/.cckTransfer new file mode 100644 index 0000000000000000000000000000000000000000..0c7a019d31e94d7cc5dc16b29d1db7e2cfc75b51 GIT binary patch literal 457 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer0.tlg b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer0.tlg new file mode 100644 index 0000000..e304b8e --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer0.tlg @@ -0,0 +1,2 @@ +@N: CD630 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd":30:7:30:19|Synthesizing work.serdes_sync_1.v1. +Post processing for work.serdes_sync_1.v1 diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer0.tlg.db b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer0.tlg.db new file mode 100644 index 0000000000000000000000000000000000000000..8bff0103ceb1593b4eeee3641fcb7f248eb15909 GIT binary patch literal 8192 zcmeI#F;Buk6bJBYW8!3RF-{~GCQY-8 z0VWey{x9vlzL$4x`r9sk>Pai;xYPx=G$O~u^T<7=gb;sqyYv&DTMt&x%e1Wj3ZGnl zeH^(dul7mYg@6DAAOHafKmY;|fB*y_009W>xq$T!PwRDWacB8xDhgo?&xBcLzw_K} z_q(*;e&}`Sx_c&5I^#OYxxS!NsV19hHL__;q}m#;+)k3S!8?C6>x>+va?Rz{|HWx;|NtMypQcr^I OcZI<$3{>g9Q+)&X5NuWe literal 0 HcmV?d00001 diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer1.fdep b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer1.fdep new file mode 100644 index 0000000..b1d0c36 --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer1.fdep @@ -0,0 +1,22 @@ +#OPTIONS:"|-mixedhdl|-modhint|/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/_verilog_hintfile|-top|work.serdes_sync_1sll_core|-top|work.serdes_sync_1rsl_core|-mpparams|/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/_mh_params|-layerid|1|-orig_srs|/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/serdes_sync_1_comp.srs|-prodtype|synplify_pro|-dspmac|-fixsmult|-infer_seqShift|-nram|-sdff_counter|-divnmod|-nostructver|-I|/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/|-I|/home/soft/lattice/diamond/3.10_x64/synpbase/lib|-v2001|-devicelib|/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v|-devicelib|/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v|-encrypt|-pro|-ui|-fid2|-ram|-sharing|on|-ll|2000|-autosm|-lib|work" +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/linux_a_64/c_ver":1542167761 +#CUR:"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/_verilog_hintfile":1557476610 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v":1542167595 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v":1542167597 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v":1542167630 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v":1542167630 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v":1542167630 +#CUR:"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh":1542167630 +#CUR:"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1557476609 +#numinternalfiles:6 +#defaultlanguage:verilog +0 "/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v" verilog +#Dependency Lists(Uses List) +0 -1 +#Dependency Lists(Users Of) +0 -1 +#Design Unit to File Association +module work serdes_sync_1rsl_core 0 +module work sync 0 +module work serdes_sync_1sll_core 0 +#Unbound instances to file Association. diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer1.fdepxmr b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer1.fdepxmr new file mode 100644 index 0000000..37d628b --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer1.fdepxmr @@ -0,0 +1 @@ +#XMR Information diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer1.info b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer1.info new file mode 100644 index 0000000..de9b528 --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer1.info @@ -0,0 +1,2 @@ +|work.serdes_sync_1rsl_core|parameter pnum_channels 1;,parameter pprotocol "G8B10B";,parameter pserdes_mode "RX AND TX";,parameter pport_tx_rdy "ENABLED";,parameter pwait_tx_rdy 3000;,parameter pport_rx_rdy "ENABLED";,parameter pwait_rx_rdy 3000;| +|work.serdes_sync_1sll_core|parameter PPROTOCOL "G8B10B";,parameter PLOL_SETTING 1;,parameter PDYN_RATE_CTRL "DISABLED";,parameter PPCIE_MAX_RATE "2.5";,parameter PDIFF_VAL_LOCK 39;,parameter PDIFF_VAL_UNLOCK 262;,parameter PPCLK_TC 131072;,parameter PDIFF_DIV11_VAL_LOCK 0;,parameter PDIFF_DIV11_VAL_UNLOCK 0;,parameter PPCLK_DIV11_TC 0;| diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer1.srs b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer1.srs new file mode 100644 index 0000000000000000000000000000000000000000..85e7f2798c46139606eb456535d3225c96b14e58 GIT binary patch literal 20214 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

    8oxvv_q9X|!*-X zE)`Mz^_>EA*+&aW3tk4%tS6N33j*8cr5LCsN5hd8EDs?~;6dpQfG_ zync_!seC0oH?gfg zpRAA^&`1HW*D=e^dK)0NKig#tILQ%t2U6?5cQ7-4?41e~V@js{@N9e+N`xwqIcakj ze{xCE-22?#N}jG0{>m(1xtKJzt9u`@tTukDazM4x!qXv%dN4l^Y&}Ard0ctt@zk#` z?p^!*3KCDUMRYzy>EmrF|4w$VlYep0BIX`SSIyq~;hd*U`Su+(Ou+e>@DaFjf&s)f zh;<+>v0O$(s#zH{$7jG-fc<{ta9S5n5pZ&6yx@JEM!uxOm84ZW7RLG{e82PQ#b0Vr zeC$-s=ZFl;0M5mf5y$da?|SfM4Md0;`QpzL#rt<7NQ_cjXT*9~_dQ(9H?T^}Q~7r`Tv&0YDZ`rJo3hoSE|zC%*iuR7 z9Nf2Qz9@FKQ?mfd!MeME)B5tNIcOZ4nNMuM=3y*p@EJ%Y(sNpT68I}voME=#l^6(p zgH6#C?W%cFH2h$00HgJwf^)g1P$$S1_AtH?aLpQN0H0xxS#}D*p(~w zjsux!zBp;#mJqg|R$`7PTHb-;DXBJrVbid8*?XmmjVMb&U6t_|Am3V@)=xXrVpD?_ zvCcB@hb$Hd;P9)zQ{re}C-({F&r*rdTa{^^n;BPW=_vbNO;qoO?P0R+mOwtlLs{uW zPPt-N=1`Je@Z0=?U8^<=GV>>*qUR4UA3CtSdzOB@U_18taq)EW>5I^DIN+HQTw@|0 z-j1}K7TwMBA7KXPQ@2jwsEzascQ1+Mq3a z6@Tz&yI?VKjCd{mnu@=$Fk0`vMEM$7d4YF^ z^?vI&eec|V!sB`P+@B~SV8$H4Qaw0!`AfhzJ-NlRNb7cW3(CLN(Uoe|*g%wldf4J! z7h{^G@}S*D^>|cA4Z~lm4M!hL9cv+mr3ujOiqZ2Aj%=cR+#Ltv-2w?;e^_;$)9kdt ze!oFS!ZAHDPTX*-7c&0nTbLlfHOWwANee#eBkGUb=$FD|GQbRj7EUoD+fVZ;ST&_R zUR4@yXS$2!^m;x`W^2HfQ3(@1j7Iu@#2U9}av0ftG~-{RX)?=3M~oEgXB$svXmpJ;+{zmYaSa!%8HGiRgMC)4RYbWx6E0iJs$ha!}-}Z8_Kmv*8Ieq zEfM)}{NCq~OM9|JKydz^$R23kAGZkKee1HULEr8C%Y@4z;lS!}p`WA6_N}AJj!uT} z__AM9kpXRg6(HxOch#Lzp(UW->y*P~bVCs=nW7&<_`+&x_8pt5$kJiW2hUOicvdG>9<1`kpzSypJ{!9GJaXx1Cx&qa$S&c zLYuDc*nT>`yS3IZDoLZi54eWCt+^{3PAR}2)H56S5PsJoqkNRe6DZi9SEK`lVH)|~ zL>&dBIy`3pJz)qXBC+g6(}K#W#Iy0FFI&R&YeT*I%jJhI4M8GJs9m}bd^SMn{DFsE z2&{wT@VNyX{(Fb376N~H%O()^yEY@c11-@xi{n|oDkMVh(aK_ei7!iq5@EhK`ujnY zDYfjE%r(Kw87FXoGg}(TmNB2vrz>&$3^E@mmk)Pr98atmc+5e?cB9!N+f~y>ya^e1 zp5B-Hh}i2}Qc)ET*x({3?Uw~0ECT=Trij&#-5u@;vj5e}DtBFo%)56ZRjNh+EHvRw zNHbSSim3G<687B4Eu+nAaGH0t_(E-XvfsYC^xfND<0z0uMP*<UIR%#E|b6-2{vqtTllU-QM4|U$mAK#GW3D>YikrT}6+$ zPNtJ}CvW)=N*{O1J{>0RK+olX&pRG=Cs)O%Y!SjtS8aFuK-5c#sMDv(cS%b>q#$}RyWXu`y7A9V zhI56HR+nU_ZBU>Y)p#P4c_yBO$K!JXpv&CwWDDR}|O+%b5 z(l;DCI3yQOjqEoHYhrRugCNJ8A>ZfIfw4Kn^4+?V)+Pbe(KV~#goB~dmoXRM^UD9b1g##$wh-#_p}KNDcPphDuk`?(t81F_fY2L2DuVe{0`KO-Ua z=-kZODF1C_t{H;`;(r-AG4Yp9&Oe-)bBsF9v$IH8$n>lM6-Z(L#Q|^*>Y}>ymk7-&kpng<1*#`6C5)x6H28tS*OBt#{j$k*fNYu#yMSN(pwu`nT^;PK>A& zvRv#(TgVC;x!%36@wuooV>q|dI^yao*0eJ2FODUYU)o*w2VC_q!*_CsqIRD)!K%ly zSfPglNsxtHMQM+w0j-zWAzowyY|(Ew0YP!Qsth31tzF^tRCjyBdUQ{y;;aJSZrLT{ zG%2z)AF5WvM(hE`F9|ypbc#V5%`LWAeKYaAhm!&9EFn>qmuU49CE(u_vi}vuzjf6d zHwB1+4*tk=Nhn5axH^TD1YhLx!;{F=*?Nzv-nF4SBe&ox^5}_O&jmQs^vWqhy@fe6 z9#&mXL}OGO?q%PY*_Wl$?9lHwY)nDN5aUMNMoPvr6Cc#Z!#S zh`N;YwuR4lEDhQoeEls*0$N=#m!@aZ7pH6#Eyyd&qiDRcFnL)DkDL>rXr=GjRqQaQ zIL<_jc**q+ucHH{JEKi{bxb7|9;_Jfl{LY`{fWTc%k3Q`Xv;4LJRapyUlJgI27Ql{ zhD%8yvt)ffn!m92#GcK0AV7DZ!8A(r;&Jx-1w-ZC!DlO5XR(b8fn29L%0_S`Pee0* z1mrkSs9o_h7~C5U;6Aj=a)x(QJrdrm8LcJu64S5oLi}C}QmGXdh?mlBSFq!EiO7D8 zBery{F45X<%*QqJBB7&{k^GDxtk-?*8>96ExTB*`m%Wm1kSbOQ2{t3P!1jN}ZMpp- z?e^Axb90boF(2Pz4wx+^Aoz7G4{dW12VJs0iyoIgEUDI+%JzGHF$OKj``Et7Zk2flKJNf3j;HM&ka=KR>8R`6q;`l2p?gj6D1Ep53WU#S>|ON5b-UV zF*NcBP%7?;d;nN`knHN1<4Nn^x}T?Z^Vs_S^51s5P*@~h$!ipF|M`o%Edil;i|wpB z;PP-y+#T&WhHc>HbEog7-C ze=lKXG6%_HD8nV)dn?J-isF_nDQA)q;pa*Pqqa=qr{QQZ%dC5<-#7A(%s1=FOupnN zoFfm*NRy7w}3d1vu{!2>GnGS|t47;Co}90Bj2GtMLx0>z8P^QY;W;&i zoStEITI;|t!RfUX;n7RATw#`W{xDNXere+}V+4cj@}F}`x~$2d#rag_T*6WFshA{B zuR1+G^HPVhy{vW-Q=Hkp%NeQgLj@l=2NrLwV%1E_-oC70X!@E zySz0Gp&2hT5c%`j?AqTIJYADjgPu+TZw7P+F*r?CXR7ZxXumHy?(|)F>s+%u2?PLa zeBO2~PusvFF*+}AG77@t+1!`k43p2fKnKnHg&a^4l%_UK?p#6hKS6Qb^z-pIudz^< zINRQ(D!UFal53Ae>G+;S|2)>`ARtKch6oz&(sRR9{YN zmyG;YG@e47Gk$lHr*joj_N8+<^Pv3TH(&qs=eN#rlG&K=OT75)f?-Xz4j^kAhkj1O z@e0y{(pEy(@;g39mvJ)d*>KC~FSCmjxf^g;sMZ4S`{2p2^EYVzb1)&p{<-n@p(R_E z%Q(&LN&v@c9Y=fLBnM)%vSeWURF`37#tT)qwIViB9TRWTx?M-8aAb<_z}qPW3SS~w4njfsI&+0ZDAjdJPU4Ia zj9HeG~+q*7`h6f(8y?v4V{$xcw29>`WyJb&B&%}SBf^$moC{|KxVVvnjD&gTUIAzo~;ShExz45tA4{zn2-DqXBohY4B$=1Q+1zQly$*OKWIyC4Um|Lz*KP=u5-qi^TyB1rM z@>b*YdoB^hFHc~e=#LYE{IPEjS__qWw!1Os2ATdG(J_ng*J_G(+E5*n;fC}^sHU-RP%KxjV z`d1gpA90*qf6r%M0w70q{wx8={Of7C|A!<_K?Z;=0Ps&?MgjV(uiKl?}yRI6Ga2#SmFZGR<}AhY!r(ZDDr3P)5j ztDz!31Op5u(V!bAB~+S^j{i+C^EcoBAE5sxPe+TNG2 z{Q68JWrt8Bet6=ZJUJq&m`wqgZAqt8uXU2d)}mIr zsb_Q&c`RbO+uZue+s@OIxDU<^4}ZmBGp5vW;Ryc{L(f^D?XUUYDwY6)PhE?9}uTfM@(A6=)w%hN=0{Cx-F5mauc|Dh}wOxxyRf2e0%?R zmt_3%JZ8LuF%8Udc%)mm$W6C9OpyRTEAF1Su8gvu@0MRMqLPXcTHqt;l{WR_@V(sM z-;d>p8(*fZ89VA2Lszq=?rFK=f}K8itnsm#+l1P#E8fR?=fBtS1qI8)?!56dS2YeG z4jOTnkuJ#1We2SvDHlGx^)b55DRbG`F z5FdW|Yz!TQIv5+b5vKW8j5(T6knmYIrM-p1Kb&Ju8D2sl)sL{0yW=^+%io56%>}%) z&Wc2B7VJ-aqXd1tw+7tTsoM|l%v;0Bx;JvX)OI8`eD^hY6&#;LHp&7;uO68Q*E=Cv zoFfU5o7!h$(plDN_3<#emgw}3yFrWPIOWlBcH5ml6lY-mbD2H1(0q!%6DEgzc2EhM zZ#MFSeo}>eh;3%Y7tnTwJ2dcx>2`Ws&}C^HvbU*;W851vL)pF*IM-MhO+4RZ&&G43 zbjK6=z(5U5E_@5g7ahH$_ckwh3zb{c-B4`2qE|eYiqTJahif7A`5c{nsNipaVd}YorGJf zO^NxLZ7cnWqPxhWG)Uj1O_t=54YVX|R^e^e`c1IN>%vL%1X-!1jV+`JzIO5{8FIxT z1A8-=9Z4#W9m9UovbJ5F^pkWSAkUna8~y08lzu^bL9-Sdw?saagMTkN`Zn^?8gZ-L zQ1PHGl4buOm4Gea8}ti^5bSH>@(MokZKe)Nm<1^GImv)(t(u?m*o}PmbE>{t*9~>U zQ$)7nDWU1jB0X!M$JD^$v9Mh`C$=*sO?#t$-L4b=tu)~|@79MB`R$fLTO;^Tv}oE4 zX%Y<+LFbl9a~f(vC;9&P%6&v}&N_k~jxs4cTt~sN&hRfQz2x&vkuBuz6WWg@zCK^) zOWh}xZ{AON37$;SGHNOhEcavBNm)l5Arp&!OO@cDWJTIx3=R64wS!7Y9HZz?F|FKO zVLK_~q;gdM4MWB>s}q-HfL|@pW!{;pz+87URF$2{PS;?GSI&q~kNPVyZ=v9X1)H;o zx6Ctt9l3CFgHiu^D8S~GM+c{^W)U?Kr}84C0jtMwSVL{x@8?7jl1W;Us~Y07r_`vV z%^=(=gKkdST$|x_X>G3(oBqV}#4b4+d90%Vz^#zt34ZSX1a1tG^DH%=g>XY-25^xm z7W6^F)T&P`4mL%m9+IS|1sm5062n_8CXHXFNy(a&`H8-E{24Y2v;qDcg{)zX5~#m% zUueXDF*eP(-_-u*SIlA^461P*aaOULAWOL_@_os+$=u;-VnydiAC#>GAC_SovnB#e zW&`&G^U|1uwgU4R{UL6uDro>?^}N0pXiS9PQ((Gzk(65&%y&wcNd2;Y#0cvnC37zAMzHIJ6F-8Pd=zu zcvcWjA#Q130bPa?Bt>~y97d{X^mv?7p(u-J{z%OnjM5M3Gny;SL4G2~UL~cL1Nkb> zk*Iy?tB=Wn&jJN_SB?j@*86~CpSyPU=iR*-^R%DIW8?E+iz449JmXP)P7L=wKmru~5LABi`zH5R2Z^r#sGj^O@Lmh!TSMd3uj?8CxdF0kKqb zmk;=WjdQES`a3YH4J?5!Ahu|KPnk#o?kWNHm!>>p0I@tx5pR>_fiRQjuym$vb>#;d z=Tg9iJX8B^Q6_@T^}F+Gb~c{kehS6b;$iqV##1B5yE4qz5AWHC<*mG0BR_ce-ls=j zV4%JC_79Y2IRp6#jv0Gqf?T-%n4hob>cPa}58CJ?UJJq;PC!4TUxy1=89St*Fym&? z85#EvNs<0G3vU3onyLXm+zRA{xQ`cq^T-lSG)Po`(T>oDa{eu1!MeSGukM&Shgh?l z=)GrLZh`a?TcCza-DjG&?72!kxcRLS)}$>|TxhR>uHbN5nO*n^>T8O5ky`q)b;hvx zH*iCx^PnV)EKag0nP8qfW;p1iZsUd33GjBynZ=rubA7+>Cw+FFMYxN@F5UsV zWB1$slxNcAL7we%?@xIz>pUjd(Z*MToXca{GGqmdGzaXnBCU`^_VjX2qq#1%aj&Mp z2D^cOgC5FAJ+k$;2VU|#s3`FNHB%2I|CUz)FGxVO93}>mX>7E%)V7e}K^_~Ewo5|x z9c4=)V-mJS>TpUkteyWtpgeiw4rgik?n$ z2uGJVMt#gb%1Asi%kyc&`PTp5v-{F=df=t>JNLI`e?P&d!9I?;z>3yK-=L7~wz>^V zs@H4d4x`e&*4z`;sn-m)AHdkXmk#@dT7`Yb{26nwaLi3Qv&S9Go%RLBHER#v%E-2?Av5zmo#K)7&g2$TB4Y3<>ZE22-F`aW=4dX|GY;~GAoYYn>?>}#s9U&4(>L z)`K~S_H7--Vz$K8hF?>j!{yh@;@=i>!mZd&CMxDwLq7N)PBzP~a3 z6!v?Z|3J-q1h&=GK$q0cMZH#YWb=IJ)BzWuU#z(;$S&SRASZH{H5U(vPw|0h9~A^J z=K*<$&JAsi5^V_UQ^$P=P>)->Thws|R2X$8D4*au?um=-unm`R-`d7$9S<36M=3+D zoC5Y?9j{Kh$@P2o;K93Q@2B-3GO-7Mib-8i*t6!YLpi&S#(6l@luzX3Blr1PpT&P1 z3%Cl}y5ScTb7sf)aBUNxaeZ@jU%LL%qU}OZwA=uFidQqsq0aT4+)vlG(c@CK=#ayV zwnVgz5wNk*?ufy%w?2e5bNvieyU~B?&h?{XEbKIo#oB*2@=WAsRT`)kYli{EG?un! zYyXT6egU?+9CL@EzZ?2n_t|jh+qr#FwB(Cb#FM#Dd$^J;+}g@UB}pTEn?;=Cqn*baLnb1l<>*C9zEiu^W3{N zm`hkeaJ`Vg!TSeE;wADGtiQisuNbh%sToSyB3td+u~v~7n@}kOE8%dPo~;KkKd^Rm zjtiOdFJ~^3r;Xe)pX^clW{=u)`n=>v|0r=gG zIi$8T&Z*yj-`=b8{Jn{rs~|iZWAo0QlTF_5%eQ@}b9m+D7HEX1! zZyxKncrXOpuUpnhSAX>MeX|}j2V#_ScF0XGPVl@*#uD3wjKhGX=vS7DxYz%mTy&pY zC28?6y9s|&$l(BZx2b@fyPA<^`TqOGK6wb!*>BN}!o0W=*;bz&L5}k7Z#V`^bbaHL z3tAoT@W_|cx@8NJ!cG*Nc2*Y{lbRX(r9Azkx_R%p{qpbqhIsv+ep(Fu-9oo)*J}M7 zc_Fbei5z($m0`TZ^SHm8E2t|x|GQFG{p2^qIIRc6ThWGr$JN@FcgOScRO*_$&JV`= z6iqum<=C5=X#TOO+fuTqk3g>W7%xB$ou{=YF(*DOFdm*hr*mJI8@imyaKlq9L0{GU z@Fzaa%41A*u*9)pEcsxaZWs1!dv9`$9=ICH&v*#Q1~oMsty8CFH{EMW$Gr|SrZf)` zVV|0F%h1J?v34}%zuc)CZU|Q9HX#}E-*F9gO`J-LFUUE~w-J}lZIebZQ*Sc0$8pRz zX8>rQrY`AV^qV+a%=?qNcBi9k+etg;DD!C>o;e@0-;!L4v+&;B+q!Y%iT*q5XUSHzv;mnvHv|>(NrN&qe`${C!^V zeG(<5cQbrjr;@}E1|6$_<%OT`C6nG4`UUg=IXk7E{Bpdes8W!{TuXB;$7dws> zGkC50hwEXSu^%29o|ogb9Is(wdkq7bYkYaUhD&?>-xXsKL=u)YT5fR2s#xa<+9!Uq zvu%8E>}X!^U`PvG^9T_%BctQ%S$M7u+1^)PU`Ee!k{3*2A{2jlc=C z{0AOtK0Vf5I1Puf{x3O){>BbC_UT!H;oH^KFqbcfxNFW=PUO8h$6XuxYjY))T%B@g zhri0tlVdGPl?00030{{sN$zoe=3@Bjem CT+Ipq literal 0 HcmV?d00001 diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer1.tlg b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer1.tlg new file mode 100644 index 0000000..3424f4c --- /dev/null +++ b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer1.tlg @@ -0,0 +1,252 @@ +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +@N: CG364 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1968:7:1968:10|Synthesizing module sync in library work. + + PDATA_RST_VAL=32'b00000000000000000000000000000000 + Generated name = sync_0s +@N: CG364 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1051:7:1051:27|Synthesizing module serdes_sync_1sll_core in library work. + + PPROTOCOL=48'b010001110011100001000010001100010011000001000010 + PLOL_SETTING=32'b00000000000000000000000000000001 + PDYN_RATE_CTRL=64'b0100010001001001010100110100000101000010010011000100010101000100 + PPCIE_MAX_RATE=24'b001100100010111000110101 + PDIFF_VAL_LOCK=32'b00000000000000000000000000100111 + PDIFF_VAL_UNLOCK=32'b00000000000000000000000100000110 + PPCLK_TC=32'b00000000000000100000000000000000 + PDIFF_DIV11_VAL_LOCK=32'b00000000000000000000000000000000 + PDIFF_DIV11_VAL_UNLOCK=32'b00000000000000000000000000000000 + PPCLK_DIV11_TC=32'b00000000000000000000000000000000 + LPLL_LOSS_ST=2'b00 + LPLL_PRELOSS_ST=2'b01 + LPLL_PRELOCK_ST=2'b10 + LPLL_LOCK_ST=2'b11 + LRCLK_TC=16'b1111111111111111 + LRCLK_TC_PUL_WIDTH=16'b0000000000110010 + LHB_WAIT_CNT=8'b11111111 + LPCLK_TC_0=32'b00000000000000001000000000000000 + LPCLK_TC_1=32'b00000000000000010000000000000000 + LPCLK_TC_2=32'b00000000000000100000000000000000 + LPCLK_TC_3=32'b00000000000000101000000000000000 + LPCLK_TC_4=32'b00000000000000010000000000000000 + LPDIFF_LOCK_00=32'b00000000000000000000000000001001 + LPDIFF_LOCK_10=32'b00000000000000000000000000010011 + LPDIFF_LOCK_20=32'b00000000000000000000000000100111 + LPDIFF_LOCK_30=32'b00000000000000000000000000110001 + LPDIFF_LOCK_40=32'b00000000000000000000000000010011 + LPDIFF_LOCK_01=32'b00000000000000000000000000001001 + LPDIFF_LOCK_11=32'b00000000000000000000000000010011 + LPDIFF_LOCK_21=32'b00000000000000000000000000100111 + LPDIFF_LOCK_31=32'b00000000000000000000000000110001 + LPDIFF_LOCK_41=32'b00000000000000000000000000010011 + LPDIFF_LOCK_02=32'b00000000000000000000000000110001 + LPDIFF_LOCK_12=32'b00000000000000000000000001100010 + LPDIFF_LOCK_22=32'b00000000000000000000000011000100 + LPDIFF_LOCK_32=32'b00000000000000000000000011110101 + LPDIFF_LOCK_42=32'b00000000000000000000000001100010 + LPDIFF_LOCK_03=32'b00000000000000000000000010000011 + LPDIFF_LOCK_13=32'b00000000000000000000000100000110 + LPDIFF_LOCK_23=32'b00000000000000000000001000001100 + LPDIFF_LOCK_33=32'b00000000000000000000001010001111 + LPDIFF_LOCK_43=32'b00000000000000000000000100000110 + LPDIFF_UNLOCK_00=32'b00000000000000000000000000010011 + LPDIFF_UNLOCK_10=32'b00000000000000000000000000100111 + LPDIFF_UNLOCK_20=32'b00000000000000000000000001001110 + LPDIFF_UNLOCK_30=32'b00000000000000000000000001100010 + LPDIFF_UNLOCK_40=32'b00000000000000000000000000100111 + LPDIFF_UNLOCK_01=32'b00000000000000000000000001000001 + LPDIFF_UNLOCK_11=32'b00000000000000000000000010000011 + LPDIFF_UNLOCK_21=32'b00000000000000000000000100000110 + LPDIFF_UNLOCK_31=32'b00000000000000000000000101000111 + LPDIFF_UNLOCK_41=32'b00000000000000000000000010000011 + LPDIFF_UNLOCK_02=32'b00000000000000000000000001001000 + LPDIFF_UNLOCK_12=32'b00000000000000000000000010010000 + LPDIFF_UNLOCK_22=32'b00000000000000000000000100100000 + LPDIFF_UNLOCK_32=32'b00000000000000000000000101101000 + LPDIFF_UNLOCK_42=32'b00000000000000000000000010010000 + LPDIFF_UNLOCK_03=32'b00000000000000000000000011000100 + LPDIFF_UNLOCK_13=32'b00000000000000000000000110001001 + LPDIFF_UNLOCK_23=32'b00000000000000000000001100010010 + LPDIFF_UNLOCK_33=32'b00000000000000000000001111010111 + LPDIFF_UNLOCK_43=32'b00000000000000000000000110001001 + Generated name = serdes_sync_1sll_core_Z1_layer1 +@N: CG179 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1287:54:1287:59|Removing redundant assignment. +@N: CG179 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1293:52:1293:55|Removing redundant assignment. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1350:0:1350:5|Pruning unused register rcpri_mod_ch_st. Make sure that there are no unused intermediate registers. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 0 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 0 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 1 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 2 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 3 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 4 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 5 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 6 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 7 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 8 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 9 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 10 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 11 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 12 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 13 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 14 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 15 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 16 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 18 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 19 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 20 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +@W: CL208 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|All reachable assignments to bit 21 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization. +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +Could not match passed parameter, trying a case insensitive search ... +@N: CG364 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":92:7:92:27|Synthesizing module serdes_sync_1rsl_core in library work. + + pnum_channels=32'b00000000000000000000000000000001 + pprotocol=48'b010001110011100001000010001100010011000001000010 + pserdes_mode=72'b010100100101100000100000010000010100111001000100001000000101010001011000 + pport_tx_rdy=56'b01000101010011100100000101000010010011000100010101000100 + pwait_tx_rdy=32'b00000000000000000000101110111000 + pport_rx_rdy=56'b01000101010011100100000101000010010011000100010101000100 + pwait_rx_rdy=32'b00000000000000000000101110111000 + wa_num_cycles=32'b00000000000000000000010000000000 + dac_num_cycles=32'b00000000000000000000000000000011 + lreset_pwidth=32'b00000000000000000000000000000011 + lwait_b4_trst=32'b00000000000010111110101111000010 + lwait_b4_trst_s=32'b00000000000000000000001100001101 + lplol_cnt_width=32'b00000000000000000000000000010100 + lwait_after_plol0=32'b00000000000000000000000000000100 + lwait_b4_rrst=32'b00000000000000101100000000000000 + lrrst_wait_width=32'b00000000000000000000000000010100 + lwait_after_rrst=32'b00000000000011000011010100000000 + lwait_b4_rrst_s=32'b00000000000000000000000111001100 + lrlol_cnt_width=32'b00000000000000000000000000010011 + lwait_after_lols=32'b00000000000000001100010000000000 + lwait_after_lols_s=32'b00000000000000000000000010010110 + llols_cnt_width=32'b00000000000000000000000000010010 + lrdb_max=32'b00000000000000000000000000001111 + ltxr_wait_width=32'b00000000000000000000000000001100 + lrxr_wait_width=32'b00000000000000000000000000001100 + Generated name = serdes_sync_1rsl_core_Z2_layer1 +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":326:33:326:40|Object rrst_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":327:33:327:43|Removing wire rrst_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":328:33:328:41|Object rrst_wait is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":341:33:341:39|Object rxp_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":342:33:342:39|Object rxp_rst is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":343:33:343:42|Removing wire rxp_cnt_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":346:33:346:42|Object rlolsz_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":347:33:347:45|Removing wire rlolsz_cnt_tc, as there is no assignment to it. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":350:33:350:43|Removing wire rxp_cnt2_tc, as there is no assignment to it. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":351:33:351:47|Object data_loop_b_cnt is declared but not assigned. Either assign a value or remove the declaration. +@W: CG133 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":352:33:352:43|Object data_loop_b is declared but not assigned. Either assign a value or remove the declaration. +@W: CG360 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":353:33:353:46|Removing wire data_loop_b_tc, as there is no assignment to it. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":806:3:806:8|Pruning unused register genblk2.rxp_cnt2[2:0]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlol_p3. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":567:3:567:8|Pruning unused register genblk2.rlos_p3. Make sure that there are no unused intermediate registers. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":694:3:694:8|Optimizing register bit genblk2.rxs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":461:3:461:8|Optimizing register bit genblk1.txp_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL190 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":422:3:422:8|Optimizing register bit genblk1.txs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":422:3:422:8|Pruning register bit 2 of genblk1.txs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":461:3:461:8|Pruning register bit 2 of genblk1.txp_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL260 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":694:3:694:8|Pruning register bit 2 of genblk2.rxs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":200:33:200:48|Input port bits 3 to 1 of rui_tx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":204:33:204:51|Input port bits 3 to 1 of rui_rx_serdes_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":205:33:205:48|Input port bits 3 to 1 of rui_rx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":206:33:206:48|Input port bits 3 to 1 of rdi_rx_los_low_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL246 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":207:33:207:48|Input port bits 3 to 1 of rdi_rx_cdr_lol_s[3:0] are unused. Assign logic for all port bits or change the input port size. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|Pruning register bits 8 to 7 of genblk5.rdiff_comp_unlock[8:6]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL279 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|Pruning register bits 5 to 3 of genblk5.rdiff_comp_lock[5:2]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rdiff_comp_unlock[6]. Make sure that there are no unused intermediate registers. +@W: CL169 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1739:0:1739:5|Pruning unused register genblk5.rcount_tc[17]. Make sure that there are no unused intermediate registers. +@N: CL201 :"/home/adrian/git/trb5sc/template/project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v":1801:0:1801:5|Trying to extract state machine for register sll_state. +Extracted state machine for register sll_state +State machine has 3 reachable states with original encodings of: + 00 + 01 + 11 diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer1.tlg.db b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/layer1.tlg.db new file mode 100644 index 0000000000000000000000000000000000000000..fb6e8bd3695ce23a0c2b83c66eaafdbdca91a5e1 GIT binary patch literal 32768 zcmeI5TXWmS6~{?R6m=!--0ar1vvF0|Q56aR0bbxbwd^X6VmXR!&2&1N3<{Bugc1Z8 z02C=#vI;(R@|I3#I+NG-Gvp;-Ak)`;h`jVAGi}w8)?`yc+nQbxO_Yh8i$tT5TL?uWkr@0~*<>_C&q7E9#3#k=1hdQR^+;C(5$g^X4jiQdZ43 z<3K&0`UrElw^Zu1{Qx&yT+`b|rQxdhtc8oMz9VLU?a1bmsc&&camkb_RYf$VrK+y|Rw}~tl3@zQc6G^+^pa!< z#=cqW(!(bFhGz@u1tw^eAAX7tI zvWe&n(zel#q;4r?F0Gg3?QNl`RjNWwRkUJxljeBp!`258wFqCfBO9iq!<~w@Cza6F zKGLeDT#+A(rmU&yx~QwNx?_CWjHCjBfbkANG9UMZ#0){)@9 zjzTt%b>M=go~~mb-1o%$u$#CAyZ939#$Sis*f~5me-7OH)N1ngb6?I~n`LIG>2&D- zhyH))|Kkuy=>JDT|3CEqk3#=H^#4QuKlJ}Y|3CEqL;v5u$-vP6_iUc^Me_gEVxO=D z_Wx6n<4E$mx#QX6nd9l>spHAx#PP(p@qds1YwVlYKcoMEm;VnptNuEPV+x}_tLKd5 z7PXpc3TAPWp`UkR-+FR|D6fpVa=PDC&VXk&SWhko1VF!;oPh!SC?Ej(P2>y=;8H*U z^gFj@U;sZ12!MWPwhRp52LS=#?Ekwbcnu2R@FD?F9`&O@zq48f)_)-w`tyBe^9R=d zS}^qYJEv!0{jUZ?f4?(&2G;*dF!Xyh20DB>82UXL0yQHq5&ffohI2nJz=boM&j$oS zzcw&10y6&}`E?{Uk(`}-Y4+mGmFfAZg-I%rowyOdHNGc#b?Lg9@Aq7(U0LRqqbRVw@9T;L4*O8j!^zB9m#MRJ_9!>*lc&1OI?Q5 zAtlii1x3@U!WPWZFT(Pi)`}z9zzdGLEBNsOe%b6IgBlb;n~c= z`W8-O(5nN%PcKPD1=dVKx`3JqI@-&Qq*5BK$aqOrJH>zq87GvQgtT^s0W81u@$V%V zu#C5f;$ICxF>NcRc{cYH#X=DlR(Yj*^(Ik0HUzV!Y}FL5=gv|xVzzptibXSLwAp(< zCt4EzYhiOl3lwb6vN&6dqAA8>Ea!}B)Eh+2egEx|&Dv_RJj=B0QSZp`%oN|{iQwoE zs?Y90S?EETr<>v#>#kfNQtl3+?(E)^g`&`@J7`Y2;awk6&JRtk-E*=~IMjOCV^(rR z?LGhNmdTTL2?a}c>J}9I|o2<_}iYD){GBO*e6JKm%oPl!5e;kQq?W8$z+9Lv%tB zjLi&LJ^&F5JAq0XEtBMeh$JG!7lc3}wdnIUz<7|q1} zp^+d5e1?Jp{wYW(ngJy0UXoZF8VL>$TN#Rb28kN6iE7cn&Wcd<%qFJqVG_;w5LyRo zlVEv{KB;xsBw7hyyoHf?Z)j#g;y(-p@t+eL2*5BKg7;=IzX~Mwn>UGB_!+>>7Qifc zyw7*?NOclO;jF4XGYm{xZy4C|*<_%{OrzCp=m5d z+nt@q7~4_{(ua5eBch_F8Ya$mMy1h)hRTvuZM8i7bWwtNmTFbmx8J9Wkk1W4-esYx zOVFk7NjG5#q&hy()4Y-^!vfONyq*n&#OF5|KY;vlNI-hK<&%N*bjscXv9voFh~huZC6C{|okTw5lJ$r*jVX0^iT(fh^p}z37ju7{{bc6Pa5vmS0wIBrKu91Y5E2LpgakqYK_Xx+KY~o$ zhrfeN+;HV4+P|q7I!{4PCY}`B!G^w%!y6F3kQ$~g!YP#ys(|$J6}Xs_tddJ^cT&wG zoLro|+|DLme+cf#q2<3j;=KG+za;ye>rHi*m(V$gjk@5FSWg}hpOQb3Q literal 0 HcmV?d00001 diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/modulechange.db b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/modulechange.db new file mode 100644 index 0000000000000000000000000000000000000000..ecb6053fdcdd3cc497ed8652ac543d2c0d645c02 GIT binary patch literal 28672 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/serdes_sync_1_m.srm b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/serdes_sync_1_m.srm new file mode 100644 index 0000000000000000000000000000000000000000..75dd84ec5b8f027aba1d82b1a72a73c57adc6f10 GIT binary patch literal 31292 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%0AZH%tWJAq3SL?G*}wR@H&OoPSmT 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/serdes_sync_1_m_srm/1.srm b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/serdes_sync_1_m_srm/1.srm new file mode 100644 index 0000000000000000000000000000000000000000..f71b526f6e34f0ecb1c5a466cb781fbbd55edeab GIT binary patch literal 68313 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

    jfMX(uGJN2pylo3X|3Vm!_mlV^Y+}^8|7N`ZzK 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 K6HiMl3jhG^8^!DZ literal 0 HcmV?d00001 diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/serdes_sync_1_mult.srs b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/serdes_sync_1_mult.srs new file mode 100644 index 0000000000000000000000000000000000000000..4da2ca9f567d66362daa6e0ab8e31a5bc51ed6dd GIT binary patch literal 27459 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 R009600|2xTG0UH90RS4(1mgez literal 0 HcmV?d00001 diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/serdes_sync_1_mult_srs/1.srs b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/serdes_sync_1_mult_srs/1.srs new file mode 100644 index 0000000000000000000000000000000000000000..507713085964fc3f5b4ef8ed4336fa12df92d374 GIT binary patch literal 12821 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 Zyq$i%egFIc@}CUpynH5*;2aRp{{gXy@^k$ z!3cM-fkv|Z^)O?Rbv%6Rdm9n+)eybR^Qwq&+qK}#*n?9d!tK_A8+*qDx2lhL#aejW zDc?o3axJvcplS`oOn4srIawkcWoe!PGVLs`h zJ){51VSB|SG?$S4e<4%IcI<_Ika!8%-T`tkY!}Gx4iFR&e$7zNeHm4yxEsbQ3z*{6 qEtv8<2B%+RZZenHe8q6~{HQP7>iXJ!0ssL2{{sMv0ZB7Y3IG5?>%s8= literal 0 HcmV?d00001 diff --git a/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/serdes_sync_1_mult_srs/skeleton.srs b/gbe/cores/test_sfp/serdes_sync_0/serdes_sync_1/syn_results/synwork/serdes_sync_1_mult_srs/skeleton.srs new file mode 100644 index 0000000000000000000000000000000000000000..9e03e8c9cb80461b6e4648ae381cb0791ae83a04 GIT binary patch literal 6034 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

    R2CO~H@y@}y)R#lq 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 literal 0 HcmV?d00001 diff --git a/gbe/trb5sc_gbe.prj b/gbe/trb5sc_gbe.prj index 7559ba8..c9745c9 100644 --- a/gbe/trb5sc_gbe.prj +++ b/gbe/trb5sc_gbe.prj @@ -63,7 +63,7 @@ add_file -vhdl -lib work "tdc_release/tdc_version.vhd" #Basic Infrastructure add_file -vhdl -lib work "../../dirich/cores/pll_240_100/pll_240_100.vhd" -#add_file -vhdl -lib work "./project/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.vhd" +#add_file -vhdl -lib work "./cores/pll_200_200_125_100/pll_200_125_100/pll_200_125_100.vhd" add_file -vhdl -lib work "../../dirich/code/clock_reset_handler.vhd" add_file -vhdl -lib work "../../trbnet/special/trb_net_reset_handler.vhd" add_file -vhdl -lib work "../../trbnet/special/spi_flash_and_fpga_reload_record.vhd" @@ -142,8 +142,8 @@ add_file -vhdl -lib work "../../trbnet/media_interfaces/med_ecp5_sfp_sync.vhd" #channel 1, SFP add_file -vhdl -lib work "../../trbnet/media_interfaces/ecp5/chan0_0/serdes_sync_0.vhd" add_file -verilog -lib work "../../trbnet/media_interfaces/ecp5/serdes_sync_0_softlogic.v" -add_file -vhdl -lib work "./project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd" -add_file -verilog -lib work "./project/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v" +add_file -vhdl -lib work "./cores/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1.vhd" +add_file -verilog -lib work "./cores/test_sfp/serdes_sync_0/serdes_sync_1/serdes_sync_1_softlogic.v" add_file -vhdl -lib work "../../trbnet/media_interfaces/ecp5/pcs.vhd" add_file -vhdl -lib work "../../trbnet/media_interfaces/ecp5/pcs2.vhd" @@ -216,7 +216,7 @@ add_file -vhdl -lib work "../../trbnet/gbe_trb/protocols/trb_net16_gbe_response_ add_file -vhdl -lib work "../../trbnet/gbe_trb/protocols/trb_net16_gbe_response_constructor_KillPing.vhd" add_file -vhdl -lib work "../../trbnet/gbe_trb/protocols/trb_net16_gbe_response_constructor_Forward.vhd" add_file -vhdl -lib work "../../trbnet/gbe_trb/media/ecp5/sgmii_ecp5_txpllLoLdeleted.vhd" -#add_file -vhdl -lib work "./project/test_gbepcs/sgmii_ecp5/sgmii_ecp5.vhd" #200MHz +#add_file -vhdl -lib work "./cores/test_gbepcs/sgmii_ecp5/sgmii_ecp5.vhd" #200MHz add_file -vhdl -lib work "../../trbnet/gbe_trb/media/serdes_gbe_4ch.vhd" add_file -vhdl -lib work "../../trbnet/gbe_trb/media/ecp5/pcs_sync_reset.vhd" #add_file -vhdl -lib work "../../trbnet/gbe_trb/media/ecp5/test/sgmii_channel_smi_core.vhd" @@ -227,14 +227,14 @@ add_file -verilog -lib work "../../trbnet/gbe_trb/media/reset_controller_cdr.v" add_file -verilog -lib work "../../trbnet/gbe_trb/media/register_interface_hb.v" add_file -verilog -lib work "../../trbnet/gbe_trb/media/rate_resolution.v" add_file -verilog -lib work "../../trbnet/gbe_trb/media/ecp5/sgmii_ecp5_softlogic.v" -#add_file -verilog -lib work "./project/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v"#200MHz +#add_file -verilog -lib work "./cores/test_gbepcs/sgmii_ecp5/sgmii_ecp5_softlogic.v"#200MHz #add_file -verilog -lib work "../../trbnet/gbe_trb/media/ecp5/tsmac35.v" #add_file -vhdl -lib work "/opt/lattice/diamond/3.10_x64/cae_library/synthesis/vhdl/ecp5um.vhd" #GbE ExtRefClk -#add_file -vhdl -lib work "./project/GbePcsExtrefclk/GbePcsExtrefclk.vhd" -#add_file -vhdl -lib work "./project/GbePcsExtrefclk/extref/extref.vhd" -#add_file -vhdl -lib work "./project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.vhd" +#add_file -vhdl -lib work "./cores/GbePcsExtrefclk/GbePcsExtrefclk.vhd" +#add_file -vhdl -lib work "./cores/GbePcsExtrefclk/extref/extref.vhd" +#add_file -vhdl -lib work "./cores/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.vhd" #END GbE ExtRefClk add_file -vhdl -lib work "../../trbnet/gbe_trb/ipcores/ecp5/fifo_8kx9.vhd" @@ -301,7 +301,7 @@ add_file -vhdl -lib work "../../tdc/base/cores/ecp5/FIFO/FIFO_36x32_OutReg/FIFO_ add_file -vhdl -lib work "../../tdc/base/cores/ecp5/PLL/pll_in125_out33/pll_in125_out33.vhd" #add_file -vhdl -lib work "../../tdc/base/cores/ecp5/PLL/pll_in3125_out50/pll_in3125_out50.vhd" -add_file -vhdl -lib work "./project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.vhd" +add_file -vhdl -lib work "./cores/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.vhd" add_file -vhdl -lib work "./trb5sc_gbe.vhd" #add_file -fpga_constraint "./synplify.fdc" -- 2.43.0

    +
    +#Build: Synplify Pro (R) M-2017.03L-SP1-1, Build 086R, Aug  4 2017
    +#install: /home/soft/lattice/diamond/3.10_x64/synpbase
    +#OS: Linux 
    +#Hostname: lxhadeb07
    +
    +# Fri May 10 09:02:09 2019
    +
    +#Implementation: syn_results
    +
    +Synopsys HDL Compiler, version comp2017q2p1, Build 190R, built Aug  4 2017
    +@N: :  | Running in 64-bit mode 
    +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited.
    +
    +Synopsys VHDL Compiler, version comp2017q2p1, Build 190R, built Aug  4 2017
    +@N: :  | Running in 64-bit mode 
    +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited.
    +
    +Running on host :lxhadeb07
    +@N:CD720 : std.vhd(123) | Setting time resolution to ps
    +@N: : sgmii_ecp5.vhd(30) | Top entity is set to sgmii_ecp5.
    +VHDL syntax check successful!
    +File /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd changed - recompiling
    +
    +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB)
    +
    +
    +Process completed successfully.
    +# Fri May 10 09:02:09 2019
    +
    +###########################################################]
    +Synopsys Verilog Compiler, version comp2017q2p1, Build 190R, built Aug  4 2017
    +@N: :  | Running in 64-bit mode 
    +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited.
    +
    +Running on host :lxhadeb07
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps)
    +@I::"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v" (library work)
    +Verilog syntax check successful!
    +
    +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB)
    +
    +
    +Process completed successfully.
    +# Fri May 10 09:02:10 2019
    +
    +###########################################################]
    +Running on host :lxhadeb07
    +@N:CD720 : std.vhd(123) | Setting time resolution to ps
    +@N: : sgmii_ecp5.vhd(30) | Top entity is set to sgmii_ecp5.
    +File /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd changed - recompiling
    +File /home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd changed - recompiling
    +VHDL syntax check successful!
    +File /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5.vhd changed - recompiling
    +@N:CD630 : sgmii_ecp5.vhd(30) | Synthesizing work.sgmii_ecp5.v1.
    +Post processing for work.sgmii_ecp5.v1
    +
    +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 74MB peak: 76MB)
    +
    +
    +Process completed successfully.
    +# Fri May 10 09:02:10 2019
    +
    +###########################################################]
    +Running on host :lxhadeb07
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps)
    +@I::"/home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/sgmii_ecp5_softlogic.v" (library work)
    +Verilog syntax check successful!
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +@N:CG364 : sgmii_ecp5_softlogic.v(1968) | Synthesizing module sync in library work.
    +
    +	PDATA_RST_VAL=32'b00000000000000000000000000000000
    +   Generated name = sync_0s
    +@N:CG364 : sgmii_ecp5_softlogic.v(1051) | Synthesizing module sgmii_ecp5sll_core in library work.
    +
    +	PPROTOCOL=24'b010001110100001001000101
    +	PLOL_SETTING=32'b00000000000000000000000000000000
    +	PDYN_RATE_CTRL=64'b0100010001001001010100110100000101000010010011000100010101000100
    +	PPCIE_MAX_RATE=24'b001100100010111000110101
    +	PDIFF_VAL_LOCK=32'b00000000000000000000000000100111
    +	PDIFF_VAL_UNLOCK=32'b00000000000000000000000001001110
    +	PPCLK_TC=32'b00000000000000100000000000000000
    +	PDIFF_DIV11_VAL_LOCK=32'b00000000000000000000000000000000
    +	PDIFF_DIV11_VAL_UNLOCK=32'b00000000000000000000000000000000
    +	PPCLK_DIV11_TC=32'b00000000000000000000000000000000
    +	LPLL_LOSS_ST=2'b00
    +	LPLL_PRELOSS_ST=2'b01
    +	LPLL_PRELOCK_ST=2'b10
    +	LPLL_LOCK_ST=2'b11
    +	LRCLK_TC=16'b1111111111111111
    +	LRCLK_TC_PUL_WIDTH=16'b0000000000110010
    +	LHB_WAIT_CNT=8'b11111111
    +	LPCLK_TC_0=32'b00000000000000001000000000000000
    +	LPCLK_TC_1=32'b00000000000000010000000000000000
    +	LPCLK_TC_2=32'b00000000000000100000000000000000
    +	LPCLK_TC_3=32'b00000000000000101000000000000000
    +	LPCLK_TC_4=32'b00000000000000010000000000000000
    +	LPDIFF_LOCK_00=32'b00000000000000000000000000001001
    +	LPDIFF_LOCK_10=32'b00000000000000000000000000010011
    +	LPDIFF_LOCK_20=32'b00000000000000000000000000100111
    +	LPDIFF_LOCK_30=32'b00000000000000000000000000110001
    +	LPDIFF_LOCK_40=32'b00000000000000000000000000010011
    +	LPDIFF_LOCK_01=32'b00000000000000000000000000001001
    +	LPDIFF_LOCK_11=32'b00000000000000000000000000010011
    +	LPDIFF_LOCK_21=32'b00000000000000000000000000100111
    +	LPDIFF_LOCK_31=32'b00000000000000000000000000110001
    +	LPDIFF_LOCK_41=32'b00000000000000000000000000010011
    +	LPDIFF_LOCK_02=32'b00000000000000000000000000110001
    +	LPDIFF_LOCK_12=32'b00000000000000000000000001100010
    +	LPDIFF_LOCK_22=32'b00000000000000000000000011000100
    +	LPDIFF_LOCK_32=32'b00000000000000000000000011110101
    +	LPDIFF_LOCK_42=32'b00000000000000000000000001100010
    +	LPDIFF_LOCK_03=32'b00000000000000000000000010000011
    +	LPDIFF_LOCK_13=32'b00000000000000000000000100000110
    +	LPDIFF_LOCK_23=32'b00000000000000000000001000001100
    +	LPDIFF_LOCK_33=32'b00000000000000000000001010001111
    +	LPDIFF_LOCK_43=32'b00000000000000000000000100000110
    +	LPDIFF_UNLOCK_00=32'b00000000000000000000000000010011
    +	LPDIFF_UNLOCK_10=32'b00000000000000000000000000100111
    +	LPDIFF_UNLOCK_20=32'b00000000000000000000000001001110
    +	LPDIFF_UNLOCK_30=32'b00000000000000000000000001100010
    +	LPDIFF_UNLOCK_40=32'b00000000000000000000000000100111
    +	LPDIFF_UNLOCK_01=32'b00000000000000000000000001000001
    +	LPDIFF_UNLOCK_11=32'b00000000000000000000000010000011
    +	LPDIFF_UNLOCK_21=32'b00000000000000000000000100000110
    +	LPDIFF_UNLOCK_31=32'b00000000000000000000000101000111
    +	LPDIFF_UNLOCK_41=32'b00000000000000000000000010000011
    +	LPDIFF_UNLOCK_02=32'b00000000000000000000000001001000
    +	LPDIFF_UNLOCK_12=32'b00000000000000000000000010010000
    +	LPDIFF_UNLOCK_22=32'b00000000000000000000000100100000
    +	LPDIFF_UNLOCK_32=32'b00000000000000000000000101101000
    +	LPDIFF_UNLOCK_42=32'b00000000000000000000000010010000
    +	LPDIFF_UNLOCK_03=32'b00000000000000000000000011000100
    +	LPDIFF_UNLOCK_13=32'b00000000000000000000000110001001
    +	LPDIFF_UNLOCK_23=32'b00000000000000000000001100010010
    +	LPDIFF_UNLOCK_33=32'b00000000000000000000001111010111
    +	LPDIFF_UNLOCK_43=32'b00000000000000000000000110001001
    +   Generated name = sgmii_ecp5sll_core_Z1_layer1
    +@N:CG179 : sgmii_ecp5_softlogic.v(1287) | Removing redundant assignment.
    +@N:CG179 : sgmii_ecp5_softlogic.v(1293) | Removing redundant assignment.
    +@W:CL169 : sgmii_ecp5_softlogic.v(1350) | Pruning unused register rcpri_mod_ch_st. Make sure that there are no unused intermediate registers.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 0 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 4 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 5 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 7 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 8 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 9 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 10 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 11 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 12 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 13 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 14 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 15 of genblk5.rdiff_comp_unlock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 3 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 4 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 6 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 7 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 8 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 9 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 10 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 11 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 12 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 13 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 14 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 15 of genblk5.rdiff_comp_lock[15:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 0 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 1 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 2 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 3 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 4 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 5 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 6 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 7 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 8 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 9 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 10 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 11 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 12 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 13 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 14 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 15 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 16 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 18 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 19 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 20 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +@W:CL208 : sgmii_ecp5_softlogic.v(1739) | All reachable assignments to bit 21 of genblk5.rcount_tc[21:0] assign 0, register removed by optimization.
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +@N:CG364 : sgmii_ecp5_softlogic.v(92) | Synthesizing module sgmii_ecp5rsl_core in library work.
    +
    +	pnum_channels=32'b00000000000000000000000000000001
    +	pprotocol=24'b010001110100001001000101
    +	pserdes_mode=72'b010100100101100000100000010000010100111001000100001000000101010001011000
    +	pport_tx_rdy=56'b01000101010011100100000101000010010011000100010101000100
    +	pwait_tx_rdy=32'b00000000000000000000101110111000
    +	pport_rx_rdy=56'b01000101010011100100000101000010010011000100010101000100
    +	pwait_rx_rdy=32'b00000000000000000000101110111000
    +	wa_num_cycles=32'b00000000000000000000010000000000
    +	dac_num_cycles=32'b00000000000000000000000000000011
    +	lreset_pwidth=32'b00000000000000000000000000000011
    +	lwait_b4_trst=32'b00000000000010111110101111000010
    +	lwait_b4_trst_s=32'b00000000000000000000001100001101
    +	lplol_cnt_width=32'b00000000000000000000000000010100
    +	lwait_after_plol0=32'b00000000000000000000000000000100
    +	lwait_b4_rrst=32'b00000000000000101100000000000000
    +	lrrst_wait_width=32'b00000000000000000000000000010100
    +	lwait_after_rrst=32'b00000000000011000011010100000000
    +	lwait_b4_rrst_s=32'b00000000000000000000000111001100
    +	lrlol_cnt_width=32'b00000000000000000000000000010011
    +	lwait_after_lols=32'b00000000000000001100010000000000
    +	lwait_after_lols_s=32'b00000000000000000000000010010110
    +	llols_cnt_width=32'b00000000000000000000000000010010
    +	lrdb_max=32'b00000000000000000000000000001111
    +	ltxr_wait_width=32'b00000000000000000000000000001100
    +	lrxr_wait_width=32'b00000000000000000000000000001100
    +   Generated name = sgmii_ecp5rsl_core_Z2_layer1
    +@W:CG133 : sgmii_ecp5_softlogic.v(326) | Object rrst_cnt is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG360 : sgmii_ecp5_softlogic.v(327) | Removing wire rrst_cnt_tc, as there is no assignment to it.
    +@W:CG133 : sgmii_ecp5_softlogic.v(328) | Object rrst_wait is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG133 : sgmii_ecp5_softlogic.v(341) | Object rxp_cnt is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG133 : sgmii_ecp5_softlogic.v(342) | Object rxp_rst is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG360 : sgmii_ecp5_softlogic.v(343) | Removing wire rxp_cnt_tc, as there is no assignment to it.
    +@W:CG133 : sgmii_ecp5_softlogic.v(346) | Object rlolsz_cnt is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG360 : sgmii_ecp5_softlogic.v(347) | Removing wire rlolsz_cnt_tc, as there is no assignment to it.
    +@W:CG360 : sgmii_ecp5_softlogic.v(350) | Removing wire rxp_cnt2_tc, as there is no assignment to it.
    +@W:CG133 : sgmii_ecp5_softlogic.v(351) | Object data_loop_b_cnt is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG133 : sgmii_ecp5_softlogic.v(352) | Object data_loop_b is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG360 : sgmii_ecp5_softlogic.v(353) | Removing wire data_loop_b_tc, as there is no assignment to it.
    +@W:CL169 : sgmii_ecp5_softlogic.v(806) | Pruning unused register genblk2.rxp_cnt2[2:0]. Make sure that there are no unused intermediate registers.
    +@W:CL169 : sgmii_ecp5_softlogic.v(567) | Pruning unused register genblk2.rlol_p3. Make sure that there are no unused intermediate registers.
    +@W:CL169 : sgmii_ecp5_softlogic.v(567) | Pruning unused register genblk2.rlos_p3. Make sure that there are no unused intermediate registers.
    +@W:CL190 : sgmii_ecp5_softlogic.v(694) | Optimizing register bit genblk2.rxs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance.
    +@W:CL190 : sgmii_ecp5_softlogic.v(461) | Optimizing register bit genblk1.txp_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance.
    +@W:CL190 : sgmii_ecp5_softlogic.v(422) | Optimizing register bit genblk1.txs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance.
    +@W:CL260 : sgmii_ecp5_softlogic.v(422) | Pruning register bit 2 of genblk1.txs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level.
    +@W:CL260 : sgmii_ecp5_softlogic.v(461) | Pruning register bit 2 of genblk1.txp_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level.
    +@W:CL260 : sgmii_ecp5_softlogic.v(694) | Pruning register bit 2 of genblk2.rxs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level.
    +@W:CL246 : sgmii_ecp5_softlogic.v(200) | Input port bits 3 to 1 of rui_tx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size.
    +@W:CL246 : sgmii_ecp5_softlogic.v(204) | Input port bits 3 to 1 of rui_rx_serdes_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size.
    +@W:CL246 : sgmii_ecp5_softlogic.v(205) | Input port bits 3 to 1 of rui_rx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size.
    +@W:CL246 : sgmii_ecp5_softlogic.v(206) | Input port bits 3 to 1 of rdi_rx_los_low_s[3:0] are unused. Assign logic for all port bits or change the input port size.
    +@W:CL246 : sgmii_ecp5_softlogic.v(207) | Input port bits 3 to 1 of rdi_rx_cdr_lol_s[3:0] are unused. Assign logic for all port bits or change the input port size.
    +@W:CL279 : sgmii_ecp5_softlogic.v(1739) | Pruning register bits 6 to 4 of genblk5.rdiff_comp_unlock[6:3]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level.
    +@W:CL279 : sgmii_ecp5_softlogic.v(1739) | Pruning register bits 5 to 3 of genblk5.rdiff_comp_lock[5:2]. If this is not the intended behavior, drive the inputs with valid values, or inputs from the top level.
    +@W:CL169 : sgmii_ecp5_softlogic.v(1739) | Pruning unused register genblk5.rdiff_comp_unlock[3]. Make sure that there are no unused intermediate registers.
    +@W:CL169 : sgmii_ecp5_softlogic.v(1739) | Pruning unused register genblk5.rcount_tc[17]. Make sure that there are no unused intermediate registers.
    +@N:CL201 : sgmii_ecp5_softlogic.v(1801) | Trying to extract state machine for register sll_state.
    +Extracted state machine for register sll_state
    +State machine has 4 reachable states with original encodings of:
    +   00
    +   01
    +   10
    +   11
    +
    +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 75MB peak: 81MB)
    +
    +
    +Process completed successfully.
    +# Fri May 10 09:02:10 2019
    +
    +###########################################################]
    +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug  4 2017
    +@N: :  | Running in 64-bit mode 
    +File /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/layer0.srs changed - recompiling
    +File /home/adrian/git/trb5sc/template/project/sgmii/sgmii_ecp5/syn_results/synwork/layer1.srs changed - recompiling
    +
    +=======================================================================================
    +For a summary of linker messages for components that did not bind, please see log file:
    +Linked File: sgmii_ecp5_comp.linkerlog
    +=======================================================================================
    +
    +
    +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB)
    +
    +Process took 0h:00m:01s realtime, 0h:00m:01s cputime
    +
    +Process completed successfully.
    +# Fri May 10 09:02:11 2019
    +
    +###########################################################]
    +@END
    +
    +At c_hdl Exit (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 3MB peak: 4MB)
    +
    +Process took 0h:00m:01s realtime, 0h:00m:01s cputime
    +
    +Process completed successfully.
    +# Fri May 10 09:02:11 2019
    +
    +###########################################################]
    +
    +
    +
    +#Build: Synplify Pro (R) M-2017.03L-SP1-1, Build 086R, Aug  4 2017
    +#install: /home/soft/lattice/diamond/3.10_x64/synpbase
    +#OS: Linux 
    +#Hostname: lxhadeb07
    +
    +# Fri May 10 15:07:25 2019
    +
    +#Implementation: syn_results
    +
    +Synopsys HDL Compiler, version comp2017q2p1, Build 190R, built Aug  4 2017
    +@N: :  | Running in 64-bit mode 
    +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited.
    +
    +Synopsys VHDL Compiler, version comp2017q2p1, Build 190R, built Aug  4 2017
    +@N: :  | Running in 64-bit mode 
    +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited.
    +
    +Running on host :lxhadeb07
    +@N:CD720 : std.vhd(123) | Setting time resolution to ps
    +@N: : pll_in125_out125_out33.vhd(12) | Top entity is set to pll_in125_out125_out33.
    +File /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.vhd changed - recompiling
    +File /home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd changed - recompiling
    +VHDL syntax check successful!
    +File /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/pll_in125_out125_out33.vhd changed - recompiling
    +@N:CD630 : pll_in125_out125_out33.vhd(12) | Synthesizing work.pll_in125_out125_out33.structure.
    +@N:CD630 : ecp5um.vhd(2083) | Synthesizing ecp5um.ehxplll.syn_black_box.
    +Post processing for ecp5um.ehxplll.syn_black_box
    +@N:CD630 : ecp5um.vhd(832) | Synthesizing ecp5um.vlo.syn_black_box.
    +Post processing for ecp5um.vlo.syn_black_box
    +@N:CD630 : ecp5um.vhd(825) | Synthesizing ecp5um.vhi.syn_black_box.
    +Post processing for ecp5um.vhi.syn_black_box
    +Post processing for work.pll_in125_out125_out33.structure
    +@W:CL168 : pll_in125_out125_out33.vhd(46) | Removing instance scuba_vhi_inst because it does not drive other instances. To preserve this instance, use the syn_noprune synthesis directive.
    +
    +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB)
    +
    +Process took 0h:00m:01s realtime, 0h:00m:01s cputime
    +
    +Process completed successfully.
    +# Fri May 10 15:07:25 2019
    +
    +###########################################################]
    +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug  4 2017
    +@N: :  | Running in 64-bit mode 
    +File /home/adrian/git/trb5sc/template/project/sgmii/pll_in125_out125_out33/syn_results/synwork/layer0.srs changed - recompiling
    +
    +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 67MB peak: 68MB)
    +
    +Process took 0h:00m:01s realtime, 0h:00m:01s cputime
    +
    +Process completed successfully.
    +# Fri May 10 15:07:26 2019
    +
    +###########################################################]
    +@END
    +
    +At c_hdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 3MB peak: 4MB)
    +
    +Process took 0h:00m:01s realtime, 0h:00m:01s cputime
    +
    +Process completed successfully.
    +# Fri May 10 15:07:26 2019
    +
    +###########################################################]
    +
    +
    +
    +#Build: Synplify Pro (R) M-2017.03L-SP1-1, Build 086R, Aug  4 2017
    +#install: /home/soft/lattice/diamond/3.10_x64/synpbase
    +#OS: Linux 
    +#Hostname: lxhadeb07
    +
    +# Tue Apr 30 12:09:44 2019
    +
    +#Implementation: syn_results
    +
    +Synopsys HDL Compiler, version comp2017q2p1, Build 190R, built Aug  4 2017
    +@N: :  | Running in 64-bit mode 
    +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited.
    +
    +Synopsys VHDL Compiler, version comp2017q2p1, Build 190R, built Aug  4 2017
    +@N: :  | Running in 64-bit mode 
    +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited.
    +
    +Running on host :lxhadeb07
    +@N:CD720 : std.vhd(123) | Setting time resolution to ps
    +@N: : PCSD.vhd(24) | Top entity is set to PCSD.
    +VHDL syntax check successful!
    +File /home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd changed - recompiling
    +
    +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 70MB peak: 72MB)
    +
    +
    +Process completed successfully.
    +# Tue Apr 30 12:09:44 2019
    +
    +###########################################################]
    +Synopsys Verilog Compiler, version comp2017q2p1, Build 190R, built Aug  4 2017
    +@N: :  | Running in 64-bit mode 
    +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited.
    +
    +Running on host :lxhadeb07
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps)
    +@I::"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v" (library work)
    +Verilog syntax check successful!
    +
    +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 71MB peak: 72MB)
    +
    +
    +Process completed successfully.
    +# Tue Apr 30 12:09:45 2019
    +
    +###########################################################]
    +Running on host :lxhadeb07
    +@N:CD720 : std.vhd(123) | Setting time resolution to ps
    +@N: : PCSD.vhd(24) | Top entity is set to PCSD.
    +File /home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd changed - recompiling
    +File /home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.vhd changed - recompiling
    +VHDL syntax check successful!
    +File /home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD.vhd changed - recompiling
    +@N:CD630 : PCSD.vhd(24) | Synthesizing work.pcsd.v1.
    +Post processing for work.pcsd.v1
    +
    +At c_vhdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 74MB peak: 76MB)
    +
    +
    +Process completed successfully.
    +# Tue Apr 30 12:09:45 2019
    +
    +###########################################################]
    +Running on host :lxhadeb07
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v" (library work)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v" (library work)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/hypermods.v" (library __hyper__lib__)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/umr_capim.v" (library snps_haps)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_objects.v" (library snps_haps)
    +@I::"/home/soft/lattice/diamond/3.10_x64/synpbase/lib/vlog/scemi_pipes.svh" (library snps_haps)
    +@I::"/home/adrian/git/trb5sc/template/project/sgmii/PCSD/PCSD_softlogic.v" (library work)
    +Verilog syntax check successful!
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +Could not match passed parameter, trying a case insensitive search ...
    +@N:CG364 : PCSD_softlogic.v(92) | Synthesizing module PCSDrsl_core in library work.
    +
    +	pnum_channels=32'b00000000000000000000000000000001
    +	pprotocol=24'b010001110100001001000101
    +	pserdes_mode=72'b010100100101100000100000010000010100111001000100001000000101010001011000
    +	pport_tx_rdy=64'b0100010001001001010100110100000101000010010011000100010101000100
    +	pwait_tx_rdy=32'b00000000000000000000101110111000
    +	pport_rx_rdy=64'b0100010001001001010100110100000101000010010011000100010101000100
    +	pwait_rx_rdy=32'b00000000000000000000101110111000
    +	wa_num_cycles=32'b00000000000000000000010000000000
    +	dac_num_cycles=32'b00000000000000000000000000000011
    +	lreset_pwidth=32'b00000000000000000000000000000011
    +	lwait_b4_trst=32'b00000000000010111110101111000010
    +	lwait_b4_trst_s=32'b00000000000000000000001100001101
    +	lplol_cnt_width=32'b00000000000000000000000000010100
    +	lwait_after_plol0=32'b00000000000000000000000000000100
    +	lwait_b4_rrst=32'b00000000000000101100000000000000
    +	lrrst_wait_width=32'b00000000000000000000000000010100
    +	lwait_after_rrst=32'b00000000000011000011010100000000
    +	lwait_b4_rrst_s=32'b00000000000000000000000111001100
    +	lrlol_cnt_width=32'b00000000000000000000000000010011
    +	lwait_after_lols=32'b00000000000000001100010000000000
    +	lwait_after_lols_s=32'b00000000000000000000000010010110
    +	llols_cnt_width=32'b00000000000000000000000000010010
    +	lrdb_max=32'b00000000000000000000000000001111
    +	ltxr_wait_width=32'b00000000000000000000000000001100
    +	lrxr_wait_width=32'b00000000000000000000000000001100
    +   Generated name = PCSDrsl_core_Z1_layer1
    +@W:CG360 : PCSD_softlogic.v(274) | Removing wire dual_or_serd_rst, as there is no assignment to it.
    +@W:CG360 : PCSD_softlogic.v(275) | Removing wire tx_any_pcs_rst, as there is no assignment to it.
    +@W:CG360 : PCSD_softlogic.v(276) | Removing wire tx_any_rst, as there is no assignment to it.
    +@W:CG133 : PCSD_softlogic.v(277) | Object txsr_appd is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG133 : PCSD_softlogic.v(278) | Object txdpr_appd is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG133 : PCSD_softlogic.v(279) | Object txpr_appd is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG133 : PCSD_softlogic.v(280) | Object txr_wt_en is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG133 : PCSD_softlogic.v(281) | Object txr_wt_cnt is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG360 : PCSD_softlogic.v(282) | Removing wire txr_wt_tc, as there is no assignment to it.
    +@W:CG133 : PCSD_softlogic.v(283) | Object ruo_tx_rdyr is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG133 : PCSD_softlogic.v(326) | Object rrst_cnt is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG360 : PCSD_softlogic.v(327) | Removing wire rrst_cnt_tc, as there is no assignment to it.
    +@W:CG133 : PCSD_softlogic.v(328) | Object rrst_wait is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG133 : PCSD_softlogic.v(341) | Object rxp_cnt is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG133 : PCSD_softlogic.v(342) | Object rxp_rst is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG360 : PCSD_softlogic.v(343) | Removing wire rxp_cnt_tc, as there is no assignment to it.
    +@W:CG133 : PCSD_softlogic.v(346) | Object rlolsz_cnt is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG360 : PCSD_softlogic.v(347) | Removing wire rlolsz_cnt_tc, as there is no assignment to it.
    +@W:CG360 : PCSD_softlogic.v(350) | Removing wire rxp_cnt2_tc, as there is no assignment to it.
    +@W:CG133 : PCSD_softlogic.v(351) | Object data_loop_b_cnt is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG133 : PCSD_softlogic.v(352) | Object data_loop_b is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG360 : PCSD_softlogic.v(353) | Removing wire data_loop_b_tc, as there is no assignment to it.
    +@W:CG133 : PCSD_softlogic.v(356) | Object rxsr_appd is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG133 : PCSD_softlogic.v(357) | Object rxpr_appd is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG133 : PCSD_softlogic.v(358) | Object rxsdr_appd is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG133 : PCSD_softlogic.v(359) | Object rxdpr_appd is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG360 : PCSD_softlogic.v(360) | Removing wire rxsdr_or_sr_appd, as there is no assignment to it.
    +@W:CG360 : PCSD_softlogic.v(361) | Removing wire dual_or_rserd_rst, as there is no assignment to it.
    +@W:CG360 : PCSD_softlogic.v(362) | Removing wire rx_any_pcs_rst, as there is no assignment to it.
    +@W:CG360 : PCSD_softlogic.v(363) | Removing wire rx_any_rst, as there is no assignment to it.
    +@W:CG133 : PCSD_softlogic.v(364) | Object rxr_wt_en is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG133 : PCSD_softlogic.v(365) | Object rxr_wt_cnt is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG360 : PCSD_softlogic.v(366) | Removing wire rxr_wt_tc, as there is no assignment to it.
    +@W:CG133 : PCSD_softlogic.v(367) | Object ruo_rx_rdyr is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG133 : PCSD_softlogic.v(507) | Object m is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CG133 : PCSD_softlogic.v(880) | Object l is declared but not assigned. Either assign a value or remove the declaration.
    +@W:CL169 : PCSD_softlogic.v(806) | Pruning unused register genblk2.rxp_cnt2[2:0]. Make sure that there are no unused intermediate registers.
    +@W:CL169 : PCSD_softlogic.v(567) | Pruning unused register genblk2.rlol_p3. Make sure that there are no unused intermediate registers.
    +@W:CL169 : PCSD_softlogic.v(567) | Pruning unused register genblk2.rlos_p3. Make sure that there are no unused intermediate registers.
    +@W:CL190 : PCSD_softlogic.v(694) | Optimizing register bit genblk2.rxs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance.
    +@W:CL190 : PCSD_softlogic.v(461) | Optimizing register bit genblk1.txp_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance.
    +@W:CL190 : PCSD_softlogic.v(422) | Optimizing register bit genblk1.txs_cnt[2] to a constant 0. To keep the instance, apply constraint syn_preserve=1 on the instance.
    +@W:CL260 : PCSD_softlogic.v(422) | Pruning register bit 2 of genblk1.txs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level.
    +@W:CL260 : PCSD_softlogic.v(461) | Pruning register bit 2 of genblk1.txp_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level.
    +@W:CL260 : PCSD_softlogic.v(694) | Pruning register bit 2 of genblk2.rxs_cnt[2:0]. If this is not the intended behavior, drive the input with valid values, or an input from the top level.
    +@W:CL246 : PCSD_softlogic.v(200) | Input port bits 3 to 1 of rui_tx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size.
    +@W:CL246 : PCSD_softlogic.v(204) | Input port bits 3 to 1 of rui_rx_serdes_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size.
    +@W:CL246 : PCSD_softlogic.v(205) | Input port bits 3 to 1 of rui_rx_pcs_rst_c[3:0] are unused. Assign logic for all port bits or change the input port size.
    +@W:CL246 : PCSD_softlogic.v(206) | Input port bits 3 to 1 of rdi_rx_los_low_s[3:0] are unused. Assign logic for all port bits or change the input port size.
    +@W:CL246 : PCSD_softlogic.v(207) | Input port bits 3 to 1 of rdi_rx_cdr_lol_s[3:0] are unused. Assign logic for all port bits or change the input port size.
    +
    +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 73MB peak: 75MB)
    +
    +
    +Process completed successfully.
    +# Tue Apr 30 12:09:45 2019
    +
    +###########################################################]
    +Synopsys Netlist Linker, version comp2017q2p1, Build 190R, built Aug  4 2017
    +@N: :  | Running in 64-bit mode 
    +File /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synwork/layer0.srs changed - recompiling
    +File /home/adrian/git/trb5sc/template/project/sgmii/PCSD/syn_results/synwork/layer1.srs changed - recompiling
    +
    +=======================================================================================
    +For a summary of linker messages for components that did not bind, please see log file:
    +Linked File: PCSD_comp.linkerlog
    +=======================================================================================
    +
    +
    +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 68MB peak: 69MB)
    +
    +Process took 0h:00m:01s realtime, 0h:00m:01s cputime
    +
    +Process completed successfully.
    +# Tue Apr 30 12:09:46 2019
    +
    +###########################################################]
    +@END
    +
    +At c_hdl Exit (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 3MB peak: 4MB)
    +
    +Process took 0h:00m:01s realtime, 0h:00m:01s cputime
    +
    +Process completed successfully.
    +# Tue Apr 30 12:09:46 2019
    +
    +###########################################################]
    +
    +

  • i896MGigb_}3qgQyWpY<+4ZpW7NNu{T?J1Vs`m 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 literal 0 HcmV?d00001 diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.ngo b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.ngo new file mode 100644 index 0000000000000000000000000000000000000000..1f36cd847909726cbe0915736e1d4164cfb0caa1 GIT binary patch literal 203442 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"0b1",D_IB_PWDNB=>"0b1", + D_XGE_MODE=>"0b0",D_LOW_MARK=>"0d4",D_HIGH_MARK=>"0d12",D_BUS8BIT_SEL=>"0b0", + D_CDR_LOL_SET=>"0b00",D_TXPLL_PWDNB=>"0b1",D_BITCLK_LOCAL_EN=>"0b1", + D_BITCLK_ND_EN=>"0b0",D_BITCLK_FROM_ND_EN=>"0b0",D_SYNC_LOCAL_EN=>"0b1", + D_SYNC_ND_EN=>"0b0",CH1_UC_MODE=>"0b0",CH1_PCIE_MODE=>"0b0",CH1_RIO_MODE=>"0b0", + CH1_WA_MODE=>"0b0",CH1_INVERT_RX=>"0b0",CH1_INVERT_TX=>"0b0",CH1_PRBS_SELECTION=>"0b0", + CH1_GE_AN_ENABLE=>"0b0",CH1_PRBS_LOCK=>"0b0",CH1_PRBS_ENABLE=>"0b0", + CH1_ENABLE_CG_ALIGN=>"0b1",CH1_TX_GEAR_MODE=>"0b0",CH1_RX_GEAR_MODE=>"0b0", + CH1_PCS_DET_TIME_SEL=>"0b00",CH1_PCIE_EI_EN=>"0b0",CH1_TX_GEAR_BYPASS=>"0b0", + CH1_ENC_BYPASS=>"0b0",CH1_SB_BYPASS=>"0b0",CH1_RX_SB_BYPASS=>"0b0", + CH1_WA_BYPASS=>"0b0",CH1_DEC_BYPASS=>"0b0",CH1_CTC_BYPASS=>"0b0", + CH1_RX_GEAR_BYPASS=>"0b0",CH1_LSM_DISABLE=>"0b0",CH1_MATCH_2_ENABLE=>"0b1", + CH1_MATCH_4_ENABLE=>"0b0",CH1_MIN_IPG_CNT=>"0b11",CH1_CC_MATCH_1=>"0x000", + CH1_CC_MATCH_2=>"0x000",CH1_CC_MATCH_3=>"0x1BC",CH1_CC_MATCH_4=>"0x050", + CH1_UDF_COMMA_MASK=>"0x3ff",CH1_UDF_COMMA_A=>"0x283",CH1_UDF_COMMA_B=>"0x17C", + CH1_RX_DCO_CK_DIV=>"0b010",CH1_RCV_DCC_EN=>"0b0",CH1_TPWDNB=>"0b1", + CH1_RATE_MODE_TX=>"0b0",CH1_RTERM_TX=>"0d19",CH1_TX_CM_SEL=>"0b00", + CH1_TDRV_PRE_EN=>"0b0",CH1_TDRV_SLICE0_SEL=>"0b01",CH1_TDRV_SLICE1_SEL=>"0b00", + CH1_TDRV_SLICE2_SEL=>"0b01",CH1_TDRV_SLICE3_SEL=>"0b01",CH1_TDRV_SLICE4_SEL=>"0b01", + CH1_TDRV_SLICE5_SEL=>"0b01",CH1_TDRV_SLICE0_CUR=>"0b101",CH1_TDRV_SLICE1_CUR=>"0b000", + CH1_TDRV_SLICE2_CUR=>"0b11",CH1_TDRV_SLICE3_CUR=>"0b11",CH1_TDRV_SLICE4_CUR=>"0b11", + CH1_TDRV_SLICE5_CUR=>"0b00",CH1_TDRV_DAT_SEL=>"0b00",CH1_TX_DIV11_SEL=>"0b0", + CH1_RPWDNB=>"0b1",CH1_RATE_MODE_RX=>"0b0",CH1_RX_DIV11_SEL=>"0b0", + CH1_SEL_SD_RX_CLK=>"0b0",CH1_FF_RX_H_CLK_EN=>"0b0",CH1_FF_RX_F_CLK_DIS=>"0b0", + CH1_FF_TX_H_CLK_EN=>"0b0",CH1_FF_TX_F_CLK_DIS=>"0b0",CH1_TDRV_POST_EN=>"0b0", + CH1_TX_POST_SIGN=>"0b0",CH1_TX_PRE_SIGN=>"0b0",CH1_REQ_LVL_SET=>"0b00", + CH1_REQ_EN=>"0b1",CH1_RTERM_RX=>"0d22",CH1_RXTERM_CM=>"0b11",CH1_PDEN_SEL=>"0b1", + CH1_RXIN_CM=>"0b11",CH1_LEQ_OFFSET_SEL=>"0b0",CH1_LEQ_OFFSET_TRIM=>"0b000", + CH1_RLOS_SEL=>"0b1",CH1_RX_LOS_LVL=>"0b010",CH1_RX_LOS_CEQ=>"0b11", + CH1_RX_LOS_HYST_EN=>"0b0",CH1_RX_LOS_EN=>"0b1",CH1_LDR_RX2CORE_SEL=>"0b0", + CH1_LDR_CORE2TX_SEL=>"0b0",D_TX_MAX_RATE=>"1.25",CH1_CDR_MAX_RATE=>"1.25", + CH1_TXAMPLITUDE=>"0d1100",CH1_TXDEPRE=>"DISABLED",CH1_TXDEPOST=>"DISABLED", + CH1_PROTOCOL=>"GBE",D_ISETLOS=>"0d0",D_SETIRPOLY_AUX=>"0b00",D_SETICONST_AUX=>"0b00", + D_SETIRPOLY_CH=>"0b00",D_SETICONST_CH=>"0b00",D_REQ_ISET=>"0b000", + D_PD_ISET=>"0b00",D_DCO_CALIB_TIME_SEL=>"0b00",CH1_CDR_CNT4SEL=>"0b00", + CH1_CDR_CNT8SEL=>"0b00",CH1_DCOATDCFG=>"0b00",CH1_DCOATDDLY=>"0b00", + CH1_DCOBYPSATD=>"0b1",CH1_DCOCALDIV=>"0b001",CH1_DCOCTLGI=>"0b010", + CH1_DCODISBDAVOID=>"0b0",CH1_DCOFLTDAC=>"0b01",CH1_DCOFTNRG=>"0b110", + CH1_DCOIOSTUNE=>"0b000",CH1_DCOITUNE=>"0b00",CH1_DCOITUNE4LSB=>"0b111", + CH1_DCOIUPDNX2=>"0b1",CH1_DCONUOFLSB=>"0b101",CH1_DCOSCALEI=>"0b00", + CH1_DCOSTARTVAL=>"0b000",CH1_DCOSTEP=>"0b00",CH1_BAND_THRESHOLD=>"0d0", + CH1_AUTO_FACQ_EN=>"0b1",CH1_AUTO_CALIB_EN=>"0b1",CH1_CALIB_CK_MODE=>"0b0", + CH1_REG_BAND_OFFSET=>"0d0",CH1_REG_BAND_SEL=>"0d0",CH1_REG_IDAC_SEL=>"0d0", + CH1_REG_IDAC_EN=>"0b0",D_CMUSETISCL4VCO=>"0b000",D_CMUSETI4VCO=>"0b00", + D_CMUSETINITVCT=>"0b00",D_CMUSETZGM=>"0b000",D_CMUSETP2AGM=>"0b000", + D_CMUSETP1GM=>"0b000",D_CMUSETI4CPZ=>"0d3",D_CMUSETI4CPP=>"0d3",D_CMUSETICP4Z=>"0b101", + D_CMUSETICP4P=>"0b01",D_CMUSETBIASI=>"0b00",D_SETPLLRC=>"0d1",CH1_RX_RATE_SEL=>"0d8", + D_REFCK_MODE=>"0b001",D_TX_VCO_CK_DIV=>"0b010",D_PLL_LOL_SET=>"0b00", + D_RG_EN=>"0b0",D_RG_SET=>"0b00") + port map (CH0_HDINP=>n103,CH1_HDINP=>hdinp,CH0_HDINN=>n103,CH1_HDINN=>hdinn, + D_TXBIT_CLKP_FROM_ND=>n44,D_TXBIT_CLKN_FROM_ND=>n44,D_SYNC_ND=>n44,D_TXPLL_LOL_FROM_ND=>n44, + CH0_RX_REFCLK=>n103,CH1_RX_REFCLK=>rxrefclk,CH0_FF_RXI_CLK=>n102,CH1_FF_RXI_CLK=>tx_pclk_c, + CH0_FF_TXI_CLK=>n102,CH1_FF_TXI_CLK=>txi_clk,CH0_FF_EBRD_CLK=>n102,CH1_FF_EBRD_CLK=>tx_pclk_c, + CH0_FF_TX_D_0=>n103,CH1_FF_TX_D_0=>txdata(0),CH0_FF_TX_D_1=>n103,CH1_FF_TX_D_1=>txdata(1), + CH0_FF_TX_D_2=>n103,CH1_FF_TX_D_2=>txdata(2),CH0_FF_TX_D_3=>n103,CH1_FF_TX_D_3=>txdata(3), + CH0_FF_TX_D_4=>n103,CH1_FF_TX_D_4=>txdata(4),CH0_FF_TX_D_5=>n103,CH1_FF_TX_D_5=>txdata(5), + CH0_FF_TX_D_6=>n103,CH1_FF_TX_D_6=>txdata(6),CH0_FF_TX_D_7=>n103,CH1_FF_TX_D_7=>txdata(7), + CH0_FF_TX_D_8=>n103,CH1_FF_TX_D_8=>tx_k(0),CH0_FF_TX_D_9=>n103,CH1_FF_TX_D_9=>n44, + CH0_FF_TX_D_10=>n103,CH1_FF_TX_D_10=>xmit(0),CH0_FF_TX_D_11=>n103,CH1_FF_TX_D_11=>tx_disp_correct(0), + CH0_FF_TX_D_12=>n103,CH1_FF_TX_D_12=>n103,CH0_FF_TX_D_13=>n103,CH1_FF_TX_D_13=>n103, + CH0_FF_TX_D_14=>n103,CH1_FF_TX_D_14=>n103,CH0_FF_TX_D_15=>n103,CH1_FF_TX_D_15=>n103, + CH0_FF_TX_D_16=>n103,CH1_FF_TX_D_16=>n103,CH0_FF_TX_D_17=>n103,CH1_FF_TX_D_17=>n103, + CH0_FF_TX_D_18=>n103,CH1_FF_TX_D_18=>n103,CH0_FF_TX_D_19=>n103,CH1_FF_TX_D_19=>n103, + CH0_FF_TX_D_20=>n103,CH1_FF_TX_D_20=>n103,CH0_FF_TX_D_21=>n103,CH1_FF_TX_D_21=>n44, + CH0_FF_TX_D_22=>n103,CH1_FF_TX_D_22=>n103,CH0_FF_TX_D_23=>n103,CH1_FF_TX_D_23=>n103, + CH0_FFC_EI_EN=>n103,CH1_FFC_EI_EN=>n44,CH0_FFC_PCIE_DET_EN=>n103,CH1_FFC_PCIE_DET_EN=>n44, + CH0_FFC_PCIE_CT=>n103,CH1_FFC_PCIE_CT=>n44,CH0_FFC_SB_INV_RX=>n103,CH1_FFC_SB_INV_RX=>n103, + CH0_FFC_ENABLE_CGALIGN=>n103,CH1_FFC_ENABLE_CGALIGN=>n103,CH0_FFC_SIGNAL_DETECT=>n103, + CH1_FFC_SIGNAL_DETECT=>signal_detect_c,CH0_FFC_FB_LOOPBACK=>n103,CH1_FFC_FB_LOOPBACK=>n44, + CH0_FFC_SB_PFIFO_LP=>n103,CH1_FFC_SB_PFIFO_LP=>n44,CH0_FFC_PFIFO_CLR=>n103, + CH1_FFC_PFIFO_CLR=>n44,CH0_FFC_RATE_MODE_RX=>n103,CH1_FFC_RATE_MODE_RX=>n44, + CH0_FFC_RATE_MODE_TX=>n103,CH1_FFC_RATE_MODE_TX=>n44,CH0_FFC_DIV11_MODE_RX=>n103, + CH1_FFC_DIV11_MODE_RX=>n44,CH0_FFC_DIV11_MODE_TX=>n103,CH1_FFC_DIV11_MODE_TX=>n44, + CH0_FFC_RX_GEAR_MODE=>n103,CH1_FFC_RX_GEAR_MODE=>n44,CH0_FFC_TX_GEAR_MODE=>n103, + CH1_FFC_TX_GEAR_MODE=>n44,CH0_FFC_LDR_CORE2TX_EN=>n103,CH1_FFC_LDR_CORE2TX_EN=>n103, + CH0_FFC_LANE_TX_RST=>n103,CH1_FFC_LANE_TX_RST=>rsl_tx_pcs_rst_c,CH0_FFC_LANE_RX_RST=>n103, + CH1_FFC_LANE_RX_RST=>rsl_rx_pcs_rst_c,CH0_FFC_RRST=>n103,CH1_FFC_RRST=>rsl_rx_serdes_rst_c, + CH0_FFC_TXPWDNB=>n103,CH1_FFC_TXPWDNB=>tx_pwrup_c,CH0_FFC_RXPWDNB=>n103, + CH1_FFC_RXPWDNB=>rx_pwrup_c,CH0_LDR_CORE2TX=>n103,CH1_LDR_CORE2TX=>n103, + D_SCIWDATA0=>sci_wrdata(0),D_SCIWDATA1=>sci_wrdata(1),D_SCIWDATA2=>sci_wrdata(2), + D_SCIWDATA3=>sci_wrdata(3),D_SCIWDATA4=>sci_wrdata(4),D_SCIWDATA5=>sci_wrdata(5), + D_SCIWDATA6=>sci_wrdata(6),D_SCIWDATA7=>sci_wrdata(7),D_SCIADDR0=>sci_addr(0), + D_SCIADDR1=>sci_addr(1),D_SCIADDR2=>sci_addr(2),D_SCIADDR3=>sci_addr(3), + D_SCIADDR4=>sci_addr(4),D_SCIADDR5=>sci_addr(5),D_SCIENAUX=>sci_en_dual, + D_SCISELAUX=>sci_sel_dual,CH0_SCIEN=>n103,CH1_SCIEN=>sci_en,CH0_SCISEL=>n103, + CH1_SCISEL=>sci_sel,D_SCIRD=>sci_rd,D_SCIWSTN=>sci_wrn,D_CYAWSTN=>cyawstn, + D_FFC_SYNC_TOGGLE=>n103,D_FFC_DUAL_RST=>rsl_rst_dual_c,D_FFC_MACRO_RST=>rsl_serdes_rst_dual_c, + D_FFC_MACROPDB=>serdes_pdb,D_FFC_TRST=>rsl_tx_serdes_rst_c,CH0_FFC_CDR_EN_BITSLIP=>n103, + CH1_FFC_CDR_EN_BITSLIP=>n44,D_SCAN_ENABLE=>n44,D_SCAN_IN_0=>n44,D_SCAN_IN_1=>n44, + D_SCAN_IN_2=>n44,D_SCAN_IN_3=>n44,D_SCAN_IN_4=>n44,D_SCAN_IN_5=>n44, + D_SCAN_IN_6=>n44,D_SCAN_IN_7=>n44,D_SCAN_MODE=>n44,D_SCAN_RESET=>n44, + D_CIN0=>n44,D_CIN1=>n44,D_CIN2=>n44,D_CIN3=>n44,D_CIN4=>n44,D_CIN5=>n44, + D_CIN6=>n44,D_CIN7=>n44,D_CIN8=>n44,D_CIN9=>n44,D_CIN10=>n44,D_CIN11=>n44, + CH0_HDOUTP=>n47,CH1_HDOUTP=>hdoutp,CH0_HDOUTN=>n48,CH1_HDOUTN=>hdoutn, + D_TXBIT_CLKP_TO_ND=>n1,D_TXBIT_CLKN_TO_ND=>n2,D_SYNC_PULSE2ND=>n3,D_TXPLL_LOL_TO_ND=>n4, + CH0_FF_RX_F_CLK=>n49,CH1_FF_RX_F_CLK=>n5,CH0_FF_RX_H_CLK=>n50,CH1_FF_RX_H_CLK=>n6, + CH0_FF_TX_F_CLK=>n51,CH1_FF_TX_F_CLK=>n7,CH0_FF_TX_H_CLK=>n52,CH1_FF_TX_H_CLK=>n8, + CH0_FF_RX_PCLK=>n53,CH1_FF_RX_PCLK=>n9,CH0_FF_TX_PCLK=>n54,CH1_FF_TX_PCLK=>tx_pclk_c, + CH0_FF_RX_D_0=>n55,CH1_FF_RX_D_0=>rxdata(0),CH0_FF_RX_D_1=>n56,CH1_FF_RX_D_1=>rxdata(1), + CH0_FF_RX_D_2=>n57,CH1_FF_RX_D_2=>rxdata(2),CH0_FF_RX_D_3=>n58,CH1_FF_RX_D_3=>rxdata(3), + CH0_FF_RX_D_4=>n59,CH1_FF_RX_D_4=>rxdata(4),CH0_FF_RX_D_5=>n60,CH1_FF_RX_D_5=>rxdata(5), + CH0_FF_RX_D_6=>n61,CH1_FF_RX_D_6=>rxdata(6),CH0_FF_RX_D_7=>n62,CH1_FF_RX_D_7=>rxdata(7), + CH0_FF_RX_D_8=>n63,CH1_FF_RX_D_8=>rx_k(0),CH0_FF_RX_D_9=>n64,CH1_FF_RX_D_9=>rx_disp_err(0), + CH0_FF_RX_D_10=>n65,CH1_FF_RX_D_10=>rx_cv_err(0),CH0_FF_RX_D_11=>n66, + CH1_FF_RX_D_11=>n10,CH0_FF_RX_D_12=>n67,CH1_FF_RX_D_12=>n68,CH0_FF_RX_D_13=>n69, + CH1_FF_RX_D_13=>n70,CH0_FF_RX_D_14=>n71,CH1_FF_RX_D_14=>n72,CH0_FF_RX_D_15=>n73, + CH1_FF_RX_D_15=>n74,CH0_FF_RX_D_16=>n75,CH1_FF_RX_D_16=>n76,CH0_FF_RX_D_17=>n77, + CH1_FF_RX_D_17=>n78,CH0_FF_RX_D_18=>n79,CH1_FF_RX_D_18=>n80,CH0_FF_RX_D_19=>n81, + CH1_FF_RX_D_19=>n82,CH0_FF_RX_D_20=>n83,CH1_FF_RX_D_20=>n84,CH0_FF_RX_D_21=>n85, + CH1_FF_RX_D_21=>n86,CH0_FF_RX_D_22=>n87,CH1_FF_RX_D_22=>n88,CH0_FF_RX_D_23=>n89, + CH1_FF_RX_D_23=>n11,CH0_FFS_PCIE_DONE=>n90,CH1_FFS_PCIE_DONE=>n12,CH0_FFS_PCIE_CON=>n91, + CH1_FFS_PCIE_CON=>n13,CH0_FFS_RLOS=>n92,CH1_FFS_RLOS=>rx_los_low_s_c, + CH0_FFS_LS_SYNC_STATUS=>n93,CH1_FFS_LS_SYNC_STATUS=>lsm_status_s,CH0_FFS_CC_UNDERRUN=>n94, + CH1_FFS_CC_UNDERRUN=>ctc_urun_s,CH0_FFS_CC_OVERRUN=>n95,CH1_FFS_CC_OVERRUN=>ctc_orun_s, + CH0_FFS_RXFBFIFO_ERROR=>n96,CH1_FFS_RXFBFIFO_ERROR=>n14,CH0_FFS_TXFBFIFO_ERROR=>n97, + CH1_FFS_TXFBFIFO_ERROR=>n15,CH0_FFS_RLOL=>n98,CH1_FFS_RLOL=>rx_cdr_lol_s_c, + CH0_FFS_SKP_ADDED=>n99,CH1_FFS_SKP_ADDED=>ctc_ins_s,CH0_FFS_SKP_DELETED=>n100, + CH1_FFS_SKP_DELETED=>ctc_del_s,CH0_LDR_RX2CORE=>n101,CH1_LDR_RX2CORE=>n112, + D_SCIRDATA0=>sci_rddata(0),D_SCIRDATA1=>sci_rddata(1),D_SCIRDATA2=>sci_rddata(2), + D_SCIRDATA3=>sci_rddata(3),D_SCIRDATA4=>sci_rddata(4),D_SCIRDATA5=>sci_rddata(5), + D_SCIRDATA6=>sci_rddata(6),D_SCIRDATA7=>sci_rddata(7),D_SCIINT=>sci_int, + D_SCAN_OUT_0=>n16,D_SCAN_OUT_1=>n17,D_SCAN_OUT_2=>n18,D_SCAN_OUT_3=>n19, + D_SCAN_OUT_4=>n20,D_SCAN_OUT_5=>n21,D_SCAN_OUT_6=>n22,D_SCAN_OUT_7=>n23, + D_COUT0=>n24,D_COUT1=>n25,D_COUT2=>n26,D_COUT3=>n27,D_COUT4=>n28,D_COUT5=>n29, + D_COUT6=>n30,D_COUT7=>n31,D_COUT8=>n32,D_COUT9=>n33,D_COUT10=>n34,D_COUT11=>n35, + D_COUT12=>n36,D_COUT13=>n37,D_COUT14=>n38,D_COUT15=>n39,D_COUT16=>n40, + D_COUT17=>n41,D_COUT18=>n42,D_COUT19=>n43,D_REFCLKI=>pll_refclki,D_FFS_PLOL=>n46); + n45 <= '1' ; + n44 <= '0' ; + n1 <= 'Z' ; + n2 <= 'Z' ; + n3 <= 'Z' ; + n4 <= 'Z' ; + n5 <= 'Z' ; + n6 <= 'Z' ; + n7 <= 'Z' ; + n8 <= 'Z' ; + n9 <= 'Z' ; + n10 <= 'Z' ; + n11 <= 'Z' ; + n12 <= 'Z' ; + n13 <= 'Z' ; + n14 <= 'Z' ; + n15 <= 'Z' ; + n16 <= 'Z' ; + n17 <= 'Z' ; + n18 <= 'Z' ; + n19 <= 'Z' ; + n20 <= 'Z' ; + n21 <= 'Z' ; + n22 <= 'Z' ; + n23 <= 'Z' ; + n24 <= 'Z' ; + n25 <= 'Z' ; + n26 <= 'Z' ; + n27 <= 'Z' ; + n28 <= 'Z' ; + n29 <= 'Z' ; + n30 <= 'Z' ; + n31 <= 'Z' ; + n32 <= 'Z' ; + n33 <= 'Z' ; + n34 <= 'Z' ; + n35 <= 'Z' ; + n36 <= 'Z' ; + n37 <= 'Z' ; + n38 <= 'Z' ; + n39 <= 'Z' ; + n40 <= 'Z' ; + n41 <= 'Z' ; + n42 <= 'Z' ; + n43 <= 'Z' ; + n46 <= 'Z' ; + n103 <= '0' ; + n102 <= '1' ; + n47 <= 'Z' ; + n48 <= 'Z' ; + n49 <= 'Z' ; + n50 <= 'Z' ; + n51 <= 'Z' ; + n52 <= 'Z' ; + n53 <= 'Z' ; + n54 <= 'Z' ; + n55 <= 'Z' ; + n56 <= 'Z' ; + n57 <= 'Z' ; + n58 <= 'Z' ; + n59 <= 'Z' ; + n60 <= 'Z' ; + n61 <= 'Z' ; + n62 <= 'Z' ; + n63 <= 'Z' ; + n64 <= 'Z' ; + n65 <= 'Z' ; + n66 <= 'Z' ; + n67 <= 'Z' ; + n68 <= 'Z' ; + n69 <= 'Z' ; + n70 <= 'Z' ; + n71 <= 'Z' ; + n72 <= 'Z' ; + n73 <= 'Z' ; + n74 <= 'Z' ; + n75 <= 'Z' ; + n76 <= 'Z' ; + n77 <= 'Z' ; + n78 <= 'Z' ; + n79 <= 'Z' ; + n80 <= 'Z' ; + n81 <= 'Z' ; + n82 <= 'Z' ; + n83 <= 'Z' ; + n84 <= 'Z' ; + n85 <= 'Z' ; + n86 <= 'Z' ; + n87 <= 'Z' ; + n88 <= 'Z' ; + n89 <= 'Z' ; + n90 <= 'Z' ; + n91 <= 'Z' ; + n92 <= 'Z' ; + n93 <= 'Z' ; + n94 <= 'Z' ; + n95 <= 'Z' ; + n96 <= 'Z' ; + n97 <= 'Z' ; + n98 <= 'Z' ; + n99 <= 'Z' ; + n100 <= 'Z' ; + n101 <= 'Z' ; + n112 <= 'Z' ; + rsl_inst: component sgmii_ecp5rsl_core port map (rui_rst=>rsl_rst,rui_serdes_rst_dual_c=>serdes_rst_dual_c, + rui_rst_dual_c=>rst_dual_c,rui_rsl_disable=>rsl_disable,rui_tx_ref_clk=>pll_refclki, + rui_tx_serdes_rst_c=>tx_serdes_rst_c,rui_tx_pcs_rst_c(3)=>n122, + rui_tx_pcs_rst_c(2)=>n122,rui_tx_pcs_rst_c(1)=>n122,rui_tx_pcs_rst_c(0)=>tx_pcs_rst_c, + rdi_pll_lol=>pll_lol_c,rui_rx_ref_clk=>rxrefclk,rui_rx_serdes_rst_c(3)=>n122, + rui_rx_serdes_rst_c(2)=>n122,rui_rx_serdes_rst_c(1)=>n122,rui_rx_serdes_rst_c(0)=>rx_serdes_rst_c, + rui_rx_pcs_rst_c(3)=>n122,rui_rx_pcs_rst_c(2)=>n122,rui_rx_pcs_rst_c(1)=>n122, + rui_rx_pcs_rst_c(0)=>rx_pcs_rst_c,rdi_rx_los_low_s(3)=>n122,rdi_rx_los_low_s(2)=>n122, + rdi_rx_los_low_s(1)=>n122,rdi_rx_los_low_s(0)=>rx_los_low_s_c, + rdi_rx_cdr_lol_s(3)=>n122,rdi_rx_cdr_lol_s(2)=>n122,rdi_rx_cdr_lol_s(1)=>n122, + rdi_rx_cdr_lol_s(0)=>rx_cdr_lol_s_c,rdo_serdes_rst_dual_c=>rsl_serdes_rst_dual_c, + rdo_rst_dual_c=>rsl_rst_dual_c,ruo_tx_rdy=>rsl_tx_rdy,rdo_tx_serdes_rst_c=>rsl_tx_serdes_rst_c, + rdo_tx_pcs_rst_c(3)=>n113,rdo_tx_pcs_rst_c(2)=>n114,rdo_tx_pcs_rst_c(1)=>n115, + rdo_tx_pcs_rst_c(0)=>rsl_tx_pcs_rst_c,ruo_rx_rdy=>rsl_rx_rdy,rdo_rx_serdes_rst_c(3)=>n116, + rdo_rx_serdes_rst_c(2)=>n117,rdo_rx_serdes_rst_c(1)=>n118,rdo_rx_serdes_rst_c(0)=>rsl_rx_serdes_rst_c, + rdo_rx_pcs_rst_c(3)=>n119,rdo_rx_pcs_rst_c(2)=>n120,rdo_rx_pcs_rst_c(1)=>\_Z\, + rdo_rx_pcs_rst_c(0)=>rsl_rx_pcs_rst_c); + n111 <= '1' ; + n110 <= '0' ; + n122 <= '0' ; + n121 <= '1' ; + n113 <= 'Z' ; + n114 <= 'Z' ; + n115 <= 'Z' ; + n116 <= 'Z' ; + n117 <= 'Z' ; + n118 <= 'Z' ; + n119 <= 'Z' ; + n120 <= 'Z' ; + \_Z\ <= 'Z' ; + sll_inst: component sgmii_ecp5sll_core port map (sli_rst=>sli_rst,sli_refclk=>pll_refclki, + sli_pclk=>tx_pclk_c,sli_div2_rate=>gnd,sli_div11_rate=>gnd,sli_gear_mode=>gnd, + sli_cpri_mode(2)=>gnd,sli_cpri_mode(1)=>gnd,sli_cpri_mode(0)=>gnd, + sli_pcie_mode=>gnd,slo_plol=>pll_lol_c); + n124 <= '1' ; + n123 <= '0' ; + gnd <= '0' ; + pwr <= '1' ; + +end architecture v1; + diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_ngd.asd b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_ngd.asd new file mode 100644 index 0000000..c265c78 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_ngd.asd @@ -0,0 +1 @@ +[ActiveSupport NGD] diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v new file mode 100644 index 0000000..69a023d --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v @@ -0,0 +1,2003 @@ + + +// =========================================================================== +// >>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< +// --------------------------------------------------------------------------- +// Copyright (c) 2016 by Lattice Semiconductor Corporation +// ALL RIGHTS RESERVED +// ------------------------------------------------------------------ +// +// Permission: +// +// Lattice SG Pte. Ltd. grants permission to use this code +// pursuant to the terms of the Lattice Reference Design License Agreement. +// +// +// Disclaimer: +// +// This VHDL or Verilog source code is intended as a design reference +// which illustrates how these types of functions can be implemented. +// It is the user's responsibility to verify their design for +// consistency and functionality through the use of formal +// verification methods. Lattice provides no warranty +// regarding the use or functionality of this code. +// +// --------------------------------------------------------------------------- +// +// Lattice SG Pte. Ltd. +// 101 Thomson Road, United Square #07-02 +// Singapore 307591 +// +// +// TEL: 1-800-Lattice (USA and Canada) +// +65-6631-2000 (Singapore) +// +1-503-268-8001 (other locations) +// +// web: http://www.latticesemi.com/ +// email: techsupport@latticesemi.com +// +// --------------------------------------------------------------------------- +// +// ============================================================================= +// FILE DETAILS +// Project : RSL- Reset Sequence Logic +// File : rsl_core.v +// Title : Top-level file for RSL +// Dependencies : 1. +// : 2. +// Description : +// ============================================================================= +// REVISION HISTORY +// Version : 1.0 +// Author(s) : BM +// Mod. Date : October 28, 2013 +// Changes Made : Initial Creation +// ----------------------------------------------------------------------------- +// Version : 1.1 +// Author(s) : BM +// Mod. Date : November 06, 2013 +// Changes Made : Tx/Rx separation, ready port code exclusion +// ----------------------------------------------------------------------------- +// Version : 1.2 +// Author(s) : BM +// Mod. Date : June 13, 2014 +// Changes Made : Updated Rx PCS reset method +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// Version : 1.3 +// Author(s) : UA +// Mod. Date : Dec 19, 2014 +// Changes Made : Added new parameter fro PCIE +// ----------------------------------------------------------------------------- +// Version : 1.31 +// Author(s) : BM/UM +// Mod. Date : Feb 23, 2016 +// Changes Made : Behavior of rx_rdy output modified. The output rx_rdy +// and the rx_rdy wait counter are reset to zero on +// LOL or LOS. Reverted back the counter value change for PCIE. +// ----------------------------------------------------------------------------- +// Version : 1.4 +// Author(s) : EB +// Mod. Date: : March 21, 2017 +// Changes Made : +// ----------------------------------------------------------------------------- +// Version : 1.5 +// Author(s) : ES +// Mod. Date: : May 8, 2017 +// Changes Made : Implemented common RSL behaviour as proposed by BM. +// ============================================================================= + +`timescale 1ns/10ps + +module sgmii_ecp5rsl_core ( + // ------------ Inputs + // Common + rui_rst, // Active high reset for the RSL module + rui_serdes_rst_dual_c, // SERDES macro reset user command + rui_rst_dual_c, // PCS dual reset user command + rui_rsl_disable, // Active high signal that disables all reset outputs of RSL + // Tx + rui_tx_ref_clk, // Tx reference clock + rui_tx_serdes_rst_c, // Tx SERDES reset user command + rui_tx_pcs_rst_c, // Tx lane reset user command + rdi_pll_lol, // Tx PLL Loss of Lock status input from the SERDES + // Rx + rui_rx_ref_clk, // Rx reference clock + rui_rx_serdes_rst_c, // SERDES Receive channel reset user command + rui_rx_pcs_rst_c, // Rx lane reset user command + rdi_rx_los_low_s, // Receive loss of signal status input from SERDES + rdi_rx_cdr_lol_s, // Receive CDR loss of lock status input from SERDES + + // ------------ Outputs + // Common + rdo_serdes_rst_dual_c, // SERDES macro reset command output + rdo_rst_dual_c, // PCS dual reset command output + // Tx + ruo_tx_rdy, // Tx lane ready status output + rdo_tx_serdes_rst_c, // SERDES Tx reset command output + rdo_tx_pcs_rst_c, // PCS Tx lane reset command output + // Rx + ruo_rx_rdy, // Rx lane ready status output + rdo_rx_serdes_rst_c, // SERDES Rx channel reset command output + rdo_rx_pcs_rst_c // PCS Rx lane reset command output + ); + +// ------------ Module parameters +`ifdef NUM_CHANNELS + parameter pnum_channels = `NUM_CHANNELS; // 1,2,4 +`else + parameter pnum_channels = 1; +`endif + +`ifdef PCIE + parameter pprotocol = "PCIE"; +`else + parameter pprotocol = ""; +`endif + +`ifdef RX_ONLY + parameter pserdes_mode = "RX ONLY"; +`else + `ifdef TX_ONLY + parameter pserdes_mode = "TX ONLY"; + `else + parameter pserdes_mode = "RX AND TX"; + `endif +`endif + +`ifdef PORT_TX_RDY + parameter pport_tx_rdy = "ENABLED"; +`else + parameter pport_tx_rdy = "DISABLED"; +`endif + +`ifdef WAIT_TX_RDY + parameter pwait_tx_rdy = `WAIT_TX_RDY; +`else + parameter pwait_tx_rdy = 3000; +`endif + +`ifdef PORT_RX_RDY + parameter pport_rx_rdy = "ENABLED"; +`else + parameter pport_rx_rdy = "DISABLED"; +`endif + +`ifdef WAIT_RX_RDY + parameter pwait_rx_rdy = `WAIT_RX_RDY; +`else + parameter pwait_rx_rdy = 3000; +`endif + +// ------------ Local parameters + localparam wa_num_cycles = 1024; + localparam dac_num_cycles = 3; + localparam lreset_pwidth = 3; // reset pulse width-1, default=4-1=3 + localparam lwait_b4_trst = 781250; // 5ms wait with worst-case Fmax=156 MHz + localparam lwait_b4_trst_s = 781; // for simulation + localparam lplol_cnt_width = 20; // width for lwait_b4_trst + localparam lwait_after_plol0 = 4; + localparam lwait_b4_rrst = 180224; // total calibration time + localparam lrrst_wait_width = 20; + localparam lwait_after_rrst = 800000; // For CPRI- unused + localparam lwait_b4_rrst_s = 460; // wait cycles provided by design team + localparam lrlol_cnt_width = 19; // width for lwait_b4_rrst + localparam lwait_after_lols = (16384 * dac_num_cycles) + wa_num_cycles; // 16384 cycles * dac_num_cycles + 1024 cycles + localparam lwait_after_lols_s = 150; // wait cycles provided by design team + localparam llols_cnt_width = 18; // lols count width + localparam lrdb_max = 15; // maximum debounce count + localparam ltxr_wait_width = 12; // width of tx ready wait counter + localparam lrxr_wait_width = 12; // width of tx ready wait counter + +// ------------ input ports + input rui_rst; + input rui_serdes_rst_dual_c; + input rui_rst_dual_c; + input rui_rsl_disable; + + input rui_tx_ref_clk; + input rui_tx_serdes_rst_c; + input [3:0] rui_tx_pcs_rst_c; + input rdi_pll_lol; + + input rui_rx_ref_clk; + input [3:0] rui_rx_serdes_rst_c; + input [3:0] rui_rx_pcs_rst_c; + input [3:0] rdi_rx_los_low_s; + input [3:0] rdi_rx_cdr_lol_s; + +// ------------ output ports + output rdo_serdes_rst_dual_c; + output rdo_rst_dual_c; + + output ruo_tx_rdy; + output rdo_tx_serdes_rst_c; + output [3:0] rdo_tx_pcs_rst_c; + + output ruo_rx_rdy; + output [3:0] rdo_rx_serdes_rst_c; + output [3:0] rdo_rx_pcs_rst_c; + +// ------------ Internal registers and wires + // inputs + wire rui_rst; + wire rui_serdes_rst_dual_c; + wire rui_rst_dual_c; + wire rui_rsl_disable; + wire rui_tx_ref_clk; + wire rui_tx_serdes_rst_c; + wire [3:0] rui_tx_pcs_rst_c; + wire rdi_pll_lol; + wire rui_rx_ref_clk; + wire [3:0] rui_rx_serdes_rst_c; + wire [3:0] rui_rx_pcs_rst_c; + wire [3:0] rdi_rx_los_low_s; + wire [3:0] rdi_rx_cdr_lol_s; + + // outputs + wire rdo_serdes_rst_dual_c; + wire rdo_rst_dual_c; + wire ruo_tx_rdy; + wire rdo_tx_serdes_rst_c; + wire [3:0] rdo_tx_pcs_rst_c; + wire ruo_rx_rdy; + wire [3:0] rdo_rx_serdes_rst_c; + wire [3:0] rdo_rx_pcs_rst_c; + + // internal signals + // common + wire rsl_enable; + wire [lplol_cnt_width-1:0] wait_b4_trst; + wire [lrlol_cnt_width-1:0] wait_b4_rrst; + wire [llols_cnt_width-1:0] wait_after_lols; + reg pll_lol_p1; + reg pll_lol_p2; + reg pll_lol_p3; + // ------------ Tx + // rdo_tx_serdes_rst_c + reg [lplol_cnt_width-1:0] plol_cnt; + wire plol_cnt_tc; + + reg [2:0] txs_cnt; + reg txs_rst; + wire txs_cnt_tc; + // rdo_tx_pcs_rst_c + wire plol_fedge; + wire plol_redge; + reg waita_plol0; + reg [2:0] plol0_cnt; + wire plol0_cnt_tc; + reg [2:0] txp_cnt; + reg txp_rst; + wire txp_cnt_tc; + // ruo_tx_rdy + wire dual_or_serd_rst; + wire tx_any_pcs_rst; + wire tx_any_rst; + reg txsr_appd /* synthesis syn_keep=1 */; + reg txdpr_appd; + reg [pnum_channels-1:0] txpr_appd; + reg txr_wt_en; + reg [ltxr_wait_width-1:0] txr_wt_cnt; + wire txr_wt_tc; + reg ruo_tx_rdyr; + + // ------------ Rx + wire comb_rlos; + wire comb_rlol; + //wire rlols; + wire rx_all_well; + + //reg rlols_p1; + //reg rlols_p2; + //reg rlols_p3; + + reg rlol_p1; + reg rlol_p2; + reg rlol_p3; + reg rlos_p1; + reg rlos_p2; + reg rlos_p3; + + //reg [3:0] rdb_cnt; + //wire rdb_cnt_max; + //wire rdb_cnt_zero; + //reg rlols_db; + //reg rlols_db_p1; + + reg [3:0] rlol_db_cnt; + wire rlol_db_cnt_max; + wire rlol_db_cnt_zero; + reg rlol_db; + reg rlol_db_p1; + + reg [3:0] rlos_db_cnt; + wire rlos_db_cnt_max; + wire rlos_db_cnt_zero; + reg rlos_db; + reg rlos_db_p1; + + // rdo_rx_serdes_rst_c + reg [lrlol_cnt_width-1:0] rlol1_cnt; + wire rlol1_cnt_tc; + reg [2:0] rxs_cnt; + reg rxs_rst; + wire rxs_cnt_tc; + reg [lrrst_wait_width-1:0] rrst_cnt; + wire rrst_cnt_tc; + reg rrst_wait; + // rdo_rx_pcs_rst_c + //wire rlols_fedge; + //wire rlols_redge; + wire rlol_fedge; + wire rlol_redge; + wire rlos_fedge; + wire rlos_redge; + + reg wait_calib; + reg waita_rlols0; + reg [llols_cnt_width-1:0] rlols0_cnt; + wire rlols0_cnt_tc; + reg [2:0] rxp_cnt; + reg rxp_rst; + wire rxp_cnt_tc; + + wire rx_any_serd_rst; + reg [llols_cnt_width-1:0] rlolsz_cnt; + wire rlolsz_cnt_tc; + reg [2:0] rxp_cnt2; + reg rxp_rst2; + wire rxp_cnt2_tc; + reg [15:0] data_loop_b_cnt; + reg data_loop_b; + wire data_loop_b_tc; + + // ruo_rx_rdy + reg [pnum_channels-1:0] rxsr_appd; + reg [pnum_channels-1:0] rxpr_appd; + reg rxsdr_appd /* synthesis syn_keep=1 */; + reg rxdpr_appd; + wire rxsdr_or_sr_appd; + wire dual_or_rserd_rst; + wire rx_any_pcs_rst; + wire rx_any_rst; + reg rxr_wt_en; + reg [lrxr_wait_width-1:0] rxr_wt_cnt; + wire rxr_wt_tc; + reg ruo_rx_rdyr; + +// ================================================================== +// Start of code +// ================================================================== + assign rsl_enable = ~rui_rsl_disable; + +// ------------ rdo_serdes_rst_dual_c + assign rdo_serdes_rst_dual_c = (rui_rst&rsl_enable) | rui_serdes_rst_dual_c; + +// ------------ rdo_rst_dual_c + assign rdo_rst_dual_c = rui_rst_dual_c; + +// ------------ Setting counter values for RSL_SIM_MODE + `ifdef RSL_SIM_MODE + assign wait_b4_trst = lwait_b4_trst_s; + assign wait_b4_rrst = lwait_b4_rrst_s; + assign wait_after_lols = lwait_after_lols_s; + `else + assign wait_b4_trst = lwait_b4_trst; + assign wait_b4_rrst = lwait_b4_rrst; + assign wait_after_lols = lwait_after_lols; + `endif + +// ================================================================== +// Tx +// ================================================================== + generate + if((pserdes_mode=="RX AND TX")||(pserdes_mode=="TX ONLY")) begin + +// ------------ Synchronizing pll_lol to the tx clock + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) begin + pll_lol_p1 <= 1'd0; + pll_lol_p2 <= 1'd0; + pll_lol_p3 <= 1'd0; + end + else begin + pll_lol_p1 <= rdi_pll_lol; + pll_lol_p2 <= pll_lol_p1; + pll_lol_p3 <= pll_lol_p2; + end + end + +// ------------ rdo_tx_serdes_rst_c + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) + plol_cnt <= 'd0; + else if((pll_lol_p2==0)||(plol_cnt_tc==1)||(rdo_tx_serdes_rst_c==1)) + plol_cnt <= 'd0; + else + plol_cnt <= plol_cnt+1; + end + assign plol_cnt_tc = (plol_cnt==wait_b4_trst)?1'b1:1'b0; + + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) begin + txs_cnt <= 'd0; // tx serdes reset pulse count + txs_rst <= 1'b0; // tx serdes reset + end + else if(plol_cnt_tc==1) + txs_rst <= 1'b1; + else if(txs_cnt_tc==1) begin + txs_cnt <= 'd0; + txs_rst <= 1'b0; + end + else if(txs_rst==1) + txs_cnt <= txs_cnt+1; + end + assign txs_cnt_tc = (txs_cnt==lreset_pwidth)?1'b1:1'b0; + + assign rdo_tx_serdes_rst_c = (rsl_enable&txs_rst)| rui_tx_serdes_rst_c; + +// ------------ rdo_tx_pcs_rst_c + assign plol_fedge = ~pll_lol_p2 & pll_lol_p3; + assign plol_redge = pll_lol_p2 & ~pll_lol_p3; + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) + waita_plol0 <= 1'd0; + else if(plol_fedge==1'b1) + waita_plol0 <= 1'b1; + else if((plol0_cnt_tc==1)||(plol_redge==1)) + waita_plol0 <= 1'd0; + end + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) + plol0_cnt <= 'd0; + else if((pll_lol_p2==1)||(plol0_cnt_tc==1)) + plol0_cnt <= 'd0; + else if(waita_plol0==1'b1) + plol0_cnt <= plol0_cnt+1; + end + assign plol0_cnt_tc = (plol0_cnt==lwait_after_plol0)?1'b1:1'b0; + + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) begin + txp_cnt <= 'd0; // tx serdes reset pulse count + txp_rst <= 1'b0; // tx serdes reset + end + else if(plol0_cnt_tc==1) + txp_rst <= 1'b1; + else if(txp_cnt_tc==1) begin + txp_cnt <= 'd0; + txp_rst <= 1'b0; + end + else if(txp_rst==1) + txp_cnt <= txp_cnt+1; + end + assign txp_cnt_tc = (txp_cnt==lreset_pwidth)?1'b1:1'b0; + + genvar i; + for(i=0;i>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< +// --------------------------------------------------------------------------- +// Copyright (c) 2015 by Lattice Semiconductor Corporation +// ALL RIGHTS RESERVED +// ------------------------------------------------------------------ +// +// Permission: +// +// Lattice SG Pte. Ltd. grants permission to use this code +// pursuant to the terms of the Lattice Reference Design License Agreement. +// +// +// Disclaimer: +// +// This VHDL or Verilog source code is intended as a design reference +// which illustrates how these types of functions can be implemented. +// It is the user's responsibility to verify their design for +// consistency and functionality through the use of formal +// verification methods. Lattice provides no warranty +// regarding the use or functionality of this code. +// +// --------------------------------------------------------------------------- +// +// Lattice SG Pte. Ltd. +// 101 Thomson Road, United Square #07-02 +// Singapore 307591 +// +// +// TEL: 1-800-Lattice (USA and Canada) +// +65-6631-2000 (Singapore) +// +1-503-268-8001 (other locations) +// +// web: http://www.latticesemi.com/ +// email: techsupport@latticesemi.com +// +// --------------------------------------------------------------------------- +// +// ============================================================================= +// FILE DETAILS +// Project : SLL - Soft Loss Of Lock(LOL) Logic +// File : sll_core.v +// Title : Top-level file for SLL +// Dependencies : 1. +// : 2. +// Description : +// ============================================================================= +// REVISION HISTORY +// Version : 1.0 +// Author(s) : AV +// Mod. Date : March 2, 2015 +// Changes Made : Initial Creation +// ============================================================================= +// REVISION HISTORY +// Version : 1.1 +// Author(s) : AV +// Mod. Date : June 8, 2015 +// Changes Made : Following updates were made +// : 1. Changed all the PLOL status logic and FSM to run +// : on sli_refclk. +// : 2. Added the HB logic for presence of tx_pclk +// : 3. Changed the lparam assignment scheme for +// : simulation purposes. +// ============================================================================= +// REVISION HISTORY +// Version : 1.2 +// Author(s) : AV +// Mod. Date : June 24, 2015 +// Changes Made : Updated the gearing logic for SDI dynamic rate change +// ============================================================================= +// REVISION HISTORY +// Version : 1.3 +// Author(s) : AV +// Mod. Date : July 14, 2015 +// Changes Made : Added the logic for dynamic rate change in CPRI +// ============================================================================= +// REVISION HISTORY +// Version : 1.4 +// Author(s) : AV +// Mod. Date : August 21, 2015 +// Changes Made : Added the logic for dynamic rate change of 5G CPRI & +// PCIe. +// ============================================================================= +// REVISION HISTORY +// Version : 1.5 +// Author(s) : ES/EB +// Mod. Date : March 21, 2017 +// Changes Made : 1. Added pdiff_sync signal to syncrhonize pcount_diff +// : to sli_refclk. +// : 2. Updated terminal count logic for PCIe 5G +// : 3. Modified checking of pcount_diff in SLL state +// : machine to cover actual count +// : (from 16-bits to 22-bits) +// ============================================================================= +// REVISION HISTORY +// Version : 1.6 +// Author(s) : ES +// Mod. Date : April 19, 2017 +// Changes Made : 1. Added registered lock and unlock signal from +// pdiff_sync to totally decouple pcount_diff from +// SLL state machine. +// : 2. Modified LPCLK_TC_4 to 1:1 clock ratio when CPRI +// is operating @ 4.9125Gbps data rate. +// ============================================================================= +`timescale 1ns/10ps + +module sgmii_ecp5sll_core ( + //Reset and Clock inputs + sli_rst, //Active high asynchronous reset input + sli_refclk, //Refclk input to the Tx PLL + sli_pclk, //Tx pclk output from the PCS + + //Control inputs + sli_div2_rate, //Divide by 2 control; 0 - Full rate; 1 - Half rate + sli_div11_rate, //Divide by 11 control; 0 - Full rate; 1 - Div by 11 + sli_gear_mode, //Gear mode control for PCS; 0 - 8/10; 1- 16/20 + sli_cpri_mode, //Mode of operation specific to CPRI protocol + sli_pcie_mode, //Mode of operation specific to PCIe mode (2.5G or 5G) + + //LOL Output + slo_plol //Tx PLL Loss of Lock output to the user logic + ); + +// Inputs +input sli_rst; +input sli_refclk; +input sli_pclk; +input sli_div2_rate; +input sli_div11_rate; +input sli_gear_mode; +input [2:0] sli_cpri_mode; +input sli_pcie_mode; + +// Outputs +output slo_plol; + + +// Parameters +parameter PPROTOCOL = "PCIE"; //Protocol selected by the User +parameter PLOL_SETTING = 0; //PLL LOL setting. Possible values are 0,1,2,3 +parameter PDYN_RATE_CTRL = "DISABLED"; //PCS Dynamic Rate control +parameter PPCIE_MAX_RATE = "2.5"; //PCIe max data rate +parameter PDIFF_VAL_LOCK = 20; //Differential count value for Lock +parameter PDIFF_VAL_UNLOCK = 39; //Differential count value for Unlock +parameter PPCLK_TC = 65535; //Terminal count value for counter running on sli_pclk +parameter PDIFF_DIV11_VAL_LOCK = 3; //Differential count value for Lock for SDI Div11 +parameter PDIFF_DIV11_VAL_UNLOCK = 3; //Differential count value for Unlock for SDI Div11 +parameter PPCLK_DIV11_TC = 2383; //Terminal count value (SDI Div11) for counter running on sli_pclk + + +// Local Parameters +localparam [1:0] LPLL_LOSS_ST = 2'b00; //PLL Loss state +localparam [1:0] LPLL_PRELOSS_ST = 2'b01; //PLL Pre-Loss state +localparam [1:0] LPLL_PRELOCK_ST = 2'b10; //PLL Pre-Lock state +localparam [1:0] LPLL_LOCK_ST = 2'b11; //PLL Lock state +`ifdef RSL_SIM_MODE +localparam [15:0] LRCLK_TC = 16'd63; //Terminal count value for counter running on sli_refclk +`else +localparam [15:0] LRCLK_TC = 16'd65535; //Terminal count value for counter running on sli_refclk +`endif +localparam [15:0] LRCLK_TC_PUL_WIDTH = 16'd50; //Pulse width for the Refclk terminal count pulse +localparam [7:0] LHB_WAIT_CNT = 8'd255; //Wait count for the Heartbeat signal + +// Local Parameters related to the CPRI dynamic modes +// Terminal count values for the four CPRI modes +localparam LPCLK_TC_0 = 32768; +localparam LPCLK_TC_1 = 65536; +localparam LPCLK_TC_2 = 131072; +localparam LPCLK_TC_3 = 163840; +localparam LPCLK_TC_4 = 65536; + +// Lock values count values for the four CPRI modes and four PLOL settings (4x5) +// CPRI rate mode 0 CPRI rate mode 1 CPRI rate mode 2 CPRI rate mode 3 CPRI rate mode 4 +localparam LPDIFF_LOCK_00 = 9; localparam LPDIFF_LOCK_10 = 19; localparam LPDIFF_LOCK_20 = 39; localparam LPDIFF_LOCK_30 = 49; localparam LPDIFF_LOCK_40 = 19; +localparam LPDIFF_LOCK_01 = 9; localparam LPDIFF_LOCK_11 = 19; localparam LPDIFF_LOCK_21 = 39; localparam LPDIFF_LOCK_31 = 49; localparam LPDIFF_LOCK_41 = 19; +localparam LPDIFF_LOCK_02 = 49; localparam LPDIFF_LOCK_12 = 98; localparam LPDIFF_LOCK_22 = 196; localparam LPDIFF_LOCK_32 = 245; localparam LPDIFF_LOCK_42 = 98; +localparam LPDIFF_LOCK_03 = 131; localparam LPDIFF_LOCK_13 = 262; localparam LPDIFF_LOCK_23 = 524; localparam LPDIFF_LOCK_33 = 655; localparam LPDIFF_LOCK_43 = 262; + +// Unlock values count values for the four CPRI modes and four PLOL settings (4x5) +// CPRI rate mode 0 CPRI rate mode 1 CPRI rate mode 2 CPRI rate mode 3 CPRI rate mode 4 +localparam LPDIFF_UNLOCK_00 = 19; localparam LPDIFF_UNLOCK_10 = 39; localparam LPDIFF_UNLOCK_20 = 78; localparam LPDIFF_UNLOCK_30 = 98; localparam LPDIFF_UNLOCK_40 = 39; +localparam LPDIFF_UNLOCK_01 = 65; localparam LPDIFF_UNLOCK_11 = 131; localparam LPDIFF_UNLOCK_21 = 262; localparam LPDIFF_UNLOCK_31 = 327; localparam LPDIFF_UNLOCK_41 = 131; +localparam LPDIFF_UNLOCK_02 = 72; localparam LPDIFF_UNLOCK_12 = 144; localparam LPDIFF_UNLOCK_22 = 288; localparam LPDIFF_UNLOCK_32 = 360; localparam LPDIFF_UNLOCK_42 = 144; +localparam LPDIFF_UNLOCK_03 = 196; localparam LPDIFF_UNLOCK_13 = 393; localparam LPDIFF_UNLOCK_23 = 786; localparam LPDIFF_UNLOCK_33 = 983; localparam LPDIFF_UNLOCK_43 = 393; + +// Input and Output reg and wire declarations +wire sli_rst; +wire sli_refclk; +wire sli_pclk; +wire sli_div2_rate; +wire sli_div11_rate; +wire sli_gear_mode; +wire [2:0] sli_cpri_mode; +wire sli_pcie_mode; +wire slo_plol; + +//-------------- Internal signals reg and wire declarations -------------------- + +//Signals running on sli_refclk +reg [15:0] rcount; //16-bit Counter +reg rtc_pul; //Terminal count pulse +reg rtc_pul_p1; //Terminal count pulse pipeline +reg rtc_ctrl; //Terminal count pulse control + +reg [7:0] rhb_wait_cnt; //Heartbeat wait counter + +//Heatbeat synchronization and pipeline registers +wire rhb_sync; +reg rhb_sync_p2; +reg rhb_sync_p1; + +//Pipeling registers for dynamic control mode +wire rgear; +wire rdiv2; +wire rdiv11; +reg rgear_p1; +reg rdiv2_p1; +reg rdiv11_p1; + +reg rstat_pclk; //Pclk presence/absence status + +reg [21:0] rcount_tc; //Tx_pclk terminal count register +reg [15:0] rdiff_comp_lock; //Differential comparison value for Lock +reg [15:0] rdiff_comp_unlock; //Differential compariosn value for Unlock + +wire rpcie_mode; //PCIe mode signal synchronized to refclk +reg rpcie_mode_p1; //PCIe mode pipeline register + +wire rcpri_mod_ch_sync; //CPRI mode change synchronized to refclk +reg rcpri_mod_ch_p1; //CPRI mode change pipeline register +reg rcpri_mod_ch_p2; //CPRI mode change pipeline register +reg rcpri_mod_ch_st; //CPRI mode change status + +reg [1:0] sll_state; //Current-state register for LOL FSM + +reg pll_lock; //PLL Lock signal + +//Signals running on sli_pclk +//Synchronization and pipeline registers +wire ppul_sync; +reg ppul_sync_p1; +reg ppul_sync_p2; +reg ppul_sync_p3; + +wire pdiff_sync; +reg pdiff_sync_p1; + +reg [21:0] pcount; //22-bit counter +reg [21:0] pcount_diff; //Differential value between Tx_pclk counter and theoritical value + +//Heartbeat counter and heartbeat signal running on pclk +reg [2:0] phb_cnt; +reg phb; + +//CPRI dynamic mode releated signals +reg [2:0] pcpri_mode; +reg pcpri_mod_ch; + +//Assignment scheme changed mainly for simulation purpose +wire [15:0] LRCLK_TC_w; +assign LRCLK_TC_w = LRCLK_TC; + +reg unlock; +reg lock; + +//Heartbeat synchronization +sync # (.PDATA_RST_VAL(0)) phb_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (phb), + .data_out(rhb_sync) + ); + + +//Terminal count pulse synchronization +sync # (.PDATA_RST_VAL(0)) rtc_sync_inst ( + .clk (sli_pclk), + .rst (sli_rst), + .data_in (rtc_pul), + .data_out(ppul_sync) + ); + +//Differential value logic update synchronization +sync # (.PDATA_RST_VAL(0)) pdiff_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (ppul_sync), + .data_out(pdiff_sync) + ); + +//Gear mode synchronization +sync # (.PDATA_RST_VAL(0)) gear_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (sli_gear_mode), + .data_out(rgear) + ); + +//Div2 synchronization +sync # (.PDATA_RST_VAL(0)) div2_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (sli_div2_rate), + .data_out(rdiv2) + ); + +//Div11 synchronization +sync # (.PDATA_RST_VAL(0)) div11_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (sli_div11_rate), + .data_out(rdiv11) + ); + +//CPRI mode change synchronization +sync # (.PDATA_RST_VAL(0)) cpri_mod_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (pcpri_mod_ch), + .data_out(rcpri_mod_ch_sync) + ); + +//PCIe mode change synchronization +sync # (.PDATA_RST_VAL(0)) pcie_mod_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (sli_pcie_mode), + .data_out(rpcie_mode) + ); + +// ============================================================================= +// Synchronized Lock/Unlock signals +// ============================================================================= +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + unlock <= 1'b0; + lock <= 1'b0; + pdiff_sync_p1 <= 1'b0; + end + else begin + pdiff_sync_p1 <= pdiff_sync; + if (unlock) begin + unlock <= ~pdiff_sync && pdiff_sync_p1 ? 1'b0 : unlock; + end + else begin + unlock <= pdiff_sync ? (pcount_diff[21:0] > {6'd0, rdiff_comp_unlock}) : 1'b0; + end + if (lock) begin + lock <= ~pdiff_sync && pdiff_sync_p1 ? 1'b0 : lock; + end + else begin + lock <= pdiff_sync ? (pcount_diff[21:0] <= {6'd0, rdiff_comp_lock}) : 1'b0; + end + end +end + +// ============================================================================= +// Refclk Counter, pulse generation logic and Heartbeat monitor logic +// ============================================================================= +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rcount <= 16'd0; + rtc_pul <= 1'b0; + rtc_ctrl <= 1'b0; + rtc_pul_p1 <= 1'b0; + end + else begin + //Counter logic + if ((rgear_p1^rgear == 1'b1) || (rdiv2_p1^rdiv2 == 1'b1) || (rdiv11_p1^rdiv11 == 1'b1) || (rcpri_mod_ch_p1^rcpri_mod_ch_p2 == 1'b1) || (rpcie_mode_p1^rpcie_mode == 1'b1)) begin + if (rtc_ctrl == 1'b1) begin + rcount <= LRCLK_TC_PUL_WIDTH; + end + end + else begin + if (rcount != LRCLK_TC_w) begin + rcount <= rcount + 1; + end + else begin + rcount <= 16'd0; + end + end + + //Pulse control logic + if (rcount == LRCLK_TC_w - 1) begin + rtc_ctrl <= 1'b1; + end + + //Pulse Generation logic + if (rtc_ctrl == 1'b1) begin + if ((rcount == LRCLK_TC_w) || (rcount < LRCLK_TC_PUL_WIDTH)) begin + rtc_pul <= 1'b1; + end + else begin + rtc_pul <= 1'b0; + end + end + + rtc_pul_p1 <= rtc_pul; + end +end + + +// ============================================================================= +// Heartbeat synchronization & monitor logic and Dynamic mode pipeline logic +// ============================================================================= +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rhb_sync_p1 <= 1'b0; + rhb_sync_p2 <= 1'b0; + rhb_wait_cnt <= 8'd0; + rstat_pclk <= 1'b0; + rgear_p1 <= 1'b0; + rdiv2_p1 <= 1'b0; + rdiv11_p1 <= 1'b0; + rcpri_mod_ch_p1 <= 1'b0; + rcpri_mod_ch_p2 <= 1'b0; + rcpri_mod_ch_st <= 1'b0; + rpcie_mode_p1 <= 1'b0; + + end + else begin + //Pipeline stages for the Heartbeat + rhb_sync_p1 <= rhb_sync; + rhb_sync_p2 <= rhb_sync_p1; + + //Pipeline stages of the Dynamic rate control signals + rgear_p1 <= rgear; + rdiv2_p1 <= rdiv2; + rdiv11_p1 <= rdiv11; + + //Pipeline stage for PCIe mode + rpcie_mode_p1 <= rpcie_mode; + + //Pipeline stage for CPRI mode change + rcpri_mod_ch_p1 <= rcpri_mod_ch_sync; + rcpri_mod_ch_p2 <= rcpri_mod_ch_p1; + + //CPRI mode change status logic + if (rcpri_mod_ch_p1^rcpri_mod_ch_sync == 1'b1) begin + rcpri_mod_ch_st <= 1'b1; + end + + //Heartbeat wait counter and monitor logic + if (rtc_ctrl == 1'b1) begin + if (rhb_sync_p1 == 1'b1 && rhb_sync_p2 == 1'b0) begin + rhb_wait_cnt <= 8'd0; + rstat_pclk <= 1'b1; + end + else if (rhb_wait_cnt == LHB_WAIT_CNT) begin + rhb_wait_cnt <= 8'd0; + rstat_pclk <= 1'b0; + end + else begin + rhb_wait_cnt <= rhb_wait_cnt + 1; + end + end + end +end + + +// ============================================================================= +// Pipleline registers for the TC pulse and CPRI mode change logic +// ============================================================================= +always @(posedge sli_pclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + ppul_sync_p1 <= 1'b0; + ppul_sync_p2 <= 1'b0; + ppul_sync_p3 <= 1'b0; + pcpri_mode <= 3'b0; + pcpri_mod_ch <= 1'b0; + end + else begin + ppul_sync_p1 <= ppul_sync; + ppul_sync_p2 <= ppul_sync_p1; + ppul_sync_p3 <= ppul_sync_p2; + + //CPRI mode change logic + pcpri_mode <= sli_cpri_mode; + + if (pcpri_mode != sli_cpri_mode) begin + pcpri_mod_ch <= ~pcpri_mod_ch; + end + end +end + + +// ============================================================================= +// Terminal count logic +// ============================================================================= + +//For SDI protocol with Dynamic rate control enabled +generate +if ((PDYN_RATE_CTRL == "ENABLED") && (PPROTOCOL == "SDI")) begin +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rcount_tc <= 22'd0; + rdiff_comp_lock <= 16'd0; + rdiff_comp_unlock <= 16'd0; + end + else begin + //Terminal count logic + //Div by 11 is enabled + if (rdiv11 == 1'b1) begin + //Gear mode is 16/20 + if (rgear == 1'b1) begin + rcount_tc <= PPCLK_DIV11_TC; + rdiff_comp_lock <= PDIFF_DIV11_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_DIV11_VAL_UNLOCK; + end + else begin + rcount_tc <= {PPCLK_DIV11_TC[20:0], 1'b0}; + rdiff_comp_lock <= {PDIFF_DIV11_VAL_LOCK[14:0], 1'b0}; + rdiff_comp_unlock <= {PDIFF_DIV11_VAL_UNLOCK[14:0], 1'b0}; + end + end + //Div by 2 is enabled + else if (rdiv2 == 1'b1) begin + //Gear mode is 16/20 + if (rgear == 1'b1) begin + rcount_tc <= {1'b0,PPCLK_TC[21:1]}; + rdiff_comp_lock <= {1'b0,PDIFF_VAL_LOCK[15:1]}; + rdiff_comp_unlock <= {1'b0,PDIFF_VAL_UNLOCK[15:1]}; + end + else begin + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end + end + //Both div by 11 and div by 2 are disabled + else begin + //Gear mode is 16/20 + if (rgear == 1'b1) begin + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end + else begin + rcount_tc <= {PPCLK_TC[20:0],1'b0}; + rdiff_comp_lock <= {PDIFF_VAL_LOCK[14:0],1'b0}; + rdiff_comp_unlock <= {PDIFF_VAL_UNLOCK[14:0],1'b0}; + end + end + end +end +end +endgenerate + +//For G8B10B protocol with Dynamic rate control enabled +generate +if ((PDYN_RATE_CTRL == "ENABLED") && (PPROTOCOL == "G8B10B")) begin +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rcount_tc <= 22'd0; + rdiff_comp_lock <= 16'd0; + rdiff_comp_unlock <= 16'd0; + end + else begin + //Terminal count logic + //Div by 2 is enabled + if (rdiv2 == 1'b1) begin + rcount_tc <= {1'b0,PPCLK_TC[21:1]}; + rdiff_comp_lock <= {1'b0,PDIFF_VAL_LOCK[15:1]}; + rdiff_comp_unlock <= {1'b0,PDIFF_VAL_UNLOCK[15:1]}; + end + else begin + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end + end +end +end +endgenerate + + +//For CPRI protocol with Dynamic rate control is disabled +generate +if ((PDYN_RATE_CTRL == "DISABLED") && (PPROTOCOL == "CPRI")) begin +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rcount_tc <= 22'd0; + rdiff_comp_lock <= 16'd0; + rdiff_comp_unlock <= 16'd0; + end + else begin + //Terminal count logic for CPRI protocol + //Only if there is a change in the rate mode from the default + if (rcpri_mod_ch_st == 1'b1) begin + if (rcpri_mod_ch_p1^rcpri_mod_ch_p2 == 1'b1) begin + case(sli_cpri_mode) + 3'd0 : begin //For 0.6Gbps + rcount_tc <= LPCLK_TC_0; + case(PLOL_SETTING) + 'd0 : begin + rdiff_comp_lock <= LPDIFF_LOCK_00; + rdiff_comp_unlock <= LPDIFF_UNLOCK_00; + end + + 'd1 : begin + rdiff_comp_lock <= LPDIFF_LOCK_01; + rdiff_comp_unlock <= LPDIFF_UNLOCK_01; + end + + 'd2 : begin + rdiff_comp_lock <= LPDIFF_LOCK_02; + rdiff_comp_unlock <= LPDIFF_UNLOCK_02; + end + + 'd3 : begin + rdiff_comp_lock <= LPDIFF_LOCK_03; + rdiff_comp_unlock <= LPDIFF_UNLOCK_03; + end + + default : begin + rdiff_comp_lock <= LPDIFF_LOCK_00; + rdiff_comp_unlock <= LPDIFF_UNLOCK_00; + end + endcase + end + + 3'd1 : begin //For 1.2Gbps + rcount_tc <= LPCLK_TC_1; + case(PLOL_SETTING) + 'd0 : begin + rdiff_comp_lock <= LPDIFF_LOCK_10; + rdiff_comp_unlock <= LPDIFF_UNLOCK_10; + end + + 'd1 : begin + rdiff_comp_lock <= LPDIFF_LOCK_11; + rdiff_comp_unlock <= LPDIFF_UNLOCK_11; + end + + 'd2 : begin + rdiff_comp_lock <= LPDIFF_LOCK_12; + rdiff_comp_unlock <= LPDIFF_UNLOCK_12; + end + + 'd3 : begin + rdiff_comp_lock <= LPDIFF_LOCK_13; + rdiff_comp_unlock <= LPDIFF_UNLOCK_13; + end + + default : begin + rdiff_comp_lock <= LPDIFF_LOCK_10; + rdiff_comp_unlock <= LPDIFF_UNLOCK_10; + end + endcase + end + + 3'd2 : begin //For 2.4Gbps + rcount_tc <= LPCLK_TC_2; + case(PLOL_SETTING) + 'd0 : begin + rdiff_comp_lock <= LPDIFF_LOCK_20; + rdiff_comp_unlock <= LPDIFF_UNLOCK_20; + end + + 'd1 : begin + rdiff_comp_lock <= LPDIFF_LOCK_21; + rdiff_comp_unlock <= LPDIFF_UNLOCK_21; + end + + 'd2 : begin + rdiff_comp_lock <= LPDIFF_LOCK_22; + rdiff_comp_unlock <= LPDIFF_UNLOCK_22; + end + + 'd3 : begin + rdiff_comp_lock <= LPDIFF_LOCK_23; + rdiff_comp_unlock <= LPDIFF_UNLOCK_23; + end + + default : begin + rdiff_comp_lock <= LPDIFF_LOCK_20; + rdiff_comp_unlock <= LPDIFF_UNLOCK_20; + end + endcase + end + + 3'd3 : begin //For 3.07Gbps + rcount_tc <= LPCLK_TC_3; + case(PLOL_SETTING) + 'd0 : begin + rdiff_comp_lock <= LPDIFF_LOCK_30; + rdiff_comp_unlock <= LPDIFF_UNLOCK_30; + end + + 'd1 : begin + rdiff_comp_lock <= LPDIFF_LOCK_31; + rdiff_comp_unlock <= LPDIFF_UNLOCK_31; + end + + 'd2 : begin + rdiff_comp_lock <= LPDIFF_LOCK_32; + rdiff_comp_unlock <= LPDIFF_UNLOCK_32; + end + + 'd3 : begin + rdiff_comp_lock <= LPDIFF_LOCK_33; + rdiff_comp_unlock <= LPDIFF_UNLOCK_33; + end + endcase + end + + 3'd4 : begin //For 4.9125bps + rcount_tc <= LPCLK_TC_4; + case(PLOL_SETTING) + 'd0 : begin + rdiff_comp_lock <= LPDIFF_LOCK_40; + rdiff_comp_unlock <= LPDIFF_UNLOCK_40; + end + + 'd1 : begin + rdiff_comp_lock <= LPDIFF_LOCK_41; + rdiff_comp_unlock <= LPDIFF_UNLOCK_41; + end + + 'd2 : begin + rdiff_comp_lock <= LPDIFF_LOCK_42; + rdiff_comp_unlock <= LPDIFF_UNLOCK_42; + end + + 'd3 : begin + rdiff_comp_lock <= LPDIFF_LOCK_43; + rdiff_comp_unlock <= LPDIFF_UNLOCK_43; + end + + default : begin + rdiff_comp_lock <= LPDIFF_LOCK_40; + rdiff_comp_unlock <= LPDIFF_UNLOCK_40; + end + endcase + end + + default : begin + rcount_tc <= LPCLK_TC_0; + rdiff_comp_lock <= LPDIFF_LOCK_00; + rdiff_comp_unlock <= LPDIFF_UNLOCK_00; + end + endcase + end + end + else begin + //If there is no change in the CPRI rate mode from default + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end + end +end +end +endgenerate + +//For PCIe protocol with Dynamic rate control disabled +generate +if ((PDYN_RATE_CTRL == "DISABLED") && (PPROTOCOL == "PCIE")) begin +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rcount_tc <= 22'd0; + rdiff_comp_lock <= 16'd0; + rdiff_comp_unlock <= 16'd0; + end + else begin + //Terminal count logic + if (PPCIE_MAX_RATE == "2.5") begin + //2.5G mode is enabled + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end + else begin + //5G mode is enabled + if (rpcie_mode == 1'b1) begin + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end + else begin + //2.5G mode is enabled + rcount_tc <= {1'b0,PPCLK_TC[21:1]}; + rdiff_comp_lock <= {1'b0,PDIFF_VAL_LOCK[15:1]}; + rdiff_comp_unlock <= {1'b0,PDIFF_VAL_UNLOCK[15:1]}; + end + end + end +end +end +endgenerate + +//For all protocols other than CPRI & PCIe +generate +if ((PDYN_RATE_CTRL == "DISABLED") && ((PPROTOCOL != "CPRI") && (PPROTOCOL != "PCIE"))) begin +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rcount_tc <= 22'd0; + rdiff_comp_lock <= 16'd0; + rdiff_comp_unlock <= 16'd0; + end + else begin + //Terminal count logic for all protocols other than CPRI & PCIe + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end +end +end +endgenerate + + +// ============================================================================= +// Tx_pclk counter, Heartbeat and Differential value logic +// ============================================================================= +always @(posedge sli_pclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + pcount <= 22'd0; + pcount_diff <= 22'd65535; + phb_cnt <= 3'd0; + phb <= 1'b0; + end + else begin + //Counter logic + if (ppul_sync_p1 == 1'b1 && ppul_sync_p2 == 1'b0) begin + pcount <= 22'd0; + end + else begin + pcount <= pcount + 1; + end + + //Heartbeat logic + phb_cnt <= phb_cnt + 1; + + if ((phb_cnt < 3'd4) && (phb_cnt >= 3'd0)) begin + phb <= 1'b1; + end + else begin + phb <= 1'b0; + end + + //Differential value logic + if (ppul_sync_p1 == 1'b1 && ppul_sync_p2 == 1'b0) begin + pcount_diff <= rcount_tc + ~(pcount) + 1; + end + else if (ppul_sync_p2 == 1'b1 && ppul_sync_p3 == 1'b0) begin + if (pcount_diff[21] == 1'b1) begin + pcount_diff <= ~(pcount_diff) + 1; + end + end + end +end + + +// ============================================================================= +// State transition logic for SLL FSM +// ============================================================================= +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + sll_state <= LPLL_LOSS_ST; + end + else begin + //Reasons to declare an immediate loss - Absence of Tx_pclk, Dynamic rate change for SDI or CPRI + if ((rstat_pclk == 1'b0) || (rgear_p1^rgear == 1'b1) || (rdiv2_p1^rdiv2 == 1'b1) || + (rdiv11_p1^rdiv11 == 1'b1) || (rcpri_mod_ch_p1^rcpri_mod_ch_p2 == 1'b1) || (rpcie_mode_p1^rpcie_mode == 1'b1)) begin + sll_state <= LPLL_LOSS_ST; + end + else begin + case(sll_state) + LPLL_LOSS_ST : begin + if (rtc_pul_p1 == 1'b1 && rtc_pul == 1'b0) begin + if (unlock) begin + sll_state <= LPLL_LOSS_ST; + end + else if (lock) begin + if (PLOL_SETTING == 2'd0) begin + sll_state <= LPLL_PRELOCK_ST; + end + else begin + sll_state <= LPLL_LOCK_ST; + end + end + end + end + + LPLL_LOCK_ST : begin + if (rtc_pul_p1 == 1'b1 && rtc_pul == 1'b0) begin + if (lock) begin + sll_state <= LPLL_LOCK_ST; + end + else begin + if (PLOL_SETTING == 2'd0) begin + sll_state <= LPLL_LOSS_ST; + end + else begin + sll_state <= LPLL_PRELOSS_ST; + end + end + end + end + + LPLL_PRELOCK_ST : begin + if (rtc_pul_p1 == 1'b1 && rtc_pul == 1'b0) begin + if (lock) begin + sll_state <= LPLL_LOCK_ST; + end + else begin + sll_state <= LPLL_PRELOSS_ST; + end + end + end + + LPLL_PRELOSS_ST : begin + if (rtc_pul_p1 == 1'b1 && rtc_pul == 1'b0) begin + if (unlock) begin + sll_state <= LPLL_PRELOSS_ST; + end + else if (lock) begin + sll_state <= LPLL_LOCK_ST; + end + end + end + + default: begin + sll_state <= LPLL_LOSS_ST; + end + endcase + end + end +end + + +// ============================================================================= +// Logic for Tx PLL Lock +// ============================================================================= +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + pll_lock <= 1'b0; + end + else begin + case(sll_state) + LPLL_LOSS_ST : begin + pll_lock <= 1'b0; + end + + LPLL_LOCK_ST : begin + pll_lock <= 1'b1; + end + + LPLL_PRELOSS_ST : begin + pll_lock <= 1'b0; + end + + default: begin + pll_lock <= 1'b0; + end + endcase + end +end + +assign slo_plol = ~(pll_lock); + +endmodule + + +// =========================================================================== +// >>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< +// --------------------------------------------------------------------------- +// Copyright (c) 2015 by Lattice Semiconductor Corporation +// ALL RIGHTS RESERVED +// ------------------------------------------------------------------ +// +// Permission: +// +// Lattice SG Pte. Ltd. grants permission to use this code +// pursuant to the terms of the Lattice Reference Design License Agreement. +// +// +// Disclaimer: +// +// This VHDL or Verilog source code is intended as a design reference +// which illustrates how these types of functions can be implemented. +// It is the user's responsibility to verify their design for +// consistency and functionality through the use of formal +// verification methods. Lattice provides no warranty +// regarding the use or functionality of this code. +// +// --------------------------------------------------------------------------- +// +// Lattice SG Pte. Ltd. +// 101 Thomson Road, United Square #07-02 +// Singapore 307591 +// +// +// TEL: 1-800-Lattice (USA and Canada) +// +65-6631-2000 (Singapore) +// +1-503-268-8001 (other locations) +// +// web: http://www.latticesemi.com/ +// email: techsupport@latticesemi.com +// +// --------------------------------------------------------------------------- +// +// ============================================================================= +// FILE DETAILS +// Project : Synchronizer Logic +// File : sync.v +// Title : Synchronizer module +// Description : +// ============================================================================= +// REVISION HISTORY +// Version : 1.0 +// Author(s) : AV +// Mod. Date : July 7, 2015 +// Changes Made : Initial Creation +// ----------------------------------------------------------------------------- +// Version : 1.1 +// Author(s) : EB +// Mod. Date : March 21, 2017 +// Changes Made : +// ============================================================================= + +`ifndef PCS_SYNC_MODULE +`define PCS_SYNC_MODULE +module sync ( + clk, + rst, + data_in, + data_out + ); + +input clk; //Clock in which the async data needs to be synchronized to +input rst; //Active high reset +input data_in; //Asynchronous data +output data_out; //Synchronized data + +parameter PDATA_RST_VAL = 0; //Reset value for the registers + +reg data_p1; +reg data_p2; + +// ============================================================================= +// Synchronization logic +// ============================================================================= +always @(posedge clk or posedge rst) begin + if (rst == 1'b1) begin + data_p1 <= PDATA_RST_VAL; + data_p2 <= PDATA_RST_VAL; + end + else begin + data_p1 <= data_in; + data_p2 <= data_p1; + end +end + +assign data_out = data_p2; + +endmodule +`endif + diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/.recordref b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/.recordref new file mode 100644 index 0000000..e69de29 diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/_CMD_.CML b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/_CMD_.CML new file mode 100644 index 0000000..5a64106 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/_CMD_.CML @@ -0,0 +1 @@ + -osyn /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.srs -top sgmii_ecp5 -hdllog /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/synlog/sgmii_ecp5_compiler.srr -encrypt -mp 4 -verification_mode 0 -vhdl -prodtype synplify_pro -dspmac -fixsmult -infer_seqShift -nram -sdff_counter -divnmod -nostructver -encrypt -pro -dmgen /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/dm -lite -ui -fid2 -ram -sharing on -ll 2000 -autosm -ignore_undefined_lib -lib work /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.vhd -verilog -prodtype synplify_pro -dspmac -fixsmult -infer_seqShift -nram -sdff_counter -divnmod -nostructver -I /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/ -I /home/soft/lattice/diamond/3.10_x64/synpbase/lib -v2001 -devicelib /home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/ecp5um.v -devicelib /home/soft/lattice/diamond/3.10_x64/synpbase/lib/lucent/pmi_def.v -encrypt -pro -dmgen /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/dm -ui -fid2 -ram -sharing on -ll 2000 -autosm -lib work /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v -jobname "compiler" \ No newline at end of file diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/_cmd._cml b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/_cmd._cml new file mode 100644 index 0000000..fd034f6 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/_cmd._cml @@ -0,0 +1 @@ +-link -encrypt -top sgmii_ecp5 -osyn /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_comp.srs /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/layer0.srs /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/layer1.srs \ No newline at end of file diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/dm/layer0.xdm b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/dm/layer0.xdm new file mode 100644 index 0000000..eca8c09 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/dm/layer0.xdm @@ -0,0 +1,548 @@ +%%% protect protected_file +@EG +- +]17p0Osk0CksRsPC#MHF=3"4j +"> +!S<-1-RFOksCHRVDRC#O0FMskHL0oHMRR0F0REC8HC#o-MR-S> +S +SS1SS1SS +SS1SS1SS1S +SF<1kCsOR"b=/lEFCF/#VD0/NH00O8C/HFNlMd8/3_4jG/nc#b$MLCN#/LDH/8PE/bE$CMsC0P#3ER8"N(=""=RD"8PEDO"RD0H#=4"-"DRbH=#0""-4/S> +SF<1kCsOR"b=/lEFC8/NsMHN/0oH/L0s6/#O0bClDCN0/Fbs[0CO/CtLu O#GC0sV OD/l#oHCH_O/b6#HolHO_CbP63ER8"NU=""=RD"8PEDO"RD0H#=4"-"DRbH=#0""-4/S> +SF<1kCsOR"b=/lEFCF/#VD0/NH00O8C/HFNlMd8/3_4jG/nc#b$MLCN#/LDH/ODkC/M0C6ObkPl3ER8"Ng=""=RD"8PEDO"RD0H#=4"-"DRbH=#0""-4/S> + + +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMI="F3s #HolHO_CbD6#DF_Os#C3$LM_D NO_GLF"=RD"8PED +">SWSSqS +SRS +S"/ +S +SS +S +SR +SR +SR +SR"/ +SuS +SRSuSS +S"/ + +SRSqS +SR +SR +SR + +/S<7>CV +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMI="F3s #HolHO_Cb#6sDF_Os#C3$LM_D NO_GLF"=RD"8PED +">SWSS +S"/ +SqS +SRSqSSqS"/ +"/ +S +SS +S +SR +SR"/ +S +S"/ +SqSSqSSqS +/S<7>CV +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMC="Okb6lB37z#q3$LM_D NO_GLF"=RD"8PED +">SWSS +S"/ +SqS +SRSqSS +SSqSS +SSuSS +SSuSS +SSuS"/ + +SR +SR +SR"/ +S +S +SR +SR"/ +"/ +S +S"/ + +SR +SR +SRSuS"/ +S +S +SR +SR +SR"/ + +SR"/ + +SRSuS"/ +SuS +SR +SR +SR +SR +SRSuS"/ +S +S +SR"/ + +SR +SR +SR +SR +SRS +S"/ +SuS +SR"/ + +SR"/ + +SRS +S"/ +S +S +SR"/ + +SRS +S"/ + +SR"/ + +SR"/ +S +S +SRSuSS +S"/ +SuS +SR +SR +SR"/ +S +S +SRSuS"/ +"/ +"/ +"/ +"/ +S +S +SR"/ +"/ +"/ +SuS +SR +SR +SR"/ + +SR +SR +SRSuS"/ +S +S +SR +SR +SR +SR +SRS +S"/ +"/ +"/ +SuS +SR"/ + +SRSuS"/ + +SR"/ +SuS +SRS +S"/ +SuS +SRSuS"/ +S +S +SRS +S"/ +S +S +SRSuS"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ + +SR"/ +S +S +SRSuS"/ +SuS +SR +SR +SR +SR +SRSuS"/ +S +S +SRS +S"/ +"/ +"/ +SuS +SR"/ + +SR +SR +SR +SR +SRS +S"/ +SuS +SRS +S"/ +SuS +SRS +S"/ +"/ +"/ +SuS +SRS +S"/ +"/ +"/ +SuS +SRS +S"/ +SuS +SR"/ + +SRSuS"/ + +SR"/ +SuS +SRS +S"/ +SuS +SRSuS"/ +S +S +SRSuS"/ +"/ +"/ +"/ +"/ + +SR"/ +S +S +SRS +S"/ + +SR"/ + +SR"/ +"/ +"/ +S +S +SR"/ + +SR +SR +SRSuSSuSSuS +SR"/ + +SR"/ +"/ +SuS +SRS +S"/ +SqS"/ +"/ +"/ +SqSSqSSqSSqS + + + +/S<7>CV +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMI="F3s #HolHO_CbP634D"R=E"P8>D" +S +S"/ +S +SS +SS +S"/ + +SRS +S + + + + +SC<)V=RM"bCO63kl7qBz3M#$_NLDOL _FRG"H7="B_zjH0M#"S> +SWS +SqSS +SSR +SqSS +SqSS +SSR"/ +SSSS"/ +SSS +SqSS +SSRS +SqS +SqS +SqSSSS +SSR +SqS +SqS"/ +SSS +SqSS +SSR +SqS"/ +SSS"/ +SSS"/ +SSSS +SSR +SqS"/ +SSSS +SqSS +SSRS"/ +SSS +SqSS +SSR"/ +SSSSS +SqSS +SSR +SqSS"/ +SSSS +SSR +SqSSS +SSRSS +SqSS +SqS"/ +SSSS +SSRS +SSRS +SSR"/ +SSSS +SSRS +SqS +SqSS"/ +SSSS +SSR +SqSS"/ +SSS +SqS"/ +SSSS +SSR +SqSS"/ +SSS +SqSS +SqSS"/ +SSSS +SSRS +SSR"/ +SSS +SqSSS +SSR"/ +SSS"/ +SSSSSS"/ +SSSS +SSRS +SSR"/ +SSSS +SSR"/ +SSS +SqSS +SSRS +SqSSS +SSR +SqS"/ +SSSS +SSR +SqS +SqS +SqSS +SqS"/ +SSSS +SqSS +SSR"/ +SSSS +SqSSS +SSRS +SSR +SqSS +SSR +SqS"/ +SSSSS +SSR"/ +SSSS +SSR +SqSS +SSR +SqS"/ +SSS +SqS +SqSS"/ +SSS"/ +SSS +SqSS +SSR"/ +SSS +SqSS +SSRS +SSRS +SqSS +SSR +SqS"/ +SSS"/ +SSSSS +SSRSS +SqSS +S +SC<)V=RM"sIF o3#l_HHC6Obs_#DOCFs3M#$_NLDOL _FRG"Hs="#HD_M"#0>S +SSRS +SSR +S)S)S +SWS +SqSS/S<)>CV +/S<7>CV +]sC + +@ diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/dm/layer1.xdm b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/dm/layer1.xdm new file mode 100644 index 0000000..3a16f3e --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/dm/layer1.xdm @@ -0,0 +1,255 @@ +%%% protect protected_file +@EG +- +]17p0Osk0CksRsPC#MHF=3"4j +"> +!S<-1-RFOksCHRVDRC#O0FMskHL0oHMRR0F0REC8HC#o-MR-S> +S +S +SF<1kCsOR"b=/lEFCF/#VD0/NH00O8C/HFNlMd8/3_4jG/nc#b$MLCN#/LDH/ODkC/M0b_lH83CVPN"R=""4R"D=PHCsD"FoRHOD#"0=-R4"b#DH0-="4>"/ + +SF<1kCsOR"b=/lEFCF/#VD0/NH00O8C/HFNlMd8/3_4jG/nc#b$MLCN#/LDH/FPDol/ksN_Ob3HlPN"R=""dR"D=PHCsD"FoRHOD#"0=-R4"b#DH0-="4>"/ + +SF<1kCsOR"b=/lEFCF/#VD0/NH00O8C/HFNlMd8/3_4jG/nc#b$MLCN#/LDH/FPDoO/#C_lHbCHb#P3#EN"R=""6R"D=PHCsD"FoRHOD#"0=-R4"b#DH0-="4>"/ +S1 +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMI="F3s #HolHO_Cb#6sDF_OsZC_.N_D$4Cs3sPCHoDF"=RD"sPCHoDF"S> +SRSqS"/ +S +SS +S"/ +S +SSuSSuS"/ +"/ +S +SSuSSuS +SR +SRS +SSuS +SR +SRS +S"/ +SuSS +SSuSS +SSuS +SR"/ + +SR"/ + +SRSqSSqSSqSSqS + + + +/S<7>CV +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMI="F3s #O$M_3j#PHCsD"FoR"D=PHCsD"Fo>S +S +SRSqS +SRSuS +SR +SRS +SS +SS +S +/S<7>CV +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMI="F3s #HolHO_CbD6#DF_OsZC_4N_D$4Cs3sPCHoDF"=RD"sPCHoDF"S> +SRSqS"/ +S +SS +S +SR"/ +SuSS +S +SRS +S"/ + +SR +SR +SR"/ +S +S"/ +S +S"/ +"/ +"/ +"/ +S +S +SR +SR +SRSuS"/ +S +S +SR +SRSuS"/ +S +S +SRSuS"/ + +SR"/ +S +SSuSS +SSuSS +SSuS +SRS +S"/ +SuS +SRS +SS +SS +SS +SS +S"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ +"/ + +SR"/ +"/ +"/ +"/ +SqS + + + + +SC<)V=RM"sIF $3#MjO_#C3PsFHDoH"R=E"bL$_#MHO_M"#0>S +SSRR/ +SSS"/ +SSS"/ +SSSS/S<)>CV +S +SqS +SqS +SqSS +S +SC<)V=RM"sIF $3#MjO_#C3PsFHDoH"R=8"bH_VV#O$M_#HM0 +">S +SqS +SqS +SqSS +S +SC<)V=RM"sIF $3#MjO_#C3PsFHDoH"R=C"oN#s_$_MOH0M#"S> +SWSS +SSRS +SSRS +SSR"/ +S +SS +SSRR/ +SSS"/ +SSS"/ +SSSS/S<)>CV +S +SSRR/ +SSS"/ +SSS"/ +SSSS/S<)>CV +0" +SSSSSS +S)S)SS +SqS +SqS +SqSS +S + +/p]71k0sOs0kC@> + + + + diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/run_options.txt b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/run_options.txt new file mode 100644 index 0000000..db46984 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/run_options.txt @@ -0,0 +1,76 @@ +#-- Synopsys, Inc. +#-- Version M-2017.03L-SP1-1 +#-- Project file /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/run_options.txt +#-- Written on Mon May 13 09:09:03 2019 + + +#project files +add_file -vhdl -lib work "/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.vhd" +add_file -verilog "/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v" +add_file -fpga_constraint "/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.fdc" + + + +#implementation: "syn_results" +impl -add syn_results -type fpga + +# +#implementation attributes + +set_option -vlog_std v2001 + +#device options +set_option -technology ecp5um +set_option -part LFE5UM_25F +set_option -package MG285C +set_option -speed_grade -6 +set_option -part_companion "" + +#compilation/mapping options +set_option -top_module "sgmii_ecp5" + +# hdl_compiler_options +set_option -distributed_compile 0 + +# mapper_without_write_options +set_option -frequency 100 +set_option -srs_instrumentation 1 + +# mapper_options +set_option -write_verilog 1 +set_option -write_vhdl 1 + +# Lattice XP +set_option -maxfan 50 +set_option -disable_io_insertion 1 +set_option -retiming 0 +set_option -pipe 0 +set_option -forcegsr false +set_option -fix_gated_and_generated_clocks 1 +set_option -rw_check_on_ram 1 +set_option -update_models_cp 0 +set_option -syn_edif_array_rename 1 +set_option -Write_declared_clocks_only 1 + +# NFilter +set_option -no_sequential_opt 0 + +# sequential_optimization_options +set_option -symbolic_fsm_compiler 1 + +# Compiler Options +set_option -compiler_compatible 0 +set_option -resource_sharing 1 + +# Compiler Options +set_option -auto_infer_blackbox 0 + +#automatic place and route (vendor) options +set_option -write_apr_constraint 1 + +#set result format/file last +project -result_file "./sgmii_ecp5.edn" + +#set log file +set_option log_file "/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.srf" +impl -active "syn_results" diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/scemi_cfg.txt b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/scemi_cfg.txt new file mode 100644 index 0000000..868d437 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/scemi_cfg.txt @@ -0,0 +1,3 @@ +## UMR3 MESSAGE PORT CONFIGURATION FILE +## ************************************ +XTOR_DPI_MSG_PORT_UMR_ADDR_VERSION=0 diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/scratchproject.prs b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/scratchproject.prs new file mode 100644 index 0000000..7cf9f4b --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/scratchproject.prs @@ -0,0 +1,74 @@ +#-- Synopsys, Inc. +#-- Version M-2017.03L-SP1-1 +#-- Project file /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/scratchproject.prs + +#project files +add_file -vhdl -lib work "/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.vhd" +add_file -verilog "/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v" +add_file -fpga_constraint "/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.fdc" + + + +#implementation: "syn_results" +impl -add /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results -type fpga + +# +#implementation attributes + +set_option -vlog_std v2001 + +#device options +set_option -technology ecp5um +set_option -part LFE5UM_25F +set_option -package MG285C +set_option -speed_grade -6 +set_option -part_companion "" + +#compilation/mapping options +set_option -top_module "sgmii_ecp5" + +# hdl_compiler_options +set_option -distributed_compile 0 + +# mapper_without_write_options +set_option -frequency 100 +set_option -srs_instrumentation 1 + +# mapper_options +set_option -write_verilog 1 +set_option -write_vhdl 1 + +# Lattice XP +set_option -maxfan 50 +set_option -disable_io_insertion 1 +set_option -retiming 0 +set_option -pipe 0 +set_option -forcegsr false +set_option -fix_gated_and_generated_clocks 1 +set_option -rw_check_on_ram 1 +set_option -update_models_cp 0 +set_option -syn_edif_array_rename 1 +set_option -Write_declared_clocks_only 1 + +# NFilter +set_option -no_sequential_opt 0 + +# sequential_optimization_options +set_option -symbolic_fsm_compiler 1 + +# Compiler Options +set_option -compiler_compatible 0 +set_option -resource_sharing 1 + +# Compiler Options +set_option -auto_infer_blackbox 0 + +#automatic place and route (vendor) options +set_option -write_apr_constraint 1 + +#set result format/file last +project -result_file "/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.edn" + +#set log file +set_option log_file "/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.srf" +impl -active "syn_results" diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.areasrr b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.areasrr new file mode 100644 index 0000000..c3d63b8 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.areasrr @@ -0,0 +1,97 @@ +---------------------------------------------------------------------- +Report for cell sgmii_ecp5.v1 + +Register bits: 221 of 24288 (1%) +PIC Latch: 0 +I/O cells: 0 + Cell usage: + cell count Res Usage(%) + CCU2C 113 100.0 + DCUA 1 100.0 + FD1P3BX 20 100.0 + FD1P3DX 92 100.0 + FD1S3BX 12 100.0 + FD1S3DX 97 100.0 + GSR 1 100.0 + INV 3 100.0 + ORCALUT4 154 100.0 + PFUMX 2 100.0 + PUR 1 100.0 + VHI 6 100.0 + VLO 6 100.0 +SUB MODULES + sgmii_ecp5rsl_core_Z2_layer1 1 100.0 + sgmii_ecp5sll_core_Z1_layer1 1 100.0 + sync_0s 1 100.0 + sync_0s_0 1 100.0 + sync_0s_6 1 100.0 + + TOTAL 513 +---------------------------------------------------------------------- +Report for cell sgmii_ecp5rsl_core_Z2_layer1.netlist + Instance path: rsl_inst + Cell usage: + cell count Res Usage(%) + CCU2C 51 45.1 + FD1P3BX 4 20.0 + FD1P3DX 74 80.4 + FD1S3BX 12 100.0 + FD1S3DX 37 38.1 + ORCALUT4 100 64.9 + PFUMX 2 100.0 + VHI 1 16.7 + VLO 1 16.7 + + TOTAL 282 +---------------------------------------------------------------------- +Report for cell sgmii_ecp5sll_core_Z1_layer1.netlist + Instance path: sll_inst + Cell usage: + cell count Res Usage(%) + CCU2C 62 54.9 + FD1P3BX 16 80.0 + FD1P3DX 18 19.6 + FD1S3DX 60 61.9 + INV 3 100.0 + ORCALUT4 54 35.1 + VHI 4 66.7 + VLO 4 66.7 +SUB MODULES + sync_0s 1 100.0 + sync_0s_0 1 100.0 + sync_0s_6 1 100.0 + + TOTAL 224 +---------------------------------------------------------------------- +Report for cell sync_0s_0.netlist + Original Cell name sync_0s + Instance path: sll_inst.pdiff_sync_inst + Cell usage: + cell count Res Usage(%) + FD1S3DX 2 2.1 + VHI 1 16.7 + VLO 1 16.7 + + TOTAL 4 +---------------------------------------------------------------------- +Report for cell sync_0s_6.netlist + Original Cell name sync_0s + Instance path: sll_inst.rtc_sync_inst + Cell usage: + cell count Res Usage(%) + FD1S3DX 2 2.1 + VHI 1 16.7 + VLO 1 16.7 + + TOTAL 4 +---------------------------------------------------------------------- +Report for cell sync_0s.netlist + Original Cell name sync_0s + Instance path: sll_inst.phb_sync_inst + Cell usage: + cell count Res Usage(%) + FD1S3DX 2 2.1 + VHI 1 16.7 + VLO 1 16.7 + + TOTAL 4 diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.fse b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.fse new file mode 100644 index 0000000..cc147f0 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.fse @@ -0,0 +1,12 @@ + +fsm_encoding {61801018011} sequential + +fsm_state_encoding {61801018011} LPLL_LOSS_ST {00} + +fsm_state_encoding {61801018011} LPLL_PRELOSS_ST {01} + +fsm_state_encoding {61801018011} LPLL_PRELOCK_ST {10} + +fsm_state_encoding {61801018011} LPLL_LOCK_ST {11} + +fsm_registers {61801018011} {sll_state[1]} {sll_state[0]} diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.htm b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.htm new file mode 100644 index 0000000..31d89ed --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.htm @@ -0,0 +1,9 @@ + + + syntmp/sgmii_ecp5_srr.htm log file + + + + + + diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.prj b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.prj new file mode 100644 index 0000000..8e1a1a9 --- /dev/null +++ b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.prj @@ -0,0 +1,47 @@ +#-- Lattice Semiconductor Corporation Ltd. +#-- Synplify OEM project file /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.prj +#-- Written on Mon May 13 09:09:03 2019 + + +#device options +set_option -technology ecp5um +set_option -part LFE5UM-85F +set_option -speed_grade 8 + +#use verilog 2001 standard option +set_option -vlog_std v2001 + +#map options +set_option -frequency 100 +set_option -fanout_limit 50 +set_option -disable_io_insertion true +set_option -retiming false +set_option -pipe false +set_option -pipe false +set_option -force_gsr false + +#simulation options +set_option -write_verilog true +set_option -write_vhdl true + +#timing analysis options + +#automatic place and route (vendor) options +set_option -write_apr_constraint 1 + +#-- add_file options +add_file -vhdl -lib work "/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.vhd" +add_file -verilog -lib work "/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v" +add_file -constraint {"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.fdc"} + +#-- top module name +set_option -top_module sgmii_ecp5 + +#-- set result format/file last +project -result_file "sgmii_ecp5.edn" + +#-- error message log file +project -log_file sgmii_ecp5.srf + +#-- run Synplify with 'arrange VHDL file' +project -run diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.srd b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.srd new file mode 100644 index 0000000000000000000000000000000000000000..d5aca9726b49e3bd8d963feb8c55b4c768c5669e GIT binary patch literal 72944 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 new code + 00 -> 00 + 01 -> 01 + 10 -> 10 + 11 -> 11 +@N: MO225 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1801:0:1801:5|There are no possible illegal states for state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)); safe FSM implementation is not required. + +Finished constraint checker preprocessing (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + +None +None + +Finished constraint checker (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + +Pre-mapping successful! + +At Mapper Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 58MB peak: 144MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime +# Mon May 13 09:09:07 2019 + +###########################################################] +Map & Optimize Report + +# Mon May 13 09:09:07 2019 + +Synopsys Lattice Technology Mapper, Version maplat, Build 1796R, Built Aug 4 2017 09:36:35 +Copyright (C) 1994-2017 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited. +Product Version M-2017.03L-SP1-1 + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 101MB) + +@N: MF248 |Running in 64-bit mode. +@N: MF666 |Clock conversion enabled. (Command "set_option -fix_gated_and_generated_clocks 1" in the project file.) + +Design Input Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 100MB peak: 102MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 114MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 113MB peak: 116MB) + + + +Starting Optimization and Mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + + +Available hyper_sources - for debug and ip models + None Found + + +Finished RTL optimizations (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 142MB peak: 144MB) + +Encoding state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)) +original code -> new code + 00 -> 00 + 01 -> 01 + 10 -> 10 + 11 -> 11 +@N: MO225 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1801:0:1801:5|There are no possible illegal states for state machine sll_state[3:0] (in view: work.sgmii_ecp5sll_core_Z1_layer1(verilog)); safe FSM implementation is not required. +@N: MO231 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1350:0:1350:5|Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance rhb_wait_cnt[7:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1304:0:1304:5|Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance rcount[15:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1759:0:1759:5|Found counter in view:work.sgmii_ecp5sll_core_Z1_layer1(verilog) instance pcount[21:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":412:3:412:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk1\.plol_cnt[19:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":909:3:909:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.genblk3\.rxr_wt_cnt[11:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":527:3:527:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk1\.genblk2\.txr_wt_cnt[11:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":778:3:778:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.rlols0_cnt[17:0] +@N: MO231 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":680:3:680:8|Found counter in view:work.sgmii_ecp5rsl_core_Z2_layer1(verilog) instance genblk2\.rlol1_cnt[18:0] + +Starting factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 143MB peak: 144MB) + + +Finished factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 145MB) + + +Starting gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 145MB) + + +Finished gated-clock and generated-clock conversion (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 144MB peak: 145MB) + + +Finished generic timing optimizations - Pass 1 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 145MB peak: 145MB) + + +Starting Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:01s; Memory used current: 145MB peak: 146MB) + + +Finished Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:01s; Memory used current: 145MB peak: 146MB) + + +Finished generic timing optimizations - Pass 2 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:01s; Memory used current: 145MB peak: 146MB) + + +Finished preparing to map (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 145MB peak: 146MB) + +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). + +Finished technology mapping (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 147MB peak: 149MB) + +Pass CPU time Worst Slack Luts / Registers +------------------------------------------------------------ + 1 0h:00m:01s 4.90ns 155 / 221 +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.phb_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.rtc_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). +@N: FX1019 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5_softlogic.v":1988:0:1988:5|Adding ASYNC_REG property on synchronizing instance sll_inst.pdiff_sync_inst.data_p1 (in view: work.sgmii_ecp5(v1)). + +Finished technology timing optimizations and critical path resynthesis (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 147MB peak: 149MB) + +@N: FX164 |The option to pack registers in the IOB has not been specified. Please set syn_useioff attribute. + +Finished restoring hierarchy (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 148MB peak: 149MB) + + + +@S |Clock Optimization Summary + + +#### START OF CLOCK OPTIMIZATION REPORT #####[ + +3 non-gated/non-generated clock tree(s) driving 221 clock pin(s) of sequential element(s) +0 gated/generated clock tree(s) driving 0 clock pin(s) of sequential element(s) +0 instances converted, 0 sequential instances remain driven by gated/generated clocks + +============================================= Non-Gated/Non-Generated Clocks ============================================= +Clock Tree ID Driving Element Drive Element Type Fanout Sample Instance +-------------------------------------------------------------------------------------------------------------------------- +@K:CKID0001 pll_refclki port 91 rsl_inst.genblk1\.genblk2\.mfor\[0\]\.txpr_appd[0] +@K:CKID0002 rxrefclk port 77 rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] +@K:CKID0003 DCU0_inst DCUA 53 sll_inst.pcount[21] +========================================================================================================================== + + +##### END OF CLOCK OPTIMIZATION REPORT ######] + + +Start Writing Netlists (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 112MB peak: 149MB) + +Writing Analyst data base /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/synwork/sgmii_ecp5_m.srm + +Finished Writing Netlist Databases (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 147MB peak: 149MB) + +Writing EDIF Netlist and constraint files +@N: FX1056 |Writing EDF file: /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.edn +M-2017.03L-SP1-1 +@N: BW106 |Synplicity Constraint File capacitance units using default value of 1pF + +Finished Writing EDIF Netlist and constraint files (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 151MB peak: 153MB) + +Writing Verilog Simulation files + +Finished Writing Verilog Simulation files (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB) + +Writing VHDL Simulation files + +Finished Writing VHDL Simulation files (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB) + + +Start final timing analysis (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB) + +@W: MT246 :"/home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.vhd":162:4:162:12|Blackbox DCUA is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results) +@W: MT420 |Found inferred clock sgmii_ecp5|rxrefclk with period 10.00ns. Please declare a user-defined clock on object "p:rxrefclk" +@W: MT420 |Found inferred clock sgmii_ecp5|pll_refclki with period 10.00ns. Please declare a user-defined clock on object "p:pll_refclki" +@W: MT420 |Found inferred clock sgmii_ecp5|tx_pclk_inferred_clock with period 10.00ns. Please declare a user-defined clock on object "n:tx_pclk" + + +##### START OF TIMING REPORT #####[ +# Timing Report written on Mon May 13 09:09:11 2019 +# + + +Top view: sgmii_ecp5 +Requested Frequency: 100.0 MHz +Wire load mode: top +Paths requested: 5 +Constraint File(s): /home/adrian/git/trb5sc/template/project/GbePcsExtrefclk/sgmii_ecp5/sgmii_ecp5.fdc + +@N: MT320 |This timing report is an estimate of place and route data. For final timing results, use the FPGA vendor place and route report. + +@N: MT322 |Clock constraints include only register-to-register paths associated with each individual clock. + + + +Performance Summary +******************* + + +Worst slack in design: 4.043 + + Requested Estimated Requested Estimated Clock Clock +Starting Clock Frequency Frequency Period Period Slack Type Group +---------------------------------------------------------------------------------------------------------------------------------------- +sgmii_ecp5|pll_refclki 100.0 MHz 168.9 MHz 10.000 5.921 4.079 inferred Inferred_clkgroup_0 +sgmii_ecp5|rxrefclk 100.0 MHz 167.9 MHz 10.000 5.957 4.043 inferred Inferred_clkgroup_1 +sgmii_ecp5|tx_pclk_inferred_clock 100.0 MHz 237.5 MHz 10.000 4.211 5.789 inferred Inferred_clkgroup_2 +System 100.0 MHz 840.7 MHz 10.000 1.190 8.810 system system_clkgroup +======================================================================================================================================== + + + + + +Clock Relationships +******************* + +Clocks | rise to rise | fall to fall | rise to fall | fall to rise +------------------------------------------------------------------------------------------------------------------------------------------------------------ +Starting Ending | constraint slack | constraint slack | constraint slack | constraint slack +------------------------------------------------------------------------------------------------------------------------------------------------------------ +System sgmii_ecp5|rxrefclk | 10.000 8.811 | No paths - | No paths - | No paths - +sgmii_ecp5|pll_refclki System | 10.000 8.253 | No paths - | No paths - | No paths - +sgmii_ecp5|pll_refclki sgmii_ecp5|pll_refclki | 10.000 4.079 | No paths - | No paths - | No paths - +sgmii_ecp5|pll_refclki sgmii_ecp5|tx_pclk_inferred_clock | Diff grp - | No paths - | No paths - | No paths - +sgmii_ecp5|rxrefclk System | 10.000 8.277 | No paths - | No paths - | No paths - +sgmii_ecp5|rxrefclk sgmii_ecp5|rxrefclk | 10.000 4.043 | No paths - | No paths - | No paths - +sgmii_ecp5|tx_pclk_inferred_clock sgmii_ecp5|pll_refclki | Diff grp - | No paths - | No paths - | No paths - +sgmii_ecp5|tx_pclk_inferred_clock sgmii_ecp5|tx_pclk_inferred_clock | 10.000 5.789 | No paths - | No paths - | No paths - +============================================================================================================================================================ + Note: 'No paths' indicates there are no paths in the design for that pair of clock edges. + 'Diff grp' indicates that paths exist but the starting clock and ending clock are in different clock groups. + + + +Interface Information +********************* + +No IO constraint found + + + +==================================== +Detailed Report for Clock: sgmii_ecp5|pll_refclki +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +-------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[2] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[2] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[3] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[3] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[17] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[17] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[19] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[19] 0.907 4.079 +rsl_inst.genblk1\.plol_cnt[1] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[1] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[4] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[4] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[5] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[5] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[6] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[6] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[7] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[7] 0.907 4.684 +rsl_inst.genblk1\.plol_cnt[8] sgmii_ecp5|pll_refclki FD1S3DX Q plol_cnt[8] 0.907 4.684 +==================================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +----------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[19] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[19] 9.946 4.079 +rsl_inst.genblk1\.plol_cnt[17] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[17] 9.946 4.139 +rsl_inst.genblk1\.plol_cnt[18] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[18] 9.946 4.139 +rsl_inst.genblk1\.plol_cnt[15] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[15] 9.946 4.200 +rsl_inst.genblk1\.plol_cnt[16] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[16] 9.946 4.200 +rsl_inst.genblk1\.plol_cnt[13] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[13] 9.946 4.261 +rsl_inst.genblk1\.plol_cnt[14] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[14] 9.946 4.261 +rsl_inst.genblk1\.plol_cnt[11] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[11] 9.946 4.322 +rsl_inst.genblk1\.plol_cnt[12] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[12] 9.946 4.322 +rsl_inst.genblk1\.plol_cnt[9] sgmii_ecp5|pll_refclki FD1S3DX D plol_cnt_s[9] 9.946 4.383 +======================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 5.867 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : 4.079 + + Number of logic level(s): 15 + Starting point: rsl_inst.genblk1\.plol_cnt[2] / Q + Ending point: rsl_inst.genblk1\.plol_cnt[19] / D + The start point is clocked by sgmii_ecp5|pll_refclki [rising] on pin CK + The end point is clocked by sgmii_ecp5|pll_refclki [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +------------------------------------------------------------------------------------------------------- +rsl_inst.genblk1\.plol_cnt[2] FD1S3DX Q Out 0.907 0.907 - +plol_cnt[2] Net - - - - 2 +rsl_inst.genblk1\.un1_plol_cnt_tc_10 ORCALUT4 A In 0.000 0.907 - +rsl_inst.genblk1\.un1_plol_cnt_tc_10 ORCALUT4 Z Out 0.606 1.513 - +un1_plol_cnt_tc_10 Net - - - - 1 +rsl_inst.genblk1\.un1_plol_cnt_tc_14 ORCALUT4 D In 0.000 1.513 - +rsl_inst.genblk1\.un1_plol_cnt_tc_14 ORCALUT4 Z Out 0.606 2.119 - +un1_plol_cnt_tc_14 Net - - - - 1 +rsl_inst.genblk1\.un1_plol_cnt_tc ORCALUT4 D In 0.000 2.119 - +rsl_inst.genblk1\.un1_plol_cnt_tc ORCALUT4 Z Out 0.762 2.881 - +un1_plol_cnt_tc Net - - - - 5 +rsl_inst.genblk1\.plol_cnt11_i ORCALUT4 B In 0.000 2.881 - +rsl_inst.genblk1\.plol_cnt11_i ORCALUT4 Z Out 0.840 3.721 - +plol_cnt Net - - - - 21 +rsl_inst.genblk1\.plol_cnt_cry_0[0] CCU2C A1 In 0.000 3.721 - +rsl_inst.genblk1\.plol_cnt_cry_0[0] CCU2C COUT Out 0.900 4.621 - +plol_cnt_cry[0] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[1] CCU2C CIN In 0.000 4.621 - +rsl_inst.genblk1\.plol_cnt_cry_0[1] CCU2C COUT Out 0.061 4.682 - +plol_cnt_cry[2] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[3] CCU2C CIN In 0.000 4.682 - +rsl_inst.genblk1\.plol_cnt_cry_0[3] CCU2C COUT Out 0.061 4.743 - +plol_cnt_cry[4] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[5] CCU2C CIN In 0.000 4.743 - +rsl_inst.genblk1\.plol_cnt_cry_0[5] CCU2C COUT Out 0.061 4.804 - +plol_cnt_cry[6] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[7] CCU2C CIN In 0.000 4.804 - +rsl_inst.genblk1\.plol_cnt_cry_0[7] CCU2C COUT Out 0.061 4.865 - +plol_cnt_cry[8] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[9] CCU2C CIN In 0.000 4.865 - +rsl_inst.genblk1\.plol_cnt_cry_0[9] CCU2C COUT Out 0.061 4.926 - +plol_cnt_cry[10] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[11] CCU2C CIN In 0.000 4.926 - +rsl_inst.genblk1\.plol_cnt_cry_0[11] CCU2C COUT Out 0.061 4.987 - +plol_cnt_cry[12] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[13] CCU2C CIN In 0.000 4.987 - +rsl_inst.genblk1\.plol_cnt_cry_0[13] CCU2C COUT Out 0.061 5.048 - +plol_cnt_cry[14] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[15] CCU2C CIN In 0.000 5.048 - +rsl_inst.genblk1\.plol_cnt_cry_0[15] CCU2C COUT Out 0.061 5.109 - +plol_cnt_cry[16] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_cry_0[17] CCU2C CIN In 0.000 5.109 - +rsl_inst.genblk1\.plol_cnt_cry_0[17] CCU2C COUT Out 0.061 5.170 - +plol_cnt_cry[18] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt_s_0[19] CCU2C CIN In 0.000 5.170 - +rsl_inst.genblk1\.plol_cnt_s_0[19] CCU2C S0 Out 0.698 5.867 - +plol_cnt_s[19] Net - - - - 1 +rsl_inst.genblk1\.plol_cnt[19] FD1S3DX D In 0.000 5.867 - +======================================================================================================= + + + + +==================================== +Detailed Report for Clock: sgmii_ecp5|rxrefclk +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rxs_rst sgmii_ecp5|rxrefclk FD1P3DX Q rxs_rst 1.015 4.043 +rsl_inst.genblk2\.rlol1_cnt[7] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[7] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[8] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[8] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[9] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[9] 0.907 4.136 +rsl_inst.genblk2\.rlol1_cnt[10] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[10] 0.907 4.136 +rsl_inst.genblk2\.rlols0_cnt[1] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[1] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[2] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[2] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[3] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[3] 0.907 4.170 +rsl_inst.genblk2\.rlols0_cnt[4] sgmii_ecp5|rxrefclk FD1P3DX Q rlols0_cnt[4] 0.907 4.170 +rsl_inst.genblk2\.rlol1_cnt[0] sgmii_ecp5|rxrefclk FD1P3DX Q rlol1_cnt[0] 0.907 4.742 +=================================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[11] sgmii_ecp5|rxrefclk FD1P3DX D rxr_wt_cnt_s[11] 9.946 4.043 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[9] sgmii_ecp5|rxrefclk FD1P3DX D rxr_wt_cnt_s[9] 9.946 4.104 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[10] sgmii_ecp5|rxrefclk FD1P3DX D rxr_wt_cnt_s[10] 9.946 4.104 +rsl_inst.genblk2\.rlol1_cnt[17] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[17] 9.946 4.136 +rsl_inst.genblk2\.rlol1_cnt[18] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[18] 9.946 4.136 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[7] sgmii_ecp5|rxrefclk FD1P3DX D rxr_wt_cnt_s[7] 9.946 4.165 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[8] sgmii_ecp5|rxrefclk FD1P3DX D rxr_wt_cnt_s[8] 9.946 4.165 +rsl_inst.genblk2\.rlols0_cnt[17] sgmii_ecp5|rxrefclk FD1P3DX D rlols0_cnt_s[17] 9.946 4.170 +rsl_inst.genblk2\.rlol1_cnt[15] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[15] 9.946 4.197 +rsl_inst.genblk2\.rlol1_cnt[16] sgmii_ecp5|rxrefclk FD1P3DX D rlol1_cnt_s[16] 9.946 4.197 +================================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 5.902 + - Clock delay at starting point: 0.000 (ideal) + = Slack (critical) : 4.043 + + Number of logic level(s): 11 + Starting point: rsl_inst.genblk2\.rxs_rst / Q + Ending point: rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[11] / D + The start point is clocked by sgmii_ecp5|rxrefclk [rising] on pin CK + The end point is clocked by sgmii_ecp5|rxrefclk [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +----------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.rxs_rst FD1P3DX Q Out 1.015 1.015 - +rxs_rst Net - - - - 6 +rsl_inst.rdo_rx_serdes_rst_c_1[0] ORCALUT4 B In 0.000 1.015 - +rsl_inst.rdo_rx_serdes_rst_c_1[0] ORCALUT4 Z Out 0.708 1.723 - +rsl_rx_serdes_rst_c Net - - - - 3 +rsl_inst.dual_or_rserd_rst ORCALUT4 A In 0.000 1.723 - +rsl_inst.dual_or_rserd_rst ORCALUT4 Z Out 0.798 2.521 - +dual_or_rserd_rst Net - - - - 9 +rsl_inst.rx_any_rst ORCALUT4 A In 0.000 2.521 - +rsl_inst.rx_any_rst ORCALUT4 Z Out 0.660 3.181 - +rx_any_rst Net - - - - 2 +rsl_inst.rx_any_rst_RNIFD021 ORCALUT4 A In 0.000 3.181 - +rsl_inst.rx_any_rst_RNIFD021 ORCALUT4 Z Out 0.819 4.000 - +rxr_wt_cnt9 Net - - - - 14 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[0] CCU2C A1 In 0.000 4.000 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[0] CCU2C COUT Out 0.900 4.900 - +rxr_wt_cnt_cry[0] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[1] CCU2C CIN In 0.000 4.900 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[1] CCU2C COUT Out 0.061 4.961 - +rxr_wt_cnt_cry[2] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[3] CCU2C CIN In 0.000 4.961 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[3] CCU2C COUT Out 0.061 5.022 - +rxr_wt_cnt_cry[4] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[5] CCU2C CIN In 0.000 5.022 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[5] CCU2C COUT Out 0.061 5.083 - +rxr_wt_cnt_cry[6] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[7] CCU2C CIN In 0.000 5.083 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[7] CCU2C COUT Out 0.061 5.144 - +rxr_wt_cnt_cry[8] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[9] CCU2C CIN In 0.000 5.144 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_cry_0[9] CCU2C COUT Out 0.061 5.205 - +rxr_wt_cnt_cry[10] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_s_0[11] CCU2C CIN In 0.000 5.205 - +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt_s_0[11] CCU2C S0 Out 0.698 5.902 - +rxr_wt_cnt_s[11] Net - - - - 1 +rsl_inst.genblk2\.genblk3\.rxr_wt_cnt[11] FD1P3DX D In 0.000 5.902 - +================================================================================================================= + + + + +==================================== +Detailed Report for Clock: sgmii_ecp5|tx_pclk_inferred_clock +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------------------------------------------ +sll_inst.ppul_sync_p1 sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q ppul_sync_p1 1.098 5.789 +sll_inst.ppul_sync_p2 sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q ppul_sync_p2 1.098 5.789 +sll_inst.pcount_diff[0] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_0 0.985 6.147 +sll_inst.pcount[0] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q pcount[0] 0.955 6.178 +sll_inst.pcount_diff[1] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_1 0.955 6.239 +sll_inst.pcount_diff[2] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_2 0.955 6.239 +sll_inst.pcount[1] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q pcount[1] 0.907 6.287 +sll_inst.pcount[2] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX Q pcount[2] 0.907 6.287 +sll_inst.pcount_diff[3] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_3 0.955 6.300 +sll_inst.pcount_diff[4] sgmii_ecp5|tx_pclk_inferred_clock FD1P3BX Q un13_lock_4 0.955 6.300 +======================================================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +----------------------------------------------------------------------------------------------------------------------------------------- +sll_inst.pcount[21] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[21] 9.946 5.789 +sll_inst.pcount[19] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[19] 9.946 5.850 +sll_inst.pcount[20] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[20] 9.946 5.850 +sll_inst.pcount[17] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[17] 9.946 5.911 +sll_inst.pcount[18] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[18] 9.946 5.911 +sll_inst.pcount[15] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[15] 9.946 5.972 +sll_inst.pcount[16] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[16] 9.946 5.972 +sll_inst.pcount[13] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[13] 9.946 6.033 +sll_inst.pcount[14] sgmii_ecp5|tx_pclk_inferred_clock FD1S3DX D pcount_s[14] 9.946 6.033 +sll_inst.pcount_diff[21] sgmii_ecp5|tx_pclk_inferred_clock FD1P3DX D un1_pcount_diff_1_s_21_0_S0 9.946 6.034 +========================================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.054 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.946 + + - Propagation time: 4.157 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : 5.789 + + Number of logic level(s): 13 + Starting point: sll_inst.ppul_sync_p1 / Q + Ending point: sll_inst.pcount[21] / D + The start point is clocked by sgmii_ecp5|tx_pclk_inferred_clock [rising] on pin CK + The end point is clocked by sgmii_ecp5|tx_pclk_inferred_clock [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +-------------------------------------------------------------------------------------------- +sll_inst.ppul_sync_p1 FD1S3DX Q Out 1.098 1.098 - +ppul_sync_p1 Net - - - - 25 +sll_inst.pcount10_0_o3 ORCALUT4 A In 0.000 1.098 - +sll_inst.pcount10_0_o3 ORCALUT4 Z Out 0.851 1.950 - +N_8 Net - - - - 25 +sll_inst.pcount_cry_0[0] CCU2C A1 In 0.000 1.950 - +sll_inst.pcount_cry_0[0] CCU2C COUT Out 0.900 2.850 - +pcount_cry[0] Net - - - - 1 +sll_inst.pcount_cry_0[1] CCU2C CIN In 0.000 2.850 - +sll_inst.pcount_cry_0[1] CCU2C COUT Out 0.061 2.911 - +pcount_cry[2] Net - - - - 1 +sll_inst.pcount_cry_0[3] CCU2C CIN In 0.000 2.911 - +sll_inst.pcount_cry_0[3] CCU2C COUT Out 0.061 2.972 - +pcount_cry[4] Net - - - - 1 +sll_inst.pcount_cry_0[5] CCU2C CIN In 0.000 2.972 - +sll_inst.pcount_cry_0[5] CCU2C COUT Out 0.061 3.033 - +pcount_cry[6] Net - - - - 1 +sll_inst.pcount_cry_0[7] CCU2C CIN In 0.000 3.033 - +sll_inst.pcount_cry_0[7] CCU2C COUT Out 0.061 3.094 - +pcount_cry[8] Net - - - - 1 +sll_inst.pcount_cry_0[9] CCU2C CIN In 0.000 3.094 - +sll_inst.pcount_cry_0[9] CCU2C COUT Out 0.061 3.155 - +pcount_cry[10] Net - - - - 1 +sll_inst.pcount_cry_0[11] CCU2C CIN In 0.000 3.155 - +sll_inst.pcount_cry_0[11] CCU2C COUT Out 0.061 3.216 - +pcount_cry[12] Net - - - - 1 +sll_inst.pcount_cry_0[13] CCU2C CIN In 0.000 3.216 - +sll_inst.pcount_cry_0[13] CCU2C COUT Out 0.061 3.277 - +pcount_cry[14] Net - - - - 1 +sll_inst.pcount_cry_0[15] CCU2C CIN In 0.000 3.277 - +sll_inst.pcount_cry_0[15] CCU2C COUT Out 0.061 3.338 - +pcount_cry[16] Net - - - - 1 +sll_inst.pcount_cry_0[17] CCU2C CIN In 0.000 3.338 - +sll_inst.pcount_cry_0[17] CCU2C COUT Out 0.061 3.399 - +pcount_cry[18] Net - - - - 1 +sll_inst.pcount_cry_0[19] CCU2C CIN In 0.000 3.399 - +sll_inst.pcount_cry_0[19] CCU2C COUT Out 0.061 3.460 - +pcount_cry[20] Net - - - - 1 +sll_inst.pcount_s_0[21] CCU2C CIN In 0.000 3.460 - +sll_inst.pcount_s_0[21] CCU2C S0 Out 0.698 4.157 - +pcount_s[21] Net - - - - 1 +sll_inst.pcount[21] FD1S3DX D In 0.000 4.157 - +============================================================================================ + + + + +==================================== +Detailed Report for Clock: System +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +---------------------------------------------------------------------------------------- +DCU0_inst System DCUA CH0_FFS_RLOL rx_cdr_lol_s 0.000 8.810 +DCU0_inst System DCUA CH0_FFS_RLOS rx_los_low_s 0.000 8.810 +======================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------------------------------------------------------------------- +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] System FD1P3DX SP un2_rdo_serdes_rst_dual_c_2_i 9.806 8.810 +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] System FD1P3DX D rxpr_appd_RNO[0] 9.946 9.556 +rsl_inst.genblk2\.rlol_p1 System FD1S3DX D rx_cdr_lol_s 9.946 9.946 +rsl_inst.genblk2\.rlos_p1 System FD1S3DX D rx_los_low_s 9.946 9.946 +============================================================================================================================================= + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 10.000 + - Setup time: 0.194 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 9.806 + + - Propagation time: 0.996 + - Clock delay at starting point: 0.000 (ideal) + - Estimated clock delay at start point: -0.000 + = Slack (non-critical) : 8.810 + + Number of logic level(s): 2 + Starting point: DCU0_inst / CH0_FFS_RLOL + Ending point: rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] / SP + The start point is clocked by System [rising] + The end point is clocked by sgmii_ecp5|rxrefclk [rising] on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +----------------------------------------------------------------------------------------------------------------------------------- +DCU0_inst DCUA CH0_FFS_RLOL Out 0.000 0.000 - +rx_cdr_lol_s Net - - - - 4 +rsl_inst.un2_rdo_serdes_rst_dual_c_1_1 ORCALUT4 A In 0.000 0.000 - +rsl_inst.un2_rdo_serdes_rst_dual_c_1_1 ORCALUT4 Z Out 0.606 0.606 - +un2_rdo_serdes_rst_dual_c_1_1 Net - - - - 1 +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd_RNO_0[0] ORCALUT4 B In 0.000 0.606 - +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd_RNO_0[0] ORCALUT4 Z Out 0.390 0.996 - +un2_rdo_serdes_rst_dual_c_2_i Net - - - - 1 +rsl_inst.genblk2\.genblk3\.lfor\[0\]\.rxpr_appd[0] FD1P3DX SP In 0.000 0.996 - +=================================================================================================================================== + + + +##### END OF TIMING REPORT #####] + +Timing exceptions that could not be applied +None + +Finished final timing analysis (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB) + + +Finished timing report (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 151MB peak: 153MB) + +--------------------------------------- +Resource Usage Report +Part: lfe5um_25f-6 + +Register bits: 221 of 24288 (1%) +PIC Latch: 0 +I/O cells: 0 + + +Details: +CCU2C: 113 +DCUA: 1 +FD1P3BX: 20 +FD1P3DX: 92 +FD1S3BX: 12 +FD1S3DX: 97 +GSR: 1 +INV: 3 +ORCALUT4: 154 +PFUMX: 2 +PUR: 1 +VHI: 6 +VLO: 6 +Mapper successful! + +At Mapper Exit (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 35MB peak: 153MB) + +Process took 0h:00m:03s realtime, 0h:00m:03s cputime +# Mon May 13 09:09:11 2019 + +###########################################################] diff --git a/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.srm b/gbe/cores/GbePcsExtrefclk/sgmii_ecp5/syn_results/sgmii_ecp5.srm new file mode 100644 index 0000000000000000000000000000000000000000..c431948d3e731f98541a5231f3f6979cb6e4156a GIT binary patch literal 31486 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≻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